diff --git a/scaleway-async/scaleway_async/domain/v2beta1/__init__.py b/scaleway-async/scaleway_async/domain/v2beta1/__init__.py index f8bbd9dbe..1d2c3e78e 100644 --- a/scaleway-async/scaleway_async/domain/v2beta1/__init__.py +++ b/scaleway-async/scaleway_async/domain/v2beta1/__init__.py @@ -53,6 +53,7 @@ from .types import RecordIdentifier from .types import ContactExtensionEU from .types import ContactExtensionFR +from .types import ContactExtensionIT from .types import ContactExtensionNL from .types import ContactQuestion from .types import TldOffer @@ -167,7 +168,9 @@ from .types import RestoreDNSZoneVersionRequest from .types import RestoreDNSZoneVersionResponse from .types import RetryInboundTransferResponse +from .types import SearchAvailableDomainsConsoleResponse from .types import SearchAvailableDomainsResponse +from .types import UnauthenticatedRegistrarApiSearchAvailableDomainsConsoleRequest from .types import UpdateDNSZoneNameserversRequest from .types import UpdateDNSZoneNameserversResponse from .types import UpdateDNSZoneRecordsRequest @@ -175,6 +178,7 @@ from .types import UpdateDNSZoneRequest from .api import DomainV2Beta1API from .api import DomainV2Beta1RegistrarAPI +from .api import DomainV2Beta1UnauthenticatedRegistrarAPI __all__ = [ "ContactEmailStatus", @@ -230,6 +234,7 @@ "RecordIdentifier", "ContactExtensionEU", "ContactExtensionFR", + "ContactExtensionIT", "ContactExtensionNL", "ContactQuestion", "TldOffer", @@ -344,7 +349,9 @@ "RestoreDNSZoneVersionRequest", "RestoreDNSZoneVersionResponse", "RetryInboundTransferResponse", + "SearchAvailableDomainsConsoleResponse", "SearchAvailableDomainsResponse", + "UnauthenticatedRegistrarApiSearchAvailableDomainsConsoleRequest", "UpdateDNSZoneNameserversRequest", "UpdateDNSZoneNameserversResponse", "UpdateDNSZoneRecordsRequest", @@ -352,4 +359,5 @@ "UpdateDNSZoneRequest", "DomainV2Beta1API", "DomainV2Beta1RegistrarAPI", + "DomainV2Beta1UnauthenticatedRegistrarAPI", ] diff --git a/scaleway-async/scaleway_async/domain/v2beta1/api.py b/scaleway-async/scaleway_async/domain/v2beta1/api.py index 5aa7499ac..26aed8254 100644 --- a/scaleway-async/scaleway_async/domain/v2beta1/api.py +++ b/scaleway-async/scaleway_async/domain/v2beta1/api.py @@ -7,7 +7,9 @@ from scaleway_core.api import API from scaleway_core.bridge import ( ScwFile, + ServiceInfo, unmarshal_ScwFile, + unmarshal_ServiceInfo, ) from scaleway_core.utils import ( WaitForOptions, @@ -35,6 +37,7 @@ Contact, ContactExtensionEU, ContactExtensionFR, + ContactExtensionIT, ContactExtensionNL, ContactRoles, CreateDNSZoneRequest, @@ -96,6 +99,7 @@ RestoreDNSZoneVersionResponse, RetryInboundTransferResponse, SSLCertificate, + SearchAvailableDomainsConsoleResponse, SearchAvailableDomainsResponse, Task, Tld, @@ -145,6 +149,7 @@ unmarshal_RegisterExternalDomainResponse, unmarshal_RestoreDNSZoneVersionResponse, unmarshal_RetryInboundTransferResponse, + unmarshal_SearchAvailableDomainsConsoleResponse, unmarshal_SearchAvailableDomainsResponse, unmarshal_UpdateDNSZoneNameserversResponse, unmarshal_UpdateDNSZoneRecordsResponse, @@ -2087,6 +2092,7 @@ async def update_contact( whois_opt_in: Optional[bool] = None, state: Optional[str] = None, extension_nl: Optional[ContactExtensionNL] = None, + extension_it: Optional[ContactExtensionIT] = None, ) -> Contact: """ Update contact. @@ -2111,6 +2117,7 @@ async def update_contact( :param whois_opt_in: :param state: :param extension_nl: + :param extension_it: :return: :class:`Contact ` Usage: @@ -2148,6 +2155,7 @@ async def update_contact( whois_opt_in=whois_opt_in, state=state, extension_nl=extension_nl, + extension_it=extension_it, ), self.client, ), @@ -2977,3 +2985,65 @@ async def delete_domain_host( self._throw_on_error(res) return unmarshal_Host(res.json()) + + +class DomainV2Beta1UnauthenticatedRegistrarAPI(API): + """ + Unauthenticated Domain search API. + """ + + async def get_service_info( + self, + ) -> ServiceInfo: + """ + + :return: :class:`ServiceInfo ` + + Usage: + :: + + result = await api.get_service_info() + """ + + res = self._request( + "GET", + "/domain/v2beta1/search", + ) + + self._throw_on_error(res) + return unmarshal_ServiceInfo(res.json()) + + async def search_available_domains_console( + self, + *, + domain: str, + strict_search: bool, + tlds: Optional[list[str]] = None, + ) -> SearchAvailableDomainsConsoleResponse: + """ + :param domain: + :param strict_search: + :param tlds: + :return: :class:`SearchAvailableDomainsConsoleResponse ` + + Usage: + :: + + result = await api.search_available_domains_console( + domain="example", + strict_search=False, + ) + """ + + res = self._request( + "GET", + "/domain/v2beta1/search-domains-console", + params={ + "domain": domain, + "strict_search": strict_search, + "tlds": tlds, + }, + ) + + self._throw_on_error(res) + return unmarshal_SearchAvailableDomainsConsoleResponse(res.json()) diff --git a/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py b/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py index 37441a25d..a6f13566c 100644 --- a/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py +++ b/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py @@ -26,6 +26,7 @@ ContactExtensionFRTrademarkInfo, ContactExtensionEU, ContactExtensionFR, + ContactExtensionIT, ContactExtensionNL, ContactQuestion, Contact, @@ -93,6 +94,7 @@ RestoreDNSZoneVersionResponse, RetryInboundTransferResponse, AvailableDomain, + SearchAvailableDomainsConsoleResponse, SearchAvailableDomainsResponse, UpdateDNSZoneNameserversResponse, UpdateDNSZoneRecordsResponse, @@ -300,6 +302,29 @@ def unmarshal_ContactExtensionFR(data: Any) -> ContactExtensionFR: return ContactExtensionFR(**args) +def unmarshal_ContactExtensionIT(data: Any) -> ContactExtensionIT: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ContactExtensionIT' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("european_citizenship", None) + if field is not None: + args["european_citizenship"] = field + else: + args["european_citizenship"] = None + + field = data.get("tax_code", None) + if field is not None: + args["tax_code"] = field + else: + args["tax_code"] = None + + return ContactExtensionIT(**args) + + def unmarshal_ContactExtensionNL(data: Any) -> ContactExtensionNL: if not isinstance(data, dict): raise TypeError( @@ -512,6 +537,12 @@ def unmarshal_Contact(data: Any) -> Contact: else: args["extension_nl"] = None + field = data.get("extension_it", None) + if field is not None: + args["extension_it"] = unmarshal_ContactExtensionIT(field) + else: + args["extension_it"] = None + return Contact(**args) @@ -2581,6 +2612,33 @@ def unmarshal_AvailableDomain(data: Any) -> AvailableDomain: return AvailableDomain(**args) +def unmarshal_SearchAvailableDomainsConsoleResponse( + data: Any, +) -> SearchAvailableDomainsConsoleResponse: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'SearchAvailableDomainsConsoleResponse' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("available_domains", None) + if field is not None: + args["available_domains"] = ( + [unmarshal_AvailableDomain(v) for v in field] if field is not None else None + ) + else: + args["available_domains"] = None + + field = data.get("exact_match_domain", None) + if field is not None: + args["exact_match_domain"] = unmarshal_AvailableDomain(field) + else: + args["exact_match_domain"] = None + + return SearchAvailableDomainsConsoleResponse(**args) + + def unmarshal_SearchAvailableDomainsResponse( data: Any, ) -> SearchAvailableDomainsResponse: @@ -2946,6 +3004,21 @@ def marshal_ContactExtensionFR( return output +def marshal_ContactExtensionIT( + request: ContactExtensionIT, + defaults: ProfileDefaults, +) -> dict[str, Any]: + output: dict[str, Any] = {} + + if request.european_citizenship is not None: + output["european_citizenship"] = request.european_citizenship + + if request.tax_code is not None: + output["tax_code"] = request.tax_code + + return output + + def marshal_ContactExtensionNL( request: ContactExtensionNL, defaults: ProfileDefaults, @@ -2996,12 +3069,6 @@ def marshal_NewContact( if request.email is not None: output["email"] = request.email - if request.company_name is not None: - output["company_name"] = request.company_name - - if request.email_alt is not None: - output["email_alt"] = request.email_alt - if request.phone_number is not None: output["phone_number"] = request.phone_number @@ -3014,8 +3081,11 @@ def marshal_NewContact( if request.city is not None: output["city"] = request.city - if request.country is not None: - output["country"] = request.country + if request.company_name is not None: + output["company_name"] = request.company_name + + if request.email_alt is not None: + output["email_alt"] = request.email_alt if request.fax_number is not None: output["fax_number"] = request.fax_number @@ -3023,11 +3093,8 @@ def marshal_NewContact( if request.address_line_2 is not None: output["address_line_2"] = request.address_line_2 - if request.vat_identification_code is not None: - output["vat_identification_code"] = request.vat_identification_code - - if request.company_identification_code is not None: - output["company_identification_code"] = request.company_identification_code + if request.country is not None: + output["country"] = request.country if request.lang is not None: output["lang"] = request.lang @@ -3038,6 +3105,12 @@ def marshal_NewContact( if request.whois_opt_in is not None: output["whois_opt_in"] = request.whois_opt_in + if request.vat_identification_code is not None: + output["vat_identification_code"] = request.vat_identification_code + + if request.company_identification_code is not None: + output["company_identification_code"] = request.company_identification_code + if request.questions is not None: output["questions"] = [ marshal_ContactQuestion(item, defaults) for item in request.questions @@ -3061,6 +3134,11 @@ def marshal_NewContact( request.extension_nl, defaults ) + if request.extension_it is not None: + output["extension_it"] = marshal_ContactExtensionIT( + request.extension_it, defaults + ) + return output @@ -3536,6 +3614,11 @@ def marshal_RegistrarApiUpdateContactRequest( request.extension_nl, defaults ) + if request.extension_it is not None: + output["extension_it"] = marshal_ContactExtensionIT( + request.extension_it, defaults + ) + return output diff --git a/scaleway-async/scaleway_async/domain/v2beta1/types.py b/scaleway-async/scaleway_async/domain/v2beta1/types.py index 75dd1fc09..f071abc39 100644 --- a/scaleway-async/scaleway_async/domain/v2beta1/types.py +++ b/scaleway-async/scaleway_async/domain/v2beta1/types.py @@ -515,6 +515,12 @@ class ContactExtensionFR: code_auth_afnic_info: Optional[ContactExtensionFRCodeAuthAfnicInfo] = None +@dataclass +class ContactExtensionIT: + european_citizenship: str + tax_code: str + + @dataclass class ContactExtensionNL: legal_form: ContactExtensionNLLegalForm @@ -603,6 +609,7 @@ class Contact: extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None extension_nl: Optional[ContactExtensionNL] = None + extension_it: Optional[ContactExtensionIT] = None @dataclass @@ -660,6 +667,7 @@ class NewContact: extension_eu: Optional[ContactExtensionEU] = None state: Optional[str] = None extension_nl: Optional[ContactExtensionNL] = None + extension_it: Optional[ContactExtensionIT] = None @dataclass @@ -1768,6 +1776,7 @@ class RegistrarApiUpdateContactRequest: whois_opt_in: Optional[bool] = None state: Optional[str] = None extension_nl: Optional[ContactExtensionNL] = None + extension_it: Optional[ContactExtensionIT] = None @dataclass @@ -1808,6 +1817,12 @@ class RetryInboundTransferResponse: pass +@dataclass +class SearchAvailableDomainsConsoleResponse: + available_domains: list[AvailableDomain] + exact_match_domain: Optional[AvailableDomain] = None + + @dataclass class SearchAvailableDomainsResponse: available_domains: list[AvailableDomain] @@ -1816,6 +1831,13 @@ class SearchAvailableDomainsResponse: """ +@dataclass +class UnauthenticatedRegistrarApiSearchAvailableDomainsConsoleRequest: + domain: str + strict_search: bool + tlds: Optional[list[str]] = field(default_factory=list) + + @dataclass class UpdateDNSZoneNameserversRequest: dns_zone: str diff --git a/scaleway/scaleway/domain/v2beta1/__init__.py b/scaleway/scaleway/domain/v2beta1/__init__.py index f8bbd9dbe..1d2c3e78e 100644 --- a/scaleway/scaleway/domain/v2beta1/__init__.py +++ b/scaleway/scaleway/domain/v2beta1/__init__.py @@ -53,6 +53,7 @@ from .types import RecordIdentifier from .types import ContactExtensionEU from .types import ContactExtensionFR +from .types import ContactExtensionIT from .types import ContactExtensionNL from .types import ContactQuestion from .types import TldOffer @@ -167,7 +168,9 @@ from .types import RestoreDNSZoneVersionRequest from .types import RestoreDNSZoneVersionResponse from .types import RetryInboundTransferResponse +from .types import SearchAvailableDomainsConsoleResponse from .types import SearchAvailableDomainsResponse +from .types import UnauthenticatedRegistrarApiSearchAvailableDomainsConsoleRequest from .types import UpdateDNSZoneNameserversRequest from .types import UpdateDNSZoneNameserversResponse from .types import UpdateDNSZoneRecordsRequest @@ -175,6 +178,7 @@ from .types import UpdateDNSZoneRequest from .api import DomainV2Beta1API from .api import DomainV2Beta1RegistrarAPI +from .api import DomainV2Beta1UnauthenticatedRegistrarAPI __all__ = [ "ContactEmailStatus", @@ -230,6 +234,7 @@ "RecordIdentifier", "ContactExtensionEU", "ContactExtensionFR", + "ContactExtensionIT", "ContactExtensionNL", "ContactQuestion", "TldOffer", @@ -344,7 +349,9 @@ "RestoreDNSZoneVersionRequest", "RestoreDNSZoneVersionResponse", "RetryInboundTransferResponse", + "SearchAvailableDomainsConsoleResponse", "SearchAvailableDomainsResponse", + "UnauthenticatedRegistrarApiSearchAvailableDomainsConsoleRequest", "UpdateDNSZoneNameserversRequest", "UpdateDNSZoneNameserversResponse", "UpdateDNSZoneRecordsRequest", @@ -352,4 +359,5 @@ "UpdateDNSZoneRequest", "DomainV2Beta1API", "DomainV2Beta1RegistrarAPI", + "DomainV2Beta1UnauthenticatedRegistrarAPI", ] diff --git a/scaleway/scaleway/domain/v2beta1/api.py b/scaleway/scaleway/domain/v2beta1/api.py index 5ecf1d8c7..69f7f9709 100644 --- a/scaleway/scaleway/domain/v2beta1/api.py +++ b/scaleway/scaleway/domain/v2beta1/api.py @@ -7,7 +7,9 @@ from scaleway_core.api import API from scaleway_core.bridge import ( ScwFile, + ServiceInfo, unmarshal_ScwFile, + unmarshal_ServiceInfo, ) from scaleway_core.utils import ( WaitForOptions, @@ -35,6 +37,7 @@ Contact, ContactExtensionEU, ContactExtensionFR, + ContactExtensionIT, ContactExtensionNL, ContactRoles, CreateDNSZoneRequest, @@ -96,6 +99,7 @@ RestoreDNSZoneVersionResponse, RetryInboundTransferResponse, SSLCertificate, + SearchAvailableDomainsConsoleResponse, SearchAvailableDomainsResponse, Task, Tld, @@ -145,6 +149,7 @@ unmarshal_RegisterExternalDomainResponse, unmarshal_RestoreDNSZoneVersionResponse, unmarshal_RetryInboundTransferResponse, + unmarshal_SearchAvailableDomainsConsoleResponse, unmarshal_SearchAvailableDomainsResponse, unmarshal_UpdateDNSZoneNameserversResponse, unmarshal_UpdateDNSZoneRecordsResponse, @@ -2085,6 +2090,7 @@ def update_contact( whois_opt_in: Optional[bool] = None, state: Optional[str] = None, extension_nl: Optional[ContactExtensionNL] = None, + extension_it: Optional[ContactExtensionIT] = None, ) -> Contact: """ Update contact. @@ -2109,6 +2115,7 @@ def update_contact( :param whois_opt_in: :param state: :param extension_nl: + :param extension_it: :return: :class:`Contact ` Usage: @@ -2146,6 +2153,7 @@ def update_contact( whois_opt_in=whois_opt_in, state=state, extension_nl=extension_nl, + extension_it=extension_it, ), self.client, ), @@ -2975,3 +2983,65 @@ def delete_domain_host( self._throw_on_error(res) return unmarshal_Host(res.json()) + + +class DomainV2Beta1UnauthenticatedRegistrarAPI(API): + """ + Unauthenticated Domain search API. + """ + + def get_service_info( + self, + ) -> ServiceInfo: + """ + + :return: :class:`ServiceInfo ` + + Usage: + :: + + result = api.get_service_info() + """ + + res = self._request( + "GET", + "/domain/v2beta1/search", + ) + + self._throw_on_error(res) + return unmarshal_ServiceInfo(res.json()) + + def search_available_domains_console( + self, + *, + domain: str, + strict_search: bool, + tlds: Optional[list[str]] = None, + ) -> SearchAvailableDomainsConsoleResponse: + """ + :param domain: + :param strict_search: + :param tlds: + :return: :class:`SearchAvailableDomainsConsoleResponse ` + + Usage: + :: + + result = api.search_available_domains_console( + domain="example", + strict_search=False, + ) + """ + + res = self._request( + "GET", + "/domain/v2beta1/search-domains-console", + params={ + "domain": domain, + "strict_search": strict_search, + "tlds": tlds, + }, + ) + + self._throw_on_error(res) + return unmarshal_SearchAvailableDomainsConsoleResponse(res.json()) diff --git a/scaleway/scaleway/domain/v2beta1/marshalling.py b/scaleway/scaleway/domain/v2beta1/marshalling.py index 37441a25d..a6f13566c 100644 --- a/scaleway/scaleway/domain/v2beta1/marshalling.py +++ b/scaleway/scaleway/domain/v2beta1/marshalling.py @@ -26,6 +26,7 @@ ContactExtensionFRTrademarkInfo, ContactExtensionEU, ContactExtensionFR, + ContactExtensionIT, ContactExtensionNL, ContactQuestion, Contact, @@ -93,6 +94,7 @@ RestoreDNSZoneVersionResponse, RetryInboundTransferResponse, AvailableDomain, + SearchAvailableDomainsConsoleResponse, SearchAvailableDomainsResponse, UpdateDNSZoneNameserversResponse, UpdateDNSZoneRecordsResponse, @@ -300,6 +302,29 @@ def unmarshal_ContactExtensionFR(data: Any) -> ContactExtensionFR: return ContactExtensionFR(**args) +def unmarshal_ContactExtensionIT(data: Any) -> ContactExtensionIT: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ContactExtensionIT' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("european_citizenship", None) + if field is not None: + args["european_citizenship"] = field + else: + args["european_citizenship"] = None + + field = data.get("tax_code", None) + if field is not None: + args["tax_code"] = field + else: + args["tax_code"] = None + + return ContactExtensionIT(**args) + + def unmarshal_ContactExtensionNL(data: Any) -> ContactExtensionNL: if not isinstance(data, dict): raise TypeError( @@ -512,6 +537,12 @@ def unmarshal_Contact(data: Any) -> Contact: else: args["extension_nl"] = None + field = data.get("extension_it", None) + if field is not None: + args["extension_it"] = unmarshal_ContactExtensionIT(field) + else: + args["extension_it"] = None + return Contact(**args) @@ -2581,6 +2612,33 @@ def unmarshal_AvailableDomain(data: Any) -> AvailableDomain: return AvailableDomain(**args) +def unmarshal_SearchAvailableDomainsConsoleResponse( + data: Any, +) -> SearchAvailableDomainsConsoleResponse: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'SearchAvailableDomainsConsoleResponse' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("available_domains", None) + if field is not None: + args["available_domains"] = ( + [unmarshal_AvailableDomain(v) for v in field] if field is not None else None + ) + else: + args["available_domains"] = None + + field = data.get("exact_match_domain", None) + if field is not None: + args["exact_match_domain"] = unmarshal_AvailableDomain(field) + else: + args["exact_match_domain"] = None + + return SearchAvailableDomainsConsoleResponse(**args) + + def unmarshal_SearchAvailableDomainsResponse( data: Any, ) -> SearchAvailableDomainsResponse: @@ -2946,6 +3004,21 @@ def marshal_ContactExtensionFR( return output +def marshal_ContactExtensionIT( + request: ContactExtensionIT, + defaults: ProfileDefaults, +) -> dict[str, Any]: + output: dict[str, Any] = {} + + if request.european_citizenship is not None: + output["european_citizenship"] = request.european_citizenship + + if request.tax_code is not None: + output["tax_code"] = request.tax_code + + return output + + def marshal_ContactExtensionNL( request: ContactExtensionNL, defaults: ProfileDefaults, @@ -2996,12 +3069,6 @@ def marshal_NewContact( if request.email is not None: output["email"] = request.email - if request.company_name is not None: - output["company_name"] = request.company_name - - if request.email_alt is not None: - output["email_alt"] = request.email_alt - if request.phone_number is not None: output["phone_number"] = request.phone_number @@ -3014,8 +3081,11 @@ def marshal_NewContact( if request.city is not None: output["city"] = request.city - if request.country is not None: - output["country"] = request.country + if request.company_name is not None: + output["company_name"] = request.company_name + + if request.email_alt is not None: + output["email_alt"] = request.email_alt if request.fax_number is not None: output["fax_number"] = request.fax_number @@ -3023,11 +3093,8 @@ def marshal_NewContact( if request.address_line_2 is not None: output["address_line_2"] = request.address_line_2 - if request.vat_identification_code is not None: - output["vat_identification_code"] = request.vat_identification_code - - if request.company_identification_code is not None: - output["company_identification_code"] = request.company_identification_code + if request.country is not None: + output["country"] = request.country if request.lang is not None: output["lang"] = request.lang @@ -3038,6 +3105,12 @@ def marshal_NewContact( if request.whois_opt_in is not None: output["whois_opt_in"] = request.whois_opt_in + if request.vat_identification_code is not None: + output["vat_identification_code"] = request.vat_identification_code + + if request.company_identification_code is not None: + output["company_identification_code"] = request.company_identification_code + if request.questions is not None: output["questions"] = [ marshal_ContactQuestion(item, defaults) for item in request.questions @@ -3061,6 +3134,11 @@ def marshal_NewContact( request.extension_nl, defaults ) + if request.extension_it is not None: + output["extension_it"] = marshal_ContactExtensionIT( + request.extension_it, defaults + ) + return output @@ -3536,6 +3614,11 @@ def marshal_RegistrarApiUpdateContactRequest( request.extension_nl, defaults ) + if request.extension_it is not None: + output["extension_it"] = marshal_ContactExtensionIT( + request.extension_it, defaults + ) + return output diff --git a/scaleway/scaleway/domain/v2beta1/types.py b/scaleway/scaleway/domain/v2beta1/types.py index 75dd1fc09..f071abc39 100644 --- a/scaleway/scaleway/domain/v2beta1/types.py +++ b/scaleway/scaleway/domain/v2beta1/types.py @@ -515,6 +515,12 @@ class ContactExtensionFR: code_auth_afnic_info: Optional[ContactExtensionFRCodeAuthAfnicInfo] = None +@dataclass +class ContactExtensionIT: + european_citizenship: str + tax_code: str + + @dataclass class ContactExtensionNL: legal_form: ContactExtensionNLLegalForm @@ -603,6 +609,7 @@ class Contact: extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None extension_nl: Optional[ContactExtensionNL] = None + extension_it: Optional[ContactExtensionIT] = None @dataclass @@ -660,6 +667,7 @@ class NewContact: extension_eu: Optional[ContactExtensionEU] = None state: Optional[str] = None extension_nl: Optional[ContactExtensionNL] = None + extension_it: Optional[ContactExtensionIT] = None @dataclass @@ -1768,6 +1776,7 @@ class RegistrarApiUpdateContactRequest: whois_opt_in: Optional[bool] = None state: Optional[str] = None extension_nl: Optional[ContactExtensionNL] = None + extension_it: Optional[ContactExtensionIT] = None @dataclass @@ -1808,6 +1817,12 @@ class RetryInboundTransferResponse: pass +@dataclass +class SearchAvailableDomainsConsoleResponse: + available_domains: list[AvailableDomain] + exact_match_domain: Optional[AvailableDomain] = None + + @dataclass class SearchAvailableDomainsResponse: available_domains: list[AvailableDomain] @@ -1816,6 +1831,13 @@ class SearchAvailableDomainsResponse: """ +@dataclass +class UnauthenticatedRegistrarApiSearchAvailableDomainsConsoleRequest: + domain: str + strict_search: bool + tlds: Optional[list[str]] = field(default_factory=list) + + @dataclass class UpdateDNSZoneNameserversRequest: dns_zone: str