// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/devtools/build/v1/publish_build_event.proto

package com.google.devtools.build.v1;

public interface PublishLifecycleEventRequestOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.devtools.build.v1.PublishLifecycleEventRequest)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * The interactivity of this build.
   * </pre>
   *
   * <code>.google.devtools.build.v1.PublishLifecycleEventRequest.ServiceLevel service_level = 1;</code>
   */
  int getServiceLevelValue();
  /**
   * <pre>
   * The interactivity of this build.
   * </pre>
   *
   * <code>.google.devtools.build.v1.PublishLifecycleEventRequest.ServiceLevel service_level = 1;</code>
   */
  com.google.devtools.build.v1.PublishLifecycleEventRequest.ServiceLevel getServiceLevel();

  /**
   * <pre>
   * The lifecycle build event. If this is a build tool event, the RPC will fail
   * with INVALID_REQUEST.
   * </pre>
   *
   * <code>.google.devtools.build.v1.OrderedBuildEvent build_event = 2;</code>
   */
  boolean hasBuildEvent();
  /**
   * <pre>
   * The lifecycle build event. If this is a build tool event, the RPC will fail
   * with INVALID_REQUEST.
   * </pre>
   *
   * <code>.google.devtools.build.v1.OrderedBuildEvent build_event = 2;</code>
   */
  com.google.devtools.build.v1.OrderedBuildEvent getBuildEvent();
  /**
   * <pre>
   * The lifecycle build event. If this is a build tool event, the RPC will fail
   * with INVALID_REQUEST.
   * </pre>
   *
   * <code>.google.devtools.build.v1.OrderedBuildEvent build_event = 2;</code>
   */
  com.google.devtools.build.v1.OrderedBuildEventOrBuilder getBuildEventOrBuilder();

  /**
   * <pre>
   * If the next event for this build or invocation (depending on the event
   * type) hasn't been published after this duration from when {build_event}
   * is written to BES, consider this stream expired. If this field is not set,
   * BES backend will use its own default value.
   * </pre>
   *
   * <code>.google.protobuf.Duration stream_timeout = 3;</code>
   */
  boolean hasStreamTimeout();
  /**
   * <pre>
   * If the next event for this build or invocation (depending on the event
   * type) hasn't been published after this duration from when {build_event}
   * is written to BES, consider this stream expired. If this field is not set,
   * BES backend will use its own default value.
   * </pre>
   *
   * <code>.google.protobuf.Duration stream_timeout = 3;</code>
   */
  com.google.protobuf.Duration getStreamTimeout();
  /**
   * <pre>
   * If the next event for this build or invocation (depending on the event
   * type) hasn't been published after this duration from when {build_event}
   * is written to BES, consider this stream expired. If this field is not set,
   * BES backend will use its own default value.
   * </pre>
   *
   * <code>.google.protobuf.Duration stream_timeout = 3;</code>
   */
  com.google.protobuf.DurationOrBuilder getStreamTimeoutOrBuilder();

  /**
   * <pre>
   * Additional information about a build request. These are define by the event
   * publishers, and the Build Event Service does not validate or interpret
   * them. They are used while notifying internal systems of new builds and
   * invocations if the OrderedBuildEvent.event type is
   * BuildEnqueued/InvocationAttemptStarted.
   * </pre>
   *
   * <code>repeated string notification_keywords = 4;</code>
   */
  java.util.List<java.lang.String>
      getNotificationKeywordsList();
  /**
   * <pre>
   * Additional information about a build request. These are define by the event
   * publishers, and the Build Event Service does not validate or interpret
   * them. They are used while notifying internal systems of new builds and
   * invocations if the OrderedBuildEvent.event type is
   * BuildEnqueued/InvocationAttemptStarted.
   * </pre>
   *
   * <code>repeated string notification_keywords = 4;</code>
   */
  int getNotificationKeywordsCount();
  /**
   * <pre>
   * Additional information about a build request. These are define by the event
   * publishers, and the Build Event Service does not validate or interpret
   * them. They are used while notifying internal systems of new builds and
   * invocations if the OrderedBuildEvent.event type is
   * BuildEnqueued/InvocationAttemptStarted.
   * </pre>
   *
   * <code>repeated string notification_keywords = 4;</code>
   */
  java.lang.String getNotificationKeywords(int index);
  /**
   * <pre>
   * Additional information about a build request. These are define by the event
   * publishers, and the Build Event Service does not validate or interpret
   * them. They are used while notifying internal systems of new builds and
   * invocations if the OrderedBuildEvent.event type is
   * BuildEnqueued/InvocationAttemptStarted.
   * </pre>
   *
   * <code>repeated string notification_keywords = 4;</code>
   */
  com.google.protobuf.ByteString
      getNotificationKeywordsBytes(int index);

  /**
   * <pre>
   * This field identifies which project (if any) the build is associated with.
   * </pre>
   *
   * <code>string project_id = 6;</code>
   */
  java.lang.String getProjectId();
  /**
   * <pre>
   * This field identifies which project (if any) the build is associated with.
   * </pre>
   *
   * <code>string project_id = 6;</code>
   */
  com.google.protobuf.ByteString
      getProjectIdBytes();
}
