You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/09/02 17:39:54 UTC

[13/45] usergrid git commit: Moving older SDKs to a difference location and updating main README to link to new SDK locations.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/README.md
----------------------------------------------------------------------
diff --git a/sdks/perl/README.md b/sdks/perl/README.md
deleted file mode 100644
index 61069cc..0000000
--- a/sdks/perl/README.md
+++ /dev/null
@@ -1,341 +0,0 @@
-# Usergrid Perl Client ![CI status](https://travis-ci.org/aweeraman/usergrid-perl-sdk.svg?branch=master "CI Status")
-
-Usergrid::Client provides an easy to use Perl API for Apache Usergrid.
-
-## Quickstart
-
-Install Usergrid::Client from CPAN:
-
-    $ sudo cpan Usergrid::Client
-
-Write a perl script that uses the Perl API to talk to Usergrid. Here's an example:
-
-```perl
-#!/usr/bin/perl
-use Usergrid::Client;
-
-# Create a client object for Usergrid that's used for subsequent activity
-my $client = Usergrid::Client->new(
-  organization => 'test-organization',
-  application  => 'test-app',
-  api_url      => 'http://localhost:8080',
-  trace        => 0
-);
-
-# Logs the user in. The security token is maintained by the library in memory
-$client->login('johndoe', 'Johndoe123$');
-
-# Add two entities to the "books" collection
-$client->add_entity("books", { name => "Ulysses", author => "James Joyce" });
-$client->add_entity("books", { name => "Neuromancer", author => "William Gibson" });
-
-# Retrieve a handle to the collection
-my $books = $client->get_collection("books");
-
-# Add a new attribute for quantity in stock
-while ($books->has_next_entity()) {
-  my $book = $books->get_next_entity();
-
-  print "Name: "   . $book->get('name')   . ", ";
-  print "Author: " . $book->get('author') . "\n";
-
-  # Create a new attribute and update the entity
-  $book->set("in-stock", 0);
-  $client->update_entity($book);
-}
-```
-
-## What is Apache Usergrid
-
-Usergrid is an open-source Backend-as-a-Service (\u201cBaaS\u201d or \u201cmBaaS\u201d) composed of
-an integrated distributed NoSQL database, application layer and client tier with
-SDKs for developers looking to rapidly build web and/or mobile applications.
-It provides elementary services (user registration & management, data storage,
-file storage, queues) and retrieval features (full text search, geolocation
-search, joins) to power common app features.
-
-It is a multi-tenant system designed for deployment to public cloud environments
-(such as Amazon Web Services, Rackspace, etc.) or to run on traditional server
-infrastructures so that anyone can run their own private BaaS deployment.
-
-For architects and back-end teams, it aims to provide a distributed, easily
-extendable, operationally predictable and highly scalable solution. For
-front-end developers, it aims to simplify the development process by enabling
-them to rapidly build and operate mobile and web applications without requiring
-backend expertise.
-
-Source: [Usergrid Documentation](https://usergrid.apache.org/docs/)
-
-For more information, visit [http://www.usergrid.org](http://www.usergrid.org)
-
-## Installation
-
-### Prerequisites
-Usergrid::Client depends on the following modules which can be installed
-from CPAN as shown below:
-
-    $ sudo cpan install Moose
-    $ sudo cpan install JSON
-    $ sudo cpan install REST::Client
-    $ sudo cpan install URI::Template
-    $ sudo cpan install Log::Log4perl
-    $ sudo cpan install namespace::autoclean
-
-### Build and install
-
-    $ perl Build.PL
-    $ ./Build
-    $ ./Build test
-    $ sudo ./Build install
-
-### For legacy users on older versions of Perl
-
-    $ perl Makefile.PL
-    $ make
-    $ make test
-    $ sudo make install
-
-## Usage
-
-### Getting started
-
-In order to login to Usergrid using the API, create a Usergrid::Client object
-as shown below and invoke the login function.
-
-```perl
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url
-);
-
-$client->login($username, $password);
-```
-
-For troubleshooting the requests and responses, tracing can be enabled, which
-will log all requests and responses to standard output.
-
-```perl
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 1
-);
-```
-
-To get more details on the API, read the following perldocs:
-
-    Usergrid::Client
-    Usergrid::Collection
-    Usergrid::Entity
-
-### Entities
-
-Creating and updating an entity is easy. Here's how:
-
-```perl
-$book = $client->add_entity("books", { name => "Neuromancer", author => "William Gibson" });
-$book->set('genre', 'Cyberpunk');
-
-$client->update_entity($book);
-```
-
-Querying an entity can be done by UUID:
-
-```perl
-$book = $client->get_entity("books", $uuid);
-```
-
-or by name:
-
-```perl
-$book = $client->get_entity("books", "Neuromancer");
-```
-
-Similarly, an entity can be deleted by UUID or by name:
-
-```perl
-$client->delete_entity_by_id("books", $uuid_or_name);
-
-# An entity can be also deleted by passing an entity object
-$client->delete_entity($entity);
-```
-
-### Collections
-
-A collection can be retrieved as shown below:
-
-```perl
-$collection = $client->get_collection("books");
-
-# Outputs the number of records in the collection
-print "$collection->count()\n";
-```
-
-To iterate over the collection:
-
-```perl
-while ($collection->has_next_entity()) {
-  $book = $collection->get_next_entity();
-  print "$book->get('name')\n";
-}
-```
-
-Note that by default a collection returns a maximum of 10 records per page. This
-can be overridden when retrieving the collection as shown below:
-
-```perl
-$collection = $client->get_collection("books", 30);
-
-# Retrieve the first book in the collection's current page
-$first_book = $collection->get_first_entity();
-
-# Retrieve the last book in the collection's current page
-$last_book  = $collection->get_last_entity();
-```
-
-To navigate the pages in the collection:
-
-```perl
-$collection->get_next_page();
-
-$collection->get_prev_page();
-```
-
-Both of the above return FALSE if the end or the beginning of the collection
-is reached.
-
-When iterating through a collection, the auto_page attribute can be set
-to allow the collection to transparently fetch the next page when iterating.
-
-```perl
-$collection = $client->get_collection("books");
-
-$collection->auto_page(1);
-
-while ($collection->has_next_entity()) {
-  my $entity = $collection->get_next_entity();
-  # do something
-}
-```
-
-### Querying & Batch Updates
-
-Collections can be queried using a SQL-like query language for greater control
-over the data set that is returned.
-
-```perl
-$collection = $client->query_collection("books", "select * where genre = 'Cyberpunk'", $limit );
-```
-
-Queries can also be used when deleting collections:
-
-```perl
-$collection = $client->delete_collection("books", "select * where genre = 'Cyberpunk'", $limit);
-```
-
-If the $limit is omitted in the above method calls, a default of 10 is assumed.
-
-A collection can be batch updated as shown below:
-
-```perl
-$client->update_collection("books", { in_stock => 1 });
-```
-
-A query can be used to fine-tune the update:
-
-```perl
-$client->update_collection("books", { in_stock => 0 }, "select * where genre = 'Cyberpunk'", $limit);
-```
-
-Similarly, entities can be deleted in batch:
-
-```perl
-$client->delete_collection("books", "select * where genre = 'Novel'", $limit);
-```
-
-### Entity Connections
-
-Connections can be created between entities through relationships as shown below:
-
-```perl
-$book1 = $client->add_entity("books", { name => "Neuromancer", author => "William Gibson" });
-$book2 = $client->add_entity("books", { name => "Count Zero", author => "William Gibson" });
-$book3 = $client->add_entity("books", { name => "Mona Lisa Overdrive", author => "William Gibson" });
-
-$client->connect_entities($book1, "similar_to", $book2);
-$client->connect_entities($book1, "similar_to", $book3);
-```
-
-They can also be queried just like any other collection:
-
-```perl
-$collection = $client->query_connections($book1, "similar_to");
-
-# Queries and limits can also be passed in
-$collection = $client->query_connections($book1, "similar_to", $query, $limit);
-```
-
-To delete a connection:
-
-```perl
-$client->disconnect_entities($book1, "similar_to", $book2);
-```
-
-### Code Coverage
-
-Code coverage reporting requires Devel::Cover module which can be
-installed from CPAN as shown:
-
-    $ sudo cpan install Devel::Cover
-
-For generating reports on code coverage:
-
-    $ ./Build testcover
-
-The generated report artifacts are located in cover_db/.
-
-## Release notes
-
-### 0.22
-
-* Auto paging for collections
-
-### 0.21
-
-* Documentation updates
-
-### 0.2
-
-* Creating, querying and deleting entity connections
-* Bi-directional collection pagination
-
-### 0.11
-
-* Added namespace::autoclean.pm as a dependency to fix build break on some
-  platforms
-
-### 0.1
-
-* Initial release
-* Application and admin authentication
-* Support for collections and entities (CRUD & queries)
-
-## License
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-the ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/examples/books.pl
----------------------------------------------------------------------
diff --git a/sdks/perl/examples/books.pl b/sdks/perl/examples/books.pl
deleted file mode 100644
index 842d378..0000000
--- a/sdks/perl/examples/books.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use Usergrid::Client;
-
-# Create a client object for Usergrid that's used for subsequent activity
-my $client = Usergrid::Client->new(
-  organization => 'test-organization',
-  application  => 'test-app',
-  api_url      => 'http://localhost:8080',
-  trace        => 0
-);
-
-# Logs the user in. The security token is maintained by the library in memory
-$client->login('johndoe', 'Johndoe123$');
-
-# Add two entities to the "books" collection
-$client->add_entity("books", { name => "Ulysses", author => "James Joyce" });
-$client->add_entity("books", { name => "Neuromancer", author => "William Gibson" });
-
-# Retrieve a handle to the collection
-my $books = $client->get_collection("books");
-
-# Add a new attribute for quantity in stock
-while ($books->has_next_entity()) {
-  my $book = $books->get_next_entity();
-
-  print "Name: "   . $book->get('name')   . ", ";
-  print "Author: " . $book->get('author') . "\n";
-
-  # Create a new attribute and update the entity
-  $book->set("in-stock", 0);
-  $client->update_entity($book);
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/lib/Usergrid/Client.pm
----------------------------------------------------------------------
diff --git a/sdks/perl/lib/Usergrid/Client.pm b/sdks/perl/lib/Usergrid/Client.pm
deleted file mode 100644
index ccb276b..0000000
--- a/sdks/perl/lib/Usergrid/Client.pm
+++ /dev/null
@@ -1,492 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Usergrid::Client;
-
-use Moose;
-use namespace::autoclean;
-use Usergrid::Entity;
-use Usergrid::Collection;
-
-with (
-  'Usergrid::Request',
-);
-
-our $VERSION = '0.22';
-
-=head1 NAME
-
-Usergrid::Client - Usergrid Perl Client
-
-=head1 SYNOPSIS
-
-  use Usergrid::Client;
-
-  my $client = Usergrid::Client->new(
-    organization => 'test-organization',
-    application  => 'test-app',
-    api_url      => 'http://localhost:8080'
-  );
-
-  $client->login('johndoe', 'Johndoe123$');
-
-  $client->add_entity("books", { name => "Ulysses" });
-  $client->add_entity("books", { name => "Neuromancer" });
-
-  my $books = $client->get_collection("books");
-
-  while ($books->has_next_entity()) {
-    my $book = $books->get_next_entity();
-
-    print "Name: "   . $book->get('name')   . ", ";
-    print "Author: " . $book->get('author') . "\n";
-
-    $book->set("in-stock", 0);
-    $client->update_entity($book);
-  }
-
-=head1 DESCRIPTION
-
-Usergrid::Client provides an easy to use Perl API for Apache Usergrid.
-
-=head1 WHAT IS APACHE USERGRID
-
-Usergrid is an open-source Backend-as-a-Service ("BaaS" or "mBaaS") composed of
-an integrated distributed NoSQL database, application layer and client tier with
-SDKs for developers looking to rapidly build web and/or mobile applications.
-It provides elementary services (user registration & management, data storage,
-file storage, queues) and retrieval features (full text search, geolocation
-search, joins) to power common app features.
-
-It is a multi-tenant system designed for deployment to public cloud environments
-(such as Amazon Web Services, Rackspace, etc.) or to run on traditional server
-infrastructures so that anyone can run their own private BaaS deployment.
-
-For architects and back-end teams, it aims to provide a distributed, easily
-extendable, operationally predictable and highly scalable solution. For
-front-end developers, it aims to simplify the development process by enabling
-them to rapidly build and operate mobile and web applications without requiring
-backend expertise.
-
-Source: L<https://usergrid.apache.org/docs/>
-
-For more information, visit L<http://www.usergrid.org>
-
-=head1 ATTRIBUTES
-
-The following attributes are made available via the L<Usergrid::Request> role:
-
-=over 4
-
-=item organization (String)
-
-Organization name
-
-=item application (String)
-
-Application name
-
-=item api_url (String)
-
-URL of the Usergrid instance
-
-=item trace (Boolean)
-
-Enable/disable request and response tracing for debugging and troubleshooting
-(Optional)
-
-=back
-
-=head1 METHODS
-
-The following methods are provided in this API for interacting with the Apache
-Usergrid backend.
-
-=head2 Authentication
-
-=over 4
-
-=item login ( $username, $password )
-
-Performs application user authentication. Returns the user token for the
-logged in user. The token is also kept in memory and used for subsequent
-authentication of requests.
-
-=cut
-sub login {
-  my ($self, $username, $password) = @_;
-
-  my %request = (
-    grant_type => "password",
-    username   => $username,
-    password   => $password
-  );
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/token')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application
-  );
-
-  my $token = $self->POST($uri, \%request);
-
-  $self->user_token($token);
-
-  return $self->user_token;
-}
-
-=item admin_login ( $username, $password )
-
-Performs admin user authentication. Returns the user token for the
-logged in user. The token is also kept in memory and used for subsequent
-authentication of requests.
-
-=cut
-sub management_login {
-  my ($self, $username, $password) = @_;
-
-  my %request = (
-    grant_type => "password",
-    username   => $username,
-    password   => $password
-  );
-
-  my $token = $self->POST('/management/token', \%request);
-
-  $self->user_token($token);
-
-  return $self->user_token;
-}
-
-=back
-
-=head2 Entities
-
-This section covers some of the entity level methods available in the API.
-Entities form one of the basic building blocks of Usergrid and is analogous to
-a row in an RDBMS table.
-
-=over 4
-
-=item add_entity ( $collection, \%entity )
-
-Creates a new entity within the specified collection. Returns a L<Usergrid::Entity>
-for the newly added entity.
-
-=cut
-sub add_entity {
-  my ($self, $collection, $entity) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $collection
-  );
-
-  return Usergrid::Entity->new( object => $self->POST($uri, $entity));
-}
-
-=item update_entity ( L<Usergrid::Entity> )
-
-Saves changes to the given entity. Returns the updated L<Usergrid::Entity>.
-
-=cut
-sub update_entity {
-  my ($self, $entity) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}/{uuid}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $entity->get('type'),
-      uuid         => $entity->get('uuid')
-  );
-
-  return Usergrid::Entity->new( object => $self->PUT($uri,
-    $entity->object->{'entities'}[0]) );
-}
-
-=item get_entity ( $collection, $id )
-
-Returns a L<Usergrid::Entity> identified by either UUID or name.
-If the entity does not exist, the method returns FALSE.
-
-=cut
-sub get_entity {
-  my ($self, $collection, $id_or_name) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}/{id_or_name}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $collection,
-      id_or_name   => $id_or_name
-  );
-
-  my $response = $self->GET($uri);
-
-  return undef if (! $response);
-
-  return Usergrid::Entity->new( object => $response );
-}
-
-=item delete_entity_by_id ( $collection, $id )
-
-Deletes an entity from the collection identified by either UUID or name. Returns
-a L<Usergrid::Entity> of the deleted entity.
-
-=cut
-sub delete_entity_by_id {
-  my ($self, $collection, $id_or_name) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}/{id}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $collection,
-      id           => $id_or_name
-  );
-
-  return Usergrid::Entity->new( object => $self->DELETE($uri) );
-}
-
-=item delete_entity ( L<Usergrid::Entity> )
-
-Deletes the specified L<Usergrid::Entity>. Returns an instance of the deleted
-L<Usergrid::Entity> if successful.
-
-=cut
-sub delete_entity {
-  my ($self, $entity) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}/{uuid}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $entity->get('type'),
-      uuid         => $entity->get('uuid')
-  );
-
-  return Usergrid::Entity->new( object => $self->DELETE($uri) );
-}
-
-=item connect_entities ( L<Usergrid::Entity>, $relationship, L<Usergrid::Entity> )
-
-Creates a connection from Entity #1 to Entity #2 signified by the relationship.
-The first entity in this relationship is identified as the connecting entity and
-the second as the connected entity. The relationship is a string that signifies
-the type of connection. This returns a L<Usergrid::Entity> of the connecting
-entity.
-
-=cut
-sub connect_entities {
-  my ($self, $connecting, $relationship, $connected) = @_;
-
-  my $uri = URI::Template
-    ->new ('/{organization}/{application}/{connecting_collection}/{connecting}/{relationship}/{connected_collection}/{connected}')
-    ->process(
-      organization          => $self->organization,
-      application           => $self->application,
-      connecting_collection => $connecting->get('type'),
-      connecting            => $connecting->get('uuid'),
-      relationship          => $relationship,
-      connected_collection  => $connected->get('type'),
-      connected             => $connected->get('uuid')
-    );
-
-    return Usergrid::Entity->new ( object => $self->POST($uri));
-}
-
-=item disconnect_entities ( L<Usergrid::Entity>, $relationship, L<Usergrid::Entity> )
-
-Removes the connection between the two entities signified by the relationship.
-This does not affect the entities in any other way apart from the removal of the
-connection that is depicted by the relationship. This returns a L<Usergrid::Entity>
-of the connecting entity with the given relationship removed.
-
-=cut
-sub disconnect_entities {
-my ($self, $connecting, $relationship, $connected) = @_;
-
-my $uri = URI::Template
-  ->new ('/{organization}/{application}/{connecting_collection}/{connecting}/{relationship}/{connected_collection}/{connected}')
-  ->process(
-    organization          => $self->organization,
-    application           => $self->application,
-    connecting_collection => $connecting->get('type'),
-    connecting            => $connecting->get('uuid'),
-    relationship          => $relationship,
-    connected_collection  => $connected->get('type'),
-    connected             => $connected->get('uuid')
-  );
-
-  return Usergrid::Entity->new ( object => $self->DELETE($uri));
-}
-
-=back
-
-=head2 Collections
-
-This section covers the methods related to retrieving and working with
-collections in the Usergrid API. Collections contains groups of entities and is
-analogous to a table in an RDBMS.
-
-=over 4
-
-=item get_collection ( $collection, [ $limit ] )
-
-Returns a L<Usergrid::Collection> with the list of entities up to the maximum
-specified limit, which is 10 if not provided.
-
-=cut
-sub get_collection {
-  my ($self, $collection, $limit) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}?limit={limit}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $collection,
-      limit        => ( defined $limit ) ? $limit: 10
-  );
-
-  return $self->_collection($self->GET($uri), $uri);
-}
-
-=item update_collection ( $collection, \%attributes, [ $query ], [ $limit ] )
-
-Updates all the entities in the specified collection with the provided attributes.
-Optionally pass in the SQL-like query to narrow the scope of the objects that
-are affected. This also supports specifying a limit to restrict the maximum number of
-records that are updated. If not specified, the limit defaults to 10 entities.
-
-=cut
-sub update_collection {
-  my ($self, $collection, $properties, $query, $limit) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}/?limit={limit}&ql={query}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $collection,
-      limit        => ( defined $limit ) ? $limit : 10,
-      query        => ( defined $query ) ? $query : undef
-  );
-
-  return $self->_collection($self->PUT($uri, $properties), $uri);
-}
-
-=item delete_collection ( $collection, [ $query ], [ $limit ] )
-
-Batch delete entities in the specified collection. Optionally pass in a SQL-like
-query to narrow the scope of the objects that are affected and a limit to restrict
-the maximum number of records that are deleted. If not specified, the limit
-defaults to 10 entities.
-
-=cut
-sub delete_collection {
-  my ($self, $collection, $query, $limit) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}/?limit={limit}&ql={query}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $collection,
-      limit        => ( defined $limit ) ? $limit : 10,
-      query        => ( defined $query ) ? $query : undef
-  );
-
-  return $self->_collection($self->DELETE($uri), $uri);
-}
-
-=item query_collection ( $collection, $query, [ $limit ] )
-
-Queries all the entities in the specified collection using a SQL-like query string.
-This also supports specifying a limit to restrict the maximum number of
-records that are returned. If not specified, the limit defaults to 10 entities.
-
-=cut
-sub query_collection {
-  my ($self, $collection, $query, $limit) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}?limit={limit}&ql={ql}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $collection,
-      limit        => ( defined $limit ) ? $limit : 10,
-      ql           => $query
-  );
-
-  return $self->_collection($self->GET($uri), $uri);
-}
-
-=item query_connections ( $entity, $relationship, [ $query ], [ $limit ] )
-
-Returns a collection of entities for the given relationship, optionally filtered
-by a SQL-like query and limited to the maximum number of records specified. If no limit
-is provided, a default of 10 entities is assumed.
-
-=cut
-sub query_connections {
-  my ($self, $entity, $relationship, $query, $limit) = @_;
-
-  my $uri = URI::Template
-    ->new('/{organization}/{application}/{collection}/{id}/{relationship}?limit={limit}&ql={ql}')
-    ->process(
-      organization => $self->organization,
-      application  => $self->application,
-      collection   => $entity->get('type'),
-      id           => $entity->get('uuid'),
-      relationship => $relationship,
-      limit        => ( defined $limit ) ? $limit : 10,
-      ql           => $query
-  );
-
-  return $self->_collection($self->GET($uri), $uri);
-}
-
-__PACKAGE__->meta->make_immutable;
-
-1;
-
-__END__
-
-=back
-
-=head1 SEE ALSO
-
-L<Usergrid::Collection>, L<Usergrid::Entity>, L<Usergrid::Request>
-
-=head1 LICENSE
-
-This software is distributed under the Apache 2 license.
-
-=head1 AUTHOR
-
-Anuradha Weeraman <an...@cpan.org>
-
-=cut

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/lib/Usergrid/Collection.pm
----------------------------------------------------------------------
diff --git a/sdks/perl/lib/Usergrid/Collection.pm b/sdks/perl/lib/Usergrid/Collection.pm
deleted file mode 100644
index 8d64ce6..0000000
--- a/sdks/perl/lib/Usergrid/Collection.pm
+++ /dev/null
@@ -1,212 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Usergrid::Collection;
-
-use Moose;
-use namespace::autoclean;
-
-with (
-  'Usergrid::Request',
-);
-
-my @stack;
-
-=head1 NAME
-
-Usergrid::Collection - a Usergrid collection
-
-=head1 DESCRIPTION
-
-Encapsulates Usergrid collections and provides methods for iterating and paging
-through them.
-
-=head1 ATTRIBUTES
-
-=over 4
-
-=item object
-
-A hash reference with the collection data
-
-=item uri
-
-The URI from which this collection was retrieved
-
-=item auto_page
-
-When set, the collection will automatically move to the next page when iterating
-through the collection
-
-=back
-
-=cut
-has 'object'      => ( is => 'rw', required => 1 );
-has 'uri'         => ( is => 'rw', required => 1 );
-has 'auto_page'   => ( is => 'rw', isa => 'Bool' );
-has 'iterator'    => ( is => 'rw', isa => 'Int', default => sub { -1 } );
-
-=head1 METHODS
-
-=over 4
-
-=item has_next_entity
-
-Returns true if there's another entity available during iteration.
-
-=cut
-sub has_next_entity {
-  my $self = shift;
-  my $next = $self->iterator + 1;
-  if ( $self->auto_page && $next >= $self->count()) {
-    return $self->get_next_page();
-  }
-  return ($next >= 0 && $next < $self->count());
-}
-
-=item get_next_entity
-
-Returns the next available L<Usergrid::Entity>. If there's no entity available
-to return, it returns a FALSE. If the auto_page attribute it set, the next page
-is automatically fetched and the next entity is returned.
-
-=cut
-sub get_next_entity {
-  my $self = shift;
-  if ($self->has_next_entity()) {
-    $self->iterator ($self->iterator + 1);
-    return Usergrid::Entity->new ( object => $self->object->{'entities'}[$self->iterator] );
-  }
-  return undef;
-}
-
-=item count
-
-Returns the count of the items in the collection.
-
-=cut
-sub count {
-  my $self = shift;
-  return scalar @{$self->object->{'entities'}};
-}
-
-=item reset_iterator
-
-Rewinds the iterator back to the beginning.
-
-=cut
-sub reset_iterator {
-  my $self = shift;
-  $self->iterator (-1);
-}
-
-=item get_first_entity
-
-Returns the first entity in the collection. This is only applicable for the
-current page of the collection.
-
-=cut
-sub get_first_entity {
-  my $self = shift;
-  return ($self->count() > 0) ? Usergrid::Entity->new (
-    object => $self->object->{'entities'}[0] ) : undef;
-}
-
-=item get_last_entity
-
-Returns the last entity in the collection. This is only applicable for the
-current page of the collection.
-
-=cut
-sub get_last_entity {
-  my $self = shift;
-  return ($self->count() > 0) ? Usergrid::Entity->new (
-    object => $self->object->{'entities'}[$self->count() - 1] ) : undef;
-
-}
-
-=item get_next_page
-
-Fetches the next page in the collection. Returns false when there are no more reults.
-
-=cut
-sub get_next_page {
-  my $self = shift;
-
-  my $csr = $self->object->{'cursor'};
-
-  my $object = $self->GET($self->uri . "&cursor=". $csr);
-
-  if ($object->{'count'} > 0) {
-    push @stack, "1" if (scalar @stack == 0);
-    push @stack, $csr;
-
-    $self->object( $object );
-    $self->reset_iterator();
-
-    return $self;
-  }
-
-  0;
-}
-
-=item get_prev_page
-
-Fetches the previous page in the collection. Returns false when there are no more reults.
-
-=cut
-sub get_prev_page {
-  my $self = shift;
-  my $object;
-
-  if (scalar @stack > 0) {
-    my $csr = pop @stack;
-
-    if ($csr eq "1") {
-      $object = $self->GET($self->uri);
-    } else {
-      $object = $self->GET($self->uri . "&cursor=" . $csr);
-    }
-
-    $self->object( $object );
-    $self->reset_iterator();
-
-    return $self;
-  }
-
-  0;
-}
-
-__PACKAGE__->meta->make_immutable;
-
-1;
-
-__END__
-
-=back
-
-=head1 SEE ALSO
-
-L<Usergrid::Client>, L<Usergrid::Entity>, L<Usergrid::Request>
-
-=head1 LICENSE
-
-This software is distributed under the Apache 2 license.
-
-=head1 AUTHOR
-
-Anuradha Weeraman <an...@cpan.org>
-
-=cut

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/lib/Usergrid/Entity.pm
----------------------------------------------------------------------
diff --git a/sdks/perl/lib/Usergrid/Entity.pm b/sdks/perl/lib/Usergrid/Entity.pm
deleted file mode 100644
index 051e9b6..0000000
--- a/sdks/perl/lib/Usergrid/Entity.pm
+++ /dev/null
@@ -1,92 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Usergrid::Entity;
-
-use Moose;
-use namespace::autoclean;
-
-=head1 NAME
-
-Usergrid::Entity - a Usergrid entity
-
-=head1 DESCRIPTION
-
-Encapsulates Usergrid entities and provides methods for accessing the underlying
-data.
-
-=head1 ATTRIBUTES
-
-=over 4
-
-=item object
-
-A hash reference with the entity data
-
-=back
-
-=cut
-has 'object'      => ( is => 'rw', required => 1);
-
-=head1 METHODS
-
-=over 4
-
-=item get ( $attribute_name )
-
-Returns the value of the specified attribute.
-
-=cut
-sub get {
-  my ($self, $key) = @_;
-  return $self->object->{$key} if (defined $self->object->{$key});
-  return $self->object->{'entities'}[0]->{$key};
-}
-
-=item set ( $attribute_name, $value )
-
-Sets the value of the specified attribute.
-
-=cut
-sub set {
-  my ($self, $key, $value) = @_;
-  if (defined $self->object->{$key}) {
-    $self->object->{$key} = $value;
-    return;
-  }
-  $self->object->{'entities'}[0]->{$key} = $value;
-}
-
-__PACKAGE__->meta->make_immutable;
-
-1;
-
-__END__
-
-=back
-
-=head1 SEE ALSO
-
-L<Usergrid::Client>, L<Usergrid::Collection>, L<Usergrid::Request>
-
-=head1 LICENSE
-
-This software is distributed under the Apache 2 license.
-
-=head1 AUTHOR
-
-Anuradha Weeraman <an...@cpan.org>
-
-=cut

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/lib/Usergrid/Request.pm
----------------------------------------------------------------------
diff --git a/sdks/perl/lib/Usergrid/Request.pm b/sdks/perl/lib/Usergrid/Request.pm
deleted file mode 100644
index 3768039..0000000
--- a/sdks/perl/lib/Usergrid/Request.pm
+++ /dev/null
@@ -1,249 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Usergrid::Request;
-
-use Moose::Role;
-use namespace::autoclean;
-use Carp qw(confess);
-use Log::Log4perl qw(:easy);
-use REST::Client;
-use URI::Template;
-use JSON;
-
-my $json = JSON->new->allow_nonref;
-
-=head1 NAME
-
-Usergrid::Request - Role that provides HTTP invocation and utility methods
-
-=head1 DESCRIPTION
-
-This is a Role that is applied to L<Usergrid::Client> and L<Usergrid::Collection>
-which provides methods that relate to HTTP invocation as well as some utility
-functions.
-
-=head1 ATTRIBUTES
-
-=over 4
-
-=item organization (String)
-
-Organization name
-
-=item application (String)
-
-Application name
-
-=item api_url (String)
-
-URL of the Usergrid instance
-
-=item trace (Boolean)
-
-Enable/disable request and response tracing for debugging and troubleshooting
-(Optional)
-
-=cut
-has 'organization'  => ( is => 'rw', isa => 'Str', required => 1);
-has 'application'   => ( is => 'rw', isa => 'Str', required => 1);
-has 'api_url'       => ( is => 'rw', isa => 'Str', required => 1);
-
-has 'trace'         => ( is => 'rw', isa => 'Bool', trigger => \&_enable_tracing);
-
-has 'user_token'    => ( is => 'rw');
-
-# internal method
-sub _is_token_required {
-  my ($self, $resource) = @_;
-  return 0 if $resource =~ m/\/management\/token/;
-  1;
-}
-
-# internal method
-sub _api_request {
-  my ($self, $method, $resource, $request) = @_;
-
-  $self->trace_message("$method $resource");
-  $self->trace_message("REQUEST: " . $self->prettify($request)) if ($request);
-
-  my $client = REST::Client->new();
-  $client->setHost($self->api_url);
-
-  if ($self->_is_token_required($resource) == 1 && defined $self->user_token) {
-     $client->addHeader('Authorization',
-        'Bearer ' . $self->user_token->{'access_token'});
-  }
-
-  my $json_req = $self->json_encode($request) if ($request);
-
-  $client->DELETE($resource)          if ($method eq 'DELETE');
-  $client->GET($resource)             if ($method eq 'GET');
-  $client->POST($resource, $json_req) if ($method eq 'POST');
-  $client->PUT($resource, $json_req)  if ($method eq 'PUT');
-
-  my $response = $client->responseContent();
-
-  $self->trace_message("RESPONSE: " . $self->prettify($response)) if ($response);
-
-  return undef if ($client->responseCode() eq "404");
-
-  confess "Bad request"  if ($client->responseCode() eq "400");
-  confess "Unauthorized" if ($client->responseCode() eq "401");
-  confess "Forbidden"    if ($client->responseCode() eq "403");
-  confess "Server error" if ($client->responseCode() eq "500");
-
-  return $self->json_decode($response);
-}
-
-# internal method
-sub _enable_tracing {
-  my ($self, $state, $old_state) = @_;
-  if ($state) {
-    Log::Log4perl::easy_init($DEBUG);
-    our $logger = Log::Log4perl->get_logger();
-  }
-}
-
-# internal method
-sub _collection {
-  my ($self, $object, $uri) = @_;
-
-  return Usergrid::Collection->new (
-    object       => $object,
-    uri          => $uri,
-    organization => $self->organization,
-    application  => $self->application,
-    api_url      => $self->api_url,
-    trace        => $self->trace,
-    user_token   => $self->user_token
-  );
-}
-
-=back
-
-=head1 METHODS
-
-=head2 HTTP Invocation Methods
-
-=over 4
-
-=item DELETE ( $resource )
-
-Invokes HTTP DELETE on the specified resource.
-
-=cut
-sub DELETE {
-  my ($self, $resource) = @_;
-  $self->_api_request('DELETE', $resource);
-}
-
-=item GET ( $resource )
-
-Invokes HTTP GET on the specified resource.
-
-=cut
-sub GET {
-  my ($self, $resource) = @_;
-  $self->_api_request('GET', $resource);
-}
-
-=item POST ( $resource, \%request )
-
-Invokes HTTP POST on the specified resource and passes in the payload
-for the request.
-
-=cut
-sub POST {
-  my ($self, $resource, $request) = @_;
-  $self->_api_request('POST', $resource, $request);
-}
-
-=item PUT ( $resource, \%request )
-
-Invokes HTTP PUT on the specified resource and passes in the payload
-for the request.
-
-=cut
-sub PUT {
-  my ($self, $resource, $request) = @_;
-  $self->_api_request('PUT', $resource, $request);
-}
-
-=back
-
-=head2 Utility Methods
-
-=over 4
-
-=item trace_message ( $message )
-
-Utility method to log a message to console if tracing is enabled.
-
-=cut
-sub trace_message {
-  my ($self, $message) = @_;
-  $Usergrid::Request::logger->debug($message) if (defined $Usergrid::Request::logger);
-}
-
-=item prettify ( $message, \%object )
-
-Returns a prettified string representation hash reference.
-
-=cut
-sub prettify {
-  my ($self, $json_obj) = @_;
-  return $json->pretty->encode($json_obj);
-}
-
-=item json_encode ( \%hashref )
-
-Returns a JSON object from a hash reference.
-
-=cut
-sub json_encode {
-  my ($self, $json_obj) = @_;
-  $json->encode($json_obj);
-}
-
-=item json_decode ( $json_object )
-
-Returns a hash reference from a JSON object.
-
-=cut
-sub json_decode {
-  my ($self, $json_obj) = @_;
-  $json->decode($json_obj);
-}
-
-1;
-
-__END__
-
-=back
-
-=head1 SEE ALSO
-
-L<Usergrid::Client>, L<Usergrid::Collection>, L<Usergrid::Entity>
-
-=head1 LICENSE
-
-This software is distributed under the Apache 2 license.
-
-=head1 AUTHOR
-
-Anuradha Weeraman <an...@cpan.org>
-
-=cut

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/01_init.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/01_init.t b/sdks/perl/t/01_init.t
deleted file mode 100644
index c410155..0000000
--- a/sdks/perl/t/01_init.t
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 3;
-
-BEGIN {
-  use_ok 'Usergrid::Client'     || print "Bail out!\n";
-  use_ok 'Usergrid::Entity'     || print "Bail out!\n";
-  use_ok 'Usergrid::Collection' || print "Bail out!\n";
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/02_login.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/02_login.t b/sdks/perl/t/02_login.t
deleted file mode 100644
index 8397b92..0000000
--- a/sdks/perl/t/02_login.t
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-our $hostname        = 'localhost';
-our $port            = '8080';
-our $api_url         = "http://$hostname:$port";
-our $organization    = 'test-organization';
-our $application     = 'test-app';
-our $username        = 'testuser';
-our $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 1;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-ok ( $token->{user}->{username} eq $username, "user logged in" );
-
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/03_update.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/03_update.t b/sdks/perl/t/03_update.t
deleted file mode 100644
index b05a260..0000000
--- a/sdks/perl/t/03_update.t
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 7;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $deleted_book);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-
-  ok ( $token->{user}->{username} eq $username, "user logged in" );
-
-  $book = $client->add_entity("books", { name => "Ulysses", author => "James Joyce" });
-
-  ok ( $book->get('author') eq "James Joyce", "check entity creation" );
-
-  $book->set('genre', 'Modernist');
-
-  $book = $client->update_entity($book);
-
-  ok ( $book->get('genre') eq "Modernist", "check for new attribute" );
-
-  $book->set('genre', 'Novel');
-
-  $book = $client->update_entity($book);
-
-  ok ( $book->get('genre') eq "Novel", "check for updated attribute" );
-
-  $book = $client->get_entity("books", $book->get('uuid'));
-
-  ok ( $book->get('genre') eq "Novel", "check again for updated attribute by uuid" );
-
-  $book = $client->get_entity("books", "Ulysses");
-
-  ok ( $book->get('name') eq 'Ulysses', "get object by name") ;
-
-  $book = $client->delete_entity_by_id("books", $book->get('uuid'));
-
-  $deleted_book = $client->get_entity("books", $book->get('uuid'));
-
-  ok ( (! defined $deleted_book), "deleted book cannot be found" );
-
-};
-
-diag($@) if $@;
-
-# Cleanup
-$client->delete_entity($book);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/04_collection.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/04_collection.t b/sdks/perl/t/04_collection.t
deleted file mode 100644
index d823ced..0000000
--- a/sdks/perl/t/04_collection.t
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 10;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $collection);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must be initially zero" );
-
-  $client->add_entity("books", { name => "Ulysses", author => "James Joyce" });
-  $client->add_entity("books", { name => "Neuromancer", author => "William Gibson" });
-  $client->add_entity("books", { name => "On the Road", author => "Jack Kerouac" });
-  $client->add_entity("books", { name => "Ubik", author => "Philip K. Dick" });
-  $client->add_entity("books", { name => "Reef", author => "Romesh Gunasekera" });
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 5, "count must now be five" );
-
-  while ($collection->has_next_entity()) {
-    $book = $collection->get_next_entity();
-    ok ( length($book->get('name')) > 3, "check the book titles" );
-  }
-
-  $collection->reset_iterator();
-
-  ok ( $collection->iterator == -1, "iterator must be reset" );
-
-  ok ( $collection->count() == 5, "count must be five" );
-
-  while ($collection->has_next_entity()) {
-    $book = $collection->get_next_entity();
-    $client->delete_entity($book);
-  }
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must now be again zero" );
-
-};
-
-diag($@) if $@;
-
-# Cleanup
-$collection = $client->delete_collection("books", undef, 30);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/05_query.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/05_query.t b/sdks/perl/t/05_query.t
deleted file mode 100644
index 40e3f1b..0000000
--- a/sdks/perl/t/05_query.t
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 8;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $collection, $subset);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must be initially zero" );
-
-  for (my $i = 0; $i < 30; $i++) {
-    $client->add_entity("books", { name => "book $i", index => $i });
-  }
-
-  $collection = $client->get_collection("books", 30);
-
-  ok ( $collection->count() == 30, "count must now be 30" );
-
-  $book = $collection->get_first_entity();
-
-  ok ( $book->get('index') eq '0', "first index should be 0");
-
-  $book = $collection->get_last_entity();
-
-  ok ( $book->get('index') eq '29', "last index should be 29");
-
-  $subset = $client->query_collection("books", "select * where index = '5'", 15 );
-
-  ok ( $subset->count() == 1, "subset is 1" );
-  ok ( $subset->object->{'params'}->{'limit'}[0] eq '15', "check limit override" );
-
-  $book = $subset->get_next_entity();
-
-  ok ( $book->get('index') eq '5', "query returned the fifth book" );
-
-  while ($collection->has_next_entity()) {
-    $book = $collection->get_next_entity();
-    $client->delete_entity($book);
-  }
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must now be again zero" );
-
-};
-
-diag($@) if $@;
-
-# Cleanup
-$collection = $client->delete_collection("books", undef, 30);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/06_batch_update.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/06_batch_update.t b/sdks/perl/t/06_batch_update.t
deleted file mode 100644
index 04ff11d..0000000
--- a/sdks/perl/t/06_batch_update.t
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 34;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $collection, $count);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must be initially zero" );
-
-  for (my $i = 0; $i < 30; $i++) {
-    $client->add_entity("books", { name => "book $i", index => $i });
-  }
-
-  $collection = $client->get_collection("books", 30);
-
-  ok ( $collection->count() == 30, "count must now be 30" );
-
-  $client->update_collection("books", { in_stock => 1 });
-
-  $collection = $client->get_collection("books", 30);
-
-  while ($collection->has_next_entity()) {
-    $book = $collection->get_next_entity();
-    ok ( $book->get('in_stock') == 1 );
-  }
-
-  $client->update_collection("books", { in_stock => 0 }, "select * where index = '1' or index = '2' or index = '3' or index = '4' or index = '5'");
-
-  $collection = $client->get_collection("books", 30);
-
-  while ($collection->has_next_entity()) {
-    $book = $collection->get_next_entity();
-    $count++ if ($book->get('index') =~ /[12345]/ && $book->get('in_stock') == 0);
-    $client->delete_entity($book);
-  }
-
-  ok ( $count == 5, "batch update only 5 entities" );
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must now be again zero" );
-
-};
-
-diag($@) if $@;
-
-# Cleanup
-$collection = $client->delete_collection("books", undef, 30);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/07_batch_delete.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/07_batch_delete.t b/sdks/perl/t/07_batch_delete.t
deleted file mode 100644
index 2ed6d72..0000000
--- a/sdks/perl/t/07_batch_delete.t
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 3;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $collection, $count);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must be initially zero" );
-
-  for (my $i = 0; $i < 30; $i++) {
-    $client->add_entity("books", { name => "book $i", index => $i });
-  }
-
-  $collection = $client->get_collection("books", 30);
-
-  ok ( $collection->count() == 30, "count must now be 30" );
-
-  $client->delete_collection("books", "select * where index = '1' or index = '2' or index = '3' or index = '4' or index = '5'");
-
-  $collection = $client->get_collection("books", 30);
-
-  ok ( $collection->count() == 25, "deleted 5 entities" );
-};
-
-diag($@) if $@;
-
-# Cleanup
-$collection = $client->delete_collection("books", undef, 30);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/08_connections.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/08_connections.t b/sdks/perl/t/08_connections.t
deleted file mode 100644
index 35550e0..0000000
--- a/sdks/perl/t/08_connections.t
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 5;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $book1, $book2, $book3, $collection);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-  $book1 = $client->add_entity("books", { name => "Neuromancer", author => "William Gibson" });
-  $book2 = $client->add_entity("books", { name => "Count Zero", author => "William Gibson" });
-  $book3 = $client->add_entity("books", { name => "Mona Lisa Overdrive", author => "William Gibson" });
-
-  $client->connect_entities($book1, "similar_to", $book2);
-  $client->connect_entities($book1, "similar_to", $book3);
-
-  $collection = $client->query_connections($book1, "similar_to");
-
-  ok ( $collection->count == 2, "two connections must exist" );
-
-  while ($collection->has_next_entity()) {
-    $book = $collection->get_next_entity();
-    ok ( $book->get('name') eq 'Count Zero' || $book->get('name') eq ('Mona Lisa Overdrive'), "check connections");
-  }
-
-  $client->disconnect_entities($book1, "similar_to", $book2);
-
-  $collection = $client->query_connections($book1, "similar_to");
-
-  ok ( $collection->count() == 1 );
-
-  $book = $collection->get_next_entity();
-
-  ok ( $book->get('name') eq 'Mona Lisa Overdrive', "check remaining connection");
-};
-
-diag($@) if $@;
-
-# Cleanup
-$client->delete_collection("books", undef, 10);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/09_paging.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/09_paging.t b/sdks/perl/t/09_paging.t
deleted file mode 100644
index 9a38a7f..0000000
--- a/sdks/perl/t/09_paging.t
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 24;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $collection, $subset, $count);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must be initially zero" );
-
-  for (my $i = 0; $i < 30; $i++) {
-    $client->add_entity("books", { name => "book $i", index => $i });
-  }
-
-  $collection = $client->get_collection("books", 30);
-
-  ok ( $collection->count() == 30, "count must now be 30" );
-
-  $collection = $client->get_collection("books", 10);
-
-  ok ( $collection->count == 10, "checking first page count" );
-  ok ( $collection->get_first_entity()->get('name') eq 'book 0', "Check first entity of first page");
-  ok ( $collection->get_last_entity()->get('name')  eq 'book 9', "Check last entity of first page");
-
-  $collection->get_next_page();
-
-  ok ( $collection->count == 10, "checking second page count" );
-  ok ( $collection->get_first_entity()->get('name') eq 'book 10', "Check first entity of second page");
-  ok ( $collection->get_last_entity()->get('name')  eq 'book 19', "Check last entity of second page");
-
-  $collection->get_next_page();
-
-  ok ( $collection->count == 10, "checking third page count" );
-  ok ( $collection->get_first_entity()->get('name') eq 'book 20', "Check first entity of third page");
-  ok ( $collection->get_last_entity()->get('name')  eq 'book 29', "Check last entity of third page");
-
-  if (! $collection->get_next_page()) {
-    pass ( "no more results" );
-  }
-
-  $collection->get_prev_page();
-
-  ok ( $collection->count == 10, "checking third page count" );
-  ok ( $collection->get_first_entity()->get('name') eq 'book 20', "Check first entity of third page in reverse");
-  ok ( $collection->get_last_entity()->get('name')  eq 'book 29', "Check last entity of third page in reverse");
-
-  $collection->get_prev_page();
-
-  ok ( $collection->count == 10, "checking second page count" );
-  ok ( $collection->get_first_entity()->get('name') eq 'book 10', "Check first entity of second page in reverse");
-  ok ( $collection->get_last_entity()->get('name')  eq 'book 19', "Check last entity of second page in reverse");
-
-  $collection->get_prev_page();
-
-  ok ( $collection->count == 10, "checking first page count" );
-  ok ( $collection->get_first_entity()->get('name') eq 'book 0', "Check first entity of first page in reverse");
-  ok ( $collection->get_last_entity()->get('name')  eq 'book 9', "Check last entity of first page in reverse");
-
-  if (! $collection->get_prev_page()) {
-    pass ( "no more results in reverse" );
-  }
-
-  $count = 0;
-  $collection = $client->get_collection("books", 10);
-  do {
-    $count += $collection->count();
-  } while ($collection->get_next_page());
-
-  ok ( $count == 30, "should return 30 entities in forward" );
-
-  $count = 0;
-  while ($collection->get_prev_page()) {
-    $count += $collection->count();
-  }
-
-  ok ( $count == 30, "should return 30 entities in reverse" );
-};
-
-diag($@) if $@;
-
-# Cleanup
-$client->delete_collection("books", undef, 30);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/perl/t/10_auto_paging.t
----------------------------------------------------------------------
diff --git a/sdks/perl/t/10_auto_paging.t b/sdks/perl/t/10_auto_paging.t
deleted file mode 100644
index 5ed98f7..0000000
--- a/sdks/perl/t/10_auto_paging.t
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/perl
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Usergrid::Client;
-use IO::Socket::INET;
-use Test::More;
-
-# TEST DATA
-my $hostname        = 'localhost';
-my $port            = '8080';
-my $api_url         = "http://$hostname:$port";
-my $organization    = 'test-organization';
-my $application     = 'test-app';
-my $username        = 'testuser';
-my $password        = 'Testuser123$';
-###########
-
-if (_check_port($hostname, $port)) {
-  plan tests => 3;
-} else {
-  plan skip_all => "server $api_url not reachable"
-}
-
-sub _check_port {
-  my ($hostname, $port) = @_;
-  new IO::Socket::INET ( PeerAddr => $hostname, PeerPort => $port,
-    Proto => 'tcp' ) || return 0;
-  return 1;
-}
-
-my ($user, $token, $book, $collection, $subset, $count);
-
-# Create the client object that will be used for all subsequent requests
-my $client = Usergrid::Client->new(
-  organization => $organization,
-  application  => $application,
-  api_url      => $api_url,
-  trace        => 0
-);
-
-# Create a test user
-$user = $client->add_entity("users", { username=>$username, password=>$password });
-
-$token = $client->login($username, $password);
-
-eval {
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->count() == 0, "count must be initially zero" );
-
-  for (my $i = 0; $i < 30; $i++) {
-    $client->add_entity("books", { name => "book $i", index => $i });
-  }
-
-  $collection = $client->get_collection("books");
-
-  ok ( $collection->get_last_entity()->get('name') eq 'book 9', "only return 10 entites per page by default");
-
-  $collection = $client->get_collection("books");
-
-  $collection->auto_page(1);
-
-  $count = 0;
-
-  while ($collection->has_next_entity()) {
-    $count += 1;
-    my $entity = $collection->get_next_entity();
-  }
-
-  ok ( $count == 30, "should return 30 entities in when auto paging" );
-};
-
-diag($@) if $@;
-
-# Cleanup
-$client->delete_collection("books", undef, 30);
-$client->delete_entity($user);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php/LICENSE
----------------------------------------------------------------------
diff --git a/sdks/php/LICENSE b/sdks/php/LICENSE
deleted file mode 100644
index e06d208..0000000
--- a/sdks/php/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-