/*
 * Copyright 2023 Google LLC
 *
 * 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: google/cloud/webrisk/v1/webrisk.proto

package com.google.webrisk.v1;

public interface ComputeThreatListDiffResponseOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.webrisk.v1.ComputeThreatListDiffResponse)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * The type of response. This may indicate that an action must be taken by the
   * client when the response is received.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ComputeThreatListDiffResponse.ResponseType response_type = 4;
   * </code>
   *
   * @return The enum numeric value on the wire for responseType.
   */
  int getResponseTypeValue();
  /**
   *
   *
   * <pre>
   * The type of response. This may indicate that an action must be taken by the
   * client when the response is received.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ComputeThreatListDiffResponse.ResponseType response_type = 4;
   * </code>
   *
   * @return The responseType.
   */
  com.google.webrisk.v1.ComputeThreatListDiffResponse.ResponseType getResponseType();

  /**
   *
   *
   * <pre>
   * A set of entries to add to a local threat type's list.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ThreatEntryAdditions additions = 5;</code>
   *
   * @return Whether the additions field is set.
   */
  boolean hasAdditions();
  /**
   *
   *
   * <pre>
   * A set of entries to add to a local threat type's list.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ThreatEntryAdditions additions = 5;</code>
   *
   * @return The additions.
   */
  com.google.webrisk.v1.ThreatEntryAdditions getAdditions();
  /**
   *
   *
   * <pre>
   * A set of entries to add to a local threat type's list.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ThreatEntryAdditions additions = 5;</code>
   */
  com.google.webrisk.v1.ThreatEntryAdditionsOrBuilder getAdditionsOrBuilder();

  /**
   *
   *
   * <pre>
   * A set of entries to remove from a local threat type's list.
   * This field may be empty.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ThreatEntryRemovals removals = 6;</code>
   *
   * @return Whether the removals field is set.
   */
  boolean hasRemovals();
  /**
   *
   *
   * <pre>
   * A set of entries to remove from a local threat type's list.
   * This field may be empty.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ThreatEntryRemovals removals = 6;</code>
   *
   * @return The removals.
   */
  com.google.webrisk.v1.ThreatEntryRemovals getRemovals();
  /**
   *
   *
   * <pre>
   * A set of entries to remove from a local threat type's list.
   * This field may be empty.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ThreatEntryRemovals removals = 6;</code>
   */
  com.google.webrisk.v1.ThreatEntryRemovalsOrBuilder getRemovalsOrBuilder();

  /**
   *
   *
   * <pre>
   * The new opaque client version token. This should be retained by the client
   * and passed into the next call of ComputeThreatListDiff as 'version_token'.
   * A separate version token should be stored and used for each threatList.
   * </pre>
   *
   * <code>bytes new_version_token = 7;</code>
   *
   * @return The newVersionToken.
   */
  com.google.protobuf.ByteString getNewVersionToken();

  /**
   *
   *
   * <pre>
   * The expected SHA256 hash of the client state; that is, of the sorted list
   * of all hashes present in the database after applying the provided diff.
   * If the client state doesn't match the expected state, the client must
   * discard this diff and retry later.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ComputeThreatListDiffResponse.Checksum checksum = 8;</code>
   *
   * @return Whether the checksum field is set.
   */
  boolean hasChecksum();
  /**
   *
   *
   * <pre>
   * The expected SHA256 hash of the client state; that is, of the sorted list
   * of all hashes present in the database after applying the provided diff.
   * If the client state doesn't match the expected state, the client must
   * discard this diff and retry later.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ComputeThreatListDiffResponse.Checksum checksum = 8;</code>
   *
   * @return The checksum.
   */
  com.google.webrisk.v1.ComputeThreatListDiffResponse.Checksum getChecksum();
  /**
   *
   *
   * <pre>
   * The expected SHA256 hash of the client state; that is, of the sorted list
   * of all hashes present in the database after applying the provided diff.
   * If the client state doesn't match the expected state, the client must
   * discard this diff and retry later.
   * </pre>
   *
   * <code>.google.cloud.webrisk.v1.ComputeThreatListDiffResponse.Checksum checksum = 8;</code>
   */
  com.google.webrisk.v1.ComputeThreatListDiffResponse.ChecksumOrBuilder getChecksumOrBuilder();

  /**
   *
   *
   * <pre>
   * The soonest the client should wait before issuing any diff
   * request. Querying sooner is unlikely to produce a meaningful diff.
   * Waiting longer is acceptable considering the use case.
   * If this field is not set clients may update as soon as they want.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp recommended_next_diff = 2;</code>
   *
   * @return Whether the recommendedNextDiff field is set.
   */
  boolean hasRecommendedNextDiff();
  /**
   *
   *
   * <pre>
   * The soonest the client should wait before issuing any diff
   * request. Querying sooner is unlikely to produce a meaningful diff.
   * Waiting longer is acceptable considering the use case.
   * If this field is not set clients may update as soon as they want.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp recommended_next_diff = 2;</code>
   *
   * @return The recommendedNextDiff.
   */
  com.google.protobuf.Timestamp getRecommendedNextDiff();
  /**
   *
   *
   * <pre>
   * The soonest the client should wait before issuing any diff
   * request. Querying sooner is unlikely to produce a meaningful diff.
   * Waiting longer is acceptable considering the use case.
   * If this field is not set clients may update as soon as they want.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp recommended_next_diff = 2;</code>
   */
  com.google.protobuf.TimestampOrBuilder getRecommendedNextDiffOrBuilder();
}
