summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/cloud/domains/v1alpha2
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/cloud/domains/v1alpha2')
-rw-r--r--third_party/googleapis/google/cloud/domains/v1alpha2/BUILD.bazel371
-rw-r--r--third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto1147
-rw-r--r--third_party/googleapis/google/cloud/domains/v1alpha2/domains_grpc_service_config.json36
-rw-r--r--third_party/googleapis/google/cloud/domains/v1alpha2/domains_v1alpha2.yaml101
4 files changed, 1655 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/domains/v1alpha2/BUILD.bazel b/third_party/googleapis/google/cloud/domains/v1alpha2/BUILD.bazel
new file mode 100644
index 0000000..9281a7e
--- /dev/null
+++ b/third_party/googleapis/google/cloud/domains/v1alpha2/BUILD.bazel
@@ -0,0 +1,371 @@
+# This file was automatically generated by BuildFileGenerator
+# https://github.com/googleapis/rules_gapic/tree/master/bazel
+
+# Most of the manual changes to this file will be overwritten.
+# It's **only** allowed to change the following rule attribute values:
+# - names of *_gapic_assembly_* rules
+# - certain parameters of *_gapic_library rules, including but not limited to:
+# * extra_protoc_parameters
+# * extra_protoc_file_parameters
+# The complete list of preserved parameters can be found in the source code.
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+##############################################################################
+# Common
+##############################################################################
+load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
+
+proto_library(
+ name = "domains_proto",
+ srcs = [
+ "domains.proto",
+ ],
+ deps = [
+ "//google/api:annotations_proto",
+ "//google/api:client_proto",
+ "//google/api:field_behavior_proto",
+ "//google/api:resource_proto",
+ "//google/longrunning:operations_proto",
+ "//google/type:money_proto",
+ "//google/type:postal_address_proto",
+ "@com_google_protobuf//:field_mask_proto",
+ "@com_google_protobuf//:timestamp_proto",
+ ],
+)
+
+proto_library_with_info(
+ name = "domains_proto_with_info",
+ deps = [
+ ":domains_proto",
+ "//google/cloud:common_resources_proto",
+ ],
+)
+
+##############################################################################
+# Java
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "java_gapic_assembly_gradle_pkg",
+ "java_gapic_library",
+ "java_gapic_test",
+ "java_grpc_library",
+ "java_proto_library",
+)
+
+java_proto_library(
+ name = "domains_java_proto",
+ deps = [":domains_proto"],
+)
+
+java_grpc_library(
+ name = "domains_java_grpc",
+ srcs = [":domains_proto"],
+ deps = [":domains_java_proto"],
+)
+
+java_gapic_library(
+ name = "domains_java_gapic",
+ srcs = [":domains_proto_with_info"],
+ gapic_yaml = None,
+ grpc_service_config = "domains_grpc_service_config.json",
+ service_yaml = "domains_v1alpha2.yaml",
+ test_deps = [
+ ":domains_java_grpc",
+ ],
+ transport = "grpc+rest",
+ deps = [
+ ":domains_java_proto",
+ "//google/api:api_java_proto",
+ "//google/type:type_java_proto",
+ ],
+)
+
+java_gapic_test(
+ name = "domains_java_gapic_test_suite",
+ test_classes = [
+ "com.google.cloud.domains.v1alpha2.DomainsClientHttpJsonTest",
+ "com.google.cloud.domains.v1alpha2.DomainsClientTest",
+ ],
+ runtime_deps = [":domains_java_gapic_test"],
+)
+
+# Open Source Packages
+java_gapic_assembly_gradle_pkg(
+ name = "google-cloud-domains-v1alpha2-java",
+ include_samples = True,
+ transport = "grpc+rest",
+ deps = [
+ ":domains_java_gapic",
+ ":domains_java_grpc",
+ ":domains_java_proto",
+ ":domains_proto",
+ ],
+)
+
+##############################################################################
+# Go
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "go_gapic_assembly_pkg",
+ "go_gapic_library",
+ "go_proto_library",
+ "go_test",
+)
+
+go_proto_library(
+ name = "domains_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/cloud/domains/v1alpha2",
+ protos = [":domains_proto"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ "//google/type:money_go_proto",
+ "//google/type:postaladdress_go_proto",
+ ],
+)
+
+go_gapic_library(
+ name = "domains_go_gapic",
+ srcs = [":domains_proto_with_info"],
+ grpc_service_config = "domains_grpc_service_config.json",
+ importpath = "cloud.google.com/go/domains/apiv1alpha2;domains",
+ metadata = True,
+ service_yaml = "domains_v1alpha2.yaml",
+ transport = "grpc+rest",
+ deps = [
+ ":domains_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ "@com_google_cloud_go//longrunning:go_default_library",
+ "@com_google_cloud_go//longrunning/autogen:go_default_library",
+ ],
+)
+
+go_test(
+ name = "domains_go_gapic_test",
+ srcs = [":domains_go_gapic_srcjar_test"],
+ embed = [":domains_go_gapic"],
+ importpath = "cloud.google.com/go/domains/apiv1alpha2",
+)
+
+# Open Source Packages
+go_gapic_assembly_pkg(
+ name = "gapi-cloud-domains-v1alpha2-go",
+ deps = [
+ ":domains_go_gapic",
+ ":domains_go_gapic_srcjar-metadata.srcjar",
+ ":domains_go_gapic_srcjar-test.srcjar",
+ ":domains_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "py_gapic_assembly_pkg",
+ "py_gapic_library",
+ "py_test",
+)
+
+py_gapic_library(
+ name = "domains_py_gapic",
+ srcs = [":domains_proto"],
+ grpc_service_config = "domains_grpc_service_config.json",
+ transport = "grpc",
+)
+
+py_test(
+ name = "domains_py_gapic_test",
+ srcs = [
+ "domains_py_gapic_pytest.py",
+ "domains_py_gapic_test.py",
+ ],
+ legacy_create_init = False,
+ deps = [":domains_py_gapic"],
+)
+
+# Open Source Packages
+py_gapic_assembly_pkg(
+ name = "domains-v1alpha2-py",
+ deps = [
+ ":domains_py_gapic",
+ ],
+)
+
+##############################################################################
+# PHP
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "php_gapic_assembly_pkg",
+ "php_gapic_library",
+ "php_grpc_library",
+ "php_proto_library",
+)
+
+php_proto_library(
+ name = "domains_php_proto",
+ deps = [":domains_proto"],
+)
+
+php_grpc_library(
+ name = "domains_php_grpc",
+ srcs = [":domains_proto"],
+ deps = [":domains_php_proto"],
+)
+
+php_gapic_library(
+ name = "domains_php_gapic",
+ srcs = [":domains_proto_with_info"],
+ grpc_service_config = "domains_grpc_service_config.json",
+ service_yaml = "domains_v1alpha2.yaml",
+ deps = [
+ ":domains_php_grpc",
+ ":domains_php_proto",
+ ],
+)
+
+# Open Source Packages
+php_gapic_assembly_pkg(
+ name = "google-cloud-domains-v1alpha2-php",
+ deps = [
+ ":domains_php_gapic",
+ ":domains_php_grpc",
+ ":domains_php_proto",
+ ],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+nodejs_gapic_library(
+ name = "domains_nodejs_gapic",
+ package_name = "@google-cloud/domains",
+ src = ":domains_proto_with_info",
+ extra_protoc_parameters = ["metadata"],
+ grpc_service_config = "domains_grpc_service_config.json",
+ package = "google.cloud.domains.v1alpha2",
+ service_yaml = "domains_v1alpha2.yaml",
+ deps = [],
+)
+
+nodejs_gapic_assembly_pkg(
+ name = "domains-v1alpha2-nodejs",
+ deps = [
+ ":domains_nodejs_gapic",
+ ":domains_proto",
+ ],
+)
+
+##############################################################################
+# Ruby
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_cloud_gapic_library",
+ "ruby_gapic_assembly_pkg",
+ "ruby_grpc_library",
+ "ruby_proto_library",
+)
+
+ruby_proto_library(
+ name = "domains_ruby_proto",
+ deps = [":domains_proto"],
+)
+
+ruby_grpc_library(
+ name = "domains_ruby_grpc",
+ srcs = [":domains_proto"],
+ deps = [":domains_ruby_proto"],
+)
+
+ruby_cloud_gapic_library(
+ name = "domains_ruby_gapic",
+ srcs = [":domains_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-api-id=domains.googleapis.com",
+ "ruby-cloud-api-shortname=domains",
+ "ruby-cloud-env-prefix=DOMAINS",
+ "ruby-cloud-gem-name=google-cloud-domains-v1alpha2",
+ "ruby-cloud-product-url=https://cloud.google.com/domains",
+ ],
+ grpc_service_config = "domains_grpc_service_config.json",
+ ruby_cloud_description = "The Cloud Domains API provides registration, management and configuration of domain names.",
+ ruby_cloud_title = "Cloud Domains V1alpha2",
+ deps = [
+ ":domains_ruby_grpc",
+ ":domains_ruby_proto",
+ ],
+)
+
+# Open Source Packages
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-domains-v1alpha2-ruby",
+ deps = [
+ ":domains_ruby_gapic",
+ ":domains_ruby_grpc",
+ ":domains_ruby_proto",
+ ],
+)
+
+##############################################################################
+# C#
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "csharp_gapic_assembly_pkg",
+ "csharp_gapic_library",
+ "csharp_grpc_library",
+ "csharp_proto_library",
+)
+
+csharp_proto_library(
+ name = "domains_csharp_proto",
+ deps = [":domains_proto"],
+)
+
+csharp_grpc_library(
+ name = "domains_csharp_grpc",
+ srcs = [":domains_proto"],
+ deps = [":domains_csharp_proto"],
+)
+
+csharp_gapic_library(
+ name = "domains_csharp_gapic",
+ srcs = [":domains_proto_with_info"],
+ common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
+ grpc_service_config = "domains_grpc_service_config.json",
+ service_yaml = "domains_v1alpha2.yaml",
+ deps = [
+ ":domains_csharp_grpc",
+ ":domains_csharp_proto",
+ ],
+)
+
+# Open Source Packages
+csharp_gapic_assembly_pkg(
+ name = "google-cloud-domains-v1alpha2-csharp",
+ deps = [
+ ":domains_csharp_gapic",
+ ":domains_csharp_grpc",
+ ":domains_csharp_proto",
+ ],
+)
+
+##############################################################################
+# C++
+##############################################################################
+# Put your C++ rules here
diff --git a/third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto b/third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto
new file mode 100644
index 0000000..8f4273c
--- /dev/null
+++ b/third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto
@@ -0,0 +1,1147 @@
+// Copyright 2021 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.cloud.domains.v1alpha2;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/timestamp.proto";
+import "google/type/money.proto";
+import "google/type/postal_address.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/domains/v1alpha2;domains";
+option java_multiple_files = true;
+option java_outer_classname = "DomainsProto";
+option java_package = "com.google.cloud.domains.v1alpha2";
+
+// The Cloud Domains API enables management and configuration of domain names.
+service Domains {
+ option (google.api.default_host) = "domains.googleapis.com";
+ option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
+
+ // Searches for available domain names similar to the provided query.
+ //
+ // Availability results from this method are approximate; call
+ // `RetrieveRegisterParameters` on a domain before registering to confirm
+ // availability.
+ rpc SearchDomains(SearchDomainsRequest) returns (SearchDomainsResponse) {
+ option (google.api.http) = {
+ get: "/v1alpha2/{location=projects/*/locations/*}/registrations:searchDomains"
+ };
+ option (google.api.method_signature) = "location,query";
+ }
+
+ // Gets parameters needed to register a new domain name, including price and
+ // up-to-date availability. Use the returned values to call `RegisterDomain`.
+ rpc RetrieveRegisterParameters(RetrieveRegisterParametersRequest) returns (RetrieveRegisterParametersResponse) {
+ option (google.api.http) = {
+ get: "/v1alpha2/{location=projects/*/locations/*}/registrations:retrieveRegisterParameters"
+ };
+ option (google.api.method_signature) = "location,domain_name";
+ }
+
+ // Registers a new domain name and creates a corresponding `Registration`
+ // resource.
+ //
+ // Call `RetrieveRegisterParameters` first to check availability of the domain
+ // name and determine parameters like price that are needed to build a call to
+ // this method.
+ //
+ // A successful call creates a `Registration` resource in state
+ // `REGISTRATION_PENDING`, which resolves to `ACTIVE` within 1-2
+ // minutes, indicating that the domain was successfully registered. If the
+ // resource ends up in state `REGISTRATION_FAILED`, it indicates that the
+ // domain was not registered successfully, and you can safely delete the
+ // resource and retry registration.
+ rpc RegisterDomain(RegisterDomainRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha2/{parent=projects/*/locations/*}/registrations:register"
+ body: "*"
+ };
+ option (google.api.method_signature) = "parent,registration,yearly_price";
+ option (google.longrunning.operation_info) = {
+ response_type: "Registration"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Gets parameters needed to transfer a domain name from another registrar to
+ // Cloud Domains. For domains managed by Google Domains, transferring to Cloud
+ // Domains is not supported.
+ //
+ //
+ // Use the returned values to call `TransferDomain`.
+ rpc RetrieveTransferParameters(RetrieveTransferParametersRequest) returns (RetrieveTransferParametersResponse) {
+ option (google.api.http) = {
+ get: "/v1alpha2/{location=projects/*/locations/*}/registrations:retrieveTransferParameters"
+ };
+ option (google.api.method_signature) = "location,domain_name";
+ }
+
+ // Transfers a domain name from another registrar to Cloud Domains. For
+ // domains managed by Google Domains, transferring to Cloud Domains is not
+ // supported.
+ //
+ //
+ // Before calling this method, go to the domain's current registrar to unlock
+ // the domain for transfer and retrieve the domain's transfer authorization
+ // code. Then call `RetrieveTransferParameters` to confirm that the domain is
+ // unlocked and to get values needed to build a call to this method.
+ //
+ // A successful call creates a `Registration` resource in state
+ // `TRANSFER_PENDING`. It can take several days to complete the transfer
+ // process. The registrant can often speed up this process by approving the
+ // transfer through the current registrar, either by clicking a link in an
+ // email from the registrar or by visiting the registrar's website.
+ //
+ // A few minutes after transfer approval, the resource transitions to state
+ // `ACTIVE`, indicating that the transfer was successful. If the transfer is
+ // rejected or the request expires without being approved, the resource can
+ // end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete
+ // the resource and retry the transfer.
+ rpc TransferDomain(TransferDomainRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha2/{parent=projects/*/locations/*}/registrations:transfer"
+ body: "*"
+ };
+ option (google.api.method_signature) = "parent,registration,yearly_price,authorization_code";
+ option (google.longrunning.operation_info) = {
+ response_type: "Registration"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Lists the `Registration` resources in a project.
+ rpc ListRegistrations(ListRegistrationsRequest) returns (ListRegistrationsResponse) {
+ option (google.api.http) = {
+ get: "/v1alpha2/{parent=projects/*/locations/*}/registrations"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Gets the details of a `Registration` resource.
+ rpc GetRegistration(GetRegistrationRequest) returns (Registration) {
+ option (google.api.http) = {
+ get: "/v1alpha2/{name=projects/*/locations/*/registrations/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Updates select fields of a `Registration` resource, notably `labels`. To
+ // update other fields, use the appropriate custom update method:
+ //
+ // * To update management settings, see `ConfigureManagementSettings`
+ // * To update DNS configuration, see `ConfigureDnsSettings`
+ // * To update contact information, see `ConfigureContactSettings`
+ rpc UpdateRegistration(UpdateRegistrationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1alpha2/{registration.name=projects/*/locations/*/registrations/*}"
+ body: "registration"
+ };
+ option (google.api.method_signature) = "registration,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Registration"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates a `Registration`'s management settings.
+ rpc ConfigureManagementSettings(ConfigureManagementSettingsRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureManagementSettings"
+ body: "*"
+ };
+ option (google.api.method_signature) = "registration,management_settings,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Registration"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates a `Registration`'s DNS settings.
+ rpc ConfigureDnsSettings(ConfigureDnsSettingsRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureDnsSettings"
+ body: "*"
+ };
+ option (google.api.method_signature) = "registration,dns_settings,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Registration"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates a `Registration`'s contact settings. Some changes require
+ // confirmation by the domain's registrant contact .
+ rpc ConfigureContactSettings(ConfigureContactSettingsRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:configureContactSettings"
+ body: "*"
+ };
+ option (google.api.method_signature) = "registration,contact_settings,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Registration"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Exports a `Registration` resource, such that it is no longer managed by
+ // Cloud Domains.
+ //
+ // When an active domain is successfully exported, you can continue to use the
+ // domain in [Google Domains](https://domains.google/) until it expires. The
+ // calling user becomes the domain's sole owner in Google Domains, and
+ // permissions for the domain are subsequently managed there. The domain does
+ // not renew automatically unless the new owner sets up billing in Google
+ // Domains.
+ rpc ExportRegistration(ExportRegistrationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha2/{name=projects/*/locations/*/registrations/*}:export"
+ body: "*"
+ };
+ option (google.api.method_signature) = "name";
+ option (google.longrunning.operation_info) = {
+ response_type: "Registration"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Deletes a `Registration` resource.
+ //
+ // This method works on any `Registration` resource using [Subscription or
+ // Commitment billing](/domains/pricing#billing-models), provided that the
+ // resource was created at least 1 day in the past.
+ //
+ // For `Registration` resources using
+ // [Monthly billing](/domains/pricing#billing-models), this method works if:
+ //
+ // * `state` is `EXPORTED` with `expire_time` in the past
+ // * `state` is `REGISTRATION_FAILED`
+ // * `state` is `TRANSFER_FAILED`
+ //
+ // When an active registration is successfully deleted, you can continue to
+ // use the domain in [Google Domains](https://domains.google/) until it
+ // expires. The calling user becomes the domain's sole owner in Google
+ // Domains, and permissions for the domain are subsequently managed there. The
+ // domain does not renew automatically unless the new owner sets up billing in
+ // Google Domains.
+ rpc DeleteRegistration(DeleteRegistrationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1alpha2/{name=projects/*/locations/*/registrations/*}"
+ };
+ option (google.api.method_signature) = "name";
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Gets the authorization code of the `Registration` for the purpose of
+ // transferring the domain to another registrar.
+ //
+ // You can call this method only after 60 days have elapsed since the initial
+ // domain registration.
+ rpc RetrieveAuthorizationCode(RetrieveAuthorizationCodeRequest) returns (AuthorizationCode) {
+ option (google.api.http) = {
+ get: "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:retrieveAuthorizationCode"
+ };
+ option (google.api.method_signature) = "registration";
+ }
+
+ // Resets the authorization code of the `Registration` to a new random string.
+ //
+ // You can call this method only after 60 days have elapsed since the initial
+ // domain registration.
+ rpc ResetAuthorizationCode(ResetAuthorizationCodeRequest) returns (AuthorizationCode) {
+ option (google.api.http) = {
+ post: "/v1alpha2/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode"
+ body: "*"
+ };
+ option (google.api.method_signature) = "registration";
+ }
+}
+
+// The `Registration` resource facilitates managing and configuring domain name
+// registrations.
+//
+// There are several ways to create a new `Registration` resource:
+//
+// To create a new `Registration` resource, find a suitable domain name by
+// calling the `SearchDomains` method with a query to see available domain name
+// options. After choosing a name, call `RetrieveRegisterParameters` to
+// ensure availability and obtain information like pricing, which is needed to
+// build a call to `RegisterDomain`.
+//
+// Another way to create a new `Registration` is to transfer an existing
+// domain from another registrar. First, go to the current registrar to unlock
+// the domain for transfer and retrieve the domain's transfer authorization
+// code. Then call `RetrieveTransferParameters` to confirm that the domain is
+// unlocked and to get values needed to build a call to `TransferDomain`.
+message Registration {
+ option (google.api.resource) = {
+ type: "domains.googleapis.com/Registration"
+ pattern: "projects/{project}/locations/{location}/registrations/{registration}"
+ };
+
+ // Possible states of a `Registration`.
+ enum State {
+ // The state is undefined.
+ STATE_UNSPECIFIED = 0;
+
+ // The domain is being registered.
+ REGISTRATION_PENDING = 1;
+
+ // The domain registration failed. You can delete resources in this state
+ // to allow registration to be retried.
+ REGISTRATION_FAILED = 2;
+
+ // The domain is being transferred from another registrar to Cloud Domains.
+ TRANSFER_PENDING = 3;
+
+ // The attempt to transfer the domain from another registrar to
+ // Cloud Domains failed. You can delete resources in this state and retry
+ // the transfer.
+ TRANSFER_FAILED = 4;
+
+ // The domain is registered and operational. The domain renews automatically
+ // as long as it remains in this state.
+ ACTIVE = 6;
+
+ // The domain is suspended and inoperative. For more details, see the
+ // `issues` field.
+ SUSPENDED = 7;
+
+ // The domain is no longer managed with Cloud Domains. It may have been
+ // transferred to another registrar or exported for management in
+ // [Google Domains](https://domains.google/). You can no longer update it
+ // with this API, and information shown about it may be stale. Domains in
+ // this state are not automatically renewed by Cloud Domains.
+ EXPORTED = 8;
+ }
+
+ // Possible issues with a `Registration` that require attention.
+ enum Issue {
+ // The issue is undefined.
+ ISSUE_UNSPECIFIED = 0;
+
+ // Contact the Cloud Support team to resolve a problem with this domain.
+ CONTACT_SUPPORT = 1;
+
+ // [ICANN](https://icann.org/) requires verification of the email address
+ // in the `Registration`'s `contact_settings.registrant_contact` field. To
+ // verify the email address, follow the
+ // instructions in the email the `registrant_contact` receives following
+ // registration. If you do not complete email verification within
+ // 15 days of registration, the domain is suspended. To resend the
+ // verification email, call ConfigureContactSettings and provide the current
+ // `registrant_contact.email`.
+ UNVERIFIED_EMAIL = 2;
+ }
+
+ // Output only. Name of the `Registration` resource, in the format
+ // `projects/*/locations/*/registrations/<domain_name>`.
+ string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Required. Immutable. The domain name. Unicode domain names must be expressed in Punycode format.
+ string domain_name = 2 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.field_behavior) = IMMUTABLE
+ ];
+
+ // Output only. The creation timestamp of the `Registration` resource.
+ google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The expiration timestamp of the `Registration`.
+ google.protobuf.Timestamp expire_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The state of the `Registration`
+ State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The set of issues with the `Registration` that require attention.
+ repeated Issue issues = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Set of labels associated with the `Registration`.
+ map<string, string> labels = 9;
+
+ // Settings for management of the `Registration`, including renewal, billing,
+ // and transfer. You cannot update these with the `UpdateRegistration`
+ // method. To update these settings, use the `ConfigureManagementSettings`
+ // method.
+ ManagementSettings management_settings = 10;
+
+ // Settings controlling the DNS configuration of the `Registration`. You
+ // cannot update these with the `UpdateRegistration` method. To update these
+ // settings, use the `ConfigureDnsSettings` method.
+ DnsSettings dns_settings = 11;
+
+ // Required. Settings for contact information linked to the `Registration`. You cannot
+ // update these with the `UpdateRegistration` method. To update these
+ // settings, use the `ConfigureContactSettings` method.
+ ContactSettings contact_settings = 12 [(google.api.field_behavior) = REQUIRED];
+
+ // Output only. Pending contact settings for the `Registration`. Updates to the
+ // `contact_settings` field that change its `registrant_contact` or `privacy`
+ // fields require email confirmation by the `registrant_contact`
+ // before taking effect. This field is set only if there are pending updates
+ // to the `contact_settings` that have not been confirmed. To confirm the
+ // changes, the `registrant_contact` must follow the instructions in the
+ // email they receive.
+ ContactSettings pending_contact_settings = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Set of options for the `contact_settings.privacy` field that this
+ // `Registration` supports.
+ repeated ContactPrivacy supported_privacy = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
+// Defines renewal, billing, and transfer settings for a `Registration`.
+message ManagementSettings {
+ // Defines how the `Registration` is renewed.
+ enum RenewalMethod {
+ // The renewal method is undefined.
+ RENEWAL_METHOD_UNSPECIFIED = 0;
+
+ // The domain is automatically renewed each year .
+ //
+ // To disable automatic renewals, delete the resource by calling
+ // `DeleteRegistration` or export it by calling `ExportRegistration`.
+ AUTOMATIC_RENEWAL = 1;
+
+ // The domain must be explicitly renewed each year before its
+ // `expire_time`. This option is only available when the `Registration`
+ // is in state `EXPORTED`.
+ //
+ // To manage the domain's current billing and
+ // renewal settings, go to [Google Domains](https://domains.google/).
+ MANUAL_RENEWAL = 2;
+ }
+
+ // Output only. The renewal method for this `Registration`.
+ RenewalMethod renewal_method = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Controls whether the domain can be transferred to another registrar.
+ TransferLockState transfer_lock_state = 4;
+}
+
+// Defines the DNS configuration of a `Registration`, including name servers,
+// DNSSEC, and glue records.
+message DnsSettings {
+ // Configuration for an arbitrary DNS provider.
+ message CustomDns {
+ // Required. A list of name servers that store the DNS zone for this domain. Each name
+ // server is a domain name, with Unicode domain names expressed in
+ // Punycode format.
+ repeated string name_servers = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The list of DS records for this domain, which are used to enable DNSSEC.
+ // The domain's DNS provider can provide the values to set here. If this
+ // field is empty, DNSSEC is disabled.
+ repeated DsRecord ds_records = 2;
+ }
+
+ // Configuration for using the free DNS zone provided by Google Domains as a
+ // `Registration`'s `dns_provider`. You cannot configure the DNS zone itself
+ // using the API. To configure the DNS zone, go to
+ // [Google Domains](https://domains.google/).
+ message GoogleDomainsDns {
+ // Output only. A list of name servers that store the DNS zone for this domain. Each name
+ // server is a domain name, with Unicode domain names expressed in
+ // Punycode format. This field is automatically populated with the name
+ // servers assigned to the Google Domains DNS zone.
+ repeated string name_servers = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Required. The state of DS records for this domain. Used to enable or disable
+ // automatic DNSSEC.
+ DsState ds_state = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Output only. The list of DS records published for this domain. The list is
+ // automatically populated when `ds_state` is `DS_RECORDS_PUBLISHED`,
+ // otherwise it remains empty.
+ repeated DsRecord ds_records = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+ }
+
+ // Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC
+ // for a domain. It contains a digest (hash) of a DNSKEY record that must be
+ // present in the domain's DNS zone.
+ message DsRecord {
+ // List of algorithms used to create a DNSKEY. Certain
+ // algorithms are not supported for particular domains.
+ enum Algorithm {
+ // The algorithm is unspecified.
+ ALGORITHM_UNSPECIFIED = 0;
+
+ // RSA/MD5. Cannot be used for new deployments.
+ RSAMD5 = 1;
+
+ // Diffie-Hellman. Cannot be used for new deployments.
+ DH = 2;
+
+ // DSA/SHA1. Not recommended for new deployments.
+ DSA = 3;
+
+ // ECC. Not recommended for new deployments.
+ ECC = 4;
+
+ // RSA/SHA-1. Not recommended for new deployments.
+ RSASHA1 = 5;
+
+ // DSA-NSEC3-SHA1. Not recommended for new deployments.
+ DSANSEC3SHA1 = 6;
+
+ // RSA/SHA1-NSEC3-SHA1. Not recommended for new deployments.
+ RSASHA1NSEC3SHA1 = 7;
+
+ // RSA/SHA-256.
+ RSASHA256 = 8;
+
+ // RSA/SHA-512.
+ RSASHA512 = 10;
+
+ // GOST R 34.10-2001.
+ ECCGOST = 12;
+
+ // ECDSA Curve P-256 with SHA-256.
+ ECDSAP256SHA256 = 13;
+
+ // ECDSA Curve P-384 with SHA-384.
+ ECDSAP384SHA384 = 14;
+
+ // Ed25519.
+ ED25519 = 15;
+
+ // Ed448.
+ ED448 = 16;
+
+ // Reserved for Indirect Keys. Cannot be used for new deployments.
+ INDIRECT = 252;
+
+ // Private algorithm. Cannot be used for new deployments.
+ PRIVATEDNS = 253;
+
+ // Private algorithm OID. Cannot be used for new deployments.
+ PRIVATEOID = 254;
+ }
+
+ // List of hash functions that may have been used to generate a digest of a
+ // DNSKEY.
+ enum DigestType {
+ // The DigestType is unspecified.
+ DIGEST_TYPE_UNSPECIFIED = 0;
+
+ // SHA-1. Not recommended for new deployments.
+ SHA1 = 1;
+
+ // SHA-256.
+ SHA256 = 2;
+
+ // GOST R 34.11-94.
+ GOST3411 = 3;
+
+ // SHA-384.
+ SHA384 = 4;
+ }
+
+ // The key tag of the record. Must be set in range 0 -- 65535.
+ int32 key_tag = 1;
+
+ // The algorithm used to generate the referenced DNSKEY.
+ Algorithm algorithm = 2;
+
+ // The hash function used to generate the digest of the referenced DNSKEY.
+ DigestType digest_type = 3;
+
+ // The digest generated from the referenced DNSKEY.
+ string digest = 4;
+ }
+
+ // Defines a host on your domain that is a DNS name server for your domain
+ // and/or other domains. Glue records are a way of making the IP address of a
+ // name server known, even when it serves DNS queries for its parent domain.
+ // For example, when `ns.example.com` is a name server for `example.com`, the
+ // host `ns.example.com` must have a glue record to break the circular DNS
+ // reference.
+ message GlueRecord {
+ // Required. Domain name of the host in Punycode format.
+ string host_name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // List of IPv4 addresses corresponding to this host in the standard decimal
+ // format (e.g. `198.51.100.1`). At least one of `ipv4_address` and
+ // `ipv6_address` must be set.
+ repeated string ipv4_addresses = 2;
+
+ // List of IPv6 addresses corresponding to this host in the standard
+ // hexadecimal format (e.g. `2001:db8::`). At least one of
+ // `ipv4_address` and `ipv6_address` must be set.
+ repeated string ipv6_addresses = 3;
+ }
+
+ // The publication state of DS records for a `Registration`.
+ enum DsState {
+ // DS state is unspecified.
+ DS_STATE_UNSPECIFIED = 0;
+
+ // DNSSEC is disabled for this domain. No DS records for this domain are
+ // published in the parent DNS zone.
+ DS_RECORDS_UNPUBLISHED = 1;
+
+ // DNSSEC is enabled for this domain. Appropriate DS records for this domain
+ // are published in the parent DNS zone. This option is valid only if the
+ // DNS zone referenced in the `Registration`'s `dns_provider` field is
+ // already DNSSEC-signed.
+ DS_RECORDS_PUBLISHED = 2;
+ }
+
+ // The DNS provider of the registration.
+ oneof dns_provider {
+ // An arbitrary DNS provider identified by its name servers.
+ CustomDns custom_dns = 1;
+
+ // The free DNS zone provided by
+ // [Google Domains](https://domains.google/).
+ GoogleDomainsDns google_domains_dns = 2;
+ }
+
+ // The list of glue records for this `Registration`. Commonly empty.
+ repeated GlueRecord glue_records = 4;
+}
+
+// Defines the contact information associated with a `Registration`.
+//
+// [ICANN](https://icann.org/) requires all domain names to have associated
+// contact information. The `registrant_contact` is considered the
+// domain's legal owner, and often the other contacts are identical.
+message ContactSettings {
+ // Details required for a contact associated with a `Registration`.
+ message Contact {
+ // Required. Postal address of the contact.
+ google.type.PostalAddress postal_address = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Email address of the contact.
+ string email = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Phone number of the contact in international format. For example,
+ // `"+1-800-555-0123"`.
+ string phone_number = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Fax number of the contact in international format. For example,
+ // `"+1-800-555-0123"`.
+ string fax_number = 4;
+ }
+
+ // Required. Privacy setting for the contacts associated with the `Registration`.
+ ContactPrivacy privacy = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The registrant contact for the `Registration`.
+ //
+ // *Caution: Anyone with access to this email address, phone number,
+ // and/or postal address can take control of the domain.*
+ //
+ // *Warning: For new `Registration`s, the registrant receives an email
+ // confirmation that they must complete within 15 days to avoid domain
+ // suspension.*
+ Contact registrant_contact = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The administrative contact for the `Registration`.
+ Contact admin_contact = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The technical contact for the `Registration`.
+ Contact technical_contact = 4 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for the `SearchDomains` method.
+message SearchDomainsRequest {
+ // Required. String used to search for available domain names.
+ string query = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The location. Must be in the format `projects/*/locations/*`.
+ string location = 2 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+}
+
+// Response for the `SearchDomains` method.
+message SearchDomainsResponse {
+ // Results of the domain name search.
+ repeated RegisterParameters register_parameters = 1;
+}
+
+// Request for the `RetrieveRegisterParameters` method.
+message RetrieveRegisterParametersRequest {
+ // Required. The domain name. Unicode domain names must be expressed in Punycode format.
+ string domain_name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The location. Must be in the format `projects/*/locations/*`.
+ string location = 2 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+}
+
+// Response for the `RetrieveRegisterParameters` method.
+message RetrieveRegisterParametersResponse {
+ // Parameters to use when calling the `RegisterDomain` method.
+ RegisterParameters register_parameters = 1;
+}
+
+// Request for the `RegisterDomain` method.
+message RegisterDomainRequest {
+ // Required. The parent resource of the `Registration`. Must be in the
+ // format `projects/*/locations/*`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Required. The complete `Registration` resource to be created.
+ Registration registration = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The list of domain notices that you acknowledge. Call
+ // `RetrieveRegisterParameters` to see the notices that need acknowledgement.
+ repeated DomainNotice domain_notices = 3;
+
+ // The list of contact notices that the caller acknowledges. The notices
+ // needed here depend on the values specified in
+ // `registration.contact_settings`.
+ repeated ContactNotice contact_notices = 4;
+
+ // Required. Yearly price to register or renew the domain.
+ // The value that should be put here can be obtained from
+ // RetrieveRegisterParameters or SearchDomains calls.
+ google.type.Money yearly_price = 5 [(google.api.field_behavior) = REQUIRED];
+
+ // When true, only validation is performed, without actually registering
+ // the domain. Follows:
+ // https://cloud.google.com/apis/design/design_patterns#request_validation
+ bool validate_only = 6;
+}
+
+// Request for the `RetrieveTransferParameters` method.
+message RetrieveTransferParametersRequest {
+ // Required. The domain name. Unicode domain names must be expressed in Punycode format.
+ string domain_name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The location. Must be in the format `projects/*/locations/*`.
+ string location = 2 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+}
+
+// Response for the `RetrieveTransferParameters` method.
+message RetrieveTransferParametersResponse {
+ // Parameters to use when calling the `TransferDomain` method.
+ TransferParameters transfer_parameters = 1;
+}
+
+// Request for the `TransferDomain` method.
+message TransferDomainRequest {
+ // Required. The parent resource of the `Registration`. Must be in the
+ // format `projects/*/locations/*`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Required. The complete `Registration` resource to be created.
+ //
+ // You can leave `registration.dns_settings` unset to import the
+ // domain's current DNS configuration from its current registrar. Use this
+ // option only if you are sure that the domain's current DNS service
+ // does not cease upon transfer, as is often the case for DNS services
+ // provided for free by the registrar.
+ Registration registration = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The list of contact notices that you acknowledge. The notices
+ // needed here depend on the values specified in
+ // `registration.contact_settings`.
+ repeated ContactNotice contact_notices = 3;
+
+ // Required. Acknowledgement of the price to transfer or renew the domain for one year.
+ // Call `RetrieveTransferParameters` to obtain the price, which you must
+ // acknowledge.
+ google.type.Money yearly_price = 4 [(google.api.field_behavior) = REQUIRED];
+
+ // The domain's transfer authorization code. You can obtain this from the
+ // domain's current registrar.
+ AuthorizationCode authorization_code = 5;
+
+ // Validate the request without actually transferring the domain.
+ bool validate_only = 6;
+}
+
+// Request for the `ListRegistrations` method.
+message ListRegistrationsRequest {
+ // Required. The project and location from which to list `Registration`s, specified in
+ // the format `projects/*/locations/*`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Maximum number of results to return.
+ int32 page_size = 2;
+
+ // When set to the `next_page_token` from a prior response, provides the next
+ // page of results.
+ string page_token = 3;
+
+ // Filter expression to restrict the `Registration`s returned.
+ //
+ // The expression must specify the field name, a comparison operator, and the
+ // value that you want to use for filtering. The value must be a string, a
+ // number, a boolean, or an enum value. The comparison operator should be one
+ // of =, !=, >, <, >=, <=, or : for prefix or wildcard matches.
+ //
+ // For example, to filter to a specific domain name, use an expression like
+ // `domainName="example.com"`. You can also check for the existence of a
+ // field; for example, to find domains using custom DNS settings, use an
+ // expression like `dnsSettings.customDns:*`.
+ //
+ // You can also create compound filters by combining expressions with the
+ // `AND` and `OR` operators. For example, to find domains that are suspended
+ // or have specific issues flagged, use an expression like
+ // `(state=SUSPENDED) OR (issue:*)`.
+ string filter = 4;
+}
+
+// Response for the `ListRegistrations` method.
+message ListRegistrationsResponse {
+ // A list of `Registration`s.
+ repeated Registration registrations = 1;
+
+ // When present, there are more results to retrieve. Set `page_token` to this
+ // value on a subsequent call to get the next page of results.
+ string next_page_token = 2;
+}
+
+// Request for the `GetRegistration` method.
+message GetRegistrationRequest {
+ // Required. The name of the `Registration` to get, in the format
+ // `projects/*/locations/*/registrations/*`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+}
+
+// Request for the `UpdateRegistration` method.
+message UpdateRegistrationRequest {
+ // Fields of the `Registration` to update.
+ Registration registration = 1;
+
+ // Required. The field mask describing which fields to update as a comma-separated list.
+ // For example, if only the labels are being updated, the `update_mask` is
+ // `"labels"`.
+ google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for the `ConfigureManagementSettings` method.
+message ConfigureManagementSettingsRequest {
+ // Required. The name of the `Registration` whose management settings are being updated,
+ // in the format `projects/*/locations/*/registrations/*`.
+ string registration = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+
+ // Fields of the `ManagementSettings` to update.
+ ManagementSettings management_settings = 2;
+
+ // Required. The field mask describing which fields to update as a comma-separated list.
+ // For example, if only the transfer lock is being updated, the `update_mask`
+ // is `"transfer_lock_state"`.
+ google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for the `ConfigureDnsSettings` method.
+message ConfigureDnsSettingsRequest {
+ // Required. The name of the `Registration` whose DNS settings are being updated,
+ // in the format `projects/*/locations/*/registrations/*`.
+ string registration = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+
+ // Fields of the `DnsSettings` to update.
+ DnsSettings dns_settings = 2;
+
+ // Required. The field mask describing which fields to update as a comma-separated list.
+ // For example, if only the name servers are being updated for an existing
+ // Custom DNS configuration, the `update_mask` is
+ // `"custom_dns.name_servers"`.
+ //
+ // When changing the DNS provider from one type to another, pass the new
+ // provider's field name as part of the field mask. For example, when changing
+ // from a Google Domains DNS configuration to a Custom DNS configuration, the
+ // `update_mask` is `"custom_dns"`. //
+ google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Validate the request without actually updating the DNS settings.
+ bool validate_only = 4;
+}
+
+// Request for the `ConfigureContactSettings` method.
+message ConfigureContactSettingsRequest {
+ // Required. The name of the `Registration` whose contact settings are being updated,
+ // in the format `projects/*/locations/*/registrations/*`.
+ string registration = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+
+ // Fields of the `ContactSettings` to update.
+ ContactSettings contact_settings = 2;
+
+ // Required. The field mask describing which fields to update as a comma-separated list.
+ // For example, if only the registrant contact is being updated, the
+ // `update_mask` is `"registrant_contact"`.
+ google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // The list of contact notices that the caller acknowledges. The notices
+ // needed here depend on the values specified in `contact_settings`.
+ repeated ContactNotice contact_notices = 4;
+
+ // Validate the request without actually updating the contact settings.
+ bool validate_only = 5;
+}
+
+// Request for the `ExportRegistration` method.
+message ExportRegistrationRequest {
+ // Required. The name of the `Registration` to export,
+ // in the format `projects/*/locations/*/registrations/*`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+}
+
+// Request for the `DeleteRegistration` method.
+message DeleteRegistrationRequest {
+ // Required. The name of the `Registration` to delete,
+ // in the format `projects/*/locations/*/registrations/*`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+}
+
+// Request for the `RetrieveAuthorizationCode` method.
+message RetrieveAuthorizationCodeRequest {
+ // Required. The name of the `Registration` whose authorization code is being retrieved,
+ // in the format `projects/*/locations/*/registrations/*`.
+ string registration = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+}
+
+// Request for the `ResetAuthorizationCode` method.
+message ResetAuthorizationCodeRequest {
+ // Required. The name of the `Registration` whose authorization code is being reset,
+ // in the format `projects/*/locations/*/registrations/*`.
+ string registration = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "domains.googleapis.com/Registration"
+ }
+ ];
+}
+
+// Parameters required to register a new domain.
+message RegisterParameters {
+ // Possible availability states of a domain name.
+ enum Availability {
+ // The availability is unspecified.
+ AVAILABILITY_UNSPECIFIED = 0;
+
+ // The domain is available for registration.
+ AVAILABLE = 1;
+
+ // The domain is not available for registration. Generally this means it is
+ // already registered to another party.
+ UNAVAILABLE = 2;
+
+ // The domain is not currently supported by Cloud Domains, but may
+ // be available elsewhere.
+ UNSUPPORTED = 3;
+
+ // Cloud Domains is unable to determine domain availability, generally
+ // due to system maintenance at the domain name registry.
+ UNKNOWN = 4;
+ }
+
+ // The domain name. Unicode domain names are expressed in Punycode format.
+ string domain_name = 1;
+
+ // Indicates whether the domain is available for registration. This value is
+ // accurate when obtained by calling `RetrieveRegisterParameters`, but is
+ // approximate when obtained by calling `SearchDomains`.
+ Availability availability = 2;
+
+ // Contact privacy options that the domain supports.
+ repeated ContactPrivacy supported_privacy = 3;
+
+ // Notices about special properties of the domain.
+ repeated DomainNotice domain_notices = 4;
+
+ // Price to register or renew the domain for one year.
+ google.type.Money yearly_price = 5;
+}
+
+// Parameters required to transfer a domain from another registrar.
+message TransferParameters {
+ // The domain name. Unicode domain names are expressed in Punycode format.
+ string domain_name = 1;
+
+ // The registrar that currently manages the domain.
+ string current_registrar = 2;
+
+ // The name servers that currently store the configuration of the domain.
+ repeated string name_servers = 3;
+
+ // Indicates whether the domain is protected by a transfer lock. For a
+ // transfer to succeed, this must show `UNLOCKED`. To unlock a domain,
+ // go to its current registrar.
+ TransferLockState transfer_lock_state = 4;
+
+ // Contact privacy options that the domain supports.
+ repeated ContactPrivacy supported_privacy = 5;
+
+ // Price to transfer or renew the domain for one year.
+ google.type.Money yearly_price = 6;
+}
+
+// Defines an authorization code.
+message AuthorizationCode {
+ // The Authorization Code in ASCII. It can be used to transfer the domain
+ // to or from another registrar.
+ string code = 1;
+}
+
+// Represents the metadata of the long-running operation. Output only.
+message OperationMetadata {
+ // The time the operation was created.
+ google.protobuf.Timestamp create_time = 1;
+
+ // The time the operation finished running.
+ google.protobuf.Timestamp end_time = 2;
+
+ // Server-defined resource path for the target of the operation.
+ string target = 3;
+
+ // Name of the verb executed by the operation.
+ string verb = 4;
+
+ // Human-readable status of the operation, if any.
+ string status_detail = 5;
+
+ // API version used to start the operation.
+ string api_version = 6;
+}
+
+// Defines a set of possible contact privacy settings for a `Registration`.
+//
+// [ICANN](https://icann.org/) maintains the WHOIS database, a publicly
+// accessible mapping from domain name to contact information, and requires that
+// each domain name have an entry. Choose from these options to control how much
+// information in your `ContactSettings` is published.
+enum ContactPrivacy {
+ // The contact privacy settings are undefined.
+ CONTACT_PRIVACY_UNSPECIFIED = 0;
+
+ // All the data from `ContactSettings` is publicly available. When setting
+ // this option, you must also provide a
+ // `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the
+ // request.
+ PUBLIC_CONTACT_DATA = 1;
+
+ // None of the data from `ContactSettings` is publicly available. Instead,
+ // proxy contact data is published for your domain. Email sent to the proxy
+ // email address is forwarded to the registrant's email address. Cloud Domains
+ // provides this privacy proxy service at no additional cost.
+ PRIVATE_CONTACT_DATA = 2;
+
+ // Some data from `ContactSettings` is publicly available. The actual
+ // information redacted depends on the domain. For details, see [the
+ // registration privacy
+ // article](https://support.google.com/domains/answer/3251242).
+ REDACTED_CONTACT_DATA = 3;
+}
+
+// Notices about special properties of certain domains.
+enum DomainNotice {
+ // The notice is undefined.
+ DOMAIN_NOTICE_UNSPECIFIED = 0;
+
+ // Indicates that the domain is preloaded on the HTTP Strict Transport
+ // Security list in browsers. Serving a website on such domain requires
+ // an SSL certificate. For details, see
+ // [how to get an SSL
+ // certificate](https://support.google.com/domains/answer/7638036).
+ HSTS_PRELOADED = 1;
+}
+
+// Notices related to contact information.
+enum ContactNotice {
+ // The notice is undefined.
+ CONTACT_NOTICE_UNSPECIFIED = 0;
+
+ // Required when setting the `privacy` field of `ContactSettings` to
+ // `PUBLIC_CONTACT_DATA`, which exposes contact data publicly.
+ PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT = 1;
+}
+
+// Possible states of a `Registration`'s transfer lock.
+enum TransferLockState {
+ // The state is unspecified.
+ TRANSFER_LOCK_STATE_UNSPECIFIED = 0;
+
+ // The domain is unlocked and can be transferred to another registrar.
+ UNLOCKED = 1;
+
+ // The domain is locked and cannot be transferred to another registrar.
+ LOCKED = 2;
+}
diff --git a/third_party/googleapis/google/cloud/domains/v1alpha2/domains_grpc_service_config.json b/third_party/googleapis/google/cloud/domains/v1alpha2/domains_grpc_service_config.json
new file mode 100644
index 0000000..1a1d1f4
--- /dev/null
+++ b/third_party/googleapis/google/cloud/domains/v1alpha2/domains_grpc_service_config.json
@@ -0,0 +1,36 @@
+{
+ "methodConfig": [
+ {
+ "name": [
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "SearchDomains" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "RetrieveRegisterParameters" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "RetrieveTransferParameters" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "ListRegistrations" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "GetRegistration" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "RetrieveAuthorizationCode" }
+ ],
+ "timeout": "60s",
+ "retryPolicy": {
+ "maxAttempts": 5,
+ "initialBackoff": "1s",
+ "maxBackoff": "10s",
+ "backoffMultiplier": 1.3,
+ "retryableStatusCodes": ["UNAVAILABLE"]
+ }
+ },
+ {
+ "name": [
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "RegisterDomain" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "TransferDomain" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "UpdateRegistration" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "ConfigureManagementSettings" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "ConfigureDnsSettings" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "ConfigureContactSettings" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "ExportRegistration" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "DeleteRegistration" },
+ { "service": "google.cloud.domains.v1alpha2.DomainsService", "method": "ResetAuthorizationCode" }
+ ],
+ "timeout": "60s"
+ }
+ ]
+}
diff --git a/third_party/googleapis/google/cloud/domains/v1alpha2/domains_v1alpha2.yaml b/third_party/googleapis/google/cloud/domains/v1alpha2/domains_v1alpha2.yaml
new file mode 100644
index 0000000..f5fadf8
--- /dev/null
+++ b/third_party/googleapis/google/cloud/domains/v1alpha2/domains_v1alpha2.yaml
@@ -0,0 +1,101 @@
+type: google.api.Service
+config_version: 3
+name: domains.googleapis.com
+title: Cloud Domains API
+
+apis:
+- name: google.cloud.domains.v1alpha2.Domains
+
+types:
+- name: google.cloud.domains.v1alpha2.OperationMetadata
+
+documentation:
+ summary: Enables management and configuration of domain names.
+ rules:
+ - selector: google.cloud.location.Locations.GetLocation
+ description: Gets information about a location.
+
+ - selector: google.cloud.location.Locations.ListLocations
+ description: Lists information about the supported locations for this service.
+
+ - selector: google.iam.v1.IAMPolicy.GetIamPolicy
+ description: |-
+ Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+
+ - selector: google.iam.v1.IAMPolicy.SetIamPolicy
+ description: |-
+ Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+
+ - selector: google.iam.v1.IAMPolicy.TestIamPermissions
+ description: |-
+ Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+
+backend:
+ rules:
+ - selector: 'google.cloud.domains.v1alpha2.Domains.*'
+ deadline: 60.0
+ - selector: google.cloud.location.Locations.GetLocation
+ deadline: 60.0
+ - selector: google.cloud.location.Locations.ListLocations
+ deadline: 60.0
+ - selector: 'google.iam.v1.IAMPolicy.*'
+ deadline: 60.0
+ - selector: google.longrunning.Operations.GetOperation
+ deadline: 5.0
+ - selector: google.longrunning.Operations.ListOperations
+ deadline: 60.0
+ - selector: google.longrunning.Operations.WaitOperation
+ deadline: 60.0
+
+http:
+ rules:
+ - selector: google.cloud.location.Locations.GetLocation
+ get: '/v1alpha2/{name=projects/*/locations/*}'
+ - selector: google.cloud.location.Locations.ListLocations
+ get: '/v1alpha2/{name=projects/*}/locations'
+ - selector: google.iam.v1.IAMPolicy.GetIamPolicy
+ get: '/v1alpha2/{resource=projects/*/locations/*/registrations/*}:getIamPolicy'
+ - selector: google.iam.v1.IAMPolicy.SetIamPolicy
+ post: '/v1alpha2/{resource=projects/*/locations/*/registrations/*}:setIamPolicy'
+ body: '*'
+ - selector: google.iam.v1.IAMPolicy.TestIamPermissions
+ post: '/v1alpha2/{resource=projects/*/locations/*/registrations/*}:testIamPermissions'
+ body: '*'
+ - selector: google.longrunning.Operations.GetOperation
+ get: '/v1alpha2/{name=projects/*/locations/*/operations/*}'
+ - selector: google.longrunning.Operations.ListOperations
+ get: '/v1alpha2/{name=projects/*/locations/*}/operations'
+
+authentication:
+ rules:
+ - selector: 'google.cloud.domains.v1alpha2.Domains.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.cloud.location.Locations.GetLocation
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.cloud.location.Locations.ListLocations
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: 'google.iam.v1.IAMPolicy.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: 'google.longrunning.Operations.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform