// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package google.appengine.v1; import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AppEngine.V1"; option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; option java_multiple_files = true; option java_outer_classname = "DomainMappingProto"; option java_package = "com.google.appengine.v1"; option php_namespace = "Google\\Cloud\\AppEngine\\V1"; option ruby_package = "Google::Cloud::AppEngine::V1"; // A domain serving an App Engine application. message DomainMapping { // Full path to the `DomainMapping` resource in the API. Example: // `apps/myapp/domainMapping/example.com`. // // @OutputOnly string name = 1; // Relative name of the domain serving the application. Example: // `example.com`. string id = 2; // SSL configuration for this domain. If unconfigured, this domain will not // serve with SSL. SslSettings ssl_settings = 3; // 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 repeated ResourceRecord resource_records = 4; } // SSL configuration for a `DomainMapping` resource. message SslSettings { // The SSL management type for this domain. enum SslManagementType { // Defaults to `AUTOMATIC`. SSL_MANAGEMENT_TYPE_UNSPECIFIED = 0; // SSL support for this domain is configured automatically. The mapped SSL // certificate will be automatically renewed. AUTOMATIC = 1; // 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 = 2; } // 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`. string certificate_id = 1; // 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. SslManagementType ssl_management_type = 3; // 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 string pending_managed_certificate_id = 4; } // A DNS resource record. message ResourceRecord { // A resource record type. enum RecordType { // An unknown resource record. RECORD_TYPE_UNSPECIFIED = 0; // An A resource record. Data is an IPv4 address. A = 1; // An AAAA resource record. Data is an IPv6 address. AAAA = 2; // A CNAME resource record. Data is a domain name to be aliased. CNAME = 3; } // Relative name of the object affected by this record. Only applicable for // `CNAME` records. Example: 'www'. string name = 1; // Data for this record. Values vary by record type, as defined in RFC 1035 // (section 5) and RFC 1034 (section 3.6.1). string rrdata = 2; // Resource record type. Example: `AAAA`. RecordType type = 3; }