code: function ThaliNotificationAction(peer,
                                   ecdhForLocalDevice,
                                   addressBookCallback) {
  
    assert(peer, 'peer must not be null or undefined');
    assert(peer.peerIdentifier, 'peer.peerIdentifier must be set');
    assert(peer.connectionType, 'peer.connectionType must be set');
    assert(typeof peer.generation === 'number',
      'peer.generation must be a number');
    assert(ecdhForLocalDevice,
      'ecdhForLocalDevice must not be null or undefined');
    assert(addressBookCallback,
      'addressBookCallback must not be null or undefined');
  
    ThaliNotificationAction.super_.call(this, peer.peerIdentifier,
      peer.connectionType,
      ThaliNotificationAction.ACTION_TYPE,
      thaliConfig.BEACON_PSK_IDENTITY,
      thaliConfig.BEACON_KEY);
  
    this.eventEmitter = new EventEmitter();
  
    this._peerGeneration = peer.generation;
    this._ecdhForLocalDevice = ecdhForLocalDevice;
    this._addressBookCallback = addressBookCallback;
  
    this._peerConnection = null;
    this._httpRequest = null;
    this._resolution = null;
    this._resolve = null;
    this._reject = null;
  }
docs: Creates a sub-type of the {@link module:thaliPeerPoolInterface~PeerAction}
  class to represent actions for retrieving notifications.
  
  @param {Object} peer
  @param {string} peer.peerIdentifier
  @param {number} peer.generation
  @param {module:ThaliMobileNativeWrapper.connectionTypes} peer.connectionType
  @param {Crypto.ECDH} ecdhForLocalDevice A Crypto.ECDH object initialized
  with the local device's public and private keys.
  @param {addressBookCallback} addressBookCallback A callback used to validate
  which peers we are interested in talking to.
  @constructor
  @implements {module:thaliPeerAction~PeerAction}
  @fires module:thaliNotificationAction.event:Resolved
   /* jshint -W003