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

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

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

  /**
   * <pre>
   * The version of the response data (used for debugging).
   * </pre>
   *
   * <code>string system_version_info = 1;</code>
   * @return The systemVersionInfo.
   */
  java.lang.String getSystemVersionInfo();
  /**
   * <pre>
   * The version of the response data (used for debugging).
   * </pre>
   *
   * <code>string system_version_info = 1;</code>
   * @return The bytes for systemVersionInfo.
   */
  com.google.protobuf.ByteString
      getSystemVersionInfoBytes();

  /**
   * <pre>
   * Type of resource collection that is being requested, e.g.
   * istio/networking/v1alpha3/VirtualService
   * k8s/&lt;apiVersion&gt;/&lt;kind&gt;
   * </pre>
   *
   * <code>string collection = 2;</code>
   * @return The collection.
   */
  java.lang.String getCollection();
  /**
   * <pre>
   * Type of resource collection that is being requested, e.g.
   * istio/networking/v1alpha3/VirtualService
   * k8s/&lt;apiVersion&gt;/&lt;kind&gt;
   * </pre>
   *
   * <code>string collection = 2;</code>
   * @return The bytes for collection.
   */
  com.google.protobuf.ByteString
      getCollectionBytes();

  /**
   * <pre>
   * The response resources wrapped in the common MCP *Resource* message.
   * These are typed resources that match the type url in the
   * RequestResources message.
   * When `incremental` is true, this contains an array of resources to add/update
   * for the specified collection. This modifies the existing collection at the sink
   * When `incremental` is false, this contains the full set of resources for the
   * specified collection. This replaces any previously delivered resources.
   * </pre>
   *
   * <code>repeated .istio.mcp.v1alpha1.Resource resources = 3;</code>
   */
  java.util.List<com.alibaba.nacos.istio.model.mcp.Resource> 
      getResourcesList();
  /**
   * <pre>
   * The response resources wrapped in the common MCP *Resource* message.
   * These are typed resources that match the type url in the
   * RequestResources message.
   * When `incremental` is true, this contains an array of resources to add/update
   * for the specified collection. This modifies the existing collection at the sink
   * When `incremental` is false, this contains the full set of resources for the
   * specified collection. This replaces any previously delivered resources.
   * </pre>
   *
   * <code>repeated .istio.mcp.v1alpha1.Resource resources = 3;</code>
   */
  com.alibaba.nacos.istio.model.mcp.Resource getResources(int index);
  /**
   * <pre>
   * The response resources wrapped in the common MCP *Resource* message.
   * These are typed resources that match the type url in the
   * RequestResources message.
   * When `incremental` is true, this contains an array of resources to add/update
   * for the specified collection. This modifies the existing collection at the sink
   * When `incremental` is false, this contains the full set of resources for the
   * specified collection. This replaces any previously delivered resources.
   * </pre>
   *
   * <code>repeated .istio.mcp.v1alpha1.Resource resources = 3;</code>
   */
  int getResourcesCount();
  /**
   * <pre>
   * The response resources wrapped in the common MCP *Resource* message.
   * These are typed resources that match the type url in the
   * RequestResources message.
   * When `incremental` is true, this contains an array of resources to add/update
   * for the specified collection. This modifies the existing collection at the sink
   * When `incremental` is false, this contains the full set of resources for the
   * specified collection. This replaces any previously delivered resources.
   * </pre>
   *
   * <code>repeated .istio.mcp.v1alpha1.Resource resources = 3;</code>
   */
  java.util.List<? extends com.alibaba.nacos.istio.model.mcp.ResourceOrBuilder> 
      getResourcesOrBuilderList();
  /**
   * <pre>
   * The response resources wrapped in the common MCP *Resource* message.
   * These are typed resources that match the type url in the
   * RequestResources message.
   * When `incremental` is true, this contains an array of resources to add/update
   * for the specified collection. This modifies the existing collection at the sink
   * When `incremental` is false, this contains the full set of resources for the
   * specified collection. This replaces any previously delivered resources.
   * </pre>
   *
   * <code>repeated .istio.mcp.v1alpha1.Resource resources = 3;</code>
   */
  com.alibaba.nacos.istio.model.mcp.ResourceOrBuilder getResourcesOrBuilder(
      int index);

  /**
   * <pre>
   * Names of resources that have been deleted and to be
   * removed from the MCP sink node. Removed resources for missing
   * resources can be ignored.
   * When `incremental` is true, this contains an array of resource names to remove
   * for the specified collection. This modifies the existing resource collection at
   * the sink.
   * When `incremental` is false, this field should be ignored.
   * </pre>
   *
   * <code>repeated string removed_resources = 4;</code>
   * @return A list containing the removedResources.
   */
  java.util.List<java.lang.String>
      getRemovedResourcesList();
  /**
   * <pre>
   * Names of resources that have been deleted and to be
   * removed from the MCP sink node. Removed resources for missing
   * resources can be ignored.
   * When `incremental` is true, this contains an array of resource names to remove
   * for the specified collection. This modifies the existing resource collection at
   * the sink.
   * When `incremental` is false, this field should be ignored.
   * </pre>
   *
   * <code>repeated string removed_resources = 4;</code>
   * @return The count of removedResources.
   */
  int getRemovedResourcesCount();
  /**
   * <pre>
   * Names of resources that have been deleted and to be
   * removed from the MCP sink node. Removed resources for missing
   * resources can be ignored.
   * When `incremental` is true, this contains an array of resource names to remove
   * for the specified collection. This modifies the existing resource collection at
   * the sink.
   * When `incremental` is false, this field should be ignored.
   * </pre>
   *
   * <code>repeated string removed_resources = 4;</code>
   * @param index The index of the element to return.
   * @return The removedResources at the given index.
   */
  java.lang.String getRemovedResources(int index);
  /**
   * <pre>
   * Names of resources that have been deleted and to be
   * removed from the MCP sink node. Removed resources for missing
   * resources can be ignored.
   * When `incremental` is true, this contains an array of resource names to remove
   * for the specified collection. This modifies the existing resource collection at
   * the sink.
   * When `incremental` is false, this field should be ignored.
   * </pre>
   *
   * <code>repeated string removed_resources = 4;</code>
   * @param index The index of the value to return.
   * @return The bytes of the removedResources at the given index.
   */
  com.google.protobuf.ByteString
      getRemovedResourcesBytes(int index);

  /**
   * <pre>
   * Required. The nonce provides a way for RequestChange to uniquely
   * reference a RequestResources.
   * </pre>
   *
   * <code>string nonce = 5;</code>
   * @return The nonce.
   */
  java.lang.String getNonce();
  /**
   * <pre>
   * Required. The nonce provides a way for RequestChange to uniquely
   * reference a RequestResources.
   * </pre>
   *
   * <code>string nonce = 5;</code>
   * @return The bytes for nonce.
   */
  com.google.protobuf.ByteString
      getNonceBytes();

  /**
   * <pre>
   * This resource response is an incremental update. The source should only send
   * incremental updates if the sink requested them.
   * </pre>
   *
   * <code>bool incremental = 6;</code>
   * @return The incremental.
   */
  boolean getIncremental();
}
