1/*
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17namespace cpp2 apache.thrift.conformance
18namespace php apache_thrift
19namespace py thrift.conformance.conformance
20namespace py.asyncio thrift_asyncio.conformance.conformance
21namespace py3 thrift.conformance
22namespace java.swift org.apache.thrift.conformance
23namespace go thrift.conformance.conformance
24
25include "thrift/conformance/if/any.thrift"
26include "thrift/conformance/if/protocol.thrift"
27
28struct RoundTripRequest {
29  // The value to decode and renecode.
30  1: any.Any value;
31
32  // The protocol to use to return the value.
33  // If not specified, `value.protocol` is used.
34  2: optional protocol.ProtocolStruct targetProtocol;
35}
36
37struct RoundTripResponse {
38  1: any.Any value;
39}
40
41// The conformance test service.
42service ConformanceService {
43  // Unpacks the given value, and repacks it with the given target protocol.
44  RoundTripResponse roundTrip(1: RoundTripRequest request);
45}
46