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

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

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

  /**
   * <pre>
   * The sink node making the request.
   * </pre>
   *
   * <code>.istio.mcp.v1alpha1.SinkNode sink_node = 1;</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 = 1;</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 = 1;</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 = 2;</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 = 2;</code>
   * @return The bytes for typeUrl.
   */
  com.google.protobuf.ByteString
      getTypeUrlBytes();

  /**
   * <pre>
   * When the IncrementalMeshConfigRequest is the first in a stream,
   * the initial_resource_versions must be populated. Otherwise,
   * initial_resource_versions must be omitted. The keys are the
   * resources names of the MCP resources known to the MCP client. The
   * values in the map are the associated resource level version info.
   * </pre>
   *
   * <code>map&lt;string, string&gt; initial_resource_versions = 3;</code>
   */
  int getInitialResourceVersionsCount();
  /**
   * <pre>
   * When the IncrementalMeshConfigRequest is the first in a stream,
   * the initial_resource_versions must be populated. Otherwise,
   * initial_resource_versions must be omitted. The keys are the
   * resources names of the MCP resources known to the MCP client. The
   * values in the map are the associated resource level version info.
   * </pre>
   *
   * <code>map&lt;string, string&gt; initial_resource_versions = 3;</code>
   */
  boolean containsInitialResourceVersions(
      java.lang.String key);
  /**
   * Use {@link #getInitialResourceVersionsMap()} instead.
   */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, java.lang.String>
  getInitialResourceVersions();
  /**
   * <pre>
   * When the IncrementalMeshConfigRequest is the first in a stream,
   * the initial_resource_versions must be populated. Otherwise,
   * initial_resource_versions must be omitted. The keys are the
   * resources names of the MCP resources known to the MCP client. The
   * values in the map are the associated resource level version info.
   * </pre>
   *
   * <code>map&lt;string, string&gt; initial_resource_versions = 3;</code>
   */
  java.util.Map<java.lang.String, java.lang.String>
  getInitialResourceVersionsMap();
  /**
   * <pre>
   * When the IncrementalMeshConfigRequest is the first in a stream,
   * the initial_resource_versions must be populated. Otherwise,
   * initial_resource_versions must be omitted. The keys are the
   * resources names of the MCP resources known to the MCP client. The
   * values in the map are the associated resource level version info.
   * </pre>
   *
   * <code>map&lt;string, string&gt; initial_resource_versions = 3;</code>
   */

  java.lang.String getInitialResourceVersionsOrDefault(
      java.lang.String key,
      java.lang.String defaultValue);
  /**
   * <pre>
   * When the IncrementalMeshConfigRequest is the first in a stream,
   * the initial_resource_versions must be populated. Otherwise,
   * initial_resource_versions must be omitted. The keys are the
   * resources names of the MCP resources known to the MCP client. The
   * values in the map are the associated resource level version info.
   * </pre>
   *
   * <code>map&lt;string, string&gt; initial_resource_versions = 3;</code>
   */

  java.lang.String getInitialResourceVersionsOrThrow(
      java.lang.String key);

  /**
   * <pre>
   * When the IncrementalMeshConfigRequest is a ACK or NACK message in response
   * to a previous IncrementalMeshConfigResponse, the response_nonce must be the
   * nonce in the IncrementalMeshConfigResponse.
   * Otherwise response_nonce must be omitted.
   * </pre>
   *
   * <code>string response_nonce = 4;</code>
   * @return The responseNonce.
   */
  java.lang.String getResponseNonce();
  /**
   * <pre>
   * When the IncrementalMeshConfigRequest is a ACK or NACK message in response
   * to a previous IncrementalMeshConfigResponse, the response_nonce must be the
   * nonce in the IncrementalMeshConfigResponse.
   * Otherwise response_nonce must be omitted.
   * </pre>
   *
   * <code>string response_nonce = 4;</code>
   * @return The bytes for responseNonce.
   */
  com.google.protobuf.ByteString
      getResponseNonceBytes();

  /**
   * <pre>
   * This is populated when the previous IncrementalMeshConfigResponses
   * failed to update configuration. The *message* field in *error_details*
   * provides the client internal exception related to the failure.
   * </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 IncrementalMeshConfigResponses
   * failed to update configuration. The *message* field in *error_details*
   * provides the client internal exception related to the failure.
   * </pre>
   *
   * <code>.google.rpc.Status error_detail = 5;</code>
   * @return The errorDetail.
   */
  com.google.rpc.Status getErrorDetail();
  /**
   * <pre>
   * This is populated when the previous IncrementalMeshConfigResponses
   * failed to update configuration. The *message* field in *error_details*
   * provides the client internal exception related to the failure.
   * </pre>
   *
   * <code>.google.rpc.Status error_detail = 5;</code>
   */
  com.google.rpc.StatusOrBuilder getErrorDetailOrBuilder();
}
