Provided by: libvuser-google-api-perl_1.0.1-1.1_all bug

NAME

       VUser::Google::ProvisioningAPI::V2_0 - Perl module that implements version 2.0 of the Google Apps for
       Your Domain Provisioning API

SYNOPSIS

        use VUser::Google::ProvisioningAPI;
        my $google = new VUser::Google::ProvisioningAPI($domain, $admin, $passwd, '2.0');

        $google->CreateUser($userName, $givenName, $familyName, $password, $quotaMB);
        my $user = $google->RetrieveUser($userName);

REQUIREMENTS

       VUser::Google::ProvisioningAPI requires the following modules to be installed:

       •   "LWP::UserAgent"

       •   "HTTP::Request"

       •   "Encode"

       •   "XML::Simple"

DESCRIPTION

       VUser::Google::ProvisioningAPI   provides  a  simple  interface  to  the  Google  Apps  for  Your  Domain
       Provisioning API.  It uses the "LWP::UserAgent" module for the HTTP transport,  and  the  "HTTP::Request"
       module for the HTTP request and response.

   Examples
       Adding a user:

        use VUser::Google::ProvisioningAPI;
        my $google = VUser::Google::ProvisioningAPI->new('yourdomain.com',
                                                 'admin',
                                                 'your password',
                                                 '2.0');

        my $entry = $google->CreateUser('joeb', 'Joe', 'Blow', 'joespassword');
        if (defined $entry) {
          print $entry->User, " created\n";
        } else {
          die "Add failed: ".$google->{result}{reason};
        }

       Updating a user:

        my $new_entry = VUser::Google::ProvisioningAPI::V2_0::UserEntry->new();
        $new_entry->Password('heresmynewpassword');
        $new_entry->GivenName('Joseph');
        my $entry = $google->UpdateUser('joeb', $new_entry);

       Delete a user:

        my $rc = $google->DeleteUser('joeb');
        if (not $rc) {
          die "Can't delete user: ".$google->{result}{reason};
        }

CONSTRUCTOR

       new ($domain, $admin, $adminpasswd)

       This  is  the  constructor  for  a new VUser::Google::ProvisioningAPI object.  $domain is the domain name
       registered with Google Apps For Your Domain, $admin is an account in the above domain that has the  right
       to manage that domain, and $adminpassword is the password for that account.

       Note  that  the constructor will NOT attempt to perform the 'ClientLogin' call to the Google Provisioning
       API (see below).  Authentication happens automatically when the first API call is  performed.  The  token
       will be remembered for the duration of the object, and will be automatically refreshed as needed.  If you
       want  to  verify  that you can get a valid token before performing any operations, follow the constructor
       with a call to IsAuthenticated() as such:

               print "Authentication OK\n" unless not $google->IsAuthenticated();

METHODS

       Below are all the methods available on the object. For the Google API specific methods,  see  the  Google
       API documentation for more details.

       When  a  request is properly handed by Google's API engine, the results of the action are returned as the
       content of the request.

       If the request fails (as determined by the "HTTP::Request" method is_success()), it could mean  a  couple
       of  things.  If  it's  a  failure  within  the  Google API, the content will contain an XML encoded error
       message. All other HTTP errors are still possible.

   Checking Authentication
       IsAuthenticated()

           will check if the object has been  able  to  authenticate  with  Google's  api  engine,  and  get  an
           authentication  ticket.   Returns  1  if successful, 0 on failure. To see why it may fail, see the $@
           variable, and the $google->{results}->{reason} hash, and parse the returned page (see  the  'content'
           and 'header' variables.)

       Relogin()

           Performs a login if required. Relogin() will be called but the API methods and IsAuthenticated(). You
           should not need to call this directly.

   User Methods
       These  are  the acutual API calls. These calls match up with the client library methods described for the
       .Net and Java libraries.

       CreateUser($userName, $givenName, $familyName, $password, $quota, $forceChange, $hashName)

           Creates a user in your Google Apps domain. The first four arguments are required. The $quota argument
           is optional and may not do anything unless your agreement with Google allows you to change quotas.

           If $forceChange is true, the user will be required to change their password after log in.

           $hashName, if set, must be sha-1 or md5.

           CreateUser() returns a "VUser::Google::ProvisioningAPI::V2_0::UserEntry" object if  the  request  was
           successful and "undef" otherwise.

       RetrieveUser($userName)

           Get the passed user from Google. Returns a "VUser::Google::ProvisioningAPI::V2_0::UserEntry" object.

       RetrieveAllUsers()

           Returns     a     list     of     all     users     in     your     domain.     The    entries    are
           "VUser::Google::ProvisioningAPI::V2_0::UserEntry" objects.

       RetrievePageOfUsers($startUser)

           Google Provisioning API 2.0 supports returning lists of users 100 at a time.  $startUser is optional.
           When used, it will be the list will start at that user. Otherwise,  it  will  return  the  first  100
           users.

           RetrievePageOfUsers() returns a list of "VUser::Google::ProvisioningAPI::V2_0::UserEntry" objects.

       UpdateUser($userName, $newUserEntry)

           $userName    is    the    mandatory    name    of    the    user    account.   $newUserEntry   is   a
           "VUser::Google::ProvisioningAPI::V2_0::UserEntry" object with the changes to the  account.  You  only
           need  to  set the elements of $newUserEntry that are being changed. Note: According to the Google API
           docs, you should not set the password unless you are actually changing the password.

       SuspendUser($userName)

           $userName is the name of the user that you want to suspend.

           Returns a "VUser::Google::ProvisioningAPI::V2_0::UserEntry" object if successful.

       RestoreUser($userName)

           Unsuspend the user's account. $userName is required.

           Returns a "VUser::Google::ProvisioningAPI::V2_0::UserEntry" object if successful.

       DeleteUser($userName)

           $userName is the required user name to delete.

           Returns '1' on success.

       Nickname methods

       CreateNickname($userName, $nickName)

           Creates a nickname (or alias) for a user. $userName is the existing user and $nickName is the  user's
           new nickname.

           Returns a "VUser::Google::ProvisioningAPI::V2_0::NicknameEntry" object on success.

       RetrieveNickname($nickName)

           Returns a "VUser::Google::ProvisioningAPI::V2_0::NicknameEntry" if the $nickName exists.

       RetrieveNicknames($userName)

           Get all nicknames for $userName.

           Returns a list of "VUser::Google::ProvisioningAPI::V2_0::NicknameEntry" objects.

       RetrieveAllNicknames()

           Get all of the nick names for your domain.

           Returns a list of "VUser::Google::ProvisioningAPI::V2_0::NicknameEntry" objects.

       RetrievePageOfNicknames($startNick)

           Get  100  of  the nick names for your domain. If $startNick is defined, the list will start with that
           nick name, otherwise, the first 100 nicks will be returned.

           Returns a list of "VUser::Google::ProvisioningAPI::V2_0::NicknameEntry" objects.

       DeleteNickname($nickName)

           Delete $nickName from your domain. Returns 1 if the request succeeds.

       Email list methods

       CreateEmailList($listName)

           Create an email list named $listName.

           Returns a "VUser::Google::ProvisioningAPI::V2_0::EmailListEntry" on success.

       RetrieveEmailLists($recipient)

           Get a list of all local email lists that $recipient is subscribed to.  $recipient is limited to users
           at your domain.

           Returns a list of "VUser::Google::ProvisioningAPI::V2_0::EmailListEntry" objects.

       RetrieveAllEmailLists()

           Get a list of all email lists for your domain.

           Returns a list of "VUser::Google::ProvisioningAPI::V2_0::EmailListEntry" objects.

       RetrievePageOfEmailLists($startList)

           Get a single page (100 lists) of email lists.

       DeleteEmailList($emailList)

           Delete $emailList from your domain.

           Returns 1 on success.

       AddRecipientToEmailList($recipient, $emailList)

           Adds a recipient to a mail list. $recipient is the address you want to add and $emailList is the list
           to add to.

           Returns a "VUser::Google::ProvisioningAPI::V2_0::EmailListRecipientEntry" object on success.

       RetrieveAllRecipients($emailList)

           Get a list of the recipients of the specified email list.

           Returns a list of "VUser::Google::ProvisioningAPI::V2_0::EmailListRecipientEntry" objects.

       RetrievePageOfRecipients($emailList, $startRecpt)

           Get a page of recipients for  that  given  list  ("$emailList)"  starting  with  $startRecpt  or  the
           beginning if $startRecpt is not defined.

           Returns a list of "VUser::Google::ProvisioningAPI::V2_0::EmailListRecipientEntry" objects.

       RemoveRecipientFromEmailList($recipient, $emailList)

           Remove $recipient from the given email list ($emailList).

           Returns 1 in success.

ACCESSING RESULTING DATA

       Most  API calls return an object so that you don't have to screw around with the XML data. The parsed XML
       (by XML::Simple) is available in "$google-"{result}>.

EXPORT

       None by default.

SEE ALSO

       The              perldocs              for               VUser::Google::ProvisioningAPI::V2_0::UserEntry;
       VUser::Google::ProvisioningAPI::V2_0::NicknameEntry;
       VUser::Google::ProvisioningAPI::V2_0::EmailListEntry;                                                 and
       VUser::Google::ProvisioningAPI::V2_0::EmailListRecipientEntry.

       The         official         Google         documentation         can         be         found         at
       http://code.google.com/apis/apps-for-your-domain/google_apps_provisioning_api_v2.0_reference.html

       http://code.google.com/apis/apps/gdata_provisioning_api_v2.0_reference.html

       For support, see the Google Group at http://groups.google.com/group/apps-for-your-domain-apis

       For additional support specific to this modules, email me at johan at reinalda dot net.

AUTHOR

       Johan Reinalda, johan at reinalda dot net Randy Smith, perlstalker at vuser dot org

COPYRIGHT AND LICENSE

       Copyright  (C)  2006  by  Johan  Reinalda,  johan  at reinalda dot net Copyright (C) 2007 by Randy Smith,
       perlstalker at vuser dot org

       This library is free software; you can redistribute it and/or modify it under  the  same  terms  as  Perl
       itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.

       If you make useful modification, kindly consider emailing then to me for inclusion in a future version of
       this module.

perl v5.32.0                                       2021-01-09             VUser::Google::...ioningAPI::V2_0(3pm)