/// [Google Cloud Endpoints]()
/// configuration for API handlers.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApiConfigHandler {
/// Action to take when users access resources that require
/// authentication. Defaults to `redirect`.
#[prost(enumeration = "AuthFailAction", tag = "1")]
pub auth_fail_action: i32,
/// Level of login required to access this resource. Defaults to
/// `optional`.
#[prost(enumeration = "LoginRequirement", tag = "2")]
pub login: i32,
/// Path to the script from the application root directory.
#[prost(string, tag = "3")]
pub script: ::prost::alloc::string::String,
/// Security (HTTPS) enforcement for this URL.
#[prost(enumeration = "SecurityLevel", tag = "4")]
pub security_level: i32,
/// URL to serve the endpoint at.
#[prost(string, tag = "5")]
pub url: ::prost::alloc::string::String,
}
/// Custom static error page to be served when an error occurs.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ErrorHandler {
/// Error condition this handler applies to.
#[prost(enumeration = "error_handler::ErrorCode", tag = "1")]
pub error_code: i32,
/// Static file content to be served for this error.
#[prost(string, tag = "2")]
pub static_file: ::prost::alloc::string::String,
/// MIME type of file. Defaults to `text/html`.
#[prost(string, tag = "3")]
pub mime_type: ::prost::alloc::string::String,
}
/// Nested message and enum types in `ErrorHandler`.
pub mod error_handler {
/// Error codes.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ErrorCode {
/// Not specified. ERROR_CODE_DEFAULT is assumed.
Unspecified = 0,
/// Application has exceeded a resource quota.
OverQuota = 1,
/// Client blocked by the application's Denial of Service protection
/// configuration.
DosApiDenial = 2,
/// Deadline reached before the application responds.
Timeout = 3,
}
}
/// URL pattern and description of how the URL should be handled. App Engine can
/// handle URLs by executing application code or by serving static files
/// uploaded with the version, such as images, CSS, or JavaScript.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UrlMap {
/// URL prefix. Uses regular expression syntax, which means regexp
/// special characters must be escaped, but should not contain groupings.
/// All URLs that begin with this prefix are handled by this handler, using the
/// portion of the URL after the prefix as part of the file path.
#[prost(string, tag = "1")]
pub url_regex: ::prost::alloc::string::String,
/// Security (HTTPS) enforcement for this URL.
#[prost(enumeration = "SecurityLevel", tag = "5")]
pub security_level: i32,
/// Level of login required to access this resource. Not supported for Node.js
/// in the App Engine standard environment.
#[prost(enumeration = "LoginRequirement", tag = "6")]
pub login: i32,
/// Action to take when users access resources that require
/// authentication. Defaults to `redirect`.
#[prost(enumeration = "AuthFailAction", tag = "7")]
pub auth_fail_action: i32,
/// `30x` code to use when performing redirects for the `secure` field.
/// Defaults to `302`.
#[prost(enumeration = "url_map::RedirectHttpResponseCode", tag = "8")]
pub redirect_http_response_code: i32,
/// Type of handler for this URL pattern.
#[prost(oneof = "url_map::HandlerType", tags = "2, 3, 4")]
pub handler_type: ::core::option::Option,
}
/// Nested message and enum types in `UrlMap`.
pub mod url_map {
/// Redirect codes.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RedirectHttpResponseCode {
/// Not specified. `302` is assumed.
Unspecified = 0,
/// `301 Moved Permanently` code.
RedirectHttpResponseCode301 = 1,
/// `302 Moved Temporarily` code.
RedirectHttpResponseCode302 = 2,
/// `303 See Other` code.
RedirectHttpResponseCode303 = 3,
/// `307 Temporary Redirect` code.
RedirectHttpResponseCode307 = 4,
}
/// Type of handler for this URL pattern.
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum HandlerType {
/// Returns the contents of a file, such as an image, as the response.
#[prost(message, tag = "2")]
StaticFiles(super::StaticFilesHandler),
/// Executes a script to handle the requests that match this URL
/// pattern. Only the `auto` value is supported for Node.js in the
/// App Engine standard environment, for example `"script": "auto"`.
#[prost(message, tag = "3")]
Script(super::ScriptHandler),
/// Uses API Endpoints to handle requests.
#[prost(message, tag = "4")]
ApiEndpoint(super::ApiEndpointHandler),
}
}
/// Files served directly to the user for a given URL, such as images, CSS
/// stylesheets, or JavaScript source files. Static file handlers describe which
/// files in the application directory are static files, and which URLs serve
/// them.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StaticFilesHandler {
/// Path to the static files matched by the URL pattern, from the
/// application root directory. The path can refer to text matched in groupings
/// in the URL pattern.
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
/// Regular expression that matches the file paths for all files that should be
/// referenced by this handler.
#[prost(string, tag = "2")]
pub upload_path_regex: ::prost::alloc::string::String,
/// HTTP headers to use for all responses from these URLs.
#[prost(map = "string, string", tag = "3")]
pub http_headers:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
/// MIME type used to serve all files served by this handler.
///
/// Defaults to file-specific MIME types, which are derived from each file's
/// filename extension.
#[prost(string, tag = "4")]
pub mime_type: ::prost::alloc::string::String,
/// Time a static file served by this handler should be cached
/// by web proxies and browsers.
#[prost(message, optional, tag = "5")]
pub expiration: ::core::option::Option<::prost_types::Duration>,
/// Whether this handler should match the request if the file
/// referenced by the handler does not exist.
#[prost(bool, tag = "6")]
pub require_matching_file: bool,
/// Whether files should also be uploaded as code data. By default, files
/// declared in static file handlers are uploaded as static
/// data and are only served to end users; they cannot be read by the
/// application. If enabled, uploads are charged against both your code and
/// static data storage resource quotas.
#[prost(bool, tag = "7")]
pub application_readable: bool,
}
/// Executes a script to handle the request that matches the URL pattern.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScriptHandler {
/// Path to the script from the application root directory.
#[prost(string, tag = "1")]
pub script_path: ::prost::alloc::string::String,
}
/// Uses Google Cloud Endpoints to handle requests.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApiEndpointHandler {
/// Path to the script from the application root directory.
#[prost(string, tag = "1")]
pub script_path: ::prost::alloc::string::String,
}
/// Health checking configuration for VM instances. Unhealthy instances
/// are killed and replaced with new instances. Only applicable for
/// instances in App Engine flexible environment.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HealthCheck {
/// Whether to explicitly disable health checks for this instance.
#[prost(bool, tag = "1")]
pub disable_health_check: bool,
/// Host header to send when performing an HTTP health check.
/// Example: "myapp.appspot.com"
#[prost(string, tag = "2")]
pub host: ::prost::alloc::string::String,
/// Number of consecutive successful health checks required before receiving
/// traffic.
#[prost(uint32, tag = "3")]
pub healthy_threshold: u32,
/// Number of consecutive failed health checks required before removing
/// traffic.
#[prost(uint32, tag = "4")]
pub unhealthy_threshold: u32,
/// Number of consecutive failed health checks required before an instance is
/// restarted.
#[prost(uint32, tag = "5")]
pub restart_threshold: u32,
/// Interval between health checks.
#[prost(message, optional, tag = "6")]
pub check_interval: ::core::option::Option<::prost_types::Duration>,
/// Time before the health check is considered failed.
#[prost(message, optional, tag = "7")]
pub timeout: ::core::option::Option<::prost_types::Duration>,
}
/// Readiness checking configuration for VM instances. Unhealthy instances
/// are removed from traffic rotation.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReadinessCheck {
/// The request path.
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
/// Host header to send when performing a HTTP Readiness check.
/// Example: "myapp.appspot.com"
#[prost(string, tag = "2")]
pub host: ::prost::alloc::string::String,
/// Number of consecutive failed checks required before removing
/// traffic.
#[prost(uint32, tag = "3")]
pub failure_threshold: u32,
/// Number of consecutive successful checks required before receiving
/// traffic.
#[prost(uint32, tag = "4")]
pub success_threshold: u32,
/// Interval between health checks.
#[prost(message, optional, tag = "5")]
pub check_interval: ::core::option::Option<::prost_types::Duration>,
/// Time before the check is considered failed.
#[prost(message, optional, tag = "6")]
pub timeout: ::core::option::Option<::prost_types::Duration>,
/// A maximum time limit on application initialization, measured from moment
/// the application successfully replies to a healthcheck until it is ready to
/// serve traffic.
#[prost(message, optional, tag = "7")]
pub app_start_timeout: ::core::option::Option<::prost_types::Duration>,
}
/// Health checking configuration for VM instances. Unhealthy instances
/// are killed and replaced with new instances.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LivenessCheck {
/// The request path.
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
/// Host header to send when performing a HTTP Liveness check.
/// Example: "myapp.appspot.com"
#[prost(string, tag = "2")]
pub host: ::prost::alloc::string::String,
/// Number of consecutive failed checks required before considering the
/// VM unhealthy.
#[prost(uint32, tag = "3")]
pub failure_threshold: u32,
/// Number of consecutive successful checks required before considering
/// the VM healthy.
#[prost(uint32, tag = "4")]
pub success_threshold: u32,
/// Interval between health checks.
#[prost(message, optional, tag = "5")]
pub check_interval: ::core::option::Option<::prost_types::Duration>,
/// Time before the check is considered failed.
#[prost(message, optional, tag = "6")]
pub timeout: ::core::option::Option<::prost_types::Duration>,
/// The initial delay before starting to execute the checks.
#[prost(message, optional, tag = "7")]
pub initial_delay: ::core::option::Option<::prost_types::Duration>,
}
/// Third-party Python runtime library that is required by the application.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Library {
/// Name of the library. Example: "django".
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Version of the library to select, or "latest".
#[prost(string, tag = "2")]
pub version: ::prost::alloc::string::String,
}
/// Actions to take when the user is not logged in.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AuthFailAction {
/// Not specified. `AUTH_FAIL_ACTION_REDIRECT` is assumed.
Unspecified = 0,
/// Redirects user to "accounts.google.com". The user is redirected back to the
/// application URL after signing in or creating an account.
Redirect = 1,
/// Rejects request with a `401` HTTP status code and an error
/// message.
Unauthorized = 2,
}
/// Methods to restrict access to a URL based on login status.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum LoginRequirement {
/// Not specified. `LOGIN_OPTIONAL` is assumed.
LoginUnspecified = 0,
/// Does not require that the user is signed in.
LoginOptional = 1,
/// If the user is not signed in, the `auth_fail_action` is taken.
/// In addition, if the user is not an administrator for the
/// application, they are given an error message regardless of
/// `auth_fail_action`. If the user is an administrator, the handler
/// proceeds.
LoginAdmin = 2,
/// If the user has signed in, the handler proceeds normally. Otherwise, the
/// auth_fail_action is taken.
LoginRequired = 3,
}
/// Methods to enforce security (HTTPS) on a URL.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SecurityLevel {
/// Not specified.
SecureUnspecified = 0,
/// Requests for a URL that match this handler that use HTTPS are automatically
/// redirected to the HTTP equivalent URL.
SecureNever = 1,
/// Both HTTP and HTTPS requests with URLs that match the handler succeed
/// without redirects. The application can examine the request to determine
/// which protocol was used and respond accordingly.
SecureOptional = 2,
/// Requests for a URL that match this handler that do not use HTTPS are
/// automatically redirected to the HTTPS URL with the same path. Query
/// parameters are reserved for the redirect.
SecureAlways = 3,
}
/// An Application resource contains the top-level configuration of an App
/// Engine application.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Application {
/// Full path to the Application resource in the API.
/// Example: `apps/myapp`.
///
/// @OutputOnly
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Identifier of the Application resource. This identifier is equivalent
/// to the project ID of the Google Cloud Platform project where you want to
/// deploy your application.
/// Example: `myapp`.
#[prost(string, tag = "2")]
pub id: ::prost::alloc::string::String,
/// HTTP path dispatch rules for requests to the application that do not
/// explicitly target a service or version. Rules are order-dependent.
/// Up to 20 dispatch rules can be supported.
#[prost(message, repeated, tag = "3")]
pub dispatch_rules: ::prost::alloc::vec::Vec,
/// Google Apps authentication domain that controls which users can access
/// this application.
///
/// Defaults to open access for any Google Account.
#[prost(string, tag = "6")]
pub auth_domain: ::prost::alloc::string::String,
/// Location from which this application runs. Application instances
/// run out of the data centers in the specified location, which is also where
/// all of the application's end user content is stored.
///
/// Defaults to `us-central`.
///
/// View the list of
/// [supported locations]().
#[prost(string, tag = "7")]
pub location_id: ::prost::alloc::string::String,
/// Google Cloud Storage bucket that can be used for storing files
/// associated with this application. This bucket is associated with the
/// application and can be used by the gcloud deployment commands.
///
/// @OutputOnly
#[prost(string, tag = "8")]
pub code_bucket: ::prost::alloc::string::String,
/// Cookie expiration policy for this application.
#[prost(message, optional, tag = "9")]
pub default_cookie_expiration: ::core::option::Option<::prost_types::Duration>,
/// Serving status of this application.
#[prost(enumeration = "application::ServingStatus", tag = "10")]
pub serving_status: i32,
/// Hostname used to reach this application, as resolved by App Engine.
///
/// @OutputOnly
#[prost(string, tag = "11")]
pub default_hostname: ::prost::alloc::string::String,
/// Google Cloud Storage bucket that can be used by this application to store
/// content.
///
/// @OutputOnly
#[prost(string, tag = "12")]
pub default_bucket: ::prost::alloc::string::String,
#[prost(message, optional, tag = "14")]
pub iap: ::core::option::Option,
/// The Google Container Registry domain used for storing managed build docker
/// images for this application.
#[prost(string, tag = "16")]
pub gcr_domain: ::prost::alloc::string::String,
/// The type of the Cloud Firestore or Cloud Datastore database associated with
/// this application.
#[prost(enumeration = "application::DatabaseType", tag = "17")]
pub database_type: i32,
/// The feature specific settings to be used in the application.
#[prost(message, optional, tag = "18")]
pub feature_settings: ::core::option::Option,
}
/// Nested message and enum types in `Application`.
pub mod application {
/// Identity-Aware Proxy
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdentityAwareProxy {
/// Whether the serving infrastructure will authenticate and
/// authorize all incoming requests.
///
/// If true, the `oauth2_client_id` and `oauth2_client_secret`
/// fields must be non-empty.
#[prost(bool, tag = "1")]
pub enabled: bool,
/// OAuth2 client ID to use for the authentication flow.
#[prost(string, tag = "2")]
pub oauth2_client_id: ::prost::alloc::string::String,
/// OAuth2 client secret to use for the authentication flow.
///
/// For security reasons, this value cannot be retrieved via the API.
/// Instead, the SHA-256 hash of the value is returned in the
/// `oauth2_client_secret_sha256` field.
///
/// @InputOnly
#[prost(string, tag = "3")]
pub oauth2_client_secret: ::prost::alloc::string::String,
/// Hex-encoded SHA-256 hash of the client secret.
///
/// @OutputOnly
#[prost(string, tag = "4")]
pub oauth2_client_secret_sha256: ::prost::alloc::string::String,
}
/// The feature specific settings to be used in the application. These define
/// behaviors that are user configurable.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeatureSettings {
/// Boolean value indicating if split health checks should be used instead
/// of the legacy health checks. At an app.yaml level, this means defaulting
/// to 'readiness_check' and 'liveness_check' values instead of
/// 'health_check' ones. Once the legacy 'health_check' behavior is
/// deprecated, and this value is always true, this setting can
/// be removed.
#[prost(bool, tag = "1")]
pub split_health_checks: bool,
/// If true, use [Container-Optimized OS]()
/// base image for VMs, rather than a base Debian image.
#[prost(bool, tag = "2")]
pub use_container_optimized_os: bool,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ServingStatus {
/// Serving status is unspecified.
Unspecified = 0,
/// Application is serving.
Serving = 1,
/// Application has been disabled by the user.
UserDisabled = 2,
/// Application has been disabled by the system.
SystemDisabled = 3,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DatabaseType {
/// Database type is unspecified.
Unspecified = 0,
/// Cloud Datastore
CloudDatastore = 1,
/// Cloud Firestore Native
CloudFirestore = 2,
/// Cloud Firestore in Datastore Mode
CloudDatastoreCompatibility = 3,
}
}
/// Rules to match an HTTP request and dispatch that request to a service.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UrlDispatchRule {
/// Domain name to match against. The wildcard "`*`" is supported if
/// specified before a period: "`*.`".
///
/// Defaults to matching all domains: "`*`".
#[prost(string, tag = "1")]
pub domain: ::prost::alloc::string::String,
/// Pathname within the host. Must start with a "`/`". A
/// single "`*`" can be included at the end of the path.
///
/// The sum of the lengths of the domain and path may not
/// exceed 100 characters.
#[prost(string, tag = "2")]
pub path: ::prost::alloc::string::String,
/// Resource ID of a service in this application that should
/// serve the matched request. The service must already
/// exist. Example: `default`.
#[prost(string, tag = "3")]
pub service: ::prost::alloc::string::String,
}
/// An SSL certificate that a user has been authorized to administer. A user
/// is authorized to administer any certificate that applies to one of their
/// authorized domains.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AuthorizedCertificate {
/// Full path to the `AuthorizedCertificate` resource in the API. Example:
/// `apps/myapp/authorizedCertificates/12345`.
///
/// @OutputOnly
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Relative name of the certificate. This is a unique value autogenerated
/// on `AuthorizedCertificate` resource creation. Example: `12345`.
///
/// @OutputOnly
#[prost(string, tag = "2")]
pub id: ::prost::alloc::string::String,
/// The user-specified display name of the certificate. This is not
/// guaranteed to be unique. Example: `My Certificate`.
#[prost(string, tag = "3")]
pub display_name: ::prost::alloc::string::String,
/// Topmost applicable domains of this certificate. This certificate
/// applies to these domains and their subdomains. Example: `example.com`.
///
/// @OutputOnly
#[prost(string, repeated, tag = "4")]
pub domain_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The time when this certificate expires. To update the renewal time on this
/// certificate, upload an SSL certificate with a different expiration time
/// using \[`AuthorizedCertificates.UpdateAuthorizedCertificate`\]().
///
/// @OutputOnly
#[prost(message, optional, tag = "5")]
pub expire_time: ::core::option::Option<::prost_types::Timestamp>,
/// The SSL certificate serving the `AuthorizedCertificate` resource. This
/// must be obtained independently from a certificate authority.
#[prost(message, optional, tag = "6")]
pub certificate_raw_data: ::core::option::Option,
/// Only applicable if this certificate is managed by App Engine. Managed
/// certificates are tied to the lifecycle of a `DomainMapping` and cannot be
/// updated or deleted via the `AuthorizedCertificates` API. If this
/// certificate is manually administered by the user, this field will be empty.
///
/// @OutputOnly
#[prost(message, optional, tag = "7")]
pub managed_certificate: ::core::option::Option,
/// The full paths to user visible Domain Mapping resources that have this
/// certificate mapped. Example: `apps/myapp/domainMappings/example.com`.
///
/// This may not represent the full list of mapped domain mappings if the user
/// does not have `VIEWER` permissions on all of the applications that have
/// this certificate mapped. See `domain_mappings_count` for a complete count.
///
/// Only returned by `GET` or `LIST` requests when specifically requested by
/// the `view=FULL_CERTIFICATE` option.
///
/// @OutputOnly
#[prost(string, repeated, tag = "8")]
pub visible_domain_mappings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// Aggregate count of the domain mappings with this certificate mapped. This
/// count includes domain mappings on applications for which the user does not
/// have `VIEWER` permissions.
///
/// Only returned by `GET` or `LIST` requests when specifically requested by
/// the `view=FULL_CERTIFICATE` option.
///
/// @OutputOnly
#[prost(int32, tag = "9")]
pub domain_mappings_count: i32,
}
/// An SSL certificate obtained from a certificate authority.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CertificateRawData {
/// PEM encoded x.509 public key certificate. This field is set once on
/// certificate creation. Must include the header and footer. Example:
///
#[prost(string, tag = "1")]
pub public_certificate: ::prost::alloc::string::String,
/// Unencrypted PEM encoded RSA private key. This field is set once on
/// certificate creation and then encrypted. The key size must be 2048
/// bits or fewer. Must include the header and footer. Example:
///
/// @InputOnly
#[prost(string, tag = "2")]
pub private_key: ::prost::alloc::string::String,
}
/// A certificate managed by App Engine.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ManagedCertificate {
/// Time at which the certificate was last renewed. The renewal process is
/// fully managed. Certificate renewal will automatically occur before the
/// certificate expires. Renewal errors can be tracked via `ManagementStatus`.
///
/// @OutputOnly
#[prost(message, optional, tag = "1")]
pub last_renewal_time: ::core::option::Option<::prost_types::Timestamp>,
/// Status of certificate management. Refers to the most recent certificate
/// acquisition or renewal attempt.
///
/// @OutputOnly
#[prost(enumeration = "ManagementStatus", tag = "2")]
pub status: i32,
}
/// State of certificate management. Refers to the most recent certificate
/// acquisition or renewal attempt.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ManagementStatus {
Unspecified = 0,
/// Certificate was successfully obtained and inserted into the serving
/// system.
Ok = 1,
/// Certificate is under active attempts to acquire or renew.
Pending = 2,
/// Most recent renewal failed due to an invalid DNS setup and will be
/// retried. Renewal attempts will continue to fail until the certificate
/// domain's DNS configuration is fixed. The last successfully provisioned
/// certificate may still be serving.
FailedRetryingNotVisible = 4,
/// All renewal attempts have been exhausted, likely due to an invalid DNS
/// setup.
FailedPermanent = 6,
/// Most recent renewal failed due to an explicit CAA record that does not
/// include one of the in-use CAs (Google CA and Let's Encrypt). Renewals will
/// continue to fail until the CAA is reconfigured. The last successfully
/// provisioned certificate may still be serving.
FailedRetryingCaaForbidden = 7,
/// Most recent renewal failed due to a CAA retrieval failure. This means that
/// the domain's DNS provider does not properly handle CAA records, failing
/// requests for CAA records when no CAA records are defined. Renewals will
/// continue to fail until the DNS provider is changed or a CAA record is
/// added for the given domain. The last successfully provisioned certificate
/// may still be serving.
FailedRetryingCaaChecking = 8,
}
/// A domain that a user has been authorized to administer. To authorize use
/// of a domain, verify ownership via
/// [Webmaster Central]().
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AuthorizedDomain {
/// Full path to the `AuthorizedDomain` resource in the API. Example:
/// `apps/myapp/authorizedDomains/example.com`.
///
/// @OutputOnly
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Fully qualified domain name of the domain authorized for use. Example:
/// `example.com`.
#[prost(string, tag = "2")]
pub id: ::prost::alloc::string::String,
}
/// A domain serving an App Engine application.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DomainMapping {
/// Full path to the `DomainMapping` resource in the API. Example:
/// `apps/myapp/domainMapping/example.com`.
///
/// @OutputOnly
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Relative name of the domain serving the application. Example:
/// `example.com`.
#[prost(string, tag = "2")]
pub id: ::prost::alloc::string::String,
/// SSL configuration for this domain. If unconfigured, this domain will not
/// serve with SSL.
#[prost(message, optional, tag = "3")]
pub ssl_settings: ::core::option::Option,
/// The resource records required to configure this domain mapping. These
/// records must be added to the domain's DNS configuration in order to
/// serve the application via this domain mapping.
///
/// @OutputOnly
#[prost(message, repeated, tag = "4")]
pub resource_records: ::prost::alloc::vec::Vec,
}
/// SSL configuration for a `DomainMapping` resource.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SslSettings {
/// ID of the `AuthorizedCertificate` resource configuring SSL for the
/// application. Clearing this field will remove SSL support.
///
/// By default, a managed certificate is automatically created for every
/// domain mapping. To omit SSL support or to configure SSL manually, specify
/// `SslManagementType.MANUAL` on a `CREATE` or `UPDATE` request. You must
/// be authorized to administer the `AuthorizedCertificate` resource to
/// manually map it to a `DomainMapping` resource.
/// Example: `12345`.
#[prost(string, tag = "1")]
pub certificate_id: ::prost::alloc::string::String,
/// SSL management type for this domain. If `AUTOMATIC`, a managed certificate
/// is automatically provisioned. If `MANUAL`, `certificate_id` must be
/// manually specified in order to configure SSL for this domain.
#[prost(enumeration = "ssl_settings::SslManagementType", tag = "3")]
pub ssl_management_type: i32,
/// ID of the managed `AuthorizedCertificate` resource currently being
/// provisioned, if applicable. Until the new managed certificate has been
/// successfully provisioned, the previous SSL state will be preserved. Once
/// the provisioning process completes, the `certificate_id` field will reflect
/// the new managed certificate and this field will be left empty. To remove
/// SSL support while there is still a pending managed certificate, clear the
/// `certificate_id` field with an `UpdateDomainMappingRequest`.
///
/// @OutputOnly
#[prost(string, tag = "4")]
pub pending_managed_certificate_id: ::prost::alloc::string::String,
}
/// Nested message and enum types in `SslSettings`.
pub mod ssl_settings {
/// The SSL management type for this domain.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SslManagementType {
/// SSL support for this domain is configured automatically. The mapped SSL
/// certificate will be automatically renewed.
Automatic = 0,
/// SSL support for this domain is configured manually by the user. Either
/// the domain has no SSL support or a user-obtained SSL certificate has been
/// explictly mapped to this domain.
Manual = 1,
}
}
/// A DNS resource record.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceRecord {
/// Relative name of the object affected by this record. Only applicable for
/// `CNAME` records. Example: 'www'.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Data for this record. Values vary by record type, as defined in RFC 1035
/// (section 5) and RFC 1034 (section 3.6.1).
#[prost(string, tag = "2")]
pub rrdata: ::prost::alloc::string::String,
/// Resource record type. Example: `AAAA`.
#[prost(enumeration = "resource_record::RecordType", tag = "3")]
pub r#type: i32,
}
/// Nested message and enum types in `ResourceRecord`.
pub mod resource_record {
/// A resource record type.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RecordType {
/// An A resource record. Data is an IPv4 address.
A = 0,
/// An AAAA resource record. Data is an IPv6 address.
Aaaa = 1,
/// A CNAME resource record. Data is a domain name to be aliased.
Cname = 2,
}
}
/// A single firewall rule that is evaluated against incoming traffic
/// and provides an action to take on matched requests.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FirewallRule {
/// A positive integer between [1, Int32.MaxValue-1] that defines the order of
/// rule evaluation. Rules with the lowest priority are evaluated first.
///
/// A default rule at priority Int32.MaxValue matches all IPv4 and IPv6 traffic
/// when no previous rule matches. Only the action of this rule can be modified
/// by the user.
#[prost(int32, tag = "1")]
pub priority: i32,
/// The action to take on matched requests.
#[prost(enumeration = "firewall_rule::Action", tag = "2")]
pub action: i32,
/// IP address or range, defined using CIDR notation, of requests that this
/// rule applies to. You can use the wildcard character "*" to match all IPs
/// equivalent to "0/0" and "::/0" together.
/// Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32`
/// or `2001:0db8:0000:0042:0000:8a2e:0370:7334`.
///
///
///
Truncation will be silently performed on addresses which are not
/// properly truncated. For example, `1.2.3.4/24` is accepted as the same
/// address as `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` is accepted
/// as the same address as `2001:db8::/32`.
#[prost(string, tag = "3")]
pub source_range: ::prost::alloc::string::String,
/// An optional string description of this rule.
/// This field has a maximum length of 100 characters.
#[prost(string, tag = "4")]
pub description: ::prost::alloc::string::String,
}
/// Nested message and enum types in `FirewallRule`.
pub mod firewall_rule {
/// Available actions to take on matching requests.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Action {
UnspecifiedAction = 0,
/// Matching requests are allowed.
Allow = 1,
/// Matching requests are denied.
Deny = 2,
}
}
/// An Instance resource is the computing unit that App Engine uses to
/// automatically scale an application.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Instance {
/// Output only. Full path to the Instance resource in the API.
/// Example: `apps/myapp/services/default/versions/v1/instances/instance-1`.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Output only. Relative name of the instance within the version.
/// Example: `instance-1`.
#[prost(string, tag = "2")]
pub id: ::prost::alloc::string::String,
/// Output only. App Engine release this instance is running on.
#[prost(string, tag = "3")]
pub app_engine_release: ::prost::alloc::string::String,
/// Output only. Availability of the instance.
#[prost(enumeration = "instance::Availability", tag = "4")]
pub availability: i32,
/// Output only. Name of the virtual machine where this instance lives. Only applicable
/// for instances in App Engine flexible environment.
#[prost(string, tag = "5")]
pub vm_name: ::prost::alloc::string::String,
/// Output only. Zone where the virtual machine is located. Only applicable for instances
/// in App Engine flexible environment.
#[prost(string, tag = "6")]
pub vm_zone_name: ::prost::alloc::string::String,
/// Output only. Virtual machine ID of this instance. Only applicable for instances in
/// App Engine flexible environment.
#[prost(string, tag = "7")]
pub vm_id: ::prost::alloc::string::String,
/// Output only. Time that this instance was started.
///
/// @OutputOnly
#[prost(message, optional, tag = "8")]
pub start_time: ::core::option::Option<::prost_types::Timestamp>,
/// Output only. Number of requests since this instance was started.
#[prost(int32, tag = "9")]
pub requests: i32,
/// Output only. Number of errors since this instance was started.
#[prost(int32, tag = "10")]
pub errors: i32,
/// Output only. Average queries per second (QPS) over the last minute.
#[prost(float, tag = "11")]
pub qps: f32,
/// Output only. Average latency (ms) over the last minute.
#[prost(int32, tag = "12")]
pub average_latency: i32,
/// Output only. Total memory in use (bytes).
#[prost(int64, tag = "13")]
pub memory_usage: i64,
/// Output only. Status of the virtual machine where this instance lives. Only applicable
/// for instances in App Engine flexible environment.
#[prost(string, tag = "14")]
pub vm_status: ::prost::alloc::string::String,
/// Output only. Whether this instance is in debug mode. Only applicable for instances in
/// App Engine flexible environment.
#[prost(bool, tag = "15")]
pub vm_debug_enabled: bool,
/// Output only. The IP address of this instance. Only applicable for instances in App
/// Engine flexible environment.
#[prost(string, tag = "16")]
pub vm_ip: ::prost::alloc::string::String,
/// Output only. The liveness health check of this instance. Only applicable for instances
/// in App Engine flexible environment.
#[prost(enumeration = "instance::liveness::LivenessState", tag = "17")]
pub vm_liveness: i32,
}
/// Nested message and enum types in `Instance`.
pub mod instance {
/// Wrapper for LivenessState enum.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Liveness {}
/// Nested message and enum types in `Liveness`.
pub mod liveness {
/// Liveness health check status for Flex instances.
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
)]
#[repr(i32)]
pub enum LivenessState {
/// There is no liveness health check for the instance. Only applicable for
/// instances in App Engine standard environment.
Unspecified = 0,
/// The health checking system is aware of the instance but its health is
/// not known at the moment.
Unknown = 1,
/// The instance is reachable i.e. a connection to the application health
/// checking endpoint can be established, and conforms to the requirements
/// defined by the health check.
Healthy = 2,
/// The instance is reachable, but does not conform to the requirements
/// defined by the health check.
Unhealthy = 3,
/// The instance is being drained. The existing connections to the instance
/// have time to complete, but the new ones are being refused.
Draining = 4,
/// The instance is unreachable i.e. a connection to the application health
/// checking endpoint cannot be established, or the server does not respond
/// within the specified timeout.
Timeout = 5,
}
}
/// Availability of the instance.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Availability {
Unspecified = 0,
Resident = 1,
Dynamic = 2,
}
}
/// Code and application artifacts used to deploy a version to App Engine.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Deployment {
/// Manifest of the files stored in Google Cloud Storage that are included
/// as part of this version. All files must be readable using the
/// credentials supplied with this call.
#[prost(map = "string, message", tag = "1")]
pub files: ::std::collections::HashMap<::prost::alloc::string::String, FileInfo>,
/// The Docker image for the container that runs the version.
/// Only applicable for instances running in the App Engine flexible environment.
#[prost(message, optional, tag = "2")]
pub container: ::core::option::Option,
/// The zip file for this deployment, if this is a zip deployment.
#[prost(message, optional, tag = "3")]
pub zip: ::core::option::Option,
/// Google Cloud Build build information. Only applicable for instances running
/// in the App Engine flexible environment.
#[prost(message, optional, tag = "5")]
pub build: ::core::option::Option,
/// Options for any Google Cloud Build builds created as a part of this
/// deployment.
///
/// These options will only be used if a new build is created, such as when
/// deploying to the App Engine flexible environment using files or zip.
#[prost(message, optional, tag = "6")]
pub cloud_build_options: ::core::option::Option,
}
/// Single source file that is part of the version to be deployed. Each source
/// file that is deployed must be specified separately.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileInfo {
/// URL source to use to fetch this file. Must be a URL to a resource in
/// Google Cloud Storage in the form
/// 'http(s)://storage.googleapis.com/\/\