/*
 * Copyright 2019 The Grafeas Authors. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: grafeas/v1/intoto_provenance.proto

package io.grafeas.v1;

public interface MetadataOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:grafeas.v1.Metadata)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Identifies the particular build invocation, which can be useful for finding
   * associated logs or other ad-hoc analysis. The value SHOULD be globally
   * unique, per in-toto Provenance spec.
   * </pre>
   *
   * <code>string build_invocation_id = 1;</code>
   *
   * @return The buildInvocationId.
   */
  java.lang.String getBuildInvocationId();
  /**
   *
   *
   * <pre>
   * Identifies the particular build invocation, which can be useful for finding
   * associated logs or other ad-hoc analysis. The value SHOULD be globally
   * unique, per in-toto Provenance spec.
   * </pre>
   *
   * <code>string build_invocation_id = 1;</code>
   *
   * @return The bytes for buildInvocationId.
   */
  com.google.protobuf.ByteString getBuildInvocationIdBytes();

  /**
   *
   *
   * <pre>
   * The timestamp of when the build started.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp build_started_on = 2;</code>
   *
   * @return Whether the buildStartedOn field is set.
   */
  boolean hasBuildStartedOn();
  /**
   *
   *
   * <pre>
   * The timestamp of when the build started.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp build_started_on = 2;</code>
   *
   * @return The buildStartedOn.
   */
  com.google.protobuf.Timestamp getBuildStartedOn();
  /**
   *
   *
   * <pre>
   * The timestamp of when the build started.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp build_started_on = 2;</code>
   */
  com.google.protobuf.TimestampOrBuilder getBuildStartedOnOrBuilder();

  /**
   *
   *
   * <pre>
   * The timestamp of when the build completed.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp build_finished_on = 3;</code>
   *
   * @return Whether the buildFinishedOn field is set.
   */
  boolean hasBuildFinishedOn();
  /**
   *
   *
   * <pre>
   * The timestamp of when the build completed.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp build_finished_on = 3;</code>
   *
   * @return The buildFinishedOn.
   */
  com.google.protobuf.Timestamp getBuildFinishedOn();
  /**
   *
   *
   * <pre>
   * The timestamp of when the build completed.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp build_finished_on = 3;</code>
   */
  com.google.protobuf.TimestampOrBuilder getBuildFinishedOnOrBuilder();

  /**
   *
   *
   * <pre>
   * Indicates that the builder claims certain fields in this message to be
   * complete.
   * </pre>
   *
   * <code>.grafeas.v1.Completeness completeness = 4;</code>
   *
   * @return Whether the completeness field is set.
   */
  boolean hasCompleteness();
  /**
   *
   *
   * <pre>
   * Indicates that the builder claims certain fields in this message to be
   * complete.
   * </pre>
   *
   * <code>.grafeas.v1.Completeness completeness = 4;</code>
   *
   * @return The completeness.
   */
  io.grafeas.v1.Completeness getCompleteness();
  /**
   *
   *
   * <pre>
   * Indicates that the builder claims certain fields in this message to be
   * complete.
   * </pre>
   *
   * <code>.grafeas.v1.Completeness completeness = 4;</code>
   */
  io.grafeas.v1.CompletenessOrBuilder getCompletenessOrBuilder();

  /**
   *
   *
   * <pre>
   * If true, the builder claims that running the recipe on materials will
   * produce bit-for-bit identical output.
   * </pre>
   *
   * <code>bool reproducible = 5;</code>
   *
   * @return The reproducible.
   */
  boolean getReproducible();
}
