xref: /aosp_15_r20/external/googleapis/google/appengine/v1beta/domain_mapping.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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
15syntax = "proto3";
16
17package google.appengine.v1beta;
18
19
20option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
21option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
22option java_multiple_files = true;
23option java_outer_classname = "DomainMappingProto";
24option java_package = "com.google.appengine.v1beta";
25option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
26option ruby_package = "Google::Cloud::AppEngine::V1beta";
27
28// A domain serving an App Engine application.
29message DomainMapping {
30  // Full path to the `DomainMapping` resource in the API. Example:
31  // `apps/myapp/domainMapping/example.com`.
32  //
33  // @OutputOnly
34  string name = 1;
35
36  // Relative name of the domain serving the application. Example:
37  // `example.com`.
38  string id = 2;
39
40  // SSL configuration for this domain. If unconfigured, this domain will not
41  // serve with SSL.
42  SslSettings ssl_settings = 3;
43
44  // The resource records required to configure this domain mapping. These
45  // records must be added to the domain's DNS configuration in order to
46  // serve the application via this domain mapping.
47  //
48  // @OutputOnly
49  repeated ResourceRecord resource_records = 4;
50}
51
52// SSL configuration for a `DomainMapping` resource.
53message SslSettings {
54  // The SSL management type for this domain.
55  enum SslManagementType {
56    // SSL support for this domain is configured automatically. The mapped SSL
57    // certificate will be automatically renewed.
58    AUTOMATIC = 0;
59
60    // SSL support for this domain is configured manually by the user. Either
61    // the domain has no SSL support or a user-obtained SSL certificate has been
62    // explictly mapped to this domain.
63    MANUAL = 1;
64  }
65
66  // ID of the `AuthorizedCertificate` resource configuring SSL for the
67  // application. Clearing this field will remove SSL support.
68  //
69  // By default, a managed certificate is automatically created for every
70  // domain mapping. To omit SSL support or to configure SSL manually, specify
71  // `SslManagementType.MANUAL` on a `CREATE` or `UPDATE` request. You must
72  // be authorized to administer the `AuthorizedCertificate` resource to
73  // manually map it to a `DomainMapping` resource.
74  // Example: `12345`.
75  string certificate_id = 1;
76
77  // SSL management type for this domain. If `AUTOMATIC`, a managed certificate
78  // is automatically provisioned. If `MANUAL`, `certificate_id` must be
79  // manually specified in order to configure SSL for this domain.
80  SslManagementType ssl_management_type = 3;
81
82  // ID of the managed `AuthorizedCertificate` resource currently being
83  // provisioned, if applicable. Until the new managed certificate has been
84  // successfully provisioned, the previous SSL state will be preserved. Once
85  // the provisioning process completes, the `certificate_id` field will reflect
86  // the new managed certificate and this field will be left empty. To remove
87  // SSL support while there is still a pending managed certificate, clear the
88  // `certificate_id` field with an `UpdateDomainMappingRequest`.
89  //
90  // @OutputOnly
91  string pending_managed_certificate_id = 4;
92}
93
94// A DNS resource record.
95message ResourceRecord {
96  // A resource record type.
97  enum RecordType {
98    // An A resource record. Data is an IPv4 address.
99    A = 0;
100
101    // An AAAA resource record. Data is an IPv6 address.
102    AAAA = 1;
103
104    // A CNAME resource record. Data is a domain name to be aliased.
105    CNAME = 2;
106  }
107
108  // Relative name of the object affected by this record. Only applicable for
109  // `CNAME` records. Example: 'www'.
110  string name = 1;
111
112  // Data for this record. Values vary by record type, as defined in RFC 1035
113  // (section 5) and RFC 1034 (section 3.6.1).
114  string rrdata = 2;
115
116  // Resource record type. Example: `AAAA`.
117  RecordType type = 3;
118}
119