package com.dtolabs.rundeck.core.audit;


import java.io.Serializable;
import java.util.Date;

/**
 * Describes an audit event generated by the system.
 */
public interface AuditEvent extends Serializable {

  /**
   * @return Timestamp of the event.
   */
  Date getTimestamp();

  /**
   * The type of action that generated the event.
   * Supported values can be found at @{@link ActionTypes}
   *
   * @return Event type.
   * @see ActionTypes
   */
  String getActionType();

  /**
   * @return Information about the user which triggered the event.
   */
  UserInfo getUserInfo();


  /**
   * @return Info about the request which triggered the event.
   */
  RequestInfo getRequestInfo();


  /**
   * @return Information about the resource affected by this event.
   */
  ResourceInfo getResourceInfo();


}
