com.ibm.itim.apps.provisioning
Class ServiceMO

java.lang.Object
  extended by com.ibm.itim.apps.provisioning.ServiceMO

public class ServiceMO
extends java.lang.Object

Managed object representing a service.


Constructor Summary
ServiceMO(PlatformContext platform, javax.security.auth.Subject subject, DistinguishedName name)
          Constructs the the managed object with a platform context, a subject, and the distinguished name of the object to manage.
 
Method Summary
 java.util.Collection getAccounts()
          Returns all the accounts that are hosted by this service.
 OrganizationalContainerMO getContainer()
          Returns the current parent container in the tree.
 Service getData()
          Returns a current snapshot of the Service object.
 DistinguishedName getDistinguishedName()
          Returns the distinguished name of the managed object
 ServiceMO getHost()
          Returns the host, or concrete service, this service proxies.
 ManualWorkOrder getManualWorkOrder()
          Retrieves the ManualWorkOrder for the service.
 java.util.Collection getOrphanedAccounts()
          Returns all of the orphaned accounts for this service.
 java.util.Collection getOwnedAccounts()
          Returns all the owned accounts that are hosted by this service.
 PersonMO getOwner()
          Deprecated. since 5.0. Please use getOwners().
 java.util.Collection<PersonMO> getOwners()
          Returns the service owner(s) (if any).
 java.util.Collection getPrerequisites()
          Returns the prerequisites of the service.
 ServiceStatistics getStatistics()
          Returns statistical information about the service currently known by the server.
 ServiceStatusDetail getStatusDetail()
          Returns detailed status information about the service.
 boolean isCircularDependent(Service serv)
          Checks whether this managed object (ServiceMO) is a prerequisite of a service (that is passesed as a parameter) or the prerequisite of service's prerequisite.
 boolean isHosted()
          Returns whether this service is a "hosted" service.
 boolean isPasswordRequired()
          Returns whether this service requires a password for its accounts.
 void remove()
          Removes the managed object from the provisioning platform.
 ServiceRestartResult restart()
          Tests communications with the physical service and if successful, restarts any pending provisioning actions that have been queued.
 void switchToManualMode(ManualWorkOrder mwo)
          Switches the service to manual connection mode and adds or updates the lifecycle with the provided ManualWorkOrder object.
 ServiceTestResult testCommunications()
          Tests the communications with the physical service itself to ensure provisioning actions can be fulfilled.
 void update(ManualWorkOrder mwo)
          Updates the managed object.
 void update(Service s)
          Updates the managed object.
 void update(Service s, ManualWorkOrder mwo)
          Updates the managed objects.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServiceMO

public ServiceMO(PlatformContext platform,
                 javax.security.auth.Subject subject,
                 DistinguishedName name)
Constructs the the managed object with a platform context, a subject, and the distinguished name of the object to manage.

Parameters:
platform - PlatformContext holding platform connection information.
subject - Subject representing the authenticated caller.
name - DistinguishedName identifying the container.
Method Detail

getDistinguishedName

public DistinguishedName getDistinguishedName()
Returns the distinguished name of the managed object

Returns:
DistinguishedName of the managed object.

getData

public Service getData()
                throws java.rmi.RemoteException,
                       ApplicationException
Returns a current snapshot of the Service object.

Returns:
Service object holding attribute information.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
ApplicationException - Thrown if unable to retrieve data.

getContainer

public OrganizationalContainerMO getContainer()
                                       throws java.rmi.RemoteException,
                                              ApplicationException,
                                              AuthorizationException
Returns the current parent container in the tree.

Returns:
OrganizationalContainerMO representing the parent container.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to view the container of the service.
ApplicationException - Thrown if unable to retrieve the service's container. This may possibly be caused by the service being removed by another client previous to this call.

remove

public void remove()
            throws java.rmi.RemoteException,
                   ApplicationException,
                   AuthorizationException
Removes the managed object from the provisioning platform.

Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to remove the service.
ApplicationException - Thrown if unable to remove the object.

update

public void update(Service s)
            throws java.rmi.RemoteException,
                   AuthorizationException,
                   SchemaViolationException,
                   ApplicationException
Updates the managed object. A Service value object is provided with the changes to make.

Parameters:
s - Service value object with changes to make.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to change the service. Note, even if only one of the attributes being changed is not writeable for the client, the entire request will fail and this exception will be thrown.
SchemaViolationException - Thrown if any of the attributes in the value object violates the managed object's schema.
ApplicationException - Thrown if unable to update the object. This may possibly be caused by the service being removed by another client previous to this call.

update

public void update(Service s,
                   ManualWorkOrder mwo)
            throws java.rmi.RemoteException,
                   AuthorizationException,
                   SchemaViolationException,
                   ApplicationException
Updates the managed objects. A Service value object and a ManualWorkOrder value object are provided with the changes.

Parameters:
s - - Specifies the Service value object with the changes.
mwo - - Specifies the ManualWorkOrder value object with the changes.
Throws:
java.rmi.RemoteException - - Thrown if the method is unable to communicate with platform.
AuthorizationException - - Thrown if the client is unauthorized to change the service. Note, even if only one of the attributes being changed is not writeable for the client, the entire request fails and this exception is thrown.
SchemaViolationException - - Thrown if any of the attributes in the value object violates the schema of the managed object.
ApplicationException - - Thrown if the method is unable to update the object. This error might be caused if another client removes the service before this call.

update

public void update(ManualWorkOrder mwo)
            throws java.rmi.RemoteException,
                   AuthorizationException,
                   SchemaViolationException,
                   ApplicationException
Updates the managed object. A ManualWorkOrder value object is provided with the changes.

Parameters:
mwo - - Specifies the ManualWorkOrder value object with the changes.
Throws:
java.rmi.RemoteException - - Thrown if the method is unable to communicate with platform.
AuthorizationException - - Thrown if the client is unauthorized to change the service. Note, even if only one of the attributes being changed is not writeable for the client, the entire request fails and this exception is thrown.
SchemaViolationException - - Thrown if any of the attributes in the value object violates the schema of the managed object.
ApplicationException - - Thrown if the method is unable to update the object. This error might be caused if another client removes the service before this call.

switchToManualMode

public void switchToManualMode(ManualWorkOrder mwo)
                        throws ApplicationException,
                               java.rmi.RemoteException
Switches the service to manual connection mode and adds or updates the lifecycle with the provided ManualWorkOrder object. The ManualWorkOrder object can be null if one has previously been defined for the service.

Parameters:
mwo - - Specifies the ManualWorkOrder object used for setting the lifecycle of the service (can be null).
Throws:
ApplicationException - - Thrown if the method is unable to set to the service to manual mode or unable to assign or update the work order.
java.rmi.RemoteException - - Thrown if the method is unable to communicate with platform.

getManualWorkOrder

public ManualWorkOrder getManualWorkOrder()
                                   throws ApplicationException,
                                          java.rmi.RemoteException
Retrieves the ManualWorkOrder for the service.

Returns:
ManualWorkOrder for the service
Throws:
ApplicationException
java.rmi.RemoteException

getOwner

public PersonMO getOwner()
                  throws java.rmi.RemoteException,
                         AuthorizationException,
                         ApplicationException
Deprecated. since 5.0. Please use getOwners().

Returns the service owner (if any).

Returns:
PersonMO representing the service's owner, null if no owner is defined.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to view the owner of the service.
ApplicationException - Thrown if unable to retrieve the service's owner. This may possibly be caused by the service being removed by another client previous to this call.

getOwners

public java.util.Collection<PersonMO> getOwners()
                                         throws java.rmi.RemoteException,
                                                AuthorizationException,
                                                ApplicationException
Returns the service owner(s) (if any).

Returns:
collection of PersonMO representing the service's owner, empty if no owner is defined.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to view the owner of the service.
ApplicationException - Thrown if unable to retrieve the service's owner. This may possibly be caused by the service being removed by another client previous to this call.

getPrerequisites

public java.util.Collection getPrerequisites()
                                      throws java.rmi.RemoteException,
                                             AuthorizationException,
                                             ApplicationException
Returns the prerequisites of the service. The prerequisites are the required services to have this service for a person. For example, if the Exchange service has a AD (Active Directory) service as a prerequisite, then to have a Exchange account for a person, this person should have a AD account first.

Returns:
Collection of ServiceMO's representing the prerequisites. If there is no prerequisite then the empty collection will be returned.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to view the service's prerequisites.
ApplicationException - Thrown if unable to obtain the prerequisites. This may possibly be caused by the service being removed by another client previous to this call.

getHost

public ServiceMO getHost()
                  throws java.rmi.RemoteException,
                         AuthorizationException,
                         ApplicationException
Returns the host, or concrete service, this service proxies. This is only applicable if this service is a "hosted" service (see isHosted()).

Returns:
ServiceMO representing the host, or concrete service. Null is returned if this is called on a non "hosted" service.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to view the service's host.
ApplicationException - Thrown if unable to obtain the host. This may possibly be caused by the service being removed by another client previous to this call.

getAccounts

public java.util.Collection getAccounts()
                                 throws java.rmi.RemoteException,
                                        ApplicationException
Returns all the accounts that are hosted by this service. Note, not all accounts may be viewable (searchable) by the client. Those unauthorized accounts will be filtered out from the returned list and no AuthorizationException will be thrown.

Returns:
Collection of AccountMO's that are hosted by this service. If there is no account, then empty collection will be returned.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
ApplicationException - Thrown if unable to obtain the accounts. This may possibly be caused by the service being removed by another client previous to this call.

getOrphanedAccounts

public java.util.Collection getOrphanedAccounts()
                                         throws java.rmi.RemoteException,
                                                AuthorizationException,
                                                ApplicationException
Returns all of the orphaned accounts for this service.

Returns:
Collection of AccountMO's representing the service's orphaned accounts.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to view the service's orphaned accounts.
ApplicationException - Thrown if unable to obtain the orphaned accounts. This may possibly be caused by the service being removed by another client previous to this call.

getOwnedAccounts

public java.util.Collection getOwnedAccounts()
                                      throws java.rmi.RemoteException,
                                             AuthorizationException,
                                             ApplicationException
Returns all the owned accounts that are hosted by this service. Note, not all accounts may be viewable (searchable) by the client. Those unauthorized accounts will be filtered out of the returned list and no AuthorizationException will be thrown.

Returns:
Collection of AccountMO's representing the service's owned accounts. If there is no owned account then the empty collection will be returned.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to view the service's owned accounts.
ApplicationException - Thrown if unable to obtain the owned accounts. This may possibly be caused by the service being removed by another client previous to this call.

isHosted

public boolean isHosted()
                 throws java.rmi.RemoteException,
                        AuthorizationException,
                        ApplicationException
Returns whether this service is a "hosted" service. A "hosted" service is a virtual service that really just proxies, or represents, a real, or concrete, service in a different organization. The distinction is important, because a "hosted" service does not hold communication configuration information and does not have access to administrative operations such as retrieving orphaned accounts. The purpose of the "hosted" service is to provide an application service provider (ASP) to represent the hosting, or leasing, of a service to a customer organization. They can represent the service that is being leased in the customer's org chart and build policies around it, still referencing the concrete service where administration and communication is configured in its own org chart.

Returns:
True if the service is "hosted", false if not.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to know this information.
ApplicationException - Thrown if unable to determine the answer. This may possibly be caused by the service being removed by another client previous to this call.

isPasswordRequired

public boolean isPasswordRequired()
                           throws java.rmi.RemoteException,
                                  AuthorizationException,
                                  ApplicationException
Returns whether this service requires a password for its accounts. Not all service require account passwords, usually due to the use of single sign-on (SSO) products.

Returns:
True if the service requires passwords for its accounts, false if not.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to know this information.
ApplicationException - Thrown if unable to determine the answer. This may possibly be caused by the service being removed by another client previous to this call.

isCircularDependent

public boolean isCircularDependent(Service serv)
                            throws java.rmi.RemoteException,
                                   AuthorizationException,
                                   ApplicationException
Checks whether this managed object (ServiceMO) is a prerequisite of a service (that is passesed as a parameter) or the prerequisite of service's prerequisite.

Parameters:
serv - The service to be evaluated.
Returns:
true if this ServiceMO is a prerequisite of a service or prerequisite of one of prerequisites; false otherwise
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to know this information.
ApplicationException - Thrown if unable to determine the answer. This may possibly be caused by the service being removed by another client previous to this call.

testCommunications

public ServiceTestResult testCommunications()
                                     throws java.rmi.RemoteException,
                                            ApplicationException
Tests the communications with the physical service itself to ensure provisioning actions can be fulfilled.

Returns:
ServiceTestResult holding the results of the test.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to know this information.
ApplicationException - Thrown if unable to determine the answer. This may possibly be caused by the service being removed by another client previous to this call.

restart

public ServiceRestartResult restart()
                             throws java.rmi.RemoteException,
                                    AuthorizationException,
                                    ApplicationException
Tests communications with the physical service and if successful, restarts any pending provisioning actions that have been queued. The restart operation is not supported on ITIM services, hosted ITIM services, feeds, or manual services.

Returns:
ServiceRestartResult holding the results of the restart
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to perform the restart
ApplicationException - Thrown if unable to perform the restart. This may possibly be caused by the service being removed by another client previous to this call.

getStatistics

public ServiceStatistics getStatistics()
                                throws java.rmi.RemoteException,
                                       AuthorizationException,
                                       ApplicationException
Returns statistical information about the service currently known by the server.

Returns:
ServiceStatistics holding the statistical information for the service, null if there is no statistical information currently being tracked
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to retrieve the statistics.
ApplicationException - Thrown if unable to determine the answer.

getStatusDetail

public ServiceStatusDetail getStatusDetail()
                                    throws java.rmi.RemoteException,
                                           AuthorizationException,
                                           ApplicationException
Returns detailed status information about the service.

Returns:
ServiceStatusDetail with information about the status of the service
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
AuthorizationException - Thrown if client is unauthorized to retrieve the statistics.
ApplicationException - Thrown if unable to determine the answer.


IBM Security Identity Manager 6.0.0
© Copyright International Business Machines Corporation 2007, 2012. All rights reserved. US Government Users Restricited Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.