domain_mapping.proto 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. // Copyright 2020 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.v1;
  16. option csharp_namespace = "Google.Cloud.AppEngine.V1";
  17. option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
  18. option java_multiple_files = true;
  19. option java_outer_classname = "DomainMappingProto";
  20. option java_package = "com.google.appengine.v1";
  21. option php_namespace = "Google\\Cloud\\AppEngine\\V1";
  22. option ruby_package = "Google::Cloud::AppEngine::V1";
  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. // Defaults to `AUTOMATIC`.
  48. SSL_MANAGEMENT_TYPE_UNSPECIFIED = 0;
  49. // SSL support for this domain is configured automatically. The mapped SSL
  50. // certificate will be automatically renewed.
  51. AUTOMATIC = 1;
  52. // SSL support for this domain is configured manually by the user. Either
  53. // the domain has no SSL support or a user-obtained SSL certificate has been
  54. // explictly mapped to this domain.
  55. MANUAL = 2;
  56. }
  57. // ID of the `AuthorizedCertificate` resource configuring SSL for the
  58. // application. Clearing this field will remove SSL support.
  59. //
  60. // By default, a managed certificate is automatically created for every
  61. // domain mapping. To omit SSL support or to configure SSL manually, specify
  62. // `SslManagementType.MANUAL` on a `CREATE` or `UPDATE` request. You must
  63. // be authorized to administer the `AuthorizedCertificate` resource to
  64. // manually map it to a `DomainMapping` resource.
  65. // Example: `12345`.
  66. string certificate_id = 1;
  67. // SSL management type for this domain. If `AUTOMATIC`, a managed certificate
  68. // is automatically provisioned. If `MANUAL`, `certificate_id` must be
  69. // manually specified in order to configure SSL for this domain.
  70. SslManagementType ssl_management_type = 3;
  71. // ID of the managed `AuthorizedCertificate` resource currently being
  72. // provisioned, if applicable. Until the new managed certificate has been
  73. // successfully provisioned, the previous SSL state will be preserved. Once
  74. // the provisioning process completes, the `certificate_id` field will reflect
  75. // the new managed certificate and this field will be left empty. To remove
  76. // SSL support while there is still a pending managed certificate, clear the
  77. // `certificate_id` field with an `UpdateDomainMappingRequest`.
  78. //
  79. // @OutputOnly
  80. string pending_managed_certificate_id = 4;
  81. }
  82. // A DNS resource record.
  83. message ResourceRecord {
  84. // A resource record type.
  85. enum RecordType {
  86. // An unknown resource record.
  87. RECORD_TYPE_UNSPECIFIED = 0;
  88. // An A resource record. Data is an IPv4 address.
  89. A = 1;
  90. // An AAAA resource record. Data is an IPv6 address.
  91. AAAA = 2;
  92. // A CNAME resource record. Data is a domain name to be aliased.
  93. CNAME = 3;
  94. }
  95. // Relative name of the object affected by this record. Only applicable for
  96. // `CNAME` records. Example: 'www'.
  97. string name = 1;
  98. // Data for this record. Values vary by record type, as defined in RFC 1035
  99. // (section 5) and RFC 1034 (section 3.6.1).
  100. string rrdata = 2;
  101. // Resource record type. Example: `AAAA`.
  102. RecordType type = 3;
  103. }