xref: /aosp_15_r20/external/googleapis/google/cloud/apigeeconnect/v1/tether.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2021 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.cloud.apigeeconnect.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
22*d5c09012SAndroid Build Coastguard Worker
23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.ApigeeConnect.V1";
24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/apigeeconnect/apiv1/apigeeconnectpb;apigeeconnectpb";
25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "TetherProto";
27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.apigeeconnect.v1";
28*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\ApigeeConnect\\V1";
29*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::ApigeeConnect::V1";
30*d5c09012SAndroid Build Coastguard Worker
31*d5c09012SAndroid Build Coastguard Worker// Tether provides a way for the control plane to send HTTP API requests to
32*d5c09012SAndroid Build Coastguard Worker// services in data planes that runs in a remote datacenter without
33*d5c09012SAndroid Build Coastguard Worker// requiring customers to open firewalls on their runtime plane.
34*d5c09012SAndroid Build Coastguard Workerservice Tether {
35*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "apigeeconnect.googleapis.com";
36*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker  // Egress streams egress requests and responses. Logically, this is not
39*d5c09012SAndroid Build Coastguard Worker  // actually a streaming request, but uses streaming as a mechanism to flip
40*d5c09012SAndroid Build Coastguard Worker  // the client-server relationship of gRPC so that the server can act as a
41*d5c09012SAndroid Build Coastguard Worker  // client.
42*d5c09012SAndroid Build Coastguard Worker  // The listener, the RPC server, accepts connections from the dialer,
43*d5c09012SAndroid Build Coastguard Worker  // the RPC client.
44*d5c09012SAndroid Build Coastguard Worker  // The listener streams http requests and the dialer streams http responses.
45*d5c09012SAndroid Build Coastguard Worker  rpc Egress(stream EgressResponse) returns (stream EgressRequest) {
46*d5c09012SAndroid Build Coastguard Worker  }
47*d5c09012SAndroid Build Coastguard Worker}
48*d5c09012SAndroid Build Coastguard Worker
49*d5c09012SAndroid Build Coastguard Worker// gRPC request payload for tether.
50*d5c09012SAndroid Build Coastguard Workermessage EgressRequest {
51*d5c09012SAndroid Build Coastguard Worker  // Unique identifier for the request.
52*d5c09012SAndroid Build Coastguard Worker  string id = 1;
53*d5c09012SAndroid Build Coastguard Worker
54*d5c09012SAndroid Build Coastguard Worker  // Actual payload to send to agent.
55*d5c09012SAndroid Build Coastguard Worker  Payload payload = 2;
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker  // Tether Endpoint.
58*d5c09012SAndroid Build Coastguard Worker  TetherEndpoint endpoint = 3;
59*d5c09012SAndroid Build Coastguard Worker
60*d5c09012SAndroid Build Coastguard Worker  // GCP Project.
61*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project_number}`.
62*d5c09012SAndroid Build Coastguard Worker  string project = 4;
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker  // Unique identifier for clients to trace their request/response.
65*d5c09012SAndroid Build Coastguard Worker  string trace_id = 5;
66*d5c09012SAndroid Build Coastguard Worker
67*d5c09012SAndroid Build Coastguard Worker  // Timeout for the HTTP request.
68*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration timeout = 6;
69*d5c09012SAndroid Build Coastguard Worker}
70*d5c09012SAndroid Build Coastguard Worker
71*d5c09012SAndroid Build Coastguard Worker// Payload for EgressRequest.
72*d5c09012SAndroid Build Coastguard Workermessage Payload {
73*d5c09012SAndroid Build Coastguard Worker  // The kind of payload.
74*d5c09012SAndroid Build Coastguard Worker  oneof kind {
75*d5c09012SAndroid Build Coastguard Worker    // The HttpRequest proto.
76*d5c09012SAndroid Build Coastguard Worker    HttpRequest http_request = 1;
77*d5c09012SAndroid Build Coastguard Worker
78*d5c09012SAndroid Build Coastguard Worker    // The information of stream.
79*d5c09012SAndroid Build Coastguard Worker    StreamInfo stream_info = 2;
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker    // The action taken by agent.
82*d5c09012SAndroid Build Coastguard Worker    Action action = 3;
83*d5c09012SAndroid Build Coastguard Worker  }
84*d5c09012SAndroid Build Coastguard Worker}
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker// The Information of bi-directional stream.
87*d5c09012SAndroid Build Coastguard Workermessage StreamInfo {
88*d5c09012SAndroid Build Coastguard Worker  // Unique identifier for the stream.
89*d5c09012SAndroid Build Coastguard Worker  string id = 1;
90*d5c09012SAndroid Build Coastguard Worker}
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker// The action taken by agent.
93*d5c09012SAndroid Build Coastguard Workerenum Action {
94*d5c09012SAndroid Build Coastguard Worker  // Unspecified Action.
95*d5c09012SAndroid Build Coastguard Worker  ACTION_UNSPECIFIED = 0;
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker  // Indicates that agent should open a new stream.
98*d5c09012SAndroid Build Coastguard Worker  OPEN_NEW_STREAM = 1;
99*d5c09012SAndroid Build Coastguard Worker}
100*d5c09012SAndroid Build Coastguard Worker
101*d5c09012SAndroid Build Coastguard Worker// gRPC response payload for tether.
102*d5c09012SAndroid Build Coastguard Workermessage EgressResponse {
103*d5c09012SAndroid Build Coastguard Worker  // Unique identifier for the response. Matches the EgressRequest's id.
104*d5c09012SAndroid Build Coastguard Worker  string id = 1;
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker  // HttpResponse.
107*d5c09012SAndroid Build Coastguard Worker  HttpResponse http_response = 2;
108*d5c09012SAndroid Build Coastguard Worker
109*d5c09012SAndroid Build Coastguard Worker  // Errors from application when handling the http request.
110*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status status = 3;
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker  // GCP Project.
113*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project_number}`.
114*d5c09012SAndroid Build Coastguard Worker  string project = 4;
115*d5c09012SAndroid Build Coastguard Worker
116*d5c09012SAndroid Build Coastguard Worker  // Unique identifier for clients to trace their request/response. Matches the
117*d5c09012SAndroid Build Coastguard Worker  // EgressRequest's trace id
118*d5c09012SAndroid Build Coastguard Worker  string trace_id = 5;
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Tether Endpoint.
121*d5c09012SAndroid Build Coastguard Worker  TetherEndpoint endpoint = 6;
122*d5c09012SAndroid Build Coastguard Worker
123*d5c09012SAndroid Build Coastguard Worker  // Name is the full resource path of endpoint.
124*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project_number or project_id}/endpoints/{endpoint}`
125*d5c09012SAndroid Build Coastguard Worker  string name = 7;
126*d5c09012SAndroid Build Coastguard Worker}
127*d5c09012SAndroid Build Coastguard Worker
128*d5c09012SAndroid Build Coastguard Worker// Endpoint indicates where the messages will be delivered.
129*d5c09012SAndroid Build Coastguard Workerenum TetherEndpoint {
130*d5c09012SAndroid Build Coastguard Worker  // Unspecified tether endpoint.
131*d5c09012SAndroid Build Coastguard Worker  TETHER_ENDPOINT_UNSPECIFIED = 0;
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker  // Apigee MART endpoint.
134*d5c09012SAndroid Build Coastguard Worker  APIGEE_MART = 1;
135*d5c09012SAndroid Build Coastguard Worker
136*d5c09012SAndroid Build Coastguard Worker  // Apigee Runtime endpoint.
137*d5c09012SAndroid Build Coastguard Worker  APIGEE_RUNTIME = 2;
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker  // Apigee Mint Rating endpoint.
140*d5c09012SAndroid Build Coastguard Worker  APIGEE_MINT_RATING = 3;
141*d5c09012SAndroid Build Coastguard Worker}
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker// HTTP Scheme.
144*d5c09012SAndroid Build Coastguard Workerenum Scheme {
145*d5c09012SAndroid Build Coastguard Worker  // Unspecified scheme.
146*d5c09012SAndroid Build Coastguard Worker  SCHEME_UNSPECIFIED = 0;
147*d5c09012SAndroid Build Coastguard Worker
148*d5c09012SAndroid Build Coastguard Worker  // HTTPS protocol.
149*d5c09012SAndroid Build Coastguard Worker  HTTPS = 1;
150*d5c09012SAndroid Build Coastguard Worker}
151*d5c09012SAndroid Build Coastguard Worker
152*d5c09012SAndroid Build Coastguard Worker// The proto definition of http request.
153*d5c09012SAndroid Build Coastguard Workermessage HttpRequest {
154*d5c09012SAndroid Build Coastguard Worker  // A unique identifier for the request.
155*d5c09012SAndroid Build Coastguard Worker  string id = 1;
156*d5c09012SAndroid Build Coastguard Worker
157*d5c09012SAndroid Build Coastguard Worker  // The HTTP request method.
158*d5c09012SAndroid Build Coastguard Worker  // Valid methods: "GET", "HEAD", "POST", "PUT", "PATCH","DELETE".
159*d5c09012SAndroid Build Coastguard Worker  string method = 2;
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker  // The HTTP request URL.
162*d5c09012SAndroid Build Coastguard Worker  Url url = 3;
163*d5c09012SAndroid Build Coastguard Worker
164*d5c09012SAndroid Build Coastguard Worker  // The HTTP request headers.
165*d5c09012SAndroid Build Coastguard Worker  repeated Header headers = 4;
166*d5c09012SAndroid Build Coastguard Worker
167*d5c09012SAndroid Build Coastguard Worker  // HTTP request body.
168*d5c09012SAndroid Build Coastguard Worker  bytes body = 5;
169*d5c09012SAndroid Build Coastguard Worker}
170*d5c09012SAndroid Build Coastguard Worker
171*d5c09012SAndroid Build Coastguard Worker// The proto definition of url.
172*d5c09012SAndroid Build Coastguard Worker// A url represents a URL and the general form represented is:
173*d5c09012SAndroid Build Coastguard Worker//
174*d5c09012SAndroid Build Coastguard Worker//  `[scheme://][google.cloud.apigeeconnect.v1.Url.host][path]`
175*d5c09012SAndroid Build Coastguard Workermessage Url {
176*d5c09012SAndroid Build Coastguard Worker  // Scheme.
177*d5c09012SAndroid Build Coastguard Worker  Scheme scheme = 1;
178*d5c09012SAndroid Build Coastguard Worker
179*d5c09012SAndroid Build Coastguard Worker  // Host or Host:Port.
180*d5c09012SAndroid Build Coastguard Worker  string host = 2;
181*d5c09012SAndroid Build Coastguard Worker
182*d5c09012SAndroid Build Coastguard Worker  // Path starts with `/`.
183*d5c09012SAndroid Build Coastguard Worker  string path = 3;
184*d5c09012SAndroid Build Coastguard Worker}
185*d5c09012SAndroid Build Coastguard Worker
186*d5c09012SAndroid Build Coastguard Worker// The http headers.
187*d5c09012SAndroid Build Coastguard Workermessage Header {
188*d5c09012SAndroid Build Coastguard Worker  string key = 1;
189*d5c09012SAndroid Build Coastguard Worker
190*d5c09012SAndroid Build Coastguard Worker  repeated string values = 2;
191*d5c09012SAndroid Build Coastguard Worker}
192*d5c09012SAndroid Build Coastguard Worker
193*d5c09012SAndroid Build Coastguard Worker// The proto definition of http response.
194*d5c09012SAndroid Build Coastguard Workermessage HttpResponse {
195*d5c09012SAndroid Build Coastguard Worker  // A unique identifier that matches the request ID.
196*d5c09012SAndroid Build Coastguard Worker  string id = 1;
197*d5c09012SAndroid Build Coastguard Worker
198*d5c09012SAndroid Build Coastguard Worker  // Status of http response, e.g. "200 OK".
199*d5c09012SAndroid Build Coastguard Worker  string status = 2;
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker  // Status code of http response, e.g. 200.
202*d5c09012SAndroid Build Coastguard Worker  int32 status_code = 3;
203*d5c09012SAndroid Build Coastguard Worker
204*d5c09012SAndroid Build Coastguard Worker  // The HTTP 1.1 response body.
205*d5c09012SAndroid Build Coastguard Worker  bytes body = 4;
206*d5c09012SAndroid Build Coastguard Worker
207*d5c09012SAndroid Build Coastguard Worker  // The HTTP response headers.
208*d5c09012SAndroid Build Coastguard Worker  repeated Header headers = 5;
209*d5c09012SAndroid Build Coastguard Worker
210*d5c09012SAndroid Build Coastguard Worker  // Content length records the length of the associated content. The
211*d5c09012SAndroid Build Coastguard Worker  // value -1 indicates that the length is unknown. Unless http method
212*d5c09012SAndroid Build Coastguard Worker  // is "HEAD", values >= 0 indicate that the given number of bytes may
213*d5c09012SAndroid Build Coastguard Worker  // be read from Body.
214*d5c09012SAndroid Build Coastguard Worker  int64 content_length = 6;
215*d5c09012SAndroid Build Coastguard Worker}
216