com.ibm.itim.apps.provisioning

Class ServiceMO

  • java.lang.Object
    • com.ibm.itim.apps.provisioning.ServiceMO


  • public class ServiceMO
    extends java.lang.Object
    Managed object representing a service.
    • 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.
      • 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.
      • 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.
      • enforcePolicyForService

        public Request enforcePolicyForService(java.util.Date scheduleDate)
                                        throws java.rmi.RemoteException,
                                               ApplicationException
        Submit a request to enforce policy for service
        Parameters:
        scheduleDate - Date object for scheduled Time, or null to run now
        Throws:
        java.rmi.RemoteException - Thrown if unable to communicate with platform.
        AuthorizationException - Thrown if client is unauthorized to run this.
        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.