xref: /aosp_15_r20/external/googleapis/google/api/httpbody.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.api;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/any.proto";
20*d5c09012SAndroid Build Coastguard Worker
21*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
22*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody";
23*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
24*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "HttpBodyProto";
25*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api";
26*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GAPI";
27*d5c09012SAndroid Build Coastguard Worker
28*d5c09012SAndroid Build Coastguard Worker// Message that represents an arbitrary HTTP body. It should only be used for
29*d5c09012SAndroid Build Coastguard Worker// payload formats that can't be represented as JSON, such as raw binary or
30*d5c09012SAndroid Build Coastguard Worker// an HTML page.
31*d5c09012SAndroid Build Coastguard Worker//
32*d5c09012SAndroid Build Coastguard Worker//
33*d5c09012SAndroid Build Coastguard Worker// This message can be used both in streaming and non-streaming API methods in
34*d5c09012SAndroid Build Coastguard Worker// the request as well as the response.
35*d5c09012SAndroid Build Coastguard Worker//
36*d5c09012SAndroid Build Coastguard Worker// It can be used as a top-level request field, which is convenient if one
37*d5c09012SAndroid Build Coastguard Worker// wants to extract parameters from either the URL or HTTP template into the
38*d5c09012SAndroid Build Coastguard Worker// request fields and also want access to the raw HTTP body.
39*d5c09012SAndroid Build Coastguard Worker//
40*d5c09012SAndroid Build Coastguard Worker// Example:
41*d5c09012SAndroid Build Coastguard Worker//
42*d5c09012SAndroid Build Coastguard Worker//     message GetResourceRequest {
43*d5c09012SAndroid Build Coastguard Worker//       // A unique request id.
44*d5c09012SAndroid Build Coastguard Worker//       string request_id = 1;
45*d5c09012SAndroid Build Coastguard Worker//
46*d5c09012SAndroid Build Coastguard Worker//       // The raw HTTP body is bound to this field.
47*d5c09012SAndroid Build Coastguard Worker//       google.api.HttpBody http_body = 2;
48*d5c09012SAndroid Build Coastguard Worker//
49*d5c09012SAndroid Build Coastguard Worker//     }
50*d5c09012SAndroid Build Coastguard Worker//
51*d5c09012SAndroid Build Coastguard Worker//     service ResourceService {
52*d5c09012SAndroid Build Coastguard Worker//       rpc GetResource(GetResourceRequest)
53*d5c09012SAndroid Build Coastguard Worker//         returns (google.api.HttpBody);
54*d5c09012SAndroid Build Coastguard Worker//       rpc UpdateResource(google.api.HttpBody)
55*d5c09012SAndroid Build Coastguard Worker//         returns (google.protobuf.Empty);
56*d5c09012SAndroid Build Coastguard Worker//
57*d5c09012SAndroid Build Coastguard Worker//     }
58*d5c09012SAndroid Build Coastguard Worker//
59*d5c09012SAndroid Build Coastguard Worker// Example with streaming methods:
60*d5c09012SAndroid Build Coastguard Worker//
61*d5c09012SAndroid Build Coastguard Worker//     service CaldavService {
62*d5c09012SAndroid Build Coastguard Worker//       rpc GetCalendar(stream google.api.HttpBody)
63*d5c09012SAndroid Build Coastguard Worker//         returns (stream google.api.HttpBody);
64*d5c09012SAndroid Build Coastguard Worker//       rpc UpdateCalendar(stream google.api.HttpBody)
65*d5c09012SAndroid Build Coastguard Worker//         returns (stream google.api.HttpBody);
66*d5c09012SAndroid Build Coastguard Worker//
67*d5c09012SAndroid Build Coastguard Worker//     }
68*d5c09012SAndroid Build Coastguard Worker//
69*d5c09012SAndroid Build Coastguard Worker// Use of this type only changes how the request and response bodies are
70*d5c09012SAndroid Build Coastguard Worker// handled, all other features will continue to work unchanged.
71*d5c09012SAndroid Build Coastguard Workermessage HttpBody {
72*d5c09012SAndroid Build Coastguard Worker  // The HTTP Content-Type header value specifying the content type of the body.
73*d5c09012SAndroid Build Coastguard Worker  string content_type = 1;
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker  // The HTTP request/response body as raw binary.
76*d5c09012SAndroid Build Coastguard Worker  bytes data = 2;
77*d5c09012SAndroid Build Coastguard Worker
78*d5c09012SAndroid Build Coastguard Worker  // Application specific response metadata. Must be set in the first response
79*d5c09012SAndroid Build Coastguard Worker  // for streaming APIs.
80*d5c09012SAndroid Build Coastguard Worker  repeated google.protobuf.Any extensions = 3;
81*d5c09012SAndroid Build Coastguard Worker}
82