// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/apps/drive/activity/v2/actor.proto

package com.google.apps.drive.activity.v2;

public interface ActorOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.apps.drive.activity.v2.Actor)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * An end user.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.User user = 1;</code>
   * @return Whether the user field is set.
   */
  boolean hasUser();
  /**
   * <pre>
   * An end user.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.User user = 1;</code>
   * @return The user.
   */
  com.google.apps.drive.activity.v2.User getUser();
  /**
   * <pre>
   * An end user.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.User user = 1;</code>
   */
  com.google.apps.drive.activity.v2.UserOrBuilder getUserOrBuilder();

  /**
   * <pre>
   * An anonymous user.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.AnonymousUser anonymous = 2;</code>
   * @return Whether the anonymous field is set.
   */
  boolean hasAnonymous();
  /**
   * <pre>
   * An anonymous user.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.AnonymousUser anonymous = 2;</code>
   * @return The anonymous.
   */
  com.google.apps.drive.activity.v2.AnonymousUser getAnonymous();
  /**
   * <pre>
   * An anonymous user.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.AnonymousUser anonymous = 2;</code>
   */
  com.google.apps.drive.activity.v2.AnonymousUserOrBuilder getAnonymousOrBuilder();

  /**
   * <pre>
   * An account acting on behalf of another.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.Impersonation impersonation = 3;</code>
   * @return Whether the impersonation field is set.
   */
  boolean hasImpersonation();
  /**
   * <pre>
   * An account acting on behalf of another.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.Impersonation impersonation = 3;</code>
   * @return The impersonation.
   */
  com.google.apps.drive.activity.v2.Impersonation getImpersonation();
  /**
   * <pre>
   * An account acting on behalf of another.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.Impersonation impersonation = 3;</code>
   */
  com.google.apps.drive.activity.v2.ImpersonationOrBuilder getImpersonationOrBuilder();

  /**
   * <pre>
   * A non-user actor (i.e. system triggered).
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.SystemEvent system = 4;</code>
   * @return Whether the system field is set.
   */
  boolean hasSystem();
  /**
   * <pre>
   * A non-user actor (i.e. system triggered).
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.SystemEvent system = 4;</code>
   * @return The system.
   */
  com.google.apps.drive.activity.v2.SystemEvent getSystem();
  /**
   * <pre>
   * A non-user actor (i.e. system triggered).
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.SystemEvent system = 4;</code>
   */
  com.google.apps.drive.activity.v2.SystemEventOrBuilder getSystemOrBuilder();

  /**
   * <pre>
   * An administrator.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.Administrator administrator = 5;</code>
   * @return Whether the administrator field is set.
   */
  boolean hasAdministrator();
  /**
   * <pre>
   * An administrator.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.Administrator administrator = 5;</code>
   * @return The administrator.
   */
  com.google.apps.drive.activity.v2.Administrator getAdministrator();
  /**
   * <pre>
   * An administrator.
   * </pre>
   *
   * <code>.google.apps.drive.activity.v2.Administrator administrator = 5;</code>
   */
  com.google.apps.drive.activity.v2.AdministratorOrBuilder getAdministratorOrBuilder();

  public com.google.apps.drive.activity.v2.Actor.TypeCase getTypeCase();
}
