Interface BillingNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface BillingNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Billing objects. 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.

Notifications are triggered with changes to the Billing object itself. Adding and removing credits result in notifications available from the notification session for credits.

  • Method Details

    • canRegisterForBillingNotifications

      boolean canRegisterForBillingNotifications()
      Tests if this user can register for Billing 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.
    • reliableBillingNotifications

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

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

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

      void registerForNewBillings() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new billings. BillingReceiver.newBillings() is invoked when a new Billing is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedBillings

      void registerForChangedBillings() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated billings. BillingReceiver.changedBillings() is invoked when a billing is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedBilling

      void registerForChangedBilling(Id billingId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated billing. BillingReceiver.changedBillings() is invoked when the specified billing is changed.
      Parameters:
      billingId - the Id of the Billing to monitor
      Throws:
      NullArgumentException - billingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedBillings

      void registerForDeletedBillings() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted billings. BillingReceiver.deletedBillings() is invoked when a billing is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedBilling

      void registerForDeletedBilling(Id billingId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted billing. BillingReceiver.deletedBillings() is invoked when the specified billing is deleted.
      Parameters:
      billingId - the Id of the Billing to monitor
      Throws:
      NullArgumentException - billingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedBillingHierarchy

      void registerForChangedBillingHierarchy() throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated billing hierarchy structure. BillingReceiver.changedChildOfBillings() is invoked when a node experiences a change in its children.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedBillingHierarchyForAncestors

      void registerForChangedBillingHierarchyForAncestors(Id billingId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated billing hierarchy structure. BillingReceiver.changedChildOfBillings() is invoked when the specified node or any of its ancestors experiences a change in its children.
      Parameters:
      billingId - the Id of the Billing node to monitor
      Throws:
      NullArgumentException - billingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedBillingHierarchyForDescendants

      void registerForChangedBillingHierarchyForDescendants(Id billingId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated billing hierarchy structure. BillingReceiver.changedChildOfBillings() is invoked when the specified node or any of its descendants experiences a change in its children.
      Parameters:
      billingId - the Id of the Billing node to monitor
      Throws:
      NullArgumentException - billingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.