github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/examples/internal/proto/examplepb/flow_combination.proto (about)

     1  syntax = "proto3";
     2  
     3  package grpc.gateway.examples.internal.proto.examplepb;
     4  
     5  import "google/api/annotations.proto";
     6  
     7  option go_package = "github.com/grpc-ecosystem/grpc-gateway/v2/examples/internal/proto/examplepb";
     8  
     9  message EmptyProto {}
    10  
    11  message NonEmptyProto {
    12    string a = 1;
    13    string b = 2;
    14    string c = 3;
    15  }
    16  
    17  message UnaryProto {
    18    string str = 1;
    19  }
    20  
    21  message NestedProto {
    22    UnaryProto a = 1;
    23    string b = 2;
    24    string c = 3;
    25  }
    26  
    27  message SingleNestedProto {
    28    UnaryProto a = 1;
    29  }
    30  
    31  service FlowCombination {
    32    rpc RpcEmptyRpc(EmptyProto) returns (EmptyProto) {
    33      option (google.api.http) = {post: "/rpc/empty/rpc"};
    34    }
    35    rpc RpcEmptyStream(EmptyProto) returns (stream EmptyProto) {
    36      option (google.api.http) = {post: "/rpc/empty/stream"};
    37    }
    38    rpc StreamEmptyRpc(stream EmptyProto) returns (EmptyProto) {
    39      option (google.api.http) = {post: "/stream/empty/rpc"};
    40    }
    41    rpc StreamEmptyStream(stream EmptyProto) returns (stream EmptyProto) {
    42      option (google.api.http) = {post: "/stream/empty/stream"};
    43    }
    44  
    45    rpc RpcBodyRpc(NonEmptyProto) returns (EmptyProto) {
    46      option (google.api.http) = {
    47        // w/ body; w/o path; w/o query
    48        post: "/rpc/body/rpc"
    49        body: "*"
    50  
    51        // w/o body; w/ path; w/o query
    52        additional_bindings {post: "/rpc/path/{a}/{b}/{c}/rpc"}
    53        // w/o body; w/o path; w/ query
    54        additional_bindings {post: "/rpc/query/rpc"}
    55        // w/ body; w/ path; w/o query
    56        additional_bindings {
    57          post: "/rpc/body/path/{a}/{b}/rpc"
    58          body: "c"
    59        }
    60        // w/ body; w/o path; w/ query
    61        additional_bindings {
    62          post: "/rpc/body/query/rpc"
    63          body: "c"
    64        }
    65        // w/ body; w/ path; w/ query
    66        additional_bindings {
    67          post: "/rpc/body/path/{a}/query/rpc"
    68          body: "c"
    69        }
    70        // w/o body; w/ path; w/ query
    71        additional_bindings {post: "/rpc/path/{a}/query/rpc"}
    72      };
    73    }
    74    rpc RpcPathSingleNestedRpc(SingleNestedProto) returns (EmptyProto) {
    75      option (google.api.http) = {
    76        // w/o body; w/ path (IsNestedProto3); w/o query
    77        post: "/rpc/path-nested/{a.str}/rpc"
    78      };
    79    }
    80    rpc RpcPathNestedRpc(NestedProto) returns (EmptyProto) {
    81      option (google.api.http) = {
    82        // w/ body; w/ path (IsNestedProto3); w/o query
    83        post: "/rpc/path-nested/{a.str}/{b}/rpc"
    84        body: "c"
    85  
    86        // w/o body; w/ path (IsNestedProto3); w/ query
    87        additional_bindings {post: "/rpc/path-nested1/{a.str}/rpc"}
    88        // w/ body; w/ path (IsNestedProto3); w/ query
    89        additional_bindings {
    90          post: "/rpc/path-nested2/{a.str}/rpc"
    91          body: "c"
    92        }
    93      };
    94    }
    95  
    96    rpc RpcBodyStream(NonEmptyProto) returns (stream EmptyProto) {
    97      option (google.api.http) = {
    98        // w/ body; w/o path; w/o query
    99        post: "/rpc/body/stream"
   100        body: "*"
   101  
   102        // w/o body; w/ path; w/o query
   103        additional_bindings {post: "/rpc/path/{a}/{b}/{c}/stream"}
   104        // w/o body; w/o path; w/ query
   105        additional_bindings {post: "/rpc/query/stream"}
   106        // w/ body; w/ path; w/o query
   107        additional_bindings {
   108          post: "/rpc/body/path/{a}/{b}/stream"
   109          body: "c"
   110        }
   111        // w/ body; w/o path; w/ query
   112        additional_bindings {
   113          post: "/rpc/body/query/stream"
   114          body: "c"
   115        }
   116        // w/ body; w/ path; w/ query
   117        additional_bindings {
   118          post: "/rpc/body/path/{a}/query/stream"
   119          body: "c"
   120        }
   121        // w/o body; w/ path; w/ query
   122        additional_bindings {post: "/rpc/path/{a}/query/stream"}
   123      };
   124    }
   125    rpc RpcPathSingleNestedStream(SingleNestedProto) returns (stream EmptyProto) {
   126      option (google.api.http) = {
   127        // w/o body; w/ path (IsNestedProto3); w/o query
   128        post: "/rpc/path-nested/{a.str}/stream"
   129      };
   130    }
   131    rpc RpcPathNestedStream(NestedProto) returns (stream EmptyProto) {
   132      option (google.api.http) = {
   133        // w/ body; w/ path (IsNestedProto3); w/o query
   134        post: "/rpc/path-nested/{a.str}/{b}/stream"
   135        body: "c"
   136  
   137        // w/o body; w/ path (IsNestedProto3); w/ query
   138        additional_bindings {post: "/rpc/path-nested1/{a.str}/stream"}
   139        // w/ body; w/ path (IsNestedProto3); w/ query
   140        additional_bindings {
   141          post: "/rpc/path-nested2/{a.str}/stream"
   142          body: "c"
   143        }
   144      };
   145    }
   146  }