/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

/**
 * A push message received by an `nsIPushService`, used as the subject of a
 * `push-notification` observer notification.
 */
[scriptable, uuid(56f57607-28b6-44b0-aa56-3d4d3c88be15)]
interface nsIPushObserverNotification : nsISupports
{
  /* The URL that receives push messages from an application server. */
  attribute string pushEndpoint;

  /**
   * The notification version sent by the application server. This is a
   * monotonically increasing number.
   */
  attribute long long version;

  /**
   * The notification payload. Delivery is not guaranteed; if the browser is
   * offline when the application server sends the push message, the payload
   * may be discarded.
   */
  attribute string data;

  /**
   * How many times has a push event occured against this pushEndpoint
   */
  attribute long long pushCount;

  /**
   * The last time a push occured against this this pushEndpoint
   */
   attribute long long lastPush;
};
