Interface ProvisionableNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface ProvisionableNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Provisionable objects in this dDstributor . This session is intended for consumers needing to synchronize their state with this service without the use of polling. Notifications are cancelled when this session is closed.

The two views defined in this session correspond to the views in the ProvisionableLookupSession .

  • Method Details

    • getDistributorId

      Id getDistributorId()
      Gets the Distributor Id associated with this session.
      Returns:
      the Distributor Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getDistributor

      Gets the Distributor associated with this session.
      Returns:
      the distributor
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canRegisterForProvisionableNotifications

      boolean canRegisterForProvisionableNotifications()
      Tests if this user can register for Provisionable notifications. A return of true does not guarantee successful authorization. A return of false indicates that it is known all methods in this session will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer notification operations.
      Returns:
      false if notification methods are not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • useFederatedDistributorView

      void useFederatedDistributorView()
      Federates the view for methods in this session. A federated view will include provisionables in distributors which are children of this distributor in the distributor hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedDistributorView

      void useIsolatedDistributorView()
      Isolates the view for methods in this session. An isolated view restricts notifications to this distributor only.
      Compliance:
      mandatory - This method is must be implemented.
    • reliableProvisionableNotifications

      void reliableProvisionableNotifications()
      Reliable notifications are desired. In reliable mode, notifications are to be acknowledged using acknowledgeProvisionableNotification() .
      Compliance:
      mandatory - This method is must be implemented.
    • unreliableProvisionableNotifications

      void unreliableProvisionableNotifications()
      Unreliable notifications are desired. In unreliable mode, notifications do not need to be acknowledged.
      Compliance:
      mandatory - This method is must be implemented.
    • acknowledgeProvisionableNotification

      void acknowledgeProvisionableNotification(Id notificationId) throws OperationFailedException, PermissionDeniedException
      Acknowledge a provisionable notification.
      Parameters:
      notificationId - the Id of the notification
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewProvisionables

      void registerForNewProvisionables() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new provisionables. ProvisionableReceiver.newProvisionables() is invoked when a new Provisionable appears in this distributor.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewProvisionablesForResource

      void registerForNewProvisionablesForResource(Id resourceId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of new provisionables for the given resource. ProvisionableReceiver.newProvisionables() is invoked when a new Provisionable appears in this distributor.
      Parameters:
      resourceId - the Id of the resource to monitor
      Throws:
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewProvisionablesForPool

      void registerForNewProvisionablesForPool(Id poolId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of new provisionables for the given pool. ProvisionableReceiver.newProvisionables() is invoked when a new Provisionable appears in this distributor.
      Parameters:
      poolId - the Id of the pool to monitor
      Throws:
      NullArgumentException - poolId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProvisionables

      void registerForChangedProvisionables() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated provisionables. ProvisionableReceiver.changedProvisionables() is invoked when a provisionable in this distributor is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProvisionablesForResource

      void registerForChangedProvisionablesForResource(Id resourceId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated provisionables for the given resource. ProvisionableReceiver.changedProvisionables() is invoked when a provisionable in this distributor is changed.
      Parameters:
      resourceId - the Id of the resource to monitor
      Throws:
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProvisionablesForPool

      void registerForChangedProvisionablesForPool(Id poolId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated provisionables for the given pool. ProvisionableReceiver.changedProvisionables() is invoked when a provisionable in this distributor is changed.
      Parameters:
      poolId - the Id of the pool to monitor
      Throws:
      NullArgumentException - poolId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProvisionable

      void registerForChangedProvisionable(Id provisionableId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated provisionable. ProvisionableReceiver.changedProvisionables() is invoked when the specified provisionable in this distributor is changed.
      Parameters:
      provisionableId - the Id of the Provisionable to monitor
      Throws:
      NullArgumentException - provisionableId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProvisionables

      void registerForDeletedProvisionables() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted provisionables. ProvisionableReceiver.deletedProvisionables() is invoked when a provisionable is deleted or removed from this distributor.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProvisionablesForResource

      void registerForDeletedProvisionablesForResource(Id resourceId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted provisionables for the given resource. ProvisionableReceiver.deletedProvisionables() is invoked when a provisionable is deleted or removed from this distributor.
      Parameters:
      resourceId - the Id of the resource to monitor
      Throws:
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProvisionablesForPool

      void registerForDeletedProvisionablesForPool(Id poolId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted provisionables for the given pool. ProvisionableReceiver.deletedProvisionables() is invoked when a provisionable is deleted or removed from this distributor.
      Parameters:
      poolId - the Id of the pool to monitor
      Throws:
      NullArgumentException - poolId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProvisionable

      void registerForDeletedProvisionable(Id provisionableId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted provisionable. ProvisionableReceiver.deletedProvisionables() is invoked when the specified provisionable is deleted or removed from this distributor.
      Parameters:
      provisionableId - the Id of the Provisionable to monitor
      Throws:
      NullArgumentException - provisionableId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.