diff --git a/scaleway-async/scaleway_async/domain/v2beta1/api.py b/scaleway-async/scaleway_async/domain/v2beta1/api.py index 26aed8254..8a27d75d6 100644 --- a/scaleway-async/scaleway_async/domain/v2beta1/api.py +++ b/scaleway-async/scaleway_async/domain/v2beta1/api.py @@ -189,12 +189,12 @@ async def list_dns_zones( self, *, domain: str, + dns_zone: str, organization_id: Optional[str] = None, project_id: Optional[str] = None, order_by: Optional[ListDNSZonesRequestOrderBy] = None, page: Optional[int] = None, page_size: Optional[int] = None, - dns_zone: Optional[str] = None, dns_zones: Optional[list[str]] = None, created_after: Optional[datetime] = None, created_before: Optional[datetime] = None, @@ -205,12 +205,12 @@ async def list_dns_zones( List DNS zones. Retrieve the list of DNS zones you can manage and filter DNS zones associated with specific domain names. :param domain: Domain on which to filter the returned DNS zones. + :param dns_zone: DNS zone on which to filter the returned DNS zones. :param organization_id: Organization ID on which to filter the returned DNS zones. :param project_id: Project ID on which to filter the returned DNS zones. :param order_by: Sort order of the returned DNS zones. :param page: Page number to return, from the paginated results. :param page_size: Maximum number of DNS zones to return per page. - :param dns_zone: DNS zone on which to filter the returned DNS zones. :param dns_zones: DNS zones on which to filter the returned DNS zones. :param created_after: Only list DNS zones created after this date. :param created_before: Only list DNS zones created before this date. @@ -223,6 +223,7 @@ async def list_dns_zones( result = await api.list_dns_zones( domain="example", + dns_zone="example", ) """ @@ -253,12 +254,12 @@ async def list_dns_zones_all( self, *, domain: str, + dns_zone: str, organization_id: Optional[str] = None, project_id: Optional[str] = None, order_by: Optional[ListDNSZonesRequestOrderBy] = None, page: Optional[int] = None, page_size: Optional[int] = None, - dns_zone: Optional[str] = None, dns_zones: Optional[list[str]] = None, created_after: Optional[datetime] = None, created_before: Optional[datetime] = None, @@ -269,12 +270,12 @@ async def list_dns_zones_all( List DNS zones. Retrieve the list of DNS zones you can manage and filter DNS zones associated with specific domain names. :param domain: Domain on which to filter the returned DNS zones. + :param dns_zone: DNS zone on which to filter the returned DNS zones. :param organization_id: Organization ID on which to filter the returned DNS zones. :param project_id: Project ID on which to filter the returned DNS zones. :param order_by: Sort order of the returned DNS zones. :param page: Page number to return, from the paginated results. :param page_size: Maximum number of DNS zones to return per page. - :param dns_zone: DNS zone on which to filter the returned DNS zones. :param dns_zones: DNS zones on which to filter the returned DNS zones. :param created_after: Only list DNS zones created after this date. :param created_before: Only list DNS zones created before this date. @@ -287,6 +288,7 @@ async def list_dns_zones_all( result = await api.list_dns_zones_all( domain="example", + dns_zone="example", ) """ @@ -296,12 +298,12 @@ async def list_dns_zones_all( fetcher=self.list_dns_zones, args={ "domain": domain, + "dns_zone": dns_zone, "organization_id": organization_id, "project_id": project_id, "order_by": order_by, "page": page, "page_size": page_size, - "dns_zone": dns_zone, "dns_zones": dns_zones, "created_after": created_after, "created_before": created_before, @@ -774,7 +776,7 @@ async def import_raw_dns_zone( self, *, dns_zone: str, - content: Optional[str] = None, + content: str, project_id: Optional[str] = None, format: Optional[RawFormat] = None, bind_source: Optional[ImportRawDNSZoneRequestBindSource] = None, @@ -798,6 +800,7 @@ async def import_raw_dns_zone( result = await api.import_raw_dns_zone( dns_zone="example", + content="example", ) """ @@ -1169,8 +1172,8 @@ async def wait_for_ssl_certificate( options = WaitForOptions() if not options.stop: - options.stop = ( - lambda res: res.status not in SSL_CERTIFICATE_TRANSIENT_STATUSES + options.stop = lambda res: ( + res.status not in SSL_CERTIFICATE_TRANSIENT_STATUSES ) return await wait_for_resource_async( @@ -2086,13 +2089,13 @@ async def update_contact( company_identification_code: Optional[str] = None, lang: Optional[StdLanguageCode] = None, resale: Optional[bool] = None, - questions: Optional[list[UpdateContactRequestQuestion]] = None, extension_fr: Optional[ContactExtensionFR] = None, extension_eu: Optional[ContactExtensionEU] = None, - whois_opt_in: Optional[bool] = None, - state: Optional[str] = None, extension_nl: Optional[ContactExtensionNL] = None, extension_it: Optional[ContactExtensionIT] = None, + whois_opt_in: Optional[bool] = None, + state: Optional[str] = None, + questions: Optional[list[UpdateContactRequestQuestion]] = None, ) -> Contact: """ Update contact. @@ -2111,13 +2114,13 @@ async def update_contact( :param company_identification_code: :param lang: :param resale: - :param questions: :param extension_fr: :param extension_eu: - :param whois_opt_in: - :param state: :param extension_nl: :param extension_it: + :param whois_opt_in: + :param state: + :param questions: :return: :class:`Contact ` Usage: @@ -2149,13 +2152,13 @@ async def update_contact( company_identification_code=company_identification_code, lang=lang, resale=resale, - questions=questions, extension_fr=extension_fr, extension_eu=extension_eu, - whois_opt_in=whois_opt_in, - state=state, extension_nl=extension_nl, extension_it=extension_it, + whois_opt_in=whois_opt_in, + state=state, + questions=questions, ), self.client, ), diff --git a/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py b/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py index 687ce62d5..5b723688b 100644 --- a/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py +++ b/scaleway-async/scaleway_async/domain/v2beta1/marshalling.py @@ -13,6 +13,9 @@ resolve_one_of, ) from .types import ( + ContactEmailStatus, + ContactLegalForm, + ContactStatus, DomainFeatureStatus, DomainStatus, InboundTransferStatus, @@ -127,6 +130,9 @@ UpdateDNSZoneRecordsRequest, UpdateDNSZoneRequest, ) +from ...std.types import ( + LanguageCode as StdLanguageCode, +) def unmarshal_ContactExtensionFRAssociationInfo( @@ -310,12 +316,6 @@ def unmarshal_ContactExtensionIT(data: Any) -> ContactExtensionIT: args: dict[str, Any] = {} - field = data.get("pin", None) - if field is not None: - args["pin"] = field - else: - args["pin"] = None - field = data.get("european_citizenship", None) if field is not None: args["european_citizenship"] = field @@ -328,6 +328,12 @@ def unmarshal_ContactExtensionIT(data: Any) -> ContactExtensionIT: else: args["tax_code"] = None + field = data.get("pin", None) + if field is not None: + args["pin"] = field + else: + args["pin"] = None + return ContactExtensionIT(**args) @@ -395,7 +401,7 @@ def unmarshal_Contact(data: Any) -> Contact: if field is not None: args["legal_form"] = field else: - args["legal_form"] = None + args["legal_form"] = ContactLegalForm.LEGAL_FORM_UNKNOWN field = data.get("firstname", None) if field is not None: @@ -485,27 +491,25 @@ def unmarshal_Contact(data: Any) -> Contact: if field is not None: args["lang"] = field else: - args["lang"] = None + args["lang"] = StdLanguageCode.UNKNOWN_LANGUAGE_CODE field = data.get("resale", None) if field is not None: args["resale"] = field else: - args["resale"] = None + args["resale"] = False field = data.get("whois_opt_in", None) if field is not None: args["whois_opt_in"] = field else: - args["whois_opt_in"] = None + args["whois_opt_in"] = False - field = data.get("questions", None) + field = data.get("email_status", None) if field is not None: - args["questions"] = ( - [unmarshal_ContactQuestion(v) for v in field] if field is not None else None - ) + args["email_status"] = field else: - args["questions"] = None + args["email_status"] = ContactEmailStatus.EMAIL_STATUS_UNKNOWN field = data.get("extension_fr", None) if field is not None: @@ -519,12 +523,6 @@ def unmarshal_Contact(data: Any) -> Contact: else: args["extension_eu"] = None - field = data.get("email_status", None) - if field is not None: - args["email_status"] = field - else: - args["email_status"] = None - field = data.get("state", None) if field is not None: args["state"] = field @@ -535,7 +533,15 @@ def unmarshal_Contact(data: Any) -> Contact: if field is not None: args["status"] = field else: - args["status"] = None + args["status"] = ContactStatus.STATUS_UNKNOWN + + field = data.get("questions", None) + if field is not None: + args["questions"] = ( + [unmarshal_ContactQuestion(v) for v in field] if field is not None else None + ) + else: + args["questions"] = [] field = data.get("extension_nl", None) if field is not None: @@ -1496,6 +1502,12 @@ def unmarshal_Record(data: Any) -> Record: else: args["view_config"] = None + field = data.get("updated_at", None) + if field is not None: + args["updated_at"] = parser.isoparse(field) if isinstance(field, str) else field + else: + args["updated_at"] = None + return Record(**args) @@ -3016,15 +3028,15 @@ def marshal_ContactExtensionIT( ) -> dict[str, Any]: output: dict[str, Any] = {} - if request.pin is not None: - output["pin"] = request.pin - 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 + if request.pin is not None: + output["pin"] = request.pin + return output @@ -3114,17 +3126,17 @@ def marshal_NewContact( if request.whois_opt_in is not None: output["whois_opt_in"] = request.whois_opt_in + if request.questions is not None: + output["questions"] = [ + marshal_ContactQuestion(item, defaults) for item in request.questions + ] + 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 - ] - if request.extension_fr is not None: output["extension_fr"] = marshal_ContactExtensionFR( request.extension_fr, defaults @@ -3596,12 +3608,6 @@ def marshal_RegistrarApiUpdateContactRequest( if request.resale is not None: output["resale"] = request.resale - if request.questions is not None: - output["questions"] = [ - marshal_UpdateContactRequestQuestion(item, defaults) - for item in request.questions - ] - if request.extension_fr is not None: output["extension_fr"] = marshal_ContactExtensionFR( request.extension_fr, defaults @@ -3612,12 +3618,6 @@ def marshal_RegistrarApiUpdateContactRequest( request.extension_eu, defaults ) - if request.whois_opt_in is not None: - output["whois_opt_in"] = request.whois_opt_in - - if request.state is not None: - output["state"] = request.state - if request.extension_nl is not None: output["extension_nl"] = marshal_ContactExtensionNL( request.extension_nl, defaults @@ -3628,6 +3628,18 @@ def marshal_RegistrarApiUpdateContactRequest( request.extension_it, defaults ) + if request.whois_opt_in is not None: + output["whois_opt_in"] = request.whois_opt_in + + if request.state is not None: + output["state"] = request.state + + if request.questions is not None: + output["questions"] = [ + marshal_UpdateContactRequestQuestion(item, defaults) + for item in request.questions + ] + return output @@ -3898,6 +3910,9 @@ def marshal_Record( if request.comment is not None: output["comment"] = request.comment + if request.updated_at is not None: + output["updated_at"] = request.updated_at.isoformat() + return output diff --git a/scaleway-async/scaleway_async/domain/v2beta1/types.py b/scaleway-async/scaleway_async/domain/v2beta1/types.py index fc462798e..9a5d68df2 100644 --- a/scaleway-async/scaleway_async/domain/v2beta1/types.py +++ b/scaleway-async/scaleway_async/domain/v2beta1/types.py @@ -479,6 +479,7 @@ class Record: type_: RecordType id: str comment: Optional[str] = None + updated_at: Optional[datetime] = None geo_ip_config: Optional[RecordGeoIPConfig] = None http_service_config: Optional[RecordHTTPServiceConfig] = None @@ -517,6 +518,16 @@ class ContactExtensionFR: @dataclass class ContactExtensionIT: + european_citizenship: str + """ + This option is useless anymore. + """ + + tax_code: str + """ + Tax_code is renamed to pin. + """ + pin: str """ Domain name registrant's Taxcode (mandatory / only optional when the trustee is used) @@ -527,16 +538,6 @@ class ContactExtensionIT: * In all other cases it must be equal to VAT number (in the 16 characters format if nationality is IT) or the numeric Codice Fiscale. """ - european_citizenship: Optional[str] = None - """ - This option is useless anymore. - """ - - tax_code: Optional[str] = None - """ - Tax_code is renamed to pin. - """ - @dataclass class ContactExtensionNL: @@ -622,7 +623,7 @@ class Contact: email_status: ContactEmailStatus state: str status: ContactStatus - questions: Optional[list[ContactQuestion]] = field(default_factory=list) + questions: list[ContactQuestion] extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None extension_nl: Optional[ContactExtensionNL] = None @@ -673,13 +674,13 @@ class NewContact: lang: StdLanguageCode resale: bool whois_opt_in: bool + questions: list[ContactQuestion] company_name: Optional[str] = None email_alt: Optional[str] = None fax_number: Optional[str] = None address_line_2: Optional[str] = None vat_identification_code: Optional[str] = None company_identification_code: Optional[str] = None - questions: Optional[list[ContactQuestion]] = field(default_factory=list) extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None state: Optional[str] = None @@ -1186,7 +1187,7 @@ class ImportRawDNSZoneRequest: DNS zone to import. """ - content: Optional[str] = None + content: str project_id: Optional[str] = None format: Optional[RawFormat] = RawFormat.UNKNOWN_RAW_FORMAT bind_source: Optional[ImportRawDNSZoneRequestBindSource] = None @@ -1339,6 +1340,11 @@ class ListDNSZonesRequest: Domain on which to filter the returned DNS zones. """ + dns_zone: str + """ + DNS zone on which to filter the returned DNS zones. + """ + organization_id: Optional[str] = None """ Organization ID on which to filter the returned DNS zones. @@ -1366,11 +1372,6 @@ class ListDNSZonesRequest: Maximum number of DNS zones to return per page. """ - dns_zone: Optional[str] = None - """ - DNS zone on which to filter the returned DNS zones. - """ - dns_zones: Optional[list[str]] = field(default_factory=list) """ DNS zones on which to filter the returned DNS zones. @@ -1783,17 +1784,17 @@ class RegistrarApiUpdateContactRequest: country: Optional[str] = None vat_identification_code: Optional[str] = None company_identification_code: Optional[str] = None - lang: Optional[StdLanguageCode] = None - resale: Optional[bool] = None - questions: Optional[list[UpdateContactRequestQuestion]] = field( - default_factory=list - ) + lang: Optional[StdLanguageCode] = StdLanguageCode.UNKNOWN_LANGUAGE_CODE + resale: Optional[bool] = False extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None - whois_opt_in: Optional[bool] = None - state: Optional[str] = None extension_nl: Optional[ContactExtensionNL] = None extension_it: Optional[ContactExtensionIT] = None + whois_opt_in: Optional[bool] = False + state: Optional[str] = None + questions: Optional[list[UpdateContactRequestQuestion]] = field( + default_factory=list + ) @dataclass diff --git a/scaleway/scaleway/domain/v2beta1/api.py b/scaleway/scaleway/domain/v2beta1/api.py index 69f7f9709..790677fca 100644 --- a/scaleway/scaleway/domain/v2beta1/api.py +++ b/scaleway/scaleway/domain/v2beta1/api.py @@ -189,12 +189,12 @@ def list_dns_zones( self, *, domain: str, + dns_zone: str, organization_id: Optional[str] = None, project_id: Optional[str] = None, order_by: Optional[ListDNSZonesRequestOrderBy] = None, page: Optional[int] = None, page_size: Optional[int] = None, - dns_zone: Optional[str] = None, dns_zones: Optional[list[str]] = None, created_after: Optional[datetime] = None, created_before: Optional[datetime] = None, @@ -205,12 +205,12 @@ def list_dns_zones( List DNS zones. Retrieve the list of DNS zones you can manage and filter DNS zones associated with specific domain names. :param domain: Domain on which to filter the returned DNS zones. + :param dns_zone: DNS zone on which to filter the returned DNS zones. :param organization_id: Organization ID on which to filter the returned DNS zones. :param project_id: Project ID on which to filter the returned DNS zones. :param order_by: Sort order of the returned DNS zones. :param page: Page number to return, from the paginated results. :param page_size: Maximum number of DNS zones to return per page. - :param dns_zone: DNS zone on which to filter the returned DNS zones. :param dns_zones: DNS zones on which to filter the returned DNS zones. :param created_after: Only list DNS zones created after this date. :param created_before: Only list DNS zones created before this date. @@ -223,6 +223,7 @@ def list_dns_zones( result = api.list_dns_zones( domain="example", + dns_zone="example", ) """ @@ -253,12 +254,12 @@ def list_dns_zones_all( self, *, domain: str, + dns_zone: str, organization_id: Optional[str] = None, project_id: Optional[str] = None, order_by: Optional[ListDNSZonesRequestOrderBy] = None, page: Optional[int] = None, page_size: Optional[int] = None, - dns_zone: Optional[str] = None, dns_zones: Optional[list[str]] = None, created_after: Optional[datetime] = None, created_before: Optional[datetime] = None, @@ -269,12 +270,12 @@ def list_dns_zones_all( List DNS zones. Retrieve the list of DNS zones you can manage and filter DNS zones associated with specific domain names. :param domain: Domain on which to filter the returned DNS zones. + :param dns_zone: DNS zone on which to filter the returned DNS zones. :param organization_id: Organization ID on which to filter the returned DNS zones. :param project_id: Project ID on which to filter the returned DNS zones. :param order_by: Sort order of the returned DNS zones. :param page: Page number to return, from the paginated results. :param page_size: Maximum number of DNS zones to return per page. - :param dns_zone: DNS zone on which to filter the returned DNS zones. :param dns_zones: DNS zones on which to filter the returned DNS zones. :param created_after: Only list DNS zones created after this date. :param created_before: Only list DNS zones created before this date. @@ -287,6 +288,7 @@ def list_dns_zones_all( result = api.list_dns_zones_all( domain="example", + dns_zone="example", ) """ @@ -296,12 +298,12 @@ def list_dns_zones_all( fetcher=self.list_dns_zones, args={ "domain": domain, + "dns_zone": dns_zone, "organization_id": organization_id, "project_id": project_id, "order_by": order_by, "page": page, "page_size": page_size, - "dns_zone": dns_zone, "dns_zones": dns_zones, "created_after": created_after, "created_before": created_before, @@ -774,7 +776,7 @@ def import_raw_dns_zone( self, *, dns_zone: str, - content: Optional[str] = None, + content: str, project_id: Optional[str] = None, format: Optional[RawFormat] = None, bind_source: Optional[ImportRawDNSZoneRequestBindSource] = None, @@ -798,6 +800,7 @@ def import_raw_dns_zone( result = api.import_raw_dns_zone( dns_zone="example", + content="example", ) """ @@ -1167,8 +1170,8 @@ def wait_for_ssl_certificate( options = WaitForOptions() if not options.stop: - options.stop = ( - lambda res: res.status not in SSL_CERTIFICATE_TRANSIENT_STATUSES + options.stop = lambda res: ( + res.status not in SSL_CERTIFICATE_TRANSIENT_STATUSES ) return wait_for_resource( @@ -2084,13 +2087,13 @@ def update_contact( company_identification_code: Optional[str] = None, lang: Optional[StdLanguageCode] = None, resale: Optional[bool] = None, - questions: Optional[list[UpdateContactRequestQuestion]] = None, extension_fr: Optional[ContactExtensionFR] = None, extension_eu: Optional[ContactExtensionEU] = None, - whois_opt_in: Optional[bool] = None, - state: Optional[str] = None, extension_nl: Optional[ContactExtensionNL] = None, extension_it: Optional[ContactExtensionIT] = None, + whois_opt_in: Optional[bool] = None, + state: Optional[str] = None, + questions: Optional[list[UpdateContactRequestQuestion]] = None, ) -> Contact: """ Update contact. @@ -2109,13 +2112,13 @@ def update_contact( :param company_identification_code: :param lang: :param resale: - :param questions: :param extension_fr: :param extension_eu: - :param whois_opt_in: - :param state: :param extension_nl: :param extension_it: + :param whois_opt_in: + :param state: + :param questions: :return: :class:`Contact ` Usage: @@ -2147,13 +2150,13 @@ def update_contact( company_identification_code=company_identification_code, lang=lang, resale=resale, - questions=questions, extension_fr=extension_fr, extension_eu=extension_eu, - whois_opt_in=whois_opt_in, - state=state, extension_nl=extension_nl, extension_it=extension_it, + whois_opt_in=whois_opt_in, + state=state, + questions=questions, ), self.client, ), diff --git a/scaleway/scaleway/domain/v2beta1/marshalling.py b/scaleway/scaleway/domain/v2beta1/marshalling.py index 687ce62d5..5b723688b 100644 --- a/scaleway/scaleway/domain/v2beta1/marshalling.py +++ b/scaleway/scaleway/domain/v2beta1/marshalling.py @@ -13,6 +13,9 @@ resolve_one_of, ) from .types import ( + ContactEmailStatus, + ContactLegalForm, + ContactStatus, DomainFeatureStatus, DomainStatus, InboundTransferStatus, @@ -127,6 +130,9 @@ UpdateDNSZoneRecordsRequest, UpdateDNSZoneRequest, ) +from ...std.types import ( + LanguageCode as StdLanguageCode, +) def unmarshal_ContactExtensionFRAssociationInfo( @@ -310,12 +316,6 @@ def unmarshal_ContactExtensionIT(data: Any) -> ContactExtensionIT: args: dict[str, Any] = {} - field = data.get("pin", None) - if field is not None: - args["pin"] = field - else: - args["pin"] = None - field = data.get("european_citizenship", None) if field is not None: args["european_citizenship"] = field @@ -328,6 +328,12 @@ def unmarshal_ContactExtensionIT(data: Any) -> ContactExtensionIT: else: args["tax_code"] = None + field = data.get("pin", None) + if field is not None: + args["pin"] = field + else: + args["pin"] = None + return ContactExtensionIT(**args) @@ -395,7 +401,7 @@ def unmarshal_Contact(data: Any) -> Contact: if field is not None: args["legal_form"] = field else: - args["legal_form"] = None + args["legal_form"] = ContactLegalForm.LEGAL_FORM_UNKNOWN field = data.get("firstname", None) if field is not None: @@ -485,27 +491,25 @@ def unmarshal_Contact(data: Any) -> Contact: if field is not None: args["lang"] = field else: - args["lang"] = None + args["lang"] = StdLanguageCode.UNKNOWN_LANGUAGE_CODE field = data.get("resale", None) if field is not None: args["resale"] = field else: - args["resale"] = None + args["resale"] = False field = data.get("whois_opt_in", None) if field is not None: args["whois_opt_in"] = field else: - args["whois_opt_in"] = None + args["whois_opt_in"] = False - field = data.get("questions", None) + field = data.get("email_status", None) if field is not None: - args["questions"] = ( - [unmarshal_ContactQuestion(v) for v in field] if field is not None else None - ) + args["email_status"] = field else: - args["questions"] = None + args["email_status"] = ContactEmailStatus.EMAIL_STATUS_UNKNOWN field = data.get("extension_fr", None) if field is not None: @@ -519,12 +523,6 @@ def unmarshal_Contact(data: Any) -> Contact: else: args["extension_eu"] = None - field = data.get("email_status", None) - if field is not None: - args["email_status"] = field - else: - args["email_status"] = None - field = data.get("state", None) if field is not None: args["state"] = field @@ -535,7 +533,15 @@ def unmarshal_Contact(data: Any) -> Contact: if field is not None: args["status"] = field else: - args["status"] = None + args["status"] = ContactStatus.STATUS_UNKNOWN + + field = data.get("questions", None) + if field is not None: + args["questions"] = ( + [unmarshal_ContactQuestion(v) for v in field] if field is not None else None + ) + else: + args["questions"] = [] field = data.get("extension_nl", None) if field is not None: @@ -1496,6 +1502,12 @@ def unmarshal_Record(data: Any) -> Record: else: args["view_config"] = None + field = data.get("updated_at", None) + if field is not None: + args["updated_at"] = parser.isoparse(field) if isinstance(field, str) else field + else: + args["updated_at"] = None + return Record(**args) @@ -3016,15 +3028,15 @@ def marshal_ContactExtensionIT( ) -> dict[str, Any]: output: dict[str, Any] = {} - if request.pin is not None: - output["pin"] = request.pin - 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 + if request.pin is not None: + output["pin"] = request.pin + return output @@ -3114,17 +3126,17 @@ def marshal_NewContact( if request.whois_opt_in is not None: output["whois_opt_in"] = request.whois_opt_in + if request.questions is not None: + output["questions"] = [ + marshal_ContactQuestion(item, defaults) for item in request.questions + ] + 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 - ] - if request.extension_fr is not None: output["extension_fr"] = marshal_ContactExtensionFR( request.extension_fr, defaults @@ -3596,12 +3608,6 @@ def marshal_RegistrarApiUpdateContactRequest( if request.resale is not None: output["resale"] = request.resale - if request.questions is not None: - output["questions"] = [ - marshal_UpdateContactRequestQuestion(item, defaults) - for item in request.questions - ] - if request.extension_fr is not None: output["extension_fr"] = marshal_ContactExtensionFR( request.extension_fr, defaults @@ -3612,12 +3618,6 @@ def marshal_RegistrarApiUpdateContactRequest( request.extension_eu, defaults ) - if request.whois_opt_in is not None: - output["whois_opt_in"] = request.whois_opt_in - - if request.state is not None: - output["state"] = request.state - if request.extension_nl is not None: output["extension_nl"] = marshal_ContactExtensionNL( request.extension_nl, defaults @@ -3628,6 +3628,18 @@ def marshal_RegistrarApiUpdateContactRequest( request.extension_it, defaults ) + if request.whois_opt_in is not None: + output["whois_opt_in"] = request.whois_opt_in + + if request.state is not None: + output["state"] = request.state + + if request.questions is not None: + output["questions"] = [ + marshal_UpdateContactRequestQuestion(item, defaults) + for item in request.questions + ] + return output @@ -3898,6 +3910,9 @@ def marshal_Record( if request.comment is not None: output["comment"] = request.comment + if request.updated_at is not None: + output["updated_at"] = request.updated_at.isoformat() + return output diff --git a/scaleway/scaleway/domain/v2beta1/types.py b/scaleway/scaleway/domain/v2beta1/types.py index fc462798e..9a5d68df2 100644 --- a/scaleway/scaleway/domain/v2beta1/types.py +++ b/scaleway/scaleway/domain/v2beta1/types.py @@ -479,6 +479,7 @@ class Record: type_: RecordType id: str comment: Optional[str] = None + updated_at: Optional[datetime] = None geo_ip_config: Optional[RecordGeoIPConfig] = None http_service_config: Optional[RecordHTTPServiceConfig] = None @@ -517,6 +518,16 @@ class ContactExtensionFR: @dataclass class ContactExtensionIT: + european_citizenship: str + """ + This option is useless anymore. + """ + + tax_code: str + """ + Tax_code is renamed to pin. + """ + pin: str """ Domain name registrant's Taxcode (mandatory / only optional when the trustee is used) @@ -527,16 +538,6 @@ class ContactExtensionIT: * In all other cases it must be equal to VAT number (in the 16 characters format if nationality is IT) or the numeric Codice Fiscale. """ - european_citizenship: Optional[str] = None - """ - This option is useless anymore. - """ - - tax_code: Optional[str] = None - """ - Tax_code is renamed to pin. - """ - @dataclass class ContactExtensionNL: @@ -622,7 +623,7 @@ class Contact: email_status: ContactEmailStatus state: str status: ContactStatus - questions: Optional[list[ContactQuestion]] = field(default_factory=list) + questions: list[ContactQuestion] extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None extension_nl: Optional[ContactExtensionNL] = None @@ -673,13 +674,13 @@ class NewContact: lang: StdLanguageCode resale: bool whois_opt_in: bool + questions: list[ContactQuestion] company_name: Optional[str] = None email_alt: Optional[str] = None fax_number: Optional[str] = None address_line_2: Optional[str] = None vat_identification_code: Optional[str] = None company_identification_code: Optional[str] = None - questions: Optional[list[ContactQuestion]] = field(default_factory=list) extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None state: Optional[str] = None @@ -1186,7 +1187,7 @@ class ImportRawDNSZoneRequest: DNS zone to import. """ - content: Optional[str] = None + content: str project_id: Optional[str] = None format: Optional[RawFormat] = RawFormat.UNKNOWN_RAW_FORMAT bind_source: Optional[ImportRawDNSZoneRequestBindSource] = None @@ -1339,6 +1340,11 @@ class ListDNSZonesRequest: Domain on which to filter the returned DNS zones. """ + dns_zone: str + """ + DNS zone on which to filter the returned DNS zones. + """ + organization_id: Optional[str] = None """ Organization ID on which to filter the returned DNS zones. @@ -1366,11 +1372,6 @@ class ListDNSZonesRequest: Maximum number of DNS zones to return per page. """ - dns_zone: Optional[str] = None - """ - DNS zone on which to filter the returned DNS zones. - """ - dns_zones: Optional[list[str]] = field(default_factory=list) """ DNS zones on which to filter the returned DNS zones. @@ -1783,17 +1784,17 @@ class RegistrarApiUpdateContactRequest: country: Optional[str] = None vat_identification_code: Optional[str] = None company_identification_code: Optional[str] = None - lang: Optional[StdLanguageCode] = None - resale: Optional[bool] = None - questions: Optional[list[UpdateContactRequestQuestion]] = field( - default_factory=list - ) + lang: Optional[StdLanguageCode] = StdLanguageCode.UNKNOWN_LANGUAGE_CODE + resale: Optional[bool] = False extension_fr: Optional[ContactExtensionFR] = None extension_eu: Optional[ContactExtensionEU] = None - whois_opt_in: Optional[bool] = None - state: Optional[str] = None extension_nl: Optional[ContactExtensionNL] = None extension_it: Optional[ContactExtensionIT] = None + whois_opt_in: Optional[bool] = False + state: Optional[str] = None + questions: Optional[list[UpdateContactRequestQuestion]] = field( + default_factory=list + ) @dataclass