xref: /aosp_15_r20/external/googleapis/google/appengine/v1/appengine.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 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.appengine.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/application.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/certificate.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/domain.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/domain_mapping.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/firewall.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/instance.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/service.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/version.proto";
29*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto";
30*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
31*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.AppEngine.V1";
34*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/appengine/apiv1/appenginepb;appenginepb";
35*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
36*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "AppengineProto";
37*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.appengine.v1";
38*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\AppEngine\\V1";
39*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::AppEngine::V1";
40*d5c09012SAndroid Build Coastguard Worker
41*d5c09012SAndroid Build Coastguard Worker// Manages App Engine applications.
42*d5c09012SAndroid Build Coastguard Workerservice Applications {
43*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
44*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
45*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
46*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
47*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
48*d5c09012SAndroid Build Coastguard Worker
49*d5c09012SAndroid Build Coastguard Worker  // Gets information about an application.
50*d5c09012SAndroid Build Coastguard Worker  rpc GetApplication(GetApplicationRequest) returns (Application) {
51*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
52*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=apps/*}"
53*d5c09012SAndroid Build Coastguard Worker    };
54*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
55*d5c09012SAndroid Build Coastguard Worker  }
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker  // Creates an App Engine application for a Google Cloud Platform project.
58*d5c09012SAndroid Build Coastguard Worker  // Required fields:
59*d5c09012SAndroid Build Coastguard Worker  //
60*d5c09012SAndroid Build Coastguard Worker  // * `id` - The ID of the target Cloud Platform project.
61*d5c09012SAndroid Build Coastguard Worker  // * *location* - The [region](https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.
62*d5c09012SAndroid Build Coastguard Worker  //
63*d5c09012SAndroid Build Coastguard Worker  // For more information about App Engine applications, see [Managing Projects, Applications, and Billing](https://cloud.google.com/appengine/docs/standard/python/console/).
64*d5c09012SAndroid Build Coastguard Worker  rpc CreateApplication(CreateApplicationRequest) returns (google.longrunning.Operation) {
65*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
66*d5c09012SAndroid Build Coastguard Worker      post: "/v1/apps"
67*d5c09012SAndroid Build Coastguard Worker      body: "application"
68*d5c09012SAndroid Build Coastguard Worker    };
69*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
70*d5c09012SAndroid Build Coastguard Worker      response_type: "Application"
71*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
72*d5c09012SAndroid Build Coastguard Worker    };
73*d5c09012SAndroid Build Coastguard Worker  }
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker  // Updates the specified Application resource.
76*d5c09012SAndroid Build Coastguard Worker  // You can update the following fields:
77*d5c09012SAndroid Build Coastguard Worker  //
78*d5c09012SAndroid Build Coastguard Worker  // * `auth_domain` - Google authentication domain for controlling user access to the application.
79*d5c09012SAndroid Build Coastguard Worker  // * `default_cookie_expiration` - Cookie expiration policy for the application.
80*d5c09012SAndroid Build Coastguard Worker  // * `iap` - Identity-Aware Proxy properties for the application.
81*d5c09012SAndroid Build Coastguard Worker  rpc UpdateApplication(UpdateApplicationRequest) returns (google.longrunning.Operation) {
82*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
83*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{name=apps/*}"
84*d5c09012SAndroid Build Coastguard Worker      body: "application"
85*d5c09012SAndroid Build Coastguard Worker    };
86*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
87*d5c09012SAndroid Build Coastguard Worker      response_type: "Application"
88*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
89*d5c09012SAndroid Build Coastguard Worker    };
90*d5c09012SAndroid Build Coastguard Worker  }
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // Recreates the required App Engine features for the specified App Engine
93*d5c09012SAndroid Build Coastguard Worker  // application, for example a Cloud Storage bucket or App Engine service
94*d5c09012SAndroid Build Coastguard Worker  // account.
95*d5c09012SAndroid Build Coastguard Worker  // Use this method if you receive an error message about a missing feature,
96*d5c09012SAndroid Build Coastguard Worker  // for example, *Error retrieving the App Engine service account*.
97*d5c09012SAndroid Build Coastguard Worker  // If you have deleted your App Engine service account, this will
98*d5c09012SAndroid Build Coastguard Worker  // not be able to recreate it. Instead, you should attempt to use the
99*d5c09012SAndroid Build Coastguard Worker  // IAM undelete API if possible at https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/undelete?apix_params=%7B"name"%3A"projects%2F-%2FserviceAccounts%2Funique_id"%2C"resource"%3A%7B%7D%7D .
100*d5c09012SAndroid Build Coastguard Worker  // If the deletion was recent, the numeric ID can be found in the Cloud
101*d5c09012SAndroid Build Coastguard Worker  // Console Activity Log.
102*d5c09012SAndroid Build Coastguard Worker  rpc RepairApplication(RepairApplicationRequest) returns (google.longrunning.Operation) {
103*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
104*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=apps/*}:repair"
105*d5c09012SAndroid Build Coastguard Worker      body: "*"
106*d5c09012SAndroid Build Coastguard Worker    };
107*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
108*d5c09012SAndroid Build Coastguard Worker      response_type: "Application"
109*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
110*d5c09012SAndroid Build Coastguard Worker    };
111*d5c09012SAndroid Build Coastguard Worker  }
112*d5c09012SAndroid Build Coastguard Worker}
113*d5c09012SAndroid Build Coastguard Worker
114*d5c09012SAndroid Build Coastguard Worker// Request message for `Applications.GetApplication`.
115*d5c09012SAndroid Build Coastguard Workermessage GetApplicationRequest {
116*d5c09012SAndroid Build Coastguard Worker  // Name of the Application resource to get. Example: `apps/myapp`.
117*d5c09012SAndroid Build Coastguard Worker  string name = 1;
118*d5c09012SAndroid Build Coastguard Worker}
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker// Request message for `Applications.CreateApplication`.
121*d5c09012SAndroid Build Coastguard Workermessage CreateApplicationRequest {
122*d5c09012SAndroid Build Coastguard Worker  // Application configuration.
123*d5c09012SAndroid Build Coastguard Worker  Application application = 2;
124*d5c09012SAndroid Build Coastguard Worker}
125*d5c09012SAndroid Build Coastguard Worker
126*d5c09012SAndroid Build Coastguard Worker// Request message for `Applications.UpdateApplication`.
127*d5c09012SAndroid Build Coastguard Workermessage UpdateApplicationRequest {
128*d5c09012SAndroid Build Coastguard Worker  // Name of the Application resource to update. Example: `apps/myapp`.
129*d5c09012SAndroid Build Coastguard Worker  string name = 1;
130*d5c09012SAndroid Build Coastguard Worker
131*d5c09012SAndroid Build Coastguard Worker  // An Application containing the updated resource.
132*d5c09012SAndroid Build Coastguard Worker  Application application = 2;
133*d5c09012SAndroid Build Coastguard Worker
134*d5c09012SAndroid Build Coastguard Worker  // Required. Standard field mask for the set of fields to be updated.
135*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
136*d5c09012SAndroid Build Coastguard Worker}
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker// Request message for 'Applications.RepairApplication'.
139*d5c09012SAndroid Build Coastguard Workermessage RepairApplicationRequest {
140*d5c09012SAndroid Build Coastguard Worker  // Name of the application to repair. Example: `apps/myapp`
141*d5c09012SAndroid Build Coastguard Worker  string name = 1;
142*d5c09012SAndroid Build Coastguard Worker}
143*d5c09012SAndroid Build Coastguard Worker
144*d5c09012SAndroid Build Coastguard Worker// Manages services of an application.
145*d5c09012SAndroid Build Coastguard Workerservice Services {
146*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
147*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
148*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
149*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
150*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
151*d5c09012SAndroid Build Coastguard Worker
152*d5c09012SAndroid Build Coastguard Worker  // Lists all the services in the application.
153*d5c09012SAndroid Build Coastguard Worker  rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
154*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
155*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=apps/*}/services"
156*d5c09012SAndroid Build Coastguard Worker    };
157*d5c09012SAndroid Build Coastguard Worker  }
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker  // Gets the current configuration of the specified service.
160*d5c09012SAndroid Build Coastguard Worker  rpc GetService(GetServiceRequest) returns (Service) {
161*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
162*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=apps/*/services/*}"
163*d5c09012SAndroid Build Coastguard Worker    };
164*d5c09012SAndroid Build Coastguard Worker  }
165*d5c09012SAndroid Build Coastguard Worker
166*d5c09012SAndroid Build Coastguard Worker  // Updates the configuration of the specified service.
167*d5c09012SAndroid Build Coastguard Worker  rpc UpdateService(UpdateServiceRequest) returns (google.longrunning.Operation) {
168*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
169*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{name=apps/*/services/*}"
170*d5c09012SAndroid Build Coastguard Worker      body: "service"
171*d5c09012SAndroid Build Coastguard Worker    };
172*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
173*d5c09012SAndroid Build Coastguard Worker      response_type: "Service"
174*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
175*d5c09012SAndroid Build Coastguard Worker    };
176*d5c09012SAndroid Build Coastguard Worker  }
177*d5c09012SAndroid Build Coastguard Worker
178*d5c09012SAndroid Build Coastguard Worker  // Deletes the specified service and all enclosed versions.
179*d5c09012SAndroid Build Coastguard Worker  rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) {
180*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
181*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=apps/*/services/*}"
182*d5c09012SAndroid Build Coastguard Worker    };
183*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
184*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
185*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
186*d5c09012SAndroid Build Coastguard Worker    };
187*d5c09012SAndroid Build Coastguard Worker  }
188*d5c09012SAndroid Build Coastguard Worker}
189*d5c09012SAndroid Build Coastguard Worker
190*d5c09012SAndroid Build Coastguard Worker// Request message for `Services.ListServices`.
191*d5c09012SAndroid Build Coastguard Workermessage ListServicesRequest {
192*d5c09012SAndroid Build Coastguard Worker  // Name of the parent Application resource. Example: `apps/myapp`.
193*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
194*d5c09012SAndroid Build Coastguard Worker
195*d5c09012SAndroid Build Coastguard Worker  // Maximum results to return per page.
196*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
197*d5c09012SAndroid Build Coastguard Worker
198*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
199*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
200*d5c09012SAndroid Build Coastguard Worker}
201*d5c09012SAndroid Build Coastguard Worker
202*d5c09012SAndroid Build Coastguard Worker// Response message for `Services.ListServices`.
203*d5c09012SAndroid Build Coastguard Workermessage ListServicesResponse {
204*d5c09012SAndroid Build Coastguard Worker  // The services belonging to the requested application.
205*d5c09012SAndroid Build Coastguard Worker  repeated Service services = 1;
206*d5c09012SAndroid Build Coastguard Worker
207*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
208*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
209*d5c09012SAndroid Build Coastguard Worker}
210*d5c09012SAndroid Build Coastguard Worker
211*d5c09012SAndroid Build Coastguard Worker// Request message for `Services.GetService`.
212*d5c09012SAndroid Build Coastguard Workermessage GetServiceRequest {
213*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example: `apps/myapp/services/default`.
214*d5c09012SAndroid Build Coastguard Worker  string name = 1;
215*d5c09012SAndroid Build Coastguard Worker}
216*d5c09012SAndroid Build Coastguard Worker
217*d5c09012SAndroid Build Coastguard Worker// Request message for `Services.UpdateService`.
218*d5c09012SAndroid Build Coastguard Workermessage UpdateServiceRequest {
219*d5c09012SAndroid Build Coastguard Worker  // Name of the resource to update. Example: `apps/myapp/services/default`.
220*d5c09012SAndroid Build Coastguard Worker  string name = 1;
221*d5c09012SAndroid Build Coastguard Worker
222*d5c09012SAndroid Build Coastguard Worker  // A Service resource containing the updated service. Only fields set in the
223*d5c09012SAndroid Build Coastguard Worker  // field mask will be updated.
224*d5c09012SAndroid Build Coastguard Worker  Service service = 2;
225*d5c09012SAndroid Build Coastguard Worker
226*d5c09012SAndroid Build Coastguard Worker  // Required. Standard field mask for the set of fields to be updated.
227*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
228*d5c09012SAndroid Build Coastguard Worker
229*d5c09012SAndroid Build Coastguard Worker  // Set to `true` to gradually shift traffic to one or more versions that you
230*d5c09012SAndroid Build Coastguard Worker  // specify. By default, traffic is shifted immediately.
231*d5c09012SAndroid Build Coastguard Worker  // For gradual traffic migration, the target versions
232*d5c09012SAndroid Build Coastguard Worker  // must be located within instances that are configured for both
233*d5c09012SAndroid Build Coastguard Worker  // [warmup requests](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#InboundServiceType)
234*d5c09012SAndroid Build Coastguard Worker  // and
235*d5c09012SAndroid Build Coastguard Worker  // [automatic scaling](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#AutomaticScaling).
236*d5c09012SAndroid Build Coastguard Worker  // You must specify the
237*d5c09012SAndroid Build Coastguard Worker  // [`shardBy`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services#ShardBy)
238*d5c09012SAndroid Build Coastguard Worker  // field in the Service resource. Gradual traffic migration is not
239*d5c09012SAndroid Build Coastguard Worker  // supported in the App Engine flexible environment. For examples, see
240*d5c09012SAndroid Build Coastguard Worker  // [Migrating and Splitting Traffic](https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
241*d5c09012SAndroid Build Coastguard Worker  bool migrate_traffic = 4;
242*d5c09012SAndroid Build Coastguard Worker}
243*d5c09012SAndroid Build Coastguard Worker
244*d5c09012SAndroid Build Coastguard Worker// Request message for `Services.DeleteService`.
245*d5c09012SAndroid Build Coastguard Workermessage DeleteServiceRequest {
246*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example: `apps/myapp/services/default`.
247*d5c09012SAndroid Build Coastguard Worker  string name = 1;
248*d5c09012SAndroid Build Coastguard Worker}
249*d5c09012SAndroid Build Coastguard Worker
250*d5c09012SAndroid Build Coastguard Worker// Manages versions of a service.
251*d5c09012SAndroid Build Coastguard Workerservice Versions {
252*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
253*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
254*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
255*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
256*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
257*d5c09012SAndroid Build Coastguard Worker
258*d5c09012SAndroid Build Coastguard Worker  // Lists the versions of a service.
259*d5c09012SAndroid Build Coastguard Worker  rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) {
260*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
261*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=apps/*/services/*}/versions"
262*d5c09012SAndroid Build Coastguard Worker    };
263*d5c09012SAndroid Build Coastguard Worker  }
264*d5c09012SAndroid Build Coastguard Worker
265*d5c09012SAndroid Build Coastguard Worker  // Gets the specified Version resource.
266*d5c09012SAndroid Build Coastguard Worker  // By default, only a `BASIC_VIEW` will be returned.
267*d5c09012SAndroid Build Coastguard Worker  // Specify the `FULL_VIEW` parameter to get the full resource.
268*d5c09012SAndroid Build Coastguard Worker  rpc GetVersion(GetVersionRequest) returns (Version) {
269*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
270*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=apps/*/services/*/versions/*}"
271*d5c09012SAndroid Build Coastguard Worker    };
272*d5c09012SAndroid Build Coastguard Worker  }
273*d5c09012SAndroid Build Coastguard Worker
274*d5c09012SAndroid Build Coastguard Worker  // Deploys code and resource files to a new version.
275*d5c09012SAndroid Build Coastguard Worker  rpc CreateVersion(CreateVersionRequest) returns (google.longrunning.Operation) {
276*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
277*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=apps/*/services/*}/versions"
278*d5c09012SAndroid Build Coastguard Worker      body: "version"
279*d5c09012SAndroid Build Coastguard Worker    };
280*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
281*d5c09012SAndroid Build Coastguard Worker      response_type: "Version"
282*d5c09012SAndroid Build Coastguard Worker      metadata_type: "CreateVersionMetadataV1"
283*d5c09012SAndroid Build Coastguard Worker    };
284*d5c09012SAndroid Build Coastguard Worker  }
285*d5c09012SAndroid Build Coastguard Worker
286*d5c09012SAndroid Build Coastguard Worker  // Updates the specified Version resource.
287*d5c09012SAndroid Build Coastguard Worker  // You can specify the following fields depending on the App Engine
288*d5c09012SAndroid Build Coastguard Worker  // environment and type of scaling that the version resource uses:
289*d5c09012SAndroid Build Coastguard Worker  //
290*d5c09012SAndroid Build Coastguard Worker  // **Standard environment**
291*d5c09012SAndroid Build Coastguard Worker  //
292*d5c09012SAndroid Build Coastguard Worker  // * [`instance_class`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class)
293*d5c09012SAndroid Build Coastguard Worker  //
294*d5c09012SAndroid Build Coastguard Worker  // *automatic scaling* in the standard environment:
295*d5c09012SAndroid Build Coastguard Worker  //
296*d5c09012SAndroid Build Coastguard Worker  // * [`automatic_scaling.min_idle_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
297*d5c09012SAndroid Build Coastguard Worker  // * [`automatic_scaling.max_idle_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
298*d5c09012SAndroid Build Coastguard Worker  // * [`automaticScaling.standard_scheduler_settings.max_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
299*d5c09012SAndroid Build Coastguard Worker  // * [`automaticScaling.standard_scheduler_settings.min_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
300*d5c09012SAndroid Build Coastguard Worker  // * [`automaticScaling.standard_scheduler_settings.target_cpu_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
301*d5c09012SAndroid Build Coastguard Worker  // * [`automaticScaling.standard_scheduler_settings.target_throughput_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
302*d5c09012SAndroid Build Coastguard Worker  //
303*d5c09012SAndroid Build Coastguard Worker  // *basic scaling* or *manual scaling* in the standard environment:
304*d5c09012SAndroid Build Coastguard Worker  //
305*d5c09012SAndroid Build Coastguard Worker  // * [`serving_status`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status)
306*d5c09012SAndroid Build Coastguard Worker  // * [`manual_scaling.instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#manualscaling)
307*d5c09012SAndroid Build Coastguard Worker  //
308*d5c09012SAndroid Build Coastguard Worker  // **Flexible environment**
309*d5c09012SAndroid Build Coastguard Worker  //
310*d5c09012SAndroid Build Coastguard Worker  // * [`serving_status`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status)
311*d5c09012SAndroid Build Coastguard Worker  //
312*d5c09012SAndroid Build Coastguard Worker  // *automatic scaling* in the flexible environment:
313*d5c09012SAndroid Build Coastguard Worker  //
314*d5c09012SAndroid Build Coastguard Worker  // * [`automatic_scaling.min_total_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
315*d5c09012SAndroid Build Coastguard Worker  // * [`automatic_scaling.max_total_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
316*d5c09012SAndroid Build Coastguard Worker  // * [`automatic_scaling.cool_down_period_sec`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
317*d5c09012SAndroid Build Coastguard Worker  // * [`automatic_scaling.cpu_utilization.target_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
318*d5c09012SAndroid Build Coastguard Worker  //
319*d5c09012SAndroid Build Coastguard Worker  // *manual scaling* in the flexible environment:
320*d5c09012SAndroid Build Coastguard Worker  //
321*d5c09012SAndroid Build Coastguard Worker  // * [`manual_scaling.instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#manualscaling)
322*d5c09012SAndroid Build Coastguard Worker  rpc UpdateVersion(UpdateVersionRequest) returns (google.longrunning.Operation) {
323*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
324*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{name=apps/*/services/*/versions/*}"
325*d5c09012SAndroid Build Coastguard Worker      body: "version"
326*d5c09012SAndroid Build Coastguard Worker    };
327*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
328*d5c09012SAndroid Build Coastguard Worker      response_type: "Version"
329*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
330*d5c09012SAndroid Build Coastguard Worker    };
331*d5c09012SAndroid Build Coastguard Worker  }
332*d5c09012SAndroid Build Coastguard Worker
333*d5c09012SAndroid Build Coastguard Worker  // Deletes an existing Version resource.
334*d5c09012SAndroid Build Coastguard Worker  rpc DeleteVersion(DeleteVersionRequest) returns (google.longrunning.Operation) {
335*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
336*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=apps/*/services/*/versions/*}"
337*d5c09012SAndroid Build Coastguard Worker    };
338*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
339*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
340*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
341*d5c09012SAndroid Build Coastguard Worker    };
342*d5c09012SAndroid Build Coastguard Worker  }
343*d5c09012SAndroid Build Coastguard Worker}
344*d5c09012SAndroid Build Coastguard Worker
345*d5c09012SAndroid Build Coastguard Worker// Request message for `Versions.ListVersions`.
346*d5c09012SAndroid Build Coastguard Workermessage ListVersionsRequest {
347*d5c09012SAndroid Build Coastguard Worker  // Name of the parent Service resource. Example:
348*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default`.
349*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
350*d5c09012SAndroid Build Coastguard Worker
351*d5c09012SAndroid Build Coastguard Worker  // Controls the set of fields returned in the `List` response.
352*d5c09012SAndroid Build Coastguard Worker  VersionView view = 2;
353*d5c09012SAndroid Build Coastguard Worker
354*d5c09012SAndroid Build Coastguard Worker  // Maximum results to return per page.
355*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
356*d5c09012SAndroid Build Coastguard Worker
357*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
358*d5c09012SAndroid Build Coastguard Worker  string page_token = 4;
359*d5c09012SAndroid Build Coastguard Worker}
360*d5c09012SAndroid Build Coastguard Worker
361*d5c09012SAndroid Build Coastguard Worker// Response message for `Versions.ListVersions`.
362*d5c09012SAndroid Build Coastguard Workermessage ListVersionsResponse {
363*d5c09012SAndroid Build Coastguard Worker  // The versions belonging to the requested service.
364*d5c09012SAndroid Build Coastguard Worker  repeated Version versions = 1;
365*d5c09012SAndroid Build Coastguard Worker
366*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
367*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
368*d5c09012SAndroid Build Coastguard Worker}
369*d5c09012SAndroid Build Coastguard Worker
370*d5c09012SAndroid Build Coastguard Worker// Fields that should be returned when [Version][google.appengine.v1.Version] resources
371*d5c09012SAndroid Build Coastguard Worker// are retrieved.
372*d5c09012SAndroid Build Coastguard Workerenum VersionView {
373*d5c09012SAndroid Build Coastguard Worker  // Basic version information including scaling and inbound services,
374*d5c09012SAndroid Build Coastguard Worker  // but not detailed deployment information.
375*d5c09012SAndroid Build Coastguard Worker  BASIC = 0;
376*d5c09012SAndroid Build Coastguard Worker
377*d5c09012SAndroid Build Coastguard Worker  // The information from `BASIC`, plus detailed information about the
378*d5c09012SAndroid Build Coastguard Worker  // deployment. This format is required when creating resources, but
379*d5c09012SAndroid Build Coastguard Worker  // is not returned in `Get` or `List` by default.
380*d5c09012SAndroid Build Coastguard Worker  FULL = 1;
381*d5c09012SAndroid Build Coastguard Worker}
382*d5c09012SAndroid Build Coastguard Worker
383*d5c09012SAndroid Build Coastguard Worker// Request message for `Versions.GetVersion`.
384*d5c09012SAndroid Build Coastguard Workermessage GetVersionRequest {
385*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example:
386*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default/versions/v1`.
387*d5c09012SAndroid Build Coastguard Worker  string name = 1;
388*d5c09012SAndroid Build Coastguard Worker
389*d5c09012SAndroid Build Coastguard Worker  // Controls the set of fields returned in the `Get` response.
390*d5c09012SAndroid Build Coastguard Worker  VersionView view = 2;
391*d5c09012SAndroid Build Coastguard Worker}
392*d5c09012SAndroid Build Coastguard Worker
393*d5c09012SAndroid Build Coastguard Worker// Request message for `Versions.CreateVersion`.
394*d5c09012SAndroid Build Coastguard Workermessage CreateVersionRequest {
395*d5c09012SAndroid Build Coastguard Worker  // Name of the parent resource to create this version under. Example:
396*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default`.
397*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
398*d5c09012SAndroid Build Coastguard Worker
399*d5c09012SAndroid Build Coastguard Worker  // Application deployment configuration.
400*d5c09012SAndroid Build Coastguard Worker  Version version = 2;
401*d5c09012SAndroid Build Coastguard Worker}
402*d5c09012SAndroid Build Coastguard Worker
403*d5c09012SAndroid Build Coastguard Worker// Request message for `Versions.UpdateVersion`.
404*d5c09012SAndroid Build Coastguard Workermessage UpdateVersionRequest {
405*d5c09012SAndroid Build Coastguard Worker  // Name of the resource to update. Example:
406*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default/versions/1`.
407*d5c09012SAndroid Build Coastguard Worker  string name = 1;
408*d5c09012SAndroid Build Coastguard Worker
409*d5c09012SAndroid Build Coastguard Worker  // A Version containing the updated resource. Only fields set in the field
410*d5c09012SAndroid Build Coastguard Worker  // mask will be updated.
411*d5c09012SAndroid Build Coastguard Worker  Version version = 2;
412*d5c09012SAndroid Build Coastguard Worker
413*d5c09012SAndroid Build Coastguard Worker  // Standard field mask for the set of fields to be updated.
414*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
415*d5c09012SAndroid Build Coastguard Worker}
416*d5c09012SAndroid Build Coastguard Worker
417*d5c09012SAndroid Build Coastguard Worker// Request message for `Versions.DeleteVersion`.
418*d5c09012SAndroid Build Coastguard Workermessage DeleteVersionRequest {
419*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example:
420*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default/versions/v1`.
421*d5c09012SAndroid Build Coastguard Worker  string name = 1;
422*d5c09012SAndroid Build Coastguard Worker}
423*d5c09012SAndroid Build Coastguard Worker
424*d5c09012SAndroid Build Coastguard Worker// Manages instances of a version.
425*d5c09012SAndroid Build Coastguard Workerservice Instances {
426*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
427*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
428*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
429*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
430*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
431*d5c09012SAndroid Build Coastguard Worker
432*d5c09012SAndroid Build Coastguard Worker  // Lists the instances of a version.
433*d5c09012SAndroid Build Coastguard Worker  //
434*d5c09012SAndroid Build Coastguard Worker  // Tip: To aggregate details about instances over time, see the
435*d5c09012SAndroid Build Coastguard Worker  // [Stackdriver Monitoring API](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
436*d5c09012SAndroid Build Coastguard Worker  rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
437*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
438*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=apps/*/services/*/versions/*}/instances"
439*d5c09012SAndroid Build Coastguard Worker    };
440*d5c09012SAndroid Build Coastguard Worker  }
441*d5c09012SAndroid Build Coastguard Worker
442*d5c09012SAndroid Build Coastguard Worker  // Gets instance information.
443*d5c09012SAndroid Build Coastguard Worker  rpc GetInstance(GetInstanceRequest) returns (Instance) {
444*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
445*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=apps/*/services/*/versions/*/instances/*}"
446*d5c09012SAndroid Build Coastguard Worker    };
447*d5c09012SAndroid Build Coastguard Worker  }
448*d5c09012SAndroid Build Coastguard Worker
449*d5c09012SAndroid Build Coastguard Worker  // Stops a running instance.
450*d5c09012SAndroid Build Coastguard Worker  //
451*d5c09012SAndroid Build Coastguard Worker  // The instance might be automatically recreated based on the scaling settings
452*d5c09012SAndroid Build Coastguard Worker  // of the version. For more information, see "How Instances are Managed"
453*d5c09012SAndroid Build Coastguard Worker  // ([standard environment](https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed) |
454*d5c09012SAndroid Build Coastguard Worker  // [flexible environment](https://cloud.google.com/appengine/docs/flexible/python/how-instances-are-managed)).
455*d5c09012SAndroid Build Coastguard Worker  //
456*d5c09012SAndroid Build Coastguard Worker  // To ensure that instances are not re-created and avoid getting billed, you
457*d5c09012SAndroid Build Coastguard Worker  // can stop all instances within the target version by changing the serving
458*d5c09012SAndroid Build Coastguard Worker  // status of the version to `STOPPED` with the
459*d5c09012SAndroid Build Coastguard Worker  // [`apps.services.versions.patch`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch)
460*d5c09012SAndroid Build Coastguard Worker  // method.
461*d5c09012SAndroid Build Coastguard Worker  rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) {
462*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
463*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=apps/*/services/*/versions/*/instances/*}"
464*d5c09012SAndroid Build Coastguard Worker    };
465*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
466*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
467*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
468*d5c09012SAndroid Build Coastguard Worker    };
469*d5c09012SAndroid Build Coastguard Worker  }
470*d5c09012SAndroid Build Coastguard Worker
471*d5c09012SAndroid Build Coastguard Worker  // Enables debugging on a VM instance. This allows you to use the SSH
472*d5c09012SAndroid Build Coastguard Worker  // command to connect to the virtual machine where the instance lives.
473*d5c09012SAndroid Build Coastguard Worker  // While in "debug mode", the instance continues to serve live traffic.
474*d5c09012SAndroid Build Coastguard Worker  // You should delete the instance when you are done debugging and then
475*d5c09012SAndroid Build Coastguard Worker  // allow the system to take over and determine if another instance
476*d5c09012SAndroid Build Coastguard Worker  // should be started.
477*d5c09012SAndroid Build Coastguard Worker  //
478*d5c09012SAndroid Build Coastguard Worker  // Only applicable for instances in App Engine flexible environment.
479*d5c09012SAndroid Build Coastguard Worker  rpc DebugInstance(DebugInstanceRequest) returns (google.longrunning.Operation) {
480*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
481*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=apps/*/services/*/versions/*/instances/*}:debug"
482*d5c09012SAndroid Build Coastguard Worker      body: "*"
483*d5c09012SAndroid Build Coastguard Worker    };
484*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
485*d5c09012SAndroid Build Coastguard Worker      response_type: "Instance"
486*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
487*d5c09012SAndroid Build Coastguard Worker    };
488*d5c09012SAndroid Build Coastguard Worker  }
489*d5c09012SAndroid Build Coastguard Worker}
490*d5c09012SAndroid Build Coastguard Worker
491*d5c09012SAndroid Build Coastguard Worker// Request message for `Instances.ListInstances`.
492*d5c09012SAndroid Build Coastguard Workermessage ListInstancesRequest {
493*d5c09012SAndroid Build Coastguard Worker  // Name of the parent Version resource. Example:
494*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default/versions/v1`.
495*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
496*d5c09012SAndroid Build Coastguard Worker
497*d5c09012SAndroid Build Coastguard Worker  // Maximum results to return per page.
498*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
499*d5c09012SAndroid Build Coastguard Worker
500*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
501*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
502*d5c09012SAndroid Build Coastguard Worker}
503*d5c09012SAndroid Build Coastguard Worker
504*d5c09012SAndroid Build Coastguard Worker// Response message for `Instances.ListInstances`.
505*d5c09012SAndroid Build Coastguard Workermessage ListInstancesResponse {
506*d5c09012SAndroid Build Coastguard Worker  // The instances belonging to the requested version.
507*d5c09012SAndroid Build Coastguard Worker  repeated Instance instances = 1;
508*d5c09012SAndroid Build Coastguard Worker
509*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
510*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
511*d5c09012SAndroid Build Coastguard Worker}
512*d5c09012SAndroid Build Coastguard Worker
513*d5c09012SAndroid Build Coastguard Worker// Request message for `Instances.GetInstance`.
514*d5c09012SAndroid Build Coastguard Workermessage GetInstanceRequest {
515*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example:
516*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default/versions/v1/instances/instance-1`.
517*d5c09012SAndroid Build Coastguard Worker  string name = 1;
518*d5c09012SAndroid Build Coastguard Worker}
519*d5c09012SAndroid Build Coastguard Worker
520*d5c09012SAndroid Build Coastguard Worker// Request message for `Instances.DeleteInstance`.
521*d5c09012SAndroid Build Coastguard Workermessage DeleteInstanceRequest {
522*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example:
523*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default/versions/v1/instances/instance-1`.
524*d5c09012SAndroid Build Coastguard Worker  string name = 1;
525*d5c09012SAndroid Build Coastguard Worker}
526*d5c09012SAndroid Build Coastguard Worker
527*d5c09012SAndroid Build Coastguard Worker// Request message for `Instances.DebugInstance`.
528*d5c09012SAndroid Build Coastguard Workermessage DebugInstanceRequest {
529*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example:
530*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/services/default/versions/v1/instances/instance-1`.
531*d5c09012SAndroid Build Coastguard Worker  string name = 1;
532*d5c09012SAndroid Build Coastguard Worker
533*d5c09012SAndroid Build Coastguard Worker  // Public SSH key to add to the instance. Examples:
534*d5c09012SAndroid Build Coastguard Worker  //
535*d5c09012SAndroid Build Coastguard Worker  // * `[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]`
536*d5c09012SAndroid Build Coastguard Worker  // * `[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}`
537*d5c09012SAndroid Build Coastguard Worker  //
538*d5c09012SAndroid Build Coastguard Worker  // For more information, see
539*d5c09012SAndroid Build Coastguard Worker  // [Adding and Removing SSH Keys](https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
540*d5c09012SAndroid Build Coastguard Worker  string ssh_key = 2;
541*d5c09012SAndroid Build Coastguard Worker}
542*d5c09012SAndroid Build Coastguard Worker
543*d5c09012SAndroid Build Coastguard Worker// Firewall resources are used to define a collection of access control rules
544*d5c09012SAndroid Build Coastguard Worker// for an Application. Each rule is defined with a position which specifies
545*d5c09012SAndroid Build Coastguard Worker// the rule's order in the sequence of rules, an IP range to be matched against
546*d5c09012SAndroid Build Coastguard Worker// requests, and an action to take upon matching requests.
547*d5c09012SAndroid Build Coastguard Worker//
548*d5c09012SAndroid Build Coastguard Worker// Every request is evaluated against the Firewall rules in priority order.
549*d5c09012SAndroid Build Coastguard Worker// Processesing stops at the first rule which matches the request's IP address.
550*d5c09012SAndroid Build Coastguard Worker// A final rule always specifies an action that applies to all remaining
551*d5c09012SAndroid Build Coastguard Worker// IP addresses. The default final rule for a newly-created application will be
552*d5c09012SAndroid Build Coastguard Worker// set to "allow" if not otherwise specified by the user.
553*d5c09012SAndroid Build Coastguard Workerservice Firewall {
554*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
555*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
556*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
557*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
558*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
559*d5c09012SAndroid Build Coastguard Worker
560*d5c09012SAndroid Build Coastguard Worker  // Lists the firewall rules of an application.
561*d5c09012SAndroid Build Coastguard Worker  rpc ListIngressRules(ListIngressRulesRequest) returns (ListIngressRulesResponse) {
562*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
563*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=apps/*}/firewall/ingressRules"
564*d5c09012SAndroid Build Coastguard Worker    };
565*d5c09012SAndroid Build Coastguard Worker  }
566*d5c09012SAndroid Build Coastguard Worker
567*d5c09012SAndroid Build Coastguard Worker  // Replaces the entire firewall ruleset in one bulk operation. This overrides
568*d5c09012SAndroid Build Coastguard Worker  // and replaces the rules of an existing firewall with the new rules.
569*d5c09012SAndroid Build Coastguard Worker  //
570*d5c09012SAndroid Build Coastguard Worker  // If the final rule does not match traffic with the '*' wildcard IP range,
571*d5c09012SAndroid Build Coastguard Worker  // then an "allow all" rule is explicitly added to the end of the list.
572*d5c09012SAndroid Build Coastguard Worker  rpc BatchUpdateIngressRules(BatchUpdateIngressRulesRequest) returns (BatchUpdateIngressRulesResponse) {
573*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
574*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=apps/*/firewall/ingressRules}:batchUpdate"
575*d5c09012SAndroid Build Coastguard Worker      body: "*"
576*d5c09012SAndroid Build Coastguard Worker    };
577*d5c09012SAndroid Build Coastguard Worker  }
578*d5c09012SAndroid Build Coastguard Worker
579*d5c09012SAndroid Build Coastguard Worker  // Creates a firewall rule for the application.
580*d5c09012SAndroid Build Coastguard Worker  rpc CreateIngressRule(CreateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) {
581*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
582*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=apps/*}/firewall/ingressRules"
583*d5c09012SAndroid Build Coastguard Worker      body: "rule"
584*d5c09012SAndroid Build Coastguard Worker    };
585*d5c09012SAndroid Build Coastguard Worker  }
586*d5c09012SAndroid Build Coastguard Worker
587*d5c09012SAndroid Build Coastguard Worker  // Gets the specified firewall rule.
588*d5c09012SAndroid Build Coastguard Worker  rpc GetIngressRule(GetIngressRuleRequest) returns (google.appengine.v1.FirewallRule) {
589*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
590*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=apps/*/firewall/ingressRules/*}"
591*d5c09012SAndroid Build Coastguard Worker    };
592*d5c09012SAndroid Build Coastguard Worker  }
593*d5c09012SAndroid Build Coastguard Worker
594*d5c09012SAndroid Build Coastguard Worker  // Updates the specified firewall rule.
595*d5c09012SAndroid Build Coastguard Worker  rpc UpdateIngressRule(UpdateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) {
596*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
597*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{name=apps/*/firewall/ingressRules/*}"
598*d5c09012SAndroid Build Coastguard Worker      body: "rule"
599*d5c09012SAndroid Build Coastguard Worker    };
600*d5c09012SAndroid Build Coastguard Worker  }
601*d5c09012SAndroid Build Coastguard Worker
602*d5c09012SAndroid Build Coastguard Worker  // Deletes the specified firewall rule.
603*d5c09012SAndroid Build Coastguard Worker  rpc DeleteIngressRule(DeleteIngressRuleRequest) returns (google.protobuf.Empty) {
604*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
605*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=apps/*/firewall/ingressRules/*}"
606*d5c09012SAndroid Build Coastguard Worker    };
607*d5c09012SAndroid Build Coastguard Worker  }
608*d5c09012SAndroid Build Coastguard Worker}
609*d5c09012SAndroid Build Coastguard Worker
610*d5c09012SAndroid Build Coastguard Worker// Request message for `Firewall.ListIngressRules`.
611*d5c09012SAndroid Build Coastguard Workermessage ListIngressRulesRequest {
612*d5c09012SAndroid Build Coastguard Worker  // Name of the Firewall collection to retrieve.
613*d5c09012SAndroid Build Coastguard Worker  // Example: `apps/myapp/firewall/ingressRules`.
614*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
615*d5c09012SAndroid Build Coastguard Worker
616*d5c09012SAndroid Build Coastguard Worker  // Maximum results to return per page.
617*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
618*d5c09012SAndroid Build Coastguard Worker
619*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
620*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
621*d5c09012SAndroid Build Coastguard Worker
622*d5c09012SAndroid Build Coastguard Worker  // A valid IP Address. If set, only rules matching this address will be
623*d5c09012SAndroid Build Coastguard Worker  // returned. The first returned rule will be the rule that fires on requests
624*d5c09012SAndroid Build Coastguard Worker  // from this IP.
625*d5c09012SAndroid Build Coastguard Worker  string matching_address = 4;
626*d5c09012SAndroid Build Coastguard Worker}
627*d5c09012SAndroid Build Coastguard Worker
628*d5c09012SAndroid Build Coastguard Worker// Response message for `Firewall.ListIngressRules`.
629*d5c09012SAndroid Build Coastguard Workermessage ListIngressRulesResponse {
630*d5c09012SAndroid Build Coastguard Worker  // The ingress FirewallRules for this application.
631*d5c09012SAndroid Build Coastguard Worker  repeated google.appengine.v1.FirewallRule ingress_rules = 1;
632*d5c09012SAndroid Build Coastguard Worker
633*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
634*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
635*d5c09012SAndroid Build Coastguard Worker}
636*d5c09012SAndroid Build Coastguard Worker
637*d5c09012SAndroid Build Coastguard Worker// Request message for `Firewall.BatchUpdateIngressRules`.
638*d5c09012SAndroid Build Coastguard Workermessage BatchUpdateIngressRulesRequest {
639*d5c09012SAndroid Build Coastguard Worker  // Name of the Firewall collection to set.
640*d5c09012SAndroid Build Coastguard Worker  // Example: `apps/myapp/firewall/ingressRules`.
641*d5c09012SAndroid Build Coastguard Worker  string name = 1;
642*d5c09012SAndroid Build Coastguard Worker
643*d5c09012SAndroid Build Coastguard Worker  // A list of FirewallRules to replace the existing set.
644*d5c09012SAndroid Build Coastguard Worker  repeated google.appengine.v1.FirewallRule ingress_rules = 2;
645*d5c09012SAndroid Build Coastguard Worker}
646*d5c09012SAndroid Build Coastguard Worker
647*d5c09012SAndroid Build Coastguard Worker// Response message for `Firewall.UpdateAllIngressRules`.
648*d5c09012SAndroid Build Coastguard Workermessage BatchUpdateIngressRulesResponse {
649*d5c09012SAndroid Build Coastguard Worker  // The full list of ingress FirewallRules for this application.
650*d5c09012SAndroid Build Coastguard Worker  repeated google.appengine.v1.FirewallRule ingress_rules = 1;
651*d5c09012SAndroid Build Coastguard Worker}
652*d5c09012SAndroid Build Coastguard Worker
653*d5c09012SAndroid Build Coastguard Worker// Request message for `Firewall.CreateIngressRule`.
654*d5c09012SAndroid Build Coastguard Workermessage CreateIngressRuleRequest {
655*d5c09012SAndroid Build Coastguard Worker  // Name of the parent Firewall collection in which to create a new rule.
656*d5c09012SAndroid Build Coastguard Worker  // Example: `apps/myapp/firewall/ingressRules`.
657*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
658*d5c09012SAndroid Build Coastguard Worker
659*d5c09012SAndroid Build Coastguard Worker  // A FirewallRule containing the new resource.
660*d5c09012SAndroid Build Coastguard Worker  //
661*d5c09012SAndroid Build Coastguard Worker  // The user may optionally provide a position at which the new rule will be
662*d5c09012SAndroid Build Coastguard Worker  // placed. The positions define a sequential list starting at 1. If a rule
663*d5c09012SAndroid Build Coastguard Worker  // already exists at the given position, rules greater than the provided
664*d5c09012SAndroid Build Coastguard Worker  // position will be moved forward by one.
665*d5c09012SAndroid Build Coastguard Worker  //
666*d5c09012SAndroid Build Coastguard Worker  // If no position is provided, the server will place the rule as the second to
667*d5c09012SAndroid Build Coastguard Worker  // last rule in the sequence before the required default allow-all or deny-all
668*d5c09012SAndroid Build Coastguard Worker  // rule.
669*d5c09012SAndroid Build Coastguard Worker  google.appengine.v1.FirewallRule rule = 2;
670*d5c09012SAndroid Build Coastguard Worker}
671*d5c09012SAndroid Build Coastguard Worker
672*d5c09012SAndroid Build Coastguard Worker// Request message for `Firewall.GetIngressRule`.
673*d5c09012SAndroid Build Coastguard Workermessage GetIngressRuleRequest {
674*d5c09012SAndroid Build Coastguard Worker  // Name of the Firewall resource to retrieve.
675*d5c09012SAndroid Build Coastguard Worker  // Example: `apps/myapp/firewall/ingressRules/100`.
676*d5c09012SAndroid Build Coastguard Worker  string name = 1;
677*d5c09012SAndroid Build Coastguard Worker}
678*d5c09012SAndroid Build Coastguard Worker
679*d5c09012SAndroid Build Coastguard Worker// Request message for `Firewall.UpdateIngressRule`.
680*d5c09012SAndroid Build Coastguard Workermessage UpdateIngressRuleRequest {
681*d5c09012SAndroid Build Coastguard Worker  // Name of the Firewall resource to update.
682*d5c09012SAndroid Build Coastguard Worker  // Example: `apps/myapp/firewall/ingressRules/100`.
683*d5c09012SAndroid Build Coastguard Worker  string name = 1;
684*d5c09012SAndroid Build Coastguard Worker
685*d5c09012SAndroid Build Coastguard Worker  // A FirewallRule containing the updated resource
686*d5c09012SAndroid Build Coastguard Worker  google.appengine.v1.FirewallRule rule = 2;
687*d5c09012SAndroid Build Coastguard Worker
688*d5c09012SAndroid Build Coastguard Worker  // Standard field mask for the set of fields to be updated.
689*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
690*d5c09012SAndroid Build Coastguard Worker}
691*d5c09012SAndroid Build Coastguard Worker
692*d5c09012SAndroid Build Coastguard Worker// Request message for `Firewall.DeleteIngressRule`.
693*d5c09012SAndroid Build Coastguard Workermessage DeleteIngressRuleRequest {
694*d5c09012SAndroid Build Coastguard Worker  // Name of the Firewall resource to delete.
695*d5c09012SAndroid Build Coastguard Worker  // Example: `apps/myapp/firewall/ingressRules/100`.
696*d5c09012SAndroid Build Coastguard Worker  string name = 1;
697*d5c09012SAndroid Build Coastguard Worker}
698*d5c09012SAndroid Build Coastguard Worker
699*d5c09012SAndroid Build Coastguard Worker// Manages domains a user is authorized to administer. To authorize use of a
700*d5c09012SAndroid Build Coastguard Worker// domain, verify ownership via
701*d5c09012SAndroid Build Coastguard Worker// [Webmaster Central](https://www.google.com/webmasters/verification/home).
702*d5c09012SAndroid Build Coastguard Workerservice AuthorizedDomains {
703*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
704*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
705*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
706*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
707*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
708*d5c09012SAndroid Build Coastguard Worker
709*d5c09012SAndroid Build Coastguard Worker  // Lists all domains the user is authorized to administer.
710*d5c09012SAndroid Build Coastguard Worker  rpc ListAuthorizedDomains(ListAuthorizedDomainsRequest) returns (ListAuthorizedDomainsResponse) {
711*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
712*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=apps/*}/authorizedDomains"
713*d5c09012SAndroid Build Coastguard Worker    };
714*d5c09012SAndroid Build Coastguard Worker  }
715*d5c09012SAndroid Build Coastguard Worker}
716*d5c09012SAndroid Build Coastguard Worker
717*d5c09012SAndroid Build Coastguard Worker// Request message for `AuthorizedDomains.ListAuthorizedDomains`.
718*d5c09012SAndroid Build Coastguard Workermessage ListAuthorizedDomainsRequest {
719*d5c09012SAndroid Build Coastguard Worker  // Name of the parent Application resource. Example: `apps/myapp`.
720*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
721*d5c09012SAndroid Build Coastguard Worker
722*d5c09012SAndroid Build Coastguard Worker  // Maximum results to return per page.
723*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
724*d5c09012SAndroid Build Coastguard Worker
725*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
726*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
727*d5c09012SAndroid Build Coastguard Worker}
728*d5c09012SAndroid Build Coastguard Worker
729*d5c09012SAndroid Build Coastguard Worker// Response message for `AuthorizedDomains.ListAuthorizedDomains`.
730*d5c09012SAndroid Build Coastguard Workermessage ListAuthorizedDomainsResponse {
731*d5c09012SAndroid Build Coastguard Worker  // The authorized domains belonging to the user.
732*d5c09012SAndroid Build Coastguard Worker  repeated google.appengine.v1.AuthorizedDomain domains = 1;
733*d5c09012SAndroid Build Coastguard Worker
734*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
735*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
736*d5c09012SAndroid Build Coastguard Worker}
737*d5c09012SAndroid Build Coastguard Worker
738*d5c09012SAndroid Build Coastguard Worker// Manages SSL certificates a user is authorized to administer. A user can
739*d5c09012SAndroid Build Coastguard Worker// administer any SSL certificates applicable to their authorized domains.
740*d5c09012SAndroid Build Coastguard Workerservice AuthorizedCertificates {
741*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
742*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
743*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
744*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
745*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
746*d5c09012SAndroid Build Coastguard Worker
747*d5c09012SAndroid Build Coastguard Worker  // Lists all SSL certificates the user is authorized to administer.
748*d5c09012SAndroid Build Coastguard Worker  rpc ListAuthorizedCertificates(ListAuthorizedCertificatesRequest) returns (ListAuthorizedCertificatesResponse) {
749*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
750*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=apps/*}/authorizedCertificates"
751*d5c09012SAndroid Build Coastguard Worker    };
752*d5c09012SAndroid Build Coastguard Worker  }
753*d5c09012SAndroid Build Coastguard Worker
754*d5c09012SAndroid Build Coastguard Worker  // Gets the specified SSL certificate.
755*d5c09012SAndroid Build Coastguard Worker  rpc GetAuthorizedCertificate(GetAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) {
756*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
757*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=apps/*/authorizedCertificates/*}"
758*d5c09012SAndroid Build Coastguard Worker    };
759*d5c09012SAndroid Build Coastguard Worker  }
760*d5c09012SAndroid Build Coastguard Worker
761*d5c09012SAndroid Build Coastguard Worker  // Uploads the specified SSL certificate.
762*d5c09012SAndroid Build Coastguard Worker  rpc CreateAuthorizedCertificate(CreateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) {
763*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
764*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=apps/*}/authorizedCertificates"
765*d5c09012SAndroid Build Coastguard Worker      body: "certificate"
766*d5c09012SAndroid Build Coastguard Worker    };
767*d5c09012SAndroid Build Coastguard Worker  }
768*d5c09012SAndroid Build Coastguard Worker
769*d5c09012SAndroid Build Coastguard Worker  // Updates the specified SSL certificate. To renew a certificate and maintain
770*d5c09012SAndroid Build Coastguard Worker  // its existing domain mappings, update `certificate_data` with a new
771*d5c09012SAndroid Build Coastguard Worker  // certificate. The new certificate must be applicable to the same domains as
772*d5c09012SAndroid Build Coastguard Worker  // the original certificate. The certificate `display_name` may also be
773*d5c09012SAndroid Build Coastguard Worker  // updated.
774*d5c09012SAndroid Build Coastguard Worker  rpc UpdateAuthorizedCertificate(UpdateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) {
775*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
776*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{name=apps/*/authorizedCertificates/*}"
777*d5c09012SAndroid Build Coastguard Worker      body: "certificate"
778*d5c09012SAndroid Build Coastguard Worker    };
779*d5c09012SAndroid Build Coastguard Worker  }
780*d5c09012SAndroid Build Coastguard Worker
781*d5c09012SAndroid Build Coastguard Worker  // Deletes the specified SSL certificate.
782*d5c09012SAndroid Build Coastguard Worker  rpc DeleteAuthorizedCertificate(DeleteAuthorizedCertificateRequest) returns (google.protobuf.Empty) {
783*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
784*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=apps/*/authorizedCertificates/*}"
785*d5c09012SAndroid Build Coastguard Worker    };
786*d5c09012SAndroid Build Coastguard Worker  }
787*d5c09012SAndroid Build Coastguard Worker}
788*d5c09012SAndroid Build Coastguard Worker
789*d5c09012SAndroid Build Coastguard Worker// Request message for `AuthorizedCertificates.ListAuthorizedCertificates`.
790*d5c09012SAndroid Build Coastguard Workermessage ListAuthorizedCertificatesRequest {
791*d5c09012SAndroid Build Coastguard Worker  // Name of the parent `Application` resource. Example: `apps/myapp`.
792*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
793*d5c09012SAndroid Build Coastguard Worker
794*d5c09012SAndroid Build Coastguard Worker  // Controls the set of fields returned in the `LIST` response.
795*d5c09012SAndroid Build Coastguard Worker  AuthorizedCertificateView view = 4;
796*d5c09012SAndroid Build Coastguard Worker
797*d5c09012SAndroid Build Coastguard Worker  // Maximum results to return per page.
798*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
799*d5c09012SAndroid Build Coastguard Worker
800*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
801*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
802*d5c09012SAndroid Build Coastguard Worker}
803*d5c09012SAndroid Build Coastguard Worker
804*d5c09012SAndroid Build Coastguard Worker// Response message for `AuthorizedCertificates.ListAuthorizedCertificates`.
805*d5c09012SAndroid Build Coastguard Workermessage ListAuthorizedCertificatesResponse {
806*d5c09012SAndroid Build Coastguard Worker  // The SSL certificates the user is authorized to administer.
807*d5c09012SAndroid Build Coastguard Worker  repeated google.appengine.v1.AuthorizedCertificate certificates = 1;
808*d5c09012SAndroid Build Coastguard Worker
809*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
810*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
811*d5c09012SAndroid Build Coastguard Worker}
812*d5c09012SAndroid Build Coastguard Worker
813*d5c09012SAndroid Build Coastguard Worker// Request message for `AuthorizedCertificates.GetAuthorizedCertificate`.
814*d5c09012SAndroid Build Coastguard Workermessage GetAuthorizedCertificateRequest {
815*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example:
816*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/authorizedCertificates/12345`.
817*d5c09012SAndroid Build Coastguard Worker  string name = 1;
818*d5c09012SAndroid Build Coastguard Worker
819*d5c09012SAndroid Build Coastguard Worker  // Controls the set of fields returned in the `GET` response.
820*d5c09012SAndroid Build Coastguard Worker  AuthorizedCertificateView view = 2;
821*d5c09012SAndroid Build Coastguard Worker}
822*d5c09012SAndroid Build Coastguard Worker
823*d5c09012SAndroid Build Coastguard Worker// Fields that should be returned when an AuthorizedCertificate resource is
824*d5c09012SAndroid Build Coastguard Worker// retrieved.
825*d5c09012SAndroid Build Coastguard Workerenum AuthorizedCertificateView {
826*d5c09012SAndroid Build Coastguard Worker  // Basic certificate information, including applicable domains and expiration
827*d5c09012SAndroid Build Coastguard Worker  // date.
828*d5c09012SAndroid Build Coastguard Worker  BASIC_CERTIFICATE = 0;
829*d5c09012SAndroid Build Coastguard Worker
830*d5c09012SAndroid Build Coastguard Worker  // The information from `BASIC_CERTIFICATE`, plus detailed information on the
831*d5c09012SAndroid Build Coastguard Worker  // domain mappings that have this certificate mapped.
832*d5c09012SAndroid Build Coastguard Worker  FULL_CERTIFICATE = 1;
833*d5c09012SAndroid Build Coastguard Worker}
834*d5c09012SAndroid Build Coastguard Worker
835*d5c09012SAndroid Build Coastguard Worker// Request message for `AuthorizedCertificates.CreateAuthorizedCertificate`.
836*d5c09012SAndroid Build Coastguard Workermessage CreateAuthorizedCertificateRequest {
837*d5c09012SAndroid Build Coastguard Worker  // Name of the parent `Application` resource. Example: `apps/myapp`.
838*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
839*d5c09012SAndroid Build Coastguard Worker
840*d5c09012SAndroid Build Coastguard Worker  // SSL certificate data.
841*d5c09012SAndroid Build Coastguard Worker  google.appengine.v1.AuthorizedCertificate certificate = 2;
842*d5c09012SAndroid Build Coastguard Worker}
843*d5c09012SAndroid Build Coastguard Worker
844*d5c09012SAndroid Build Coastguard Worker// Request message for `AuthorizedCertificates.UpdateAuthorizedCertificate`.
845*d5c09012SAndroid Build Coastguard Workermessage UpdateAuthorizedCertificateRequest {
846*d5c09012SAndroid Build Coastguard Worker  // Name of the resource to update. Example:
847*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/authorizedCertificates/12345`.
848*d5c09012SAndroid Build Coastguard Worker  string name = 1;
849*d5c09012SAndroid Build Coastguard Worker
850*d5c09012SAndroid Build Coastguard Worker  // An `AuthorizedCertificate` containing the updated resource. Only fields set
851*d5c09012SAndroid Build Coastguard Worker  // in the field mask will be updated.
852*d5c09012SAndroid Build Coastguard Worker  google.appengine.v1.AuthorizedCertificate certificate = 2;
853*d5c09012SAndroid Build Coastguard Worker
854*d5c09012SAndroid Build Coastguard Worker  // Standard field mask for the set of fields to be updated. Updates are only
855*d5c09012SAndroid Build Coastguard Worker  // supported on the `certificate_raw_data` and `display_name` fields.
856*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
857*d5c09012SAndroid Build Coastguard Worker}
858*d5c09012SAndroid Build Coastguard Worker
859*d5c09012SAndroid Build Coastguard Worker// Request message for `AuthorizedCertificates.DeleteAuthorizedCertificate`.
860*d5c09012SAndroid Build Coastguard Workermessage DeleteAuthorizedCertificateRequest {
861*d5c09012SAndroid Build Coastguard Worker  // Name of the resource to delete. Example:
862*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/authorizedCertificates/12345`.
863*d5c09012SAndroid Build Coastguard Worker  string name = 1;
864*d5c09012SAndroid Build Coastguard Worker}
865*d5c09012SAndroid Build Coastguard Worker
866*d5c09012SAndroid Build Coastguard Worker// Manages domains serving an application.
867*d5c09012SAndroid Build Coastguard Workerservice DomainMappings {
868*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "appengine.googleapis.com";
869*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
870*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/appengine.admin,"
871*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
872*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only";
873*d5c09012SAndroid Build Coastguard Worker
874*d5c09012SAndroid Build Coastguard Worker  // Lists the domain mappings on an application.
875*d5c09012SAndroid Build Coastguard Worker  rpc ListDomainMappings(ListDomainMappingsRequest) returns (ListDomainMappingsResponse) {
876*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
877*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=apps/*}/domainMappings"
878*d5c09012SAndroid Build Coastguard Worker    };
879*d5c09012SAndroid Build Coastguard Worker  }
880*d5c09012SAndroid Build Coastguard Worker
881*d5c09012SAndroid Build Coastguard Worker  // Gets the specified domain mapping.
882*d5c09012SAndroid Build Coastguard Worker  rpc GetDomainMapping(GetDomainMappingRequest) returns (google.appengine.v1.DomainMapping) {
883*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
884*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=apps/*/domainMappings/*}"
885*d5c09012SAndroid Build Coastguard Worker    };
886*d5c09012SAndroid Build Coastguard Worker  }
887*d5c09012SAndroid Build Coastguard Worker
888*d5c09012SAndroid Build Coastguard Worker  // Maps a domain to an application. A user must be authorized to administer a
889*d5c09012SAndroid Build Coastguard Worker  // domain in order to map it to an application. For a list of available
890*d5c09012SAndroid Build Coastguard Worker  // authorized domains, see [`AuthorizedDomains.ListAuthorizedDomains`]().
891*d5c09012SAndroid Build Coastguard Worker  rpc CreateDomainMapping(CreateDomainMappingRequest) returns (google.longrunning.Operation) {
892*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
893*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=apps/*}/domainMappings"
894*d5c09012SAndroid Build Coastguard Worker      body: "domain_mapping"
895*d5c09012SAndroid Build Coastguard Worker    };
896*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
897*d5c09012SAndroid Build Coastguard Worker      response_type: "DomainMapping"
898*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
899*d5c09012SAndroid Build Coastguard Worker    };
900*d5c09012SAndroid Build Coastguard Worker  }
901*d5c09012SAndroid Build Coastguard Worker
902*d5c09012SAndroid Build Coastguard Worker  // Updates the specified domain mapping. To map an SSL certificate to a
903*d5c09012SAndroid Build Coastguard Worker  // domain mapping, update `certificate_id` to point to an `AuthorizedCertificate`
904*d5c09012SAndroid Build Coastguard Worker  // resource. A user must be authorized to administer the associated domain
905*d5c09012SAndroid Build Coastguard Worker  // in order to update a `DomainMapping` resource.
906*d5c09012SAndroid Build Coastguard Worker  rpc UpdateDomainMapping(UpdateDomainMappingRequest) returns (google.longrunning.Operation) {
907*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
908*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{name=apps/*/domainMappings/*}"
909*d5c09012SAndroid Build Coastguard Worker      body: "domain_mapping"
910*d5c09012SAndroid Build Coastguard Worker    };
911*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
912*d5c09012SAndroid Build Coastguard Worker      response_type: "DomainMapping"
913*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
914*d5c09012SAndroid Build Coastguard Worker    };
915*d5c09012SAndroid Build Coastguard Worker  }
916*d5c09012SAndroid Build Coastguard Worker
917*d5c09012SAndroid Build Coastguard Worker  // Deletes the specified domain mapping. A user must be authorized to
918*d5c09012SAndroid Build Coastguard Worker  // administer the associated domain in order to delete a `DomainMapping`
919*d5c09012SAndroid Build Coastguard Worker  // resource.
920*d5c09012SAndroid Build Coastguard Worker  rpc DeleteDomainMapping(DeleteDomainMappingRequest) returns (google.longrunning.Operation) {
921*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
922*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=apps/*/domainMappings/*}"
923*d5c09012SAndroid Build Coastguard Worker    };
924*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
925*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
926*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadataV1"
927*d5c09012SAndroid Build Coastguard Worker    };
928*d5c09012SAndroid Build Coastguard Worker  }
929*d5c09012SAndroid Build Coastguard Worker}
930*d5c09012SAndroid Build Coastguard Worker
931*d5c09012SAndroid Build Coastguard Worker// Request message for `DomainMappings.ListDomainMappings`.
932*d5c09012SAndroid Build Coastguard Workermessage ListDomainMappingsRequest {
933*d5c09012SAndroid Build Coastguard Worker  // Name of the parent Application resource. Example: `apps/myapp`.
934*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
935*d5c09012SAndroid Build Coastguard Worker
936*d5c09012SAndroid Build Coastguard Worker  // Maximum results to return per page.
937*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
938*d5c09012SAndroid Build Coastguard Worker
939*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
940*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
941*d5c09012SAndroid Build Coastguard Worker}
942*d5c09012SAndroid Build Coastguard Worker
943*d5c09012SAndroid Build Coastguard Worker// Response message for `DomainMappings.ListDomainMappings`.
944*d5c09012SAndroid Build Coastguard Workermessage ListDomainMappingsResponse {
945*d5c09012SAndroid Build Coastguard Worker  // The domain mappings for the application.
946*d5c09012SAndroid Build Coastguard Worker  repeated google.appengine.v1.DomainMapping domain_mappings = 1;
947*d5c09012SAndroid Build Coastguard Worker
948*d5c09012SAndroid Build Coastguard Worker  // Continuation token for fetching the next page of results.
949*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
950*d5c09012SAndroid Build Coastguard Worker}
951*d5c09012SAndroid Build Coastguard Worker
952*d5c09012SAndroid Build Coastguard Worker// Request message for `DomainMappings.GetDomainMapping`.
953*d5c09012SAndroid Build Coastguard Workermessage GetDomainMappingRequest {
954*d5c09012SAndroid Build Coastguard Worker  // Name of the resource requested. Example:
955*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/domainMappings/example.com`.
956*d5c09012SAndroid Build Coastguard Worker  string name = 1;
957*d5c09012SAndroid Build Coastguard Worker}
958*d5c09012SAndroid Build Coastguard Worker
959*d5c09012SAndroid Build Coastguard Worker// Override strategy for mutating an existing mapping.
960*d5c09012SAndroid Build Coastguard Workerenum DomainOverrideStrategy {
961*d5c09012SAndroid Build Coastguard Worker  // Strategy unspecified. Defaults to `STRICT`.
962*d5c09012SAndroid Build Coastguard Worker  UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY = 0;
963*d5c09012SAndroid Build Coastguard Worker
964*d5c09012SAndroid Build Coastguard Worker  // Overrides not allowed. If a mapping already exists for the
965*d5c09012SAndroid Build Coastguard Worker  // specified domain, the request will return an ALREADY_EXISTS (409).
966*d5c09012SAndroid Build Coastguard Worker  STRICT = 1;
967*d5c09012SAndroid Build Coastguard Worker
968*d5c09012SAndroid Build Coastguard Worker  // Overrides allowed. If a mapping already exists for the specified domain,
969*d5c09012SAndroid Build Coastguard Worker  // the request will overwrite it. Note that this might stop another
970*d5c09012SAndroid Build Coastguard Worker  // Google product from serving. For example, if the domain is
971*d5c09012SAndroid Build Coastguard Worker  // mapped to another App Engine application, that app will no
972*d5c09012SAndroid Build Coastguard Worker  // longer serve from that domain.
973*d5c09012SAndroid Build Coastguard Worker  OVERRIDE = 2;
974*d5c09012SAndroid Build Coastguard Worker}
975*d5c09012SAndroid Build Coastguard Worker
976*d5c09012SAndroid Build Coastguard Worker// Request message for `DomainMappings.CreateDomainMapping`.
977*d5c09012SAndroid Build Coastguard Workermessage CreateDomainMappingRequest {
978*d5c09012SAndroid Build Coastguard Worker  // Name of the parent Application resource. Example: `apps/myapp`.
979*d5c09012SAndroid Build Coastguard Worker  string parent = 1;
980*d5c09012SAndroid Build Coastguard Worker
981*d5c09012SAndroid Build Coastguard Worker  // Domain mapping configuration.
982*d5c09012SAndroid Build Coastguard Worker  google.appengine.v1.DomainMapping domain_mapping = 2;
983*d5c09012SAndroid Build Coastguard Worker
984*d5c09012SAndroid Build Coastguard Worker  // Whether the domain creation should override any existing mappings for this
985*d5c09012SAndroid Build Coastguard Worker  // domain. By default, overrides are rejected.
986*d5c09012SAndroid Build Coastguard Worker  DomainOverrideStrategy override_strategy = 4;
987*d5c09012SAndroid Build Coastguard Worker}
988*d5c09012SAndroid Build Coastguard Worker
989*d5c09012SAndroid Build Coastguard Worker// Request message for `DomainMappings.UpdateDomainMapping`.
990*d5c09012SAndroid Build Coastguard Workermessage UpdateDomainMappingRequest {
991*d5c09012SAndroid Build Coastguard Worker  // Name of the resource to update. Example:
992*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/domainMappings/example.com`.
993*d5c09012SAndroid Build Coastguard Worker  string name = 1;
994*d5c09012SAndroid Build Coastguard Worker
995*d5c09012SAndroid Build Coastguard Worker  // A domain mapping containing the updated resource. Only fields set
996*d5c09012SAndroid Build Coastguard Worker  // in the field mask will be updated.
997*d5c09012SAndroid Build Coastguard Worker  google.appengine.v1.DomainMapping domain_mapping = 2;
998*d5c09012SAndroid Build Coastguard Worker
999*d5c09012SAndroid Build Coastguard Worker  // Required. Standard field mask for the set of fields to be updated.
1000*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
1001*d5c09012SAndroid Build Coastguard Worker}
1002*d5c09012SAndroid Build Coastguard Worker
1003*d5c09012SAndroid Build Coastguard Worker// Request message for `DomainMappings.DeleteDomainMapping`.
1004*d5c09012SAndroid Build Coastguard Workermessage DeleteDomainMappingRequest {
1005*d5c09012SAndroid Build Coastguard Worker  // Name of the resource to delete. Example:
1006*d5c09012SAndroid Build Coastguard Worker  // `apps/myapp/domainMappings/example.com`.
1007*d5c09012SAndroid Build Coastguard Worker  string name = 1;
1008*d5c09012SAndroid Build Coastguard Worker}
1009