// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: commands.proto

package org.apache.flink.statefun.e2e.smoke.generated;

public interface VerificationResultOrBuilder extends
    // @@protoc_insertion_point(interface_extends:org.apache.flink.statefun.e2e.smoke.VerificationResult)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <code>int32 id = 1;</code>
   */
  int getId();

  /**
   * <code>int64 expected = 2;</code>
   */
  long getExpected();

  /**
   * <code>int64 actual = 3;</code>
   */
  long getActual();
}
