NAME
REST::Google::Apps::Provisioning - A Perl library to Google's RESTful Apps Provisioning API
SYNOPSIS
use REST::Google::Apps::Provisioning
$google = REST::Google::Apps::Provisioning->new(
domain => 'company.com',
username => 'admin',
password => 'g00gl34pp5!'
);
$user->{'jsmith'} = $google->getUser( username => 'jsmith' );
DESCRIPTION
REST::Google::Apps::Provisioning provides a Perl interface to Google's RESTful Apps API.
This module is currently a work-in-progress. Please e-mail with problems, bug fixes, comments and complaints.
CONSTRUCTOR
- new ( DOMAIN, USERNAME, PASSWORD )
-
Creates a new REST::Google::Apps::Provisioning object. A domain parameter is required.
Supplying authentication information to the constructor is optional , but needs to happen either here or with a call to the authenticate method.
Example
$google = REST::Google::Apps::Provisioning->new( domain => 'company.com', username => 'admin', password => 'g00gl34pp5!' );
METHODS
- authenticate ( USERNAME, PASSWORD )
-
Authenticate a session.
Example
$google->authenticate( username => 'admin', password => 'g00gl34pp5!' ) || die "Could not authenticate";
- createUser ( USERNAME, GIVENNAME, FAMILYNAME, PASSWORD, PASSWORDHASHFUNCTION, ADMIN )
-
Create a new user.
The following parameters are required:
- username
-
The username associated with the account being created.
- givenName
-
The user's given (first) name.
- familyName
-
The user's family (last) name.
- password
-
The user's password.
The following paramaters are optional:
- passwordHashFunction
-
The format of the value in the password attribute. Currently, the only valid values for this parameter are "SHA-1" and "MD5".
- admin
-
Can be 'true' or 'false', representing whether or not the user should be granted administrator access.
Example
$user->{'jsmith'} = $google->createUser( username => 'jsmith', givenName => 'Joseph', familyName => 'Smith', password => 'j5m1thp455w0rd!' ) || die "Could not create user";
- deleteUser ( USERNAME )
-
Delete a user.
Example
delete $user->{'jsmith'} if $google->deleteUser( username => 'jsmith' );
- renameUser ( USERNAME, NEWNAME )
-
Rename a user.
Example
$google->renameUser( username => 'jsmith', newname => 'josephsmith' ) || die "Could not rename user";
- updateUser ( USERNAME, ATTR )
-
Update a user's attributes. See the createUser function for a list of valid attributes.
Example
$google->updateUser( username => 'jsmith', givenName => 'Joey' ) || die "Could not update user";
- getUser ( USER )
-
Retrieve a hash containing a user's account information.
Example
$user->{'jsmith'} = $google->getUser( username => 'jsmith' );
Hash
Using the above example, the returned hash is:
'jsmith' => { 'admin' => 'false', 'ipWhitelisted' => 'false', 'suspended' => 'false', 'limit' => '7168', 'userName' => 'jsmith`', 'changePasswordAtNextLogin' => 'false', 'givenName' => 'Joseph', 'familyName' => 'Smith', 'agreedToTerms' => 'false' }
- getAllUsers
-
Retrieve a list of all users.
Example
$users = $google->getAllUsers();
- createGroup ( GROUP )
-
Create a new group.
Example
$google->createGroup( group => 'finance' ) || die "Could not create group";
- deleteGroup ( GROUP )
-
Delete a group.
Example
delete $group->{'finance'} if $google->deleteGroup( group => 'finance' );
- updateGroup ( GROUP, ... )
-
Not yet implemented.
- getGroup ( GROUP )
-
Retrieve a hash containing group information.
Example
$group->{'finance'} = $google->getGroup( group => 'finance' );
Hash
Using the above example, the returned hash is:
'finance' => { 'emailPermission' => 'Anyone', 'groupId' => 'finance@company.com', 'updated' => '2009-09-16T21:05:15.697Z', 'groupName' => 'finance', 'description' => 'Finance Department' }
- getAllGroups
-
Retrieve a list of all groups.
Example
$groups = $google->getAllGroups();
- addGroupMember ( GROUP, MEMBER )
-
Add a member to a group.
Example
$google->addGroupMember( group => 'finance', member => 'jsmith' ) || die "Could not add group member";
- deleteGroupMember ( GROUP, MEMBER )
-
Remove a member from a group.
Example
$google->deleteGroupMember( group => 'finance', member => 'jsmith' ) || die "Could not delete group member";
- getGroupMembers ( GROUP )
-
Retrieve a list of group members.
Example
$group->{'finance'}->{'members'} = $google->getGroupMembers( group => 'finance' );
Hash
Using the above example, the returned hash is:
'members' => { 'jsmith' => { 'memberType' => 'User', 'directMember' => 'true', 'memberId' => 'jsmith@company.com' }, 'sschneid' => { 'memberType' => 'User', 'directMember' => 'true', 'memberId' => 'sschneid@company.com' } }
- createNickname ( USERNAME, NICKNAME )
-
Create a nickname (e-mail alias).
Example
$google->createNickname( username => 'jsmith', nickname => 'joe' ) || die "Could not create nickname";
- deleteNickname ( NICKNAME )
-
Delete a nickname (e-mail alias).
Example
$google->deleteNickname( nickname => 'joe' );
- getNickname ( NICKNAME )
-
Retrieve a nickname.
Example
$nickname->{'frank'} = $google->getNickname( nickname => 'frnak' );
Hash
Using the above example, the returned hash is:
'frank' => { 'name' => 'frank', 'userName' => 'jsmith' }
- getAllNicknames
-
Retrieve a list of all nicknames.
AUTHOR
Scott Schneider <sschneid@gmail.com>