appengine.proto 38 KB

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