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