You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
983 lines
37 KiB
983 lines
37 KiB
// 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.cloud.domains.v1beta1; |
|
|
|
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/v1beta1;domains"; |
|
option java_multiple_files = true; |
|
option java_outer_classname = "DomainsProto"; |
|
option java_package = "com.google.cloud.domains.v1beta1"; |
|
|
|
// 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: "/v1beta1/{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: "/v1beta1/{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: "/v1beta1/{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" |
|
}; |
|
} |
|
|
|
// Lists the `Registration` resources in a project. |
|
rpc ListRegistrations(ListRegistrationsRequest) returns (ListRegistrationsResponse) { |
|
option (google.api.http) = { |
|
get: "/v1beta1/{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: "/v1beta1/{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: "/v1beta1/{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: "/v1beta1/{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: "/v1beta1/{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: "/v1beta1/{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` that you no longer want to use with |
|
// Cloud Domains. You can continue to use the domain in |
|
// [Google Domains](https://domains.google/) until it expires. |
|
// |
|
// If the export is successful: |
|
// |
|
// * The resource's `state` becomes `EXPORTED`, meaning that it is no longer |
|
// managed by Cloud Domains |
|
// * Because individual users can own domains in Google Domains, the calling |
|
// user becomes the domain's sole owner. Permissions for the domain are |
|
// subsequently managed in Google Domains. |
|
// * Without further action, the domain does not renew automatically. |
|
// The new owner can set up billing in Google Domains to renew the domain |
|
// if needed. |
|
rpc ExportRegistration(ExportRegistrationRequest) returns (google.longrunning.Operation) { |
|
option (google.api.http) = { |
|
post: "/v1beta1/{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 only works on resources in one of the following states: |
|
// |
|
// * `state` is `EXPORTED` with `expire_time` in the past |
|
// * `state` is `REGISTRATION_FAILED` |
|
rpc DeleteRegistration(DeleteRegistrationRequest) returns (google.longrunning.Operation) { |
|
option (google.api.http) = { |
|
delete: "/v1beta1/{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: "/v1beta1/{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: "/v1beta1/{registration=projects/*/locations/*/registrations/*}:resetAuthorizationCode" |
|
body: "*" |
|
}; |
|
option (google.api.method_signature) = "registration"; |
|
} |
|
} |
|
|
|
// The `Registration` resource facilitates managing and configuring domain name |
|
// registrations. |
|
// |
|
// |
|
// 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`. |
|
// |
|
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 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 has been exported from Cloud Domains to |
|
// [Google Domains](https://domains.google/). You can no longer update it |
|
// with this API, and information shown about it may be stale. Without further action, domains in this |
|
// state expire at their `expire_time`. You can delete the resource |
|
// after the `expire_time` has passed. |
|
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 |
|
// 14 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 yet 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, export the domain 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; |
|
|
|
// 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; |
|
} |
|
|
|
// 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 will receive an email |
|
// confirmation that they must complete within 14 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 |
|
// required 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 will be performed, without actually registering |
|
// the domain. Follows: |
|
// https://cloud.google.com/apis/design/design_patterns#request_validation |
|
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` would |
|
// be `"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` |
|
// would be `"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` would be |
|
// `"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` would be `"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` would be `"registrant_contact"`. |
|
google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// The list of contact notices that the caller acknowledges. The notices |
|
// required 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; |
|
} |
|
|
|
// 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; |
|
}
|
|
|