domain_mapping.proto 4.3 KB

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