application.proto 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. // Copyright 2022 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.v1;
  16. import "google/protobuf/duration.proto";
  17. option csharp_namespace = "Google.Cloud.AppEngine.V1";
  18. option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
  19. option java_multiple_files = true;
  20. option java_outer_classname = "ApplicationProto";
  21. option java_package = "com.google.appengine.v1";
  22. option php_namespace = "Google\\Cloud\\AppEngine\\V1";
  23. option ruby_package = "Google::Cloud::AppEngine::V1";
  24. // An Application resource contains the top-level configuration of an App
  25. // Engine application.
  26. message Application {
  27. enum ServingStatus {
  28. // Serving status is unspecified.
  29. UNSPECIFIED = 0;
  30. // Application is serving.
  31. SERVING = 1;
  32. // Application has been disabled by the user.
  33. USER_DISABLED = 2;
  34. // Application has been disabled by the system.
  35. SYSTEM_DISABLED = 3;
  36. }
  37. // Identity-Aware Proxy
  38. message IdentityAwareProxy {
  39. // Whether the serving infrastructure will authenticate and
  40. // authorize all incoming requests.
  41. //
  42. // If true, the `oauth2_client_id` and `oauth2_client_secret`
  43. // fields must be non-empty.
  44. bool enabled = 1;
  45. // OAuth2 client ID to use for the authentication flow.
  46. string oauth2_client_id = 2;
  47. // OAuth2 client secret to use for the authentication flow.
  48. //
  49. // For security reasons, this value cannot be retrieved via the API.
  50. // Instead, the SHA-256 hash of the value is returned in the
  51. // `oauth2_client_secret_sha256` field.
  52. //
  53. // @InputOnly
  54. string oauth2_client_secret = 3;
  55. // Hex-encoded SHA-256 hash of the client secret.
  56. //
  57. // @OutputOnly
  58. string oauth2_client_secret_sha256 = 4;
  59. }
  60. enum DatabaseType {
  61. // Database type is unspecified.
  62. DATABASE_TYPE_UNSPECIFIED = 0;
  63. // Cloud Datastore
  64. CLOUD_DATASTORE = 1;
  65. // Cloud Firestore Native
  66. CLOUD_FIRESTORE = 2;
  67. // Cloud Firestore in Datastore Mode
  68. CLOUD_DATASTORE_COMPATIBILITY = 3;
  69. }
  70. // The feature specific settings to be used in the application. These define
  71. // behaviors that are user configurable.
  72. message FeatureSettings {
  73. // Boolean value indicating if split health checks should be used instead
  74. // of the legacy health checks. At an app.yaml level, this means defaulting
  75. // to 'readiness_check' and 'liveness_check' values instead of
  76. // 'health_check' ones. Once the legacy 'health_check' behavior is
  77. // deprecated, and this value is always true, this setting can
  78. // be removed.
  79. bool split_health_checks = 1;
  80. // If true, use [Container-Optimized OS](https://cloud.google.com/container-optimized-os/)
  81. // base image for VMs, rather than a base Debian image.
  82. bool use_container_optimized_os = 2;
  83. }
  84. // Full path to the Application resource in the API.
  85. // Example: `apps/myapp`.
  86. //
  87. // @OutputOnly
  88. string name = 1;
  89. // Identifier of the Application resource. This identifier is equivalent
  90. // to the project ID of the Google Cloud Platform project where you want to
  91. // deploy your application.
  92. // Example: `myapp`.
  93. string id = 2;
  94. // HTTP path dispatch rules for requests to the application that do not
  95. // explicitly target a service or version. Rules are order-dependent.
  96. // Up to 20 dispatch rules can be supported.
  97. repeated UrlDispatchRule dispatch_rules = 3;
  98. // Google Apps authentication domain that controls which users can access
  99. // this application.
  100. //
  101. // Defaults to open access for any Google Account.
  102. string auth_domain = 6;
  103. // Location from which this application runs. Application instances
  104. // run out of the data centers in the specified location, which is also where
  105. // all of the application's end user content is stored.
  106. //
  107. // Defaults to `us-central`.
  108. //
  109. // View the list of
  110. // [supported locations](https://cloud.google.com/appengine/docs/locations).
  111. string location_id = 7;
  112. // Google Cloud Storage bucket that can be used for storing files
  113. // associated with this application. This bucket is associated with the
  114. // application and can be used by the gcloud deployment commands.
  115. //
  116. // @OutputOnly
  117. string code_bucket = 8;
  118. // Cookie expiration policy for this application.
  119. google.protobuf.Duration default_cookie_expiration = 9;
  120. // Serving status of this application.
  121. ServingStatus serving_status = 10;
  122. // Hostname used to reach this application, as resolved by App Engine.
  123. //
  124. // @OutputOnly
  125. string default_hostname = 11;
  126. // Google Cloud Storage bucket that can be used by this application to store
  127. // content.
  128. //
  129. // @OutputOnly
  130. string default_bucket = 12;
  131. // The service account associated with the application.
  132. // This is the app-level default identity. If no identity provided during
  133. // create version, Admin API will fallback to this one.
  134. string service_account = 13;
  135. IdentityAwareProxy iap = 14;
  136. // The Google Container Registry domain used for storing managed build docker
  137. // images for this application.
  138. string gcr_domain = 16;
  139. // The type of the Cloud Firestore or Cloud Datastore database associated with
  140. // this application.
  141. DatabaseType database_type = 17;
  142. // The feature specific settings to be used in the application.
  143. FeatureSettings feature_settings = 18;
  144. }
  145. // Rules to match an HTTP request and dispatch that request to a service.
  146. message UrlDispatchRule {
  147. // Domain name to match against. The wildcard "`*`" is supported if
  148. // specified before a period: "`*.`".
  149. //
  150. // Defaults to matching all domains: "`*`".
  151. string domain = 1;
  152. // Pathname within the host. Must start with a "`/`". A
  153. // single "`*`" can be included at the end of the path.
  154. //
  155. // The sum of the lengths of the domain and path may not
  156. // exceed 100 characters.
  157. string path = 2;
  158. // Resource ID of a service in this application that should
  159. // serve the matched request. The service must already
  160. // exist. Example: `default`.
  161. string service = 3;
  162. }