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

package com.alibaba.nacos.istio.model.mcp;

public interface MeshConfigRequestOrBuilder extends
    // @@protoc_insertion_point(interface_extends:istio.mcp.v1alpha1.MeshConfigRequest)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * The version_info provided in the request messages will be the
   * version_info received with the most recent successfully processed
   * response or empty on the first request. It is expected that no
   * new request is sent after a response is received until the client
   * instance is ready to ACK/NACK the new configuration. ACK/NACK
   * takes place by returning the new API config version as applied or
   * the previous API config version respectively. Each type_url (see
   * below) has an independent version associated with it.
   * </pre>
   *
   * <code>string version_info = 1;</code>
   * @return The versionInfo.
   */
  java.lang.String getVersionInfo();
  /**
   * <pre>
   * The version_info provided in the request messages will be the
   * version_info received with the most recent successfully processed
   * response or empty on the first request. It is expected that no
   * new request is sent after a response is received until the client
   * instance is ready to ACK/NACK the new configuration. ACK/NACK
   * takes place by returning the new API config version as applied or
   * the previous API config version respectively. Each type_url (see
   * below) has an independent version associated with it.
   * </pre>
   *
   * <code>string version_info = 1;</code>
   * @return The bytes for versionInfo.
   */
  com.google.protobuf.ByteString
      getVersionInfoBytes();

  /**
   * <pre>
   * The sink node making the request.
   * </pre>
   *
   * <code>.istio.mcp.v1alpha1.SinkNode sink_node = 2;</code>
   * @return Whether the sinkNode field is set.
   */
  boolean hasSinkNode();
  /**
   * <pre>
   * The sink node making the request.
   * </pre>
   *
   * <code>.istio.mcp.v1alpha1.SinkNode sink_node = 2;</code>
   * @return The sinkNode.
   */
  com.alibaba.nacos.istio.model.mcp.SinkNode getSinkNode();
  /**
   * <pre>
   * The sink node making the request.
   * </pre>
   *
   * <code>.istio.mcp.v1alpha1.SinkNode sink_node = 2;</code>
   */
  com.alibaba.nacos.istio.model.mcp.SinkNodeOrBuilder getSinkNodeOrBuilder();

  /**
   * <pre>
   * Type of the resource that is being requested, e.g.
   * "type.googleapis.com/istio.io.networking.v1alpha3.VirtualService".
   * </pre>
   *
   * <code>string type_url = 3;</code>
   * @return The typeUrl.
   */
  java.lang.String getTypeUrl();
  /**
   * <pre>
   * Type of the resource that is being requested, e.g.
   * "type.googleapis.com/istio.io.networking.v1alpha3.VirtualService".
   * </pre>
   *
   * <code>string type_url = 3;</code>
   * @return The bytes for typeUrl.
   */
  com.google.protobuf.ByteString
      getTypeUrlBytes();

  /**
   * <pre>
   * The nonce corresponding to MeshConfigResponse being
   * ACK/NACKed. See above discussion on version_info and the
   * MeshConfigResponse nonce comment. This may be empty if no nonce is
   * available, e.g. at startup.
   * </pre>
   *
   * <code>string response_nonce = 4;</code>
   * @return The responseNonce.
   */
  java.lang.String getResponseNonce();
  /**
   * <pre>
   * The nonce corresponding to MeshConfigResponse being
   * ACK/NACKed. See above discussion on version_info and the
   * MeshConfigResponse nonce comment. This may be empty if no nonce is
   * available, e.g. at startup.
   * </pre>
   *
   * <code>string response_nonce = 4;</code>
   * @return The bytes for responseNonce.
   */
  com.google.protobuf.ByteString
      getResponseNonceBytes();

  /**
   * <pre>
   * This is populated when the previous MeshConfigResponse failed to
   * update configuration. The *message* field in *error_details*
   * provides the client internal exception related to the failure. It
   * is only intended for consumption during manual debugging, the
   * string provided is not guaranteed to be stable across client
   * versions.
   * </pre>
   *
   * <code>.google.rpc.Status error_detail = 5;</code>
   * @return Whether the errorDetail field is set.
   */
  boolean hasErrorDetail();
  /**
   * <pre>
   * This is populated when the previous MeshConfigResponse failed to
   * update configuration. The *message* field in *error_details*
   * provides the client internal exception related to the failure. It
   * is only intended for consumption during manual debugging, the
   * string provided is not guaranteed to be stable across client
   * versions.
   * </pre>
   *
   * <code>.google.rpc.Status error_detail = 5;</code>
   * @return The errorDetail.
   */
  com.google.rpc.Status getErrorDetail();
  /**
   * <pre>
   * This is populated when the previous MeshConfigResponse failed to
   * update configuration. The *message* field in *error_details*
   * provides the client internal exception related to the failure. It
   * is only intended for consumption during manual debugging, the
   * string provided is not guaranteed to be stable across client
   * versions.
   * </pre>
   *
   * <code>.google.rpc.Status error_detail = 5;</code>
   */
  com.google.rpc.StatusOrBuilder getErrorDetailOrBuilder();
}
