syntax = "proto3";
package cosmos.quarantine.v1beta1;

import "cosmos/base/query/v1beta1/pagination.proto";
import "cosmos/quarantine/v1beta1/quarantine.proto";
import "cosmos_proto/cosmos.proto";
import "google/api/annotations.proto";

option go_package = "github.com/provenance-io/provenance/x/quarantine";

// Query defines the quarantine gRPC query service.
// Deprecated: The quarantine module has been removed. All endpoints return Unimplemented.
service Query {
  option deprecated = true;

  // Deprecated: The quarantine module has been removed.
  rpc IsQuarantined(QueryIsQuarantinedRequest) returns (QueryIsQuarantinedResponse) {
    option deprecated            = true;
    option (google.api.http).get = "/cosmos/quarantine/v1beta1/active/{to_address}";
  }

  // Deprecated: The quarantine module has been removed.
  rpc QuarantinedFunds(QueryQuarantinedFundsRequest) returns (QueryQuarantinedFundsResponse) {
    option deprecated        = true;
    option (google.api.http) = {
      get: "/cosmos/quarantine/v1beta1/funds"
      additional_bindings: {get: "/cosmos/quarantine/v1beta1/funds/{to_address}"}
      additional_bindings: {get: "/cosmos/quarantine/v1beta1/funds/{to_address}/{from_address}"}
    };
  }

  // Deprecated: The quarantine module has been removed.
  rpc AutoResponses(QueryAutoResponsesRequest) returns (QueryAutoResponsesResponse) {
    option deprecated        = true;
    option (google.api.http) = {
      get: "/cosmos/quarantine/v1beta1/auto/{to_address}"
      additional_bindings: {get: "/cosmos/quarantine/v1beta1/auto/{to_address}/{from_address}"}
    };
  }
}

// Deprecated: The quarantine module has been removed.
message QueryIsQuarantinedRequest {
  option deprecated = true;
  string to_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}

// Deprecated: The quarantine module has been removed.
message QueryIsQuarantinedResponse {
  option deprecated     = true;
  bool   is_quarantined = 1;
}

// Deprecated: The quarantine module has been removed.
message QueryQuarantinedFundsRequest {
  option                                deprecated   = true;
  string                                to_address   = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  string                                from_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  cosmos.base.query.v1beta1.PageRequest pagination   = 99;
}

// Deprecated: The quarantine module has been removed.
message QueryQuarantinedFundsResponse {
  option                                 deprecated       = true;
  repeated QuarantinedFunds              quarantinedFunds = 1;
  cosmos.base.query.v1beta1.PageResponse pagination       = 99;
}

// Deprecated: The quarantine module has been removed.
message QueryAutoResponsesRequest {
  option                                deprecated   = true;
  string                                to_address   = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  string                                from_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  cosmos.base.query.v1beta1.PageRequest pagination   = 99;
}

// Deprecated: The quarantine module has been removed.
message QueryAutoResponsesResponse {
  option                                 deprecated     = true;
  repeated AutoResponseEntry             auto_responses = 1;
  cosmos.base.query.v1beta1.PageResponse pagination     = 99;
}
