application.proto 6.2 KB

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