syntax = "proto3";

// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements.  See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You 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
//
//     http://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.

package interoperability;

option go_package = "dubbo.apache.org/dubbo-go/v3/protocol/triple/triple_protocol/internal/interoperability;interoperability";


message TripleRequestWrapper {
  // hessian4
  // json
  string serializeType = 1;
  repeated bytes args = 2;
  repeated string argTypes = 3;
}

message TripleResponseWrapper {
  string serializeType = 1;
  bytes data = 2;
  string type = 3;
}