123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983 |
- // 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.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"
- };
- }
- // 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` 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: "/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 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: "/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.
- //
- //
- // 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;
- }
|