diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Description
 
-Pending
+    Pending
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-route53-domains)
 and [AWS API Reference](http://docs.aws.amazon.com/Route53/latest/APIReference/actions-on-domain-registrations.html).
diff --git a/amazonka-route53-domains.cabal b/amazonka-route53-domains.cabal
--- a/amazonka-route53-domains.cabal
+++ b/amazonka-route53-domains.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-route53-domains
-version:               0.0.1
+version:               0.0.2
 synopsis:              Amazon Route 53 Domains SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -52,5 +52,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.0.1.*
+          amazonka-core == 0.0.2.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/Route53Domains.hs b/gen/Network/AWS/Route53Domains.hs
--- a/gen/Network/AWS/Route53Domains.hs
+++ b/gen/Network/AWS/Route53Domains.hs
@@ -8,7 +8,7 @@
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
 
--- | Pending.
+-- | Pending
 module Network.AWS.Route53Domains
     ( module Network.AWS.Route53Domains.CheckDomainAvailability
     , module Network.AWS.Route53Domains.DisableDomainAutoRenew
diff --git a/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs b/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs
--- a/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs
+++ b/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs
@@ -69,10 +69,17 @@
     , _cdaIdnLangCode = Nothing
     }
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 cdaDomainName :: Lens' CheckDomainAvailability Text
 cdaDomainName = lens _cdaDomainName (\s a -> s { _cdaDomainName = a })
 
@@ -96,14 +103,17 @@
     { _cdarAvailability = p1
     }
 
--- | Whether the domain name is available for registering. Type: String Valid
--- values: AVAILABLE – The domain name is available. AVAILABLE_RESERVED –
--- The domain name is reserved under specific conditions. AVAILABLE_PREORDER
--- – The domain name is available and can be preordered. UNAVAILABLE – The
--- domain name is not available. UNAVAILABLE_PREMIUM – The domain name is
--- not available. UNAVAILABLE_RESTRICTED – The domain name is forbidden.
--- RESERVED – The domain name has been reserved for another person or
--- organization.
+-- | Whether the domain name is available for registering.
+--
+-- Type: String
+--
+-- Valid values:
+--
+-- 'AVAILABLE' – The domain name is available.  'AVAILABLE_RESERVED' – The domain
+-- name is reserved under specific conditions.  'AVAILABLE_PREORDER' – The domain
+-- name is available and can be preordered.  'UNAVAILABLE' – The domain name is
+-- not available.  'UNAVAILABLE_PREMIUM' – The domain name is not available.  'UNAVAILABLE_RESTRICTED' – The domain name is forbidden.  'RESERVED' – The domain name has been
+-- reserved for another person or organization.
 cdarAvailability :: Lens' CheckDomainAvailabilityResponse DomainAvailability
 cdarAvailability = lens _cdarAvailability (\s a -> s { _cdarAvailability = a })
 
diff --git a/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs b/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs
--- a/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs
+++ b/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs
@@ -20,13 +20,11 @@
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
 
--- | This operation removes the transfer lock on the domain (specifically the
--- clientTransferProhibited status) to allow domain transfers. We recommend
--- you refrain from performing this action unless you intend to transfer the
--- domain to a different registrar. Successful submission returns an operation
--- ID that you can use to track the progress and completion of the action. If
--- the request is not completed successfully, the domain registrant will be
--- notified by email.
+-- | This operation removes the transfer lock on the domain (specifically the 'clientTransferProhibited' status) to allow domain transfers. We recommend you refrain from performing
+-- this action unless you intend to transfer the domain to a different
+-- registrar. Successful submission returns an operation ID that you can use to
+-- track the progress and completion of the action. If the request is not
+-- completed successfully, the domain registrant will be notified by email.
 --
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-DisableDomainTransferLock.html>
 module Network.AWS.Route53Domains.DisableDomainTransferLock
@@ -67,10 +65,17 @@
     { _ddtlDomainName = p1
     }
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 ddtlDomainName :: Lens' DisableDomainTransferLock Text
 ddtlDomainName = lens _ddtlDomainName (\s a -> s { _ddtlDomainName = a })
 
@@ -90,9 +95,14 @@
     { _ddtlrOperationId = p1
     }
 
--- | Identifier for tracking the progress of the request. To use this ID to
--- query the operation status, use GetOperationDetail. Type: String Default:
--- None Constraints: Maximum 255 characters.
+-- | Identifier for tracking the progress of the request. To use this ID to query
+-- the operation status, use GetOperationDetail.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
 ddtlrOperationId :: Lens' DisableDomainTransferLockResponse Text
 ddtlrOperationId = lens _ddtlrOperationId (\s a -> s { _ddtlrOperationId = a })
 
diff --git a/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs b/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs
--- a/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs
+++ b/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs
@@ -21,14 +21,13 @@
 -- Portability : non-portable (GHC extensions)
 
 -- | This operation configures Amazon Route 53 to automatically renew the
--- specified domain before the domain registration expires. The cost of
--- renewing your domain registration is billed to your AWS account. The period
--- during which you can renew a domain name varies by TLD. For a list of TLDs
--- and their renewal policies, see "Renewal, restoration, and deletion times"
--- (http://wiki.gandi.net/en/domains/renew#renewal_restoration_and_deletion_times)
--- on the website for our registrar partner, Gandi. Route 53 requires that you
--- renew before the end of the renewal period that is listed on the Gandi
--- website so we can complete processing before the deadline.
+-- specified domain before the domain registration expires. The cost of renewing
+-- your domain registration is billed to your AWS account.
+--
+-- The period during which you can renew a domain name varies by TLD. For a
+-- list of TLDs and their renewal policies, see "Renewal, restoration, and
+-- deletion times"
+-- (http://wiki.gandi.net/en/domains/renew#renewal_restoration_and_deletion_times) on the website for our registrar partner, Gandi. Route 53 requires that you renew before the end of the renewal period that is listed on the Gandi website so we can complete processing before the deadline.
 --
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-EnableDomainAutoRenew.html>
 module Network.AWS.Route53Domains.EnableDomainAutoRenew
diff --git a/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs b/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs
--- a/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs
+++ b/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs
@@ -20,11 +20,10 @@
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
 
--- | This operation sets the transfer lock on the domain (specifically the
--- clientTransferProhibited status) to prevent domain transfers. Successful
--- submission returns an operation ID that you can use to track the progress
--- and completion of the action. If the request is not completed successfully,
--- the domain registrant will be notified by email.
+-- | This operation sets the transfer lock on the domain (specifically the 'clientTransferProhibited' status) to prevent domain transfers. Successful submission returns an
+-- operation ID that you can use to track the progress and completion of the
+-- action. If the request is not completed successfully, the domain registrant
+-- will be notified by email.
 --
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-EnableDomainTransferLock.html>
 module Network.AWS.Route53Domains.EnableDomainTransferLock
@@ -65,10 +64,17 @@
     { _edtlDomainName = p1
     }
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 edtlDomainName :: Lens' EnableDomainTransferLock Text
 edtlDomainName = lens _edtlDomainName (\s a -> s { _edtlDomainName = a })
 
@@ -88,9 +94,14 @@
     { _edtlrOperationId = p1
     }
 
--- | Identifier for tracking the progress of the request. To use this ID to
--- query the operation status, use GetOperationDetail. Type: String Default:
--- None Constraints: Maximum 255 characters.
+-- | Identifier for tracking the progress of the request. To use this ID to query
+-- the operation status, use GetOperationDetail.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
 edtlrOperationId :: Lens' EnableDomainTransferLockResponse Text
 edtlrOperationId = lens _edtlrOperationId (\s a -> s { _edtlrOperationId = a })
 
diff --git a/gen/Network/AWS/Route53Domains/GetDomainDetail.hs b/gen/Network/AWS/Route53Domains/GetDomainDetail.hs
--- a/gen/Network/AWS/Route53Domains/GetDomainDetail.hs
+++ b/gen/Network/AWS/Route53Domains/GetDomainDetail.hs
@@ -82,10 +82,17 @@
     { _gddDomainName = p1
     }
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 gddDomainName :: Lens' GetDomainDetail Text
 gddDomainName = lens _gddDomainName (\s a -> s { _gddDomainName = a })
 
@@ -95,10 +102,10 @@
     , _gddrAdminContact      :: ContactDetail
     , _gddrAdminPrivacy      :: Maybe Bool
     , _gddrAutoRenew         :: Maybe Bool
-    , _gddrCreationDate      :: Maybe RFC822
+    , _gddrCreationDate      :: Maybe ISO8601
     , _gddrDnsSec            :: Maybe Text
     , _gddrDomainName        :: Text
-    , _gddrExpirationDate    :: Maybe RFC822
+    , _gddrExpirationDate    :: Maybe ISO8601
     , _gddrNameservers       :: List "Nameservers" Nameserver
     , _gddrRegistrantContact :: ContactDetail
     , _gddrRegistrantPrivacy :: Maybe Bool
@@ -109,7 +116,7 @@
     , _gddrStatusList        :: List "StatusList" Text
     , _gddrTechContact       :: ContactDetail
     , _gddrTechPrivacy       :: Maybe Bool
-    , _gddrUpdatedDate       :: Maybe RFC822
+    , _gddrUpdatedDate       :: Maybe ISO8601
     , _gddrWhoIsServer       :: Maybe Text
     } deriving (Eq, Show)
 
@@ -189,34 +196,42 @@
     }
 
 -- | Email address to contact to report incorrect contact information for a
--- domain, to report that the domain is being used to send spam, to report
--- that someone is cybersquatting on a domain name, or report some other
--- type of abuse. Type: String.
+-- domain, to report that the domain is being used to send spam, to report that
+-- someone is cybersquatting on a domain name, or report some other type of
+-- abuse.
+--
+-- Type: String
 gddrAbuseContactEmail :: Lens' GetDomainDetailResponse (Maybe Text)
 gddrAbuseContactEmail =
     lens _gddrAbuseContactEmail (\s a -> s { _gddrAbuseContactEmail = a })
 
--- | Phone number for reporting abuse. Type: String.
+-- | Phone number for reporting abuse.
+--
+-- Type: String
 gddrAbuseContactPhone :: Lens' GetDomainDetailResponse (Maybe Text)
 gddrAbuseContactPhone =
     lens _gddrAbuseContactPhone (\s a -> s { _gddrAbuseContactPhone = a })
 
--- | Provides details about the domain administrative contact. Type: Complex
--- Children: FirstName, MiddleName, LastName, ContactType, OrganizationName,
--- AddressLine1, AddressLine2, City, State, CountryCode, ZipCode,
--- PhoneNumber, Email, Fax, ExtraParams.
+-- | Provides details about the domain administrative contact.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
 gddrAdminContact :: Lens' GetDomainDetailResponse ContactDetail
 gddrAdminContact = lens _gddrAdminContact (\s a -> s { _gddrAdminContact = a })
 
--- | Specifies whether contact information for the admin contact is concealed
--- from WHOIS queries. If the value is true, WHOIS ("who is") queries will
--- return contact information for our registrar partner, Gandi, instead of
--- the contact information that you enter. Type: Boolean.
+-- | Specifies whether contact information for the admin contact is concealed from
+-- WHOIS queries. If the value is 'true', WHOIS ("who is") queries will return
+-- contact information for our registrar partner, Gandi, instead of the contact
+-- information that you enter.
+--
+-- Type: Boolean
 gddrAdminPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)
 gddrAdminPrivacy = lens _gddrAdminPrivacy (\s a -> s { _gddrAdminPrivacy = a })
 
 -- | Specifies whether the domain registration is set to renew automatically.
--- Type: Boolean.
+--
+-- Type: Boolean
 gddrAutoRenew :: Lens' GetDomainDetailResponse (Maybe Bool)
 gddrAutoRenew = lens _gddrAutoRenew (\s a -> s { _gddrAutoRenew = a })
 
@@ -229,7 +244,9 @@
 gddrDnsSec :: Lens' GetDomainDetailResponse (Maybe Text)
 gddrDnsSec = lens _gddrDnsSec (\s a -> s { _gddrDnsSec = a })
 
--- | The name of a domain. Type: String.
+-- | The name of a domain.
+--
+-- Type: String
 gddrDomainName :: Lens' GetDomainDetailResponse Text
 gddrDomainName = lens _gddrDomainName (\s a -> s { _gddrDomainName = a })
 
@@ -240,34 +257,42 @@
     lens _gddrExpirationDate (\s a -> s { _gddrExpirationDate = a })
         . mapping _Time
 
--- | The name of the domain. Type: String.
+-- | The name of the domain.
+--
+-- Type: String
 gddrNameservers :: Lens' GetDomainDetailResponse [Nameserver]
 gddrNameservers = lens _gddrNameservers (\s a -> s { _gddrNameservers = a }) . _List
 
--- | Provides details about the domain registrant. Type: Complex Children:
--- FirstName, MiddleName, LastName, ContactType, OrganizationName,
--- AddressLine1, AddressLine2, City, State, CountryCode, ZipCode,
--- PhoneNumber, Email, Fax, ExtraParams.
+-- | Provides details about the domain registrant.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
 gddrRegistrantContact :: Lens' GetDomainDetailResponse ContactDetail
 gddrRegistrantContact =
     lens _gddrRegistrantContact (\s a -> s { _gddrRegistrantContact = a })
 
--- | Specifies whether contact information for the registrant contact is
--- concealed from WHOIS queries. If the value is true, WHOIS ("who is")
--- queries will return contact information for our registrar partner, Gandi,
--- instead of the contact information that you enter. Type: Boolean.
+-- | Specifies whether contact information for the registrant contact is concealed
+-- from WHOIS queries. If the value is 'true', WHOIS ("who is") queries will
+-- return contact information for our registrar partner, Gandi, instead of the
+-- contact information that you enter.
+--
+-- Type: Boolean
 gddrRegistrantPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)
 gddrRegistrantPrivacy =
     lens _gddrRegistrantPrivacy (\s a -> s { _gddrRegistrantPrivacy = a })
 
 -- | Name of the registrar of the domain as identified in the registry. Amazon
--- Route 53 domains are registered by registrar Gandi. The value is "GANDI
--- SAS". Type: String.
+-- Route 53 domains are registered by registrar Gandi. The value is '"GANDI SAS"'.
+--
+-- Type: String
 gddrRegistrarName :: Lens' GetDomainDetailResponse (Maybe Text)
 gddrRegistrarName =
     lens _gddrRegistrarName (\s a -> s { _gddrRegistrarName = a })
 
--- | Web address of the registrar. Type: String.
+-- | Web address of the registrar.
+--
+-- Type: String
 gddrRegistrarUrl :: Lens' GetDomainDetailResponse (Maybe Text)
 gddrRegistrarUrl = lens _gddrRegistrarUrl (\s a -> s { _gddrRegistrarUrl = a })
 
@@ -276,36 +301,46 @@
 gddrRegistryDomainId =
     lens _gddrRegistryDomainId (\s a -> s { _gddrRegistryDomainId = a })
 
--- | Reseller of the domain. Domains registered or transferred using Amazon
--- Route 53 domains will have "Amazon" as the reseller. Type: String.
+-- | Reseller of the domain. Domains registered or transferred using Amazon Route
+-- 53 domains will have '"Amazon"' as the reseller.
+--
+-- Type: String
 gddrReseller :: Lens' GetDomainDetailResponse (Maybe Text)
 gddrReseller = lens _gddrReseller (\s a -> s { _gddrReseller = a })
 
--- | An array of domain name status codes, also known as Extensible
--- Provisioning Protocol (EPP) status codes. ICANN, the organization that
--- maintains a central database of domain names, has developed a set of
--- domain name status codes that tell you the status of a variety of
--- operations on a domain name, for example, registering a domain name,
--- transferring a domain name to another registrar, renewing the
--- registration for a domain name, and so on. All registrars use this same
--- set of status codes. For a current list of domain name status codes and
--- an explanation of what each code means, go to the ICANN website and
--- search for epp status codes. (Search on the ICANN website; web searches
--- sometimes return an old version of the document.) Type: Array of String.
+-- | An array of domain name status codes, also known as Extensible Provisioning
+-- Protocol (EPP) status codes.
+--
+-- ICANN, the organization that maintains a central database of domain names,
+-- has developed a set of domain name status codes that tell you the status of a
+-- variety of operations on a domain name, for example, registering a domain
+-- name, transferring a domain name to another registrar, renewing the
+-- registration for a domain name, and so on. All registrars use this same set
+-- of status codes.
+--
+-- For a current list of domain name status codes and an explanation of what
+-- each code means, go to the <https://www.icann.org/ ICANN website> and search for 'epp status codes'.
+-- (Search on the ICANN website; web searches sometimes return an old version of
+-- the document.)
+--
+-- Type: Array of String
 gddrStatusList :: Lens' GetDomainDetailResponse [Text]
 gddrStatusList = lens _gddrStatusList (\s a -> s { _gddrStatusList = a }) . _List
 
--- | Provides details about the domain technical contact. Type: Complex
--- Children: FirstName, MiddleName, LastName, ContactType, OrganizationName,
--- AddressLine1, AddressLine2, City, State, CountryCode, ZipCode,
--- PhoneNumber, Email, Fax, ExtraParams.
+-- | Provides details about the domain technical contact.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
 gddrTechContact :: Lens' GetDomainDetailResponse ContactDetail
 gddrTechContact = lens _gddrTechContact (\s a -> s { _gddrTechContact = a })
 
--- | Specifies whether contact information for the tech contact is concealed
--- from WHOIS queries. If the value is true, WHOIS ("who is") queries will
--- return contact information for our registrar partner, Gandi, instead of
--- the contact information that you enter. Type: Boolean.
+-- | Specifies whether contact information for the tech contact is concealed from
+-- WHOIS queries. If the value is 'true', WHOIS ("who is") queries will return
+-- contact information for our registrar partner, Gandi, instead of the contact
+-- information that you enter.
+--
+-- Type: Boolean
 gddrTechPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)
 gddrTechPrivacy = lens _gddrTechPrivacy (\s a -> s { _gddrTechPrivacy = a })
 
@@ -314,8 +349,10 @@
 gddrUpdatedDate :: Lens' GetDomainDetailResponse (Maybe UTCTime)
 gddrUpdatedDate = lens _gddrUpdatedDate (\s a -> s { _gddrUpdatedDate = a }) . mapping _Time
 
--- | The fully qualified name of the WHOIS server that can answer the WHOIS
--- query for the domain. Type: String.
+-- | The fully qualified name of the WHOIS server that can answer the WHOIS query
+-- for the domain.
+--
+-- Type: String
 gddrWhoIsServer :: Lens' GetDomainDetailResponse (Maybe Text)
 gddrWhoIsServer = lens _gddrWhoIsServer (\s a -> s { _gddrWhoIsServer = a })
 
diff --git a/gen/Network/AWS/Route53Domains/GetOperationDetail.hs b/gen/Network/AWS/Route53Domains/GetOperationDetail.hs
--- a/gen/Network/AWS/Route53Domains/GetOperationDetail.hs
+++ b/gen/Network/AWS/Route53Domains/GetOperationDetail.hs
@@ -67,9 +67,14 @@
     { _godOperationId = p1
     }
 
--- | The identifier for the operation for which you want to get the status.
--- Amazon Route 53 returned the identifier in the response to the original
--- request. Type: String Default: None Required: Yes.
+-- | The identifier for the operation for which you want to get the status. Amazon
+-- Route 53 returned the identifier in the response to the original request.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Required: Yes
 godOperationId :: Lens' GetOperationDetail Text
 godOperationId = lens _godOperationId (\s a -> s { _godOperationId = a })
 
@@ -78,7 +83,7 @@
     , _godrMessage       :: Maybe Text
     , _godrOperationId   :: Maybe Text
     , _godrStatus        :: Maybe OperationStatus
-    , _godrSubmittedDate :: Maybe RFC822
+    , _godrSubmittedDate :: Maybe ISO8601
     , _godrType          :: Maybe OperationType
     } deriving (Eq, Show)
 
@@ -108,21 +113,27 @@
     , _godrSubmittedDate = Nothing
     }
 
--- | The name of a domain. Type: String.
+-- | The name of a domain.
+--
+-- Type: String
 godrDomainName :: Lens' GetOperationDetailResponse (Maybe Text)
 godrDomainName = lens _godrDomainName (\s a -> s { _godrDomainName = a })
 
--- | Detailed information on the status including possible errors. Type:
--- String.
+-- | Detailed information on the status including possible errors.
+--
+-- Type: String
 godrMessage :: Lens' GetOperationDetailResponse (Maybe Text)
 godrMessage = lens _godrMessage (\s a -> s { _godrMessage = a })
 
--- | The identifier for the operation. Type: String.
+-- | The identifier for the operation.
+--
+-- Type: String
 godrOperationId :: Lens' GetOperationDetailResponse (Maybe Text)
 godrOperationId = lens _godrOperationId (\s a -> s { _godrOperationId = a })
 
--- | The current status of the requested operation in the system. Type:
--- String.
+-- | The current status of the requested operation in the system.
+--
+-- Type: String
 godrStatus :: Lens' GetOperationDetailResponse (Maybe OperationStatus)
 godrStatus = lens _godrStatus (\s a -> s { _godrStatus = a })
 
@@ -132,7 +143,9 @@
     lens _godrSubmittedDate (\s a -> s { _godrSubmittedDate = a })
         . mapping _Time
 
--- | The type of operation that was requested. Type: String.
+-- | The type of operation that was requested.
+--
+-- Type: String
 godrType :: Lens' GetOperationDetailResponse (Maybe OperationType)
 godrType = lens _godrType (\s a -> s { _godrType = a })
 
diff --git a/gen/Network/AWS/Route53Domains/ListDomains.hs b/gen/Network/AWS/Route53Domains/ListDomains.hs
--- a/gen/Network/AWS/Route53Domains/ListDomains.hs
+++ b/gen/Network/AWS/Route53Domains/ListDomains.hs
@@ -68,18 +68,32 @@
     }
 
 -- | For an initial request for a list of domains, omit this element. If the
--- number of domains that are associated with the current AWS account is
--- greater than the value that you specified for MaxItems, you can use
--- Marker to return additional domains. Get the value of NextPageMarker from
--- the previous response, and submit another request that includes the value
--- of NextPageMarker in the Marker element. Type: String Default: None
+-- number of domains that are associated with the current AWS account is greater
+-- than the value that you specified for 'MaxItems', you can use 'Marker' to return
+-- additional domains. Get the value of 'NextPageMarker' from the previous
+-- response, and submit another request that includes the value of 'NextPageMarker'
+-- in the 'Marker' element.
+--
+-- Type: String
+--
+-- Default: None
+--
 -- Constraints: The marker must match the value specified in the previous
--- request. Required: No.
+-- request.
+--
+-- Required: No
 ldMarker :: Lens' ListDomains (Maybe Text)
 ldMarker = lens _ldMarker (\s a -> s { _ldMarker = a })
 
--- | Number of domains to be returned. Type: Integer Default: 20 Constraints:
--- A numeral between 1 and 100. Required: No.
+-- | Number of domains to be returned.
+--
+-- Type: Integer
+--
+-- Default: 20
+--
+-- Constraints: A numeral between 1 and 100.
+--
+-- Required: No
 ldMaxItems :: Lens' ListDomains (Maybe Int)
 ldMaxItems = lens _ldMaxItems (\s a -> s { _ldMaxItems = a })
 
@@ -102,14 +116,21 @@
     , _ldrNextPageMarker = Nothing
     }
 
--- | A summary of domains. Type: Complex type containing a list of domain
--- summaries. Children: AutoRenew, DomainName, Expiry, TransferLock.
+-- | A summary of domains.
+--
+-- Type: Complex type containing a list of domain summaries.
+--
+-- Children: 'AutoRenew', 'DomainName', 'Expiry', 'TransferLock'
 ldrDomains :: Lens' ListDomainsResponse [DomainSummary]
 ldrDomains = lens _ldrDomains (\s a -> s { _ldrDomains = a }) . _List
 
--- | If there are more domains than you specified for MaxItems in the request,
--- submit another request and include the value of NextPageMarker in the
--- value of Marker. Type: String Parent: Operations.
+-- | If there are more domains than you specified for 'MaxItems' in the request,
+-- submit another request and include the value of 'NextPageMarker' in the value
+-- of 'Marker'.
+--
+-- Type: String
+--
+-- Parent: 'Operations'
 ldrNextPageMarker :: Lens' ListDomainsResponse (Maybe Text)
 ldrNextPageMarker =
     lens _ldrNextPageMarker (\s a -> s { _ldrNextPageMarker = a })
diff --git a/gen/Network/AWS/Route53Domains/ListOperations.hs b/gen/Network/AWS/Route53Domains/ListOperations.hs
--- a/gen/Network/AWS/Route53Domains/ListOperations.hs
+++ b/gen/Network/AWS/Route53Domains/ListOperations.hs
@@ -67,18 +67,30 @@
     , _loMaxItems = Nothing
     }
 
--- | For an initial request for a list of operations, omit this element. If
--- the number of operations that are not yet complete is greater than the
--- value that you specified for MaxItems, you can use Marker to return
--- additional operations. Get the value of NextPageMarker from the previous
--- response, and submit another request that includes the value of
--- NextPageMarker in the Marker element. Type: String Default: None
--- Required: No.
+-- | For an initial request for a list of operations, omit this element. If the
+-- number of operations that are not yet complete is greater than the value that
+-- you specified for 'MaxItems', you can use 'Marker' to return additional
+-- operations. Get the value of 'NextPageMarker' from the previous response, and
+-- submit another request that includes the value of 'NextPageMarker' in the 'Marker'
+-- element.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Required: No
 loMarker :: Lens' ListOperations (Maybe Text)
 loMarker = lens _loMarker (\s a -> s { _loMarker = a })
 
--- | Number of domains to be returned. Type: Integer Default: 20 Constraints:
--- A value between 1 and 100. Required: No.
+-- | Number of domains to be returned.
+--
+-- Type: Integer
+--
+-- Default: 20
+--
+-- Constraints: A value between 1 and 100.
+--
+-- Required: No
 loMaxItems :: Lens' ListOperations (Maybe Int)
 loMaxItems = lens _loMaxItems (\s a -> s { _loMaxItems = a })
 
@@ -101,16 +113,22 @@
     , _lorNextPageMarker = Nothing
     }
 
--- | If there are more operations than you specified for MaxItems in the
--- request, submit another request and include the value of NextPageMarker
--- in the value of Marker. Type: String Parent: Operations.
+-- | If there are more operations than you specified for 'MaxItems' in the request,
+-- submit another request and include the value of 'NextPageMarker' in the value
+-- of 'Marker'.
+--
+-- Type: String
+--
+-- Parent: 'Operations'
 lorNextPageMarker :: Lens' ListOperationsResponse (Maybe Text)
 lorNextPageMarker =
     lens _lorNextPageMarker (\s a -> s { _lorNextPageMarker = a })
 
--- | Lists summaries of the operations. Type: Complex type containing a list
--- of operation summaries Children: OperationId, Status, SubmittedDate,
--- Type.
+-- | Lists summaries of the operations.
+--
+-- Type: Complex type containing a list of operation summaries
+--
+-- Children: 'OperationId', 'Status', 'SubmittedDate', 'Type'
 lorOperations :: Lens' ListOperationsResponse [OperationSummary]
 lorOperations = lens _lorOperations (\s a -> s { _lorOperations = a }) . _List
 
diff --git a/gen/Network/AWS/Route53Domains/RegisterDomain.hs b/gen/Network/AWS/Route53Domains/RegisterDomain.hs
--- a/gen/Network/AWS/Route53Domains/RegisterDomain.hs
+++ b/gen/Network/AWS/Route53Domains/RegisterDomain.hs
@@ -22,22 +22,24 @@
 
 -- | This operation registers a domain. Domains are registered by the AWS
 -- registrar partner, Gandi. For some top-level domains (TLDs), this operation
--- requires extra parameters. When you register a domain, Amazon Route 53 does
--- the following: Creates a Amazon Route 53 hosted zone that has the same name
--- as the domain. Amazon Route 53 assigns four name servers to your hosted
--- zone and automatically updates your domain registration with the names of
--- these name servers. Enables autorenew, so your domain registration will
--- renew automatically each year. We'll notify you in advance of the renewal
--- date so you can choose whether to renew the registration. Optionally
--- enables privacy protection, so WHOIS queries return contact information for
--- our registrar partner, Gandi, instead of the information you entered for
--- registrant, admin, and tech contacts. If registration is successful,
--- returns an operation ID that you can use to track the progress and
--- completion of the action. If the request is not completed successfully, the
--- domain registrant is notified by email. Charges your AWS account an amount
--- based on the top-level domain. For more information, see Amazon Route 53
--- Pricing.
+-- requires extra parameters.
 --
+-- When you register a domain, Amazon Route 53 does the following:
+--
+-- Creates a Amazon Route 53 hosted zone that has the same name as the domain.
+-- Amazon Route 53 assigns four name servers to your hosted zone and
+-- automatically updates your domain registration with the names of these name
+-- servers. Enables autorenew, so your domain registration will renew
+-- automatically each year. We'll notify you in advance of the renewal date so
+-- you can choose whether to renew the registration. Optionally enables privacy
+-- protection, so WHOIS queries return contact information for our registrar
+-- partner, Gandi, instead of the information you entered for registrant, admin,
+-- and tech contacts. If registration is successful, returns an operation ID
+-- that you can use to track the progress and completion of the action. If the
+-- request is not completed successfully, the domain registrant is notified by
+-- email. Charges your AWS account an amount based on the top-level domain. For
+-- more information, see <http://aws.amazon.com/route53/pricing/ Amazon Route 53 Pricing>.
+--
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-RegisterDomain.html>
 module Network.AWS.Route53Domains.RegisterDomain
     (
@@ -126,30 +128,52 @@
     , _rdPrivacyProtectTechContact       = Nothing
     }
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 rdAdminContact :: Lens' RegisterDomain ContactDetail
 rdAdminContact = lens _rdAdminContact (\s a -> s { _rdAdminContact = a })
 
--- | Indicates whether the domain will be automatically renewed (true) or not
--- (false). Autorenewal only takes effect after the account is charged.
--- Type: Boolean Valid values: true | false Default: true Required: No.
+-- | Indicates whether the domain will be automatically renewed ('true') or not ('false'). Autorenewal only takes effect after the account is charged.
+--
+-- Type: Boolean
+--
+-- Valid values: 'true' | 'false'
+--
+-- Default: 'true'
+--
+-- Required: No
 rdAutoRenew :: Lens' RegisterDomain (Maybe Bool)
 rdAutoRenew = lens _rdAutoRenew (\s a -> s { _rdAutoRenew = a })
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 rdDomainName :: Lens' RegisterDomain Text
 rdDomainName = lens _rdDomainName (\s a -> s { _rdDomainName = a })
 
--- | The number of years the domain will be registered. Domains are registered
--- for a minimum of one year. The maximum period depends on the top-level
--- domain. Type: Integer Default: 1 Valid values: Integer from 1 to 10
--- Required: Yes.
+-- | The number of years the domain will be registered. Domains are registered for
+-- a minimum of one year. The maximum period depends on the top-level domain.
+--
+-- Type: Integer
+--
+-- Default: 1
+--
+-- Valid values: Integer from 1 to 10
+--
+-- Required: Yes
 rdDurationInYears :: Lens' RegisterDomain Natural
 rdDurationInYears =
     lens _rdDurationInYears (\s a -> s { _rdDurationInYears = a })
@@ -159,48 +183,75 @@
 rdIdnLangCode :: Lens' RegisterDomain (Maybe Text)
 rdIdnLangCode = lens _rdIdnLangCode (\s a -> s { _rdIdnLangCode = a })
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: true Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: 'true'
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 rdPrivacyProtectAdminContact :: Lens' RegisterDomain (Maybe Bool)
 rdPrivacyProtectAdminContact =
     lens _rdPrivacyProtectAdminContact
         (\s a -> s { _rdPrivacyProtectAdminContact = a })
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: true Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: 'true'
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 rdPrivacyProtectRegistrantContact :: Lens' RegisterDomain (Maybe Bool)
 rdPrivacyProtectRegistrantContact =
     lens _rdPrivacyProtectRegistrantContact
         (\s a -> s { _rdPrivacyProtectRegistrantContact = a })
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: true Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: 'true'
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 rdPrivacyProtectTechContact :: Lens' RegisterDomain (Maybe Bool)
 rdPrivacyProtectTechContact =
     lens _rdPrivacyProtectTechContact
         (\s a -> s { _rdPrivacyProtectTechContact = a })
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 rdRegistrantContact :: Lens' RegisterDomain ContactDetail
 rdRegistrantContact =
     lens _rdRegistrantContact (\s a -> s { _rdRegistrantContact = a })
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 rdTechContact :: Lens' RegisterDomain ContactDetail
 rdTechContact = lens _rdTechContact (\s a -> s { _rdTechContact = a })
 
@@ -220,9 +271,14 @@
     { _rdrOperationId = p1
     }
 
--- | Identifier for tracking the progress of the request. To use this ID to
--- query the operation status, use GetOperationDetail. Type: String Default:
--- None Constraints: Maximum 255 characters.
+-- | Identifier for tracking the progress of the request. To use this ID to query
+-- the operation status, use GetOperationDetail.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
 rdrOperationId :: Lens' RegisterDomainResponse Text
 rdrOperationId = lens _rdrOperationId (\s a -> s { _rdrOperationId = a })
 
diff --git a/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs b/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs
--- a/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs
+++ b/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs
@@ -62,10 +62,17 @@
     { _rdacDomainName = p1
     }
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 rdacDomainName :: Lens' RetrieveDomainAuthCode Text
 rdacDomainName = lens _rdacDomainName (\s a -> s { _rdacDomainName = a })
 
@@ -85,7 +92,9 @@
     { _rdacrAuthCode = withIso _Sensitive (const id) p1
     }
 
--- | The authorization code for the domain. Type: String.
+-- | The authorization code for the domain.
+--
+-- Type: String
 rdacrAuthCode :: Lens' RetrieveDomainAuthCodeResponse Text
 rdacrAuthCode = lens _rdacrAuthCode (\s a -> s { _rdacrAuthCode = a }) . _Sensitive
 
diff --git a/gen/Network/AWS/Route53Domains/TransferDomain.hs b/gen/Network/AWS/Route53Domains/TransferDomain.hs
--- a/gen/Network/AWS/Route53Domains/TransferDomain.hs
+++ b/gen/Network/AWS/Route53Domains/TransferDomain.hs
@@ -20,23 +20,29 @@
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
 
--- | This operation transfers a domain from another registrar to Amazon Route
--- 53. Domains are registered by the AWS registrar, Gandi upon transfer. To
--- transfer a domain, you need to meet all the domain transfer criteria,
--- including the following: You must supply nameservers to transfer a domain.
--- You must disable the domain transfer lock (if any) before transferring the
--- domain. A minimum of 60 days must have elapsed since the domain's
--- registration or last transfer. We recommend you use the Amazon Route 53 as
--- the DNS service for your domain. You can create a hosted zone in Amazon
--- Route 53 for your current domain before transferring your domain. Note that
--- upon transfer, the domain duration is extended for a year if not otherwise
--- specified. Autorenew is enabled by default. If the transfer is successful,
--- this method returns an operation ID that you can use to track the progress
--- and completion of the action. If the request is not completed successfully,
--- the domain registrant will be notified by email. Transferring domains
--- charges your AWS account an amount based on the top-level domain. For more
--- information, see Amazon Route 53 Pricing.
+-- | This operation transfers a domain from another registrar to Amazon Route 53.
+-- Domains are registered by the AWS registrar, Gandi upon transfer.
 --
+-- To transfer a domain, you need to meet all the domain transfer criteria,
+-- including the following:
+--
+-- You must supply nameservers to transfer a domain. You must disable the
+-- domain transfer lock (if any) before transferring the domain. A minimum of 60
+-- days must have elapsed since the domain's registration or last transfer.  We
+-- recommend you use the Amazon Route 53 as the DNS service for your domain. You
+-- can create a hosted zone in Amazon Route 53 for your current domain before
+-- transferring your domain.
+--
+-- Note that upon transfer, the domain duration is extended for a year if not
+-- otherwise specified. Autorenew is enabled by default.
+--
+-- If the transfer is successful, this method returns an operation ID that you
+-- can use to track the progress and completion of the action. If the request is
+-- not completed successfully, the domain registrant will be notified by email.
+--
+-- Transferring domains charges your AWS account an amount based on the
+-- top-level domain. For more information, see <http://aws.amazon.com/route53/pricing/ Amazon Route 53 Pricing>.
+--
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-TransferDomain.html>
 module Network.AWS.Route53Domains.TransferDomain
     (
@@ -135,35 +141,62 @@
     , _tdPrivacyProtectTechContact       = Nothing
     }
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 tdAdminContact :: Lens' TransferDomain ContactDetail
 tdAdminContact = lens _tdAdminContact (\s a -> s { _tdAdminContact = a })
 
--- | The authorization code for the domain. You get this value from the
--- current registrar. Type: String Required: Yes.
+-- | The authorization code for the domain. You get this value from the current
+-- registrar.
+--
+-- Type: String
+--
+-- Required: Yes
 tdAuthCode :: Lens' TransferDomain (Maybe Text)
 tdAuthCode = lens _tdAuthCode (\s a -> s { _tdAuthCode = a }) . mapping _Sensitive
 
 -- | Indicates whether the domain will be automatically renewed (true) or not
 -- (false). Autorenewal only takes effect after the account is charged.
--- Type: Boolean Valid values: true | false Default: true Required: No.
+--
+-- Type: Boolean
+--
+-- Valid values: 'true' | 'false'
+--
+-- Default: true
+--
+-- Required: No
 tdAutoRenew :: Lens' TransferDomain (Maybe Bool)
 tdAutoRenew = lens _tdAutoRenew (\s a -> s { _tdAutoRenew = a })
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 tdDomainName :: Lens' TransferDomain Text
 tdDomainName = lens _tdDomainName (\s a -> s { _tdDomainName = a })
 
--- | The number of years the domain will be registered. Domains are registered
--- for a minimum of one year. The maximum period depends on the top-level
--- domain. Type: Integer Default: 1 Valid values: Integer from 1 to 10
--- Required: Yes.
+-- | The number of years the domain will be registered. Domains are registered for
+-- a minimum of one year. The maximum period depends on the top-level domain.
+--
+-- Type: Integer
+--
+-- Default: 1
+--
+-- Valid values: Integer from 1 to 10
+--
+-- Required: Yes
 tdDurationInYears :: Lens' TransferDomain Natural
 tdDurationInYears =
     lens _tdDurationInYears (\s a -> s { _tdDurationInYears = a })
@@ -173,53 +206,83 @@
 tdIdnLangCode :: Lens' TransferDomain (Maybe Text)
 tdIdnLangCode = lens _tdIdnLangCode (\s a -> s { _tdIdnLangCode = a })
 
--- | Contains details for the host and glue IP addresses. Type: Complex
--- Children: GlueIps, Name.
+-- | Contains details for the host and glue IP addresses.
+--
+-- Type: Complex
+--
+-- Children: 'GlueIps', 'Name'
 tdNameservers :: Lens' TransferDomain [Nameserver]
 tdNameservers = lens _tdNameservers (\s a -> s { _tdNameservers = a }) . _List
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: true Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: 'true'
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 tdPrivacyProtectAdminContact :: Lens' TransferDomain (Maybe Bool)
 tdPrivacyProtectAdminContact =
     lens _tdPrivacyProtectAdminContact
         (\s a -> s { _tdPrivacyProtectAdminContact = a })
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: true Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: 'true'
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 tdPrivacyProtectRegistrantContact :: Lens' TransferDomain (Maybe Bool)
 tdPrivacyProtectRegistrantContact =
     lens _tdPrivacyProtectRegistrantContact
         (\s a -> s { _tdPrivacyProtectRegistrantContact = a })
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: true Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: 'true'
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 tdPrivacyProtectTechContact :: Lens' TransferDomain (Maybe Bool)
 tdPrivacyProtectTechContact =
     lens _tdPrivacyProtectTechContact
         (\s a -> s { _tdPrivacyProtectTechContact = a })
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 tdRegistrantContact :: Lens' TransferDomain ContactDetail
 tdRegistrantContact =
     lens _tdRegistrantContact (\s a -> s { _tdRegistrantContact = a })
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 tdTechContact :: Lens' TransferDomain ContactDetail
 tdTechContact = lens _tdTechContact (\s a -> s { _tdTechContact = a })
 
@@ -239,9 +302,14 @@
     { _tdrOperationId = p1
     }
 
--- | Identifier for tracking the progress of the request. To use this ID to
--- query the operation status, use GetOperationDetail. Type: String Default:
--- None Constraints: Maximum 255 characters.
+-- | Identifier for tracking the progress of the request. To use this ID to query
+-- the operation status, use GetOperationDetail.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
 tdrOperationId :: Lens' TransferDomainResponse Text
 tdrOperationId = lens _tdrOperationId (\s a -> s { _tdrOperationId = a })
 
diff --git a/gen/Network/AWS/Route53Domains/Types.hs b/gen/Network/AWS/Route53Domains/Types.hs
--- a/gen/Network/AWS/Route53Domains/Types.hs
+++ b/gen/Network/AWS/Route53Domains/Types.hs
@@ -119,7 +119,7 @@
 data DomainSummary = DomainSummary
     { _dsAutoRenew    :: Maybe Bool
     , _dsDomainName   :: Text
-    , _dsExpiry       :: Maybe RFC822
+    , _dsExpiry       :: Maybe ISO8601
     , _dsTransferLock :: Maybe Bool
     } deriving (Eq, Ord, Show)
 
@@ -145,21 +145,31 @@
     }
 
 -- | Indicates whether the domain is automatically renewed upon expiration.
--- Type: Boolean Valid values: True | False.
+--
+-- Type: Boolean
+--
+-- Valid values: 'True' | 'False'
 dsAutoRenew :: Lens' DomainSummary (Maybe Bool)
 dsAutoRenew = lens _dsAutoRenew (\s a -> s { _dsAutoRenew = a })
 
--- | The name of a domain. Type: String.
+-- | The name of a domain.
+--
+-- Type: String
 dsDomainName :: Lens' DomainSummary Text
 dsDomainName = lens _dsDomainName (\s a -> s { _dsDomainName = a })
 
--- | Expiration date of the domain in Coordinated Universal Time (UTC). Type:
--- Long.
+-- | Expiration date of the domain in Coordinated Universal Time (UTC).
+--
+-- Type: Long
 dsExpiry :: Lens' DomainSummary (Maybe UTCTime)
 dsExpiry = lens _dsExpiry (\s a -> s { _dsExpiry = a }) . mapping _Time
 
--- | Indicates whether a domain is locked from unauthorized transfer to
--- another party. Type: Boolean Valid values: True | False.
+-- | Indicates whether a domain is locked from unauthorized transfer to another
+-- party.
+--
+-- Type: Boolean
+--
+-- Valid values: 'True' | 'False'
 dsTransferLock :: Lens' DomainSummary (Maybe Bool)
 dsTransferLock = lens _dsTransferLock (\s a -> s { _dsTransferLock = a })
 
@@ -201,23 +211,26 @@
 instance Hashable ExtraParamName
 
 instance FromText ExtraParamName where
-    parser = match "AU_ID_NUMBER"             AuIdNumber
-         <|> match "AU_ID_TYPE"               AuIdType
-         <|> match "BIRTH_CITY"               BirthCity
-         <|> match "BIRTH_COUNTRY"            BirthCountry
-         <|> match "BIRTH_DATE_IN_YYYY_MM_DD" BirthDateInYyyyMmDd
-         <|> match "BIRTH_DEPARTMENT"         BirthDepartment
-         <|> match "BRAND_NUMBER"             BrandNumber
-         <|> match "CA_LEGAL_TYPE"            CaLegalType
-         <|> match "DOCUMENT_NUMBER"          DocumentNumber
-         <|> match "DUNS_NUMBER"              DunsNumber
-         <|> match "FI_BUSINESS_NUMBER"       FiBusinessNumber
-         <|> match "FI_ID_NUMBER"             FiIdNumber
-         <|> match "IT_PIN"                   ItPin
-         <|> match "RU_PASSPORT_DATA"         RuPassportData
-         <|> match "SE_ID_NUMBER"             SeIdNumber
-         <|> match "SG_ID_NUMBER"             SgIdNumber
-         <|> match "VAT_NUMBER"               VatNumber
+    parser = takeText >>= \case
+        "AU_ID_NUMBER"             -> pure AuIdNumber
+        "AU_ID_TYPE"               -> pure AuIdType
+        "BIRTH_CITY"               -> pure BirthCity
+        "BIRTH_COUNTRY"            -> pure BirthCountry
+        "BIRTH_DATE_IN_YYYY_MM_DD" -> pure BirthDateInYyyyMmDd
+        "BIRTH_DEPARTMENT"         -> pure BirthDepartment
+        "BRAND_NUMBER"             -> pure BrandNumber
+        "CA_LEGAL_TYPE"            -> pure CaLegalType
+        "DOCUMENT_NUMBER"          -> pure DocumentNumber
+        "DUNS_NUMBER"              -> pure DunsNumber
+        "FI_BUSINESS_NUMBER"       -> pure FiBusinessNumber
+        "FI_ID_NUMBER"             -> pure FiIdNumber
+        "IT_PIN"                   -> pure ItPin
+        "RU_PASSPORT_DATA"         -> pure RuPassportData
+        "SE_ID_NUMBER"             -> pure SeIdNumber
+        "SG_ID_NUMBER"             -> pure SgIdNumber
+        "VAT_NUMBER"               -> pure VatNumber
+        e                          -> fail $
+            "Failure parsing ExtraParamName from " ++ show e
 
 instance ToText ExtraParamName where
     toText = \case
@@ -269,17 +282,26 @@
     , _nGlueIps = mempty
     }
 
--- | Glue IP address of a name server entry. Glue IP addresses are required
--- only when the name of the name server is a subdomain of the domain. For
--- example, if your domain is example.com and the name server for the domain
--- is ns.example.com, you need to specify the IP address for ns.example.com.
--- Type: List of IP addresses. Constraints: The list can contain only one
--- IPv4 and one IPv6 address. Parent: Nameservers.
+-- | Glue IP address of a name server entry. Glue IP addresses are required only
+-- when the name of the name server is a subdomain of the domain. For example,
+-- if your domain is example.com and the name server for the domain is
+-- ns.example.com, you need to specify the IP address for ns.example.com.
+--
+-- Type: List of IP addresses.
+--
+-- Constraints: The list can contain only one IPv4 and one IPv6 address.
+--
+-- Parent: 'Nameservers'
 nGlueIps :: Lens' Nameserver [Text]
 nGlueIps = lens _nGlueIps (\s a -> s { _nGlueIps = a }) . _List
 
--- | The fully qualified host name of the name server. Type: String
--- Constraint: Maximum 255 characterss Parent: Nameservers.
+-- | The fully qualified host name of the name server.
+--
+-- Type: String
+--
+-- Constraint: Maximum 255 characterss
+--
+-- Parent: 'Nameservers'
 nName :: Lens' Nameserver Text
 nName = lens _nName (\s a -> s { _nName = a })
 
@@ -305,11 +327,14 @@
 instance Hashable OperationStatus
 
 instance FromText OperationStatus where
-    parser = match "ERROR"       Error
-         <|> match "FAILED"      Failed
-         <|> match "IN_PROGRESS" InProgress
-         <|> match "SUBMITTED"   Submitted
-         <|> match "SUCCESSFUL"  Successful
+    parser = takeText >>= \case
+        "ERROR"       -> pure Error
+        "FAILED"      -> pure Failed
+        "IN_PROGRESS" -> pure InProgress
+        "SUBMITTED"   -> pure Submitted
+        "SUCCESSFUL"  -> pure Successful
+        e             -> fail $
+            "Failure parsing OperationStatus from " ++ show e
 
 instance ToText OperationStatus where
     toText = \case
@@ -342,13 +367,16 @@
 instance Hashable DomainAvailability
 
 instance FromText DomainAvailability where
-    parser = match "AVAILABLE"              Available
-         <|> match "AVAILABLE_PREORDER"     AvailablePreorder
-         <|> match "AVAILABLE_RESERVED"     AvailableReserved
-         <|> match "RESERVED"               Reserved
-         <|> match "UNAVAILABLE"            Unavailable
-         <|> match "UNAVAILABLE_PREMIUM"    UnavailablePremium
-         <|> match "UNAVAILABLE_RESTRICTED" UnavailableRestricted
+    parser = takeText >>= \case
+        "AVAILABLE"              -> pure Available
+        "AVAILABLE_PREORDER"     -> pure AvailablePreorder
+        "AVAILABLE_RESERVED"     -> pure AvailableReserved
+        "RESERVED"               -> pure Reserved
+        "UNAVAILABLE"            -> pure Unavailable
+        "UNAVAILABLE_PREMIUM"    -> pure UnavailablePremium
+        "UNAVAILABLE_RESTRICTED" -> pure UnavailableRestricted
+        e                        -> fail $
+            "Failure parsing DomainAvailability from " ++ show e
 
 instance ToText DomainAvailability where
     toText = \case
@@ -383,13 +411,16 @@
 instance Hashable OperationType
 
 instance FromText OperationType where
-    parser = match "CHANGE_PRIVACY_PROTECTION" OTChangePrivacyProtection
-         <|> match "DELETE_DOMAIN"             OTDeleteDomain
-         <|> match "DOMAIN_LOCK"               OTDomainLock
-         <|> match "REGISTER_DOMAIN"           OTRegisterDomain
-         <|> match "TRANSFER_IN_DOMAIN"        OTTransferInDomain
-         <|> match "UPDATE_DOMAIN_CONTACT"     OTUpdateDomainContact
-         <|> match "UPDATE_NAMESERVER"         OTUpdateNameserver
+    parser = takeText >>= \case
+        "CHANGE_PRIVACY_PROTECTION" -> pure OTChangePrivacyProtection
+        "DELETE_DOMAIN"             -> pure OTDeleteDomain
+        "DOMAIN_LOCK"               -> pure OTDomainLock
+        "REGISTER_DOMAIN"           -> pure OTRegisterDomain
+        "TRANSFER_IN_DOMAIN"        -> pure OTTransferInDomain
+        "UPDATE_DOMAIN_CONTACT"     -> pure OTUpdateDomainContact
+        "UPDATE_NAMESERVER"         -> pure OTUpdateNameserver
+        e                           -> fail $
+            "Failure parsing OperationType from " ++ show e
 
 instance ToText OperationType where
     toText = \case
@@ -646,235 +677,238 @@
 instance Hashable CountryCode
 
 instance FromText CountryCode where
-    parser = match "AD" Ad
-         <|> match "AE" Ae
-         <|> match "AF" Af
-         <|> match "AG" Ag
-         <|> match "AI" Ai
-         <|> match "AL" Al
-         <|> match "AM" Am
-         <|> match "AN" An
-         <|> match "AO" Ao
-         <|> match "AQ" Aq
-         <|> match "AR" Ar
-         <|> match "AS" As
-         <|> match "AT" At
-         <|> match "AU" Au
-         <|> match "AW" Aw
-         <|> match "AZ" Az
-         <|> match "BA" Ba
-         <|> match "BB" Bb
-         <|> match "BD" Bd
-         <|> match "BE" Be
-         <|> match "BF" Bf
-         <|> match "BG" Bg
-         <|> match "BH" Bh
-         <|> match "BI" Bi
-         <|> match "BJ" Bj
-         <|> match "BL" Bl
-         <|> match "BM" Bm
-         <|> match "BN" Bn
-         <|> match "BO" Bo
-         <|> match "BR" Br
-         <|> match "BS" Bs
-         <|> match "BT" Bt
-         <|> match "BW" Bw
-         <|> match "BY" By
-         <|> match "BZ" Bz
-         <|> match "CA" Ca
-         <|> match "CC" Cc
-         <|> match "CD" Cd
-         <|> match "CF" Cf
-         <|> match "CG" Cg
-         <|> match "CH" Ch
-         <|> match "CI" Ci
-         <|> match "CK" Ck
-         <|> match "CL" Cl
-         <|> match "CM" Cm
-         <|> match "CN" Cn
-         <|> match "CO" Co
-         <|> match "CR" Cr
-         <|> match "CU" Cu
-         <|> match "CV" Cv
-         <|> match "CX" Cx
-         <|> match "CY" Cy
-         <|> match "CZ" Cz
-         <|> match "DE" De
-         <|> match "DJ" Dj
-         <|> match "DK" Dk
-         <|> match "DM" Dm
-         <|> match "DO" Do'
-         <|> match "DZ" Dz
-         <|> match "EC" Ec
-         <|> match "EE" Ee
-         <|> match "EG" Eg
-         <|> match "ER" Er
-         <|> match "ES" Es
-         <|> match "ET" Et
-         <|> match "FI" Fi
-         <|> match "FJ" Fj
-         <|> match "FK" Fk
-         <|> match "FM" Fm
-         <|> match "FO" Fo
-         <|> match "FR" Fr
-         <|> match "GA" Ga
-         <|> match "GB" Gb
-         <|> match "GD" Gd
-         <|> match "GE" Ge
-         <|> match "GH" Gh
-         <|> match "GI" Gi
-         <|> match "GL" Gl
-         <|> match "GM" Gm
-         <|> match "GN" Gn
-         <|> match "GQ" Gq
-         <|> match "GR" Gr
-         <|> match "GT" Gt
-         <|> match "GU" Gu
-         <|> match "GW" Gw
-         <|> match "GY" Gy
-         <|> match "HK" Hk
-         <|> match "HN" Hn
-         <|> match "HR" Hr
-         <|> match "HT" Ht
-         <|> match "HU" Hu
-         <|> match "ID" Id
-         <|> match "IE" Ie
-         <|> match "IL" Il
-         <|> match "IM" Im
-         <|> match "IN" In'
-         <|> match "IQ" Iq
-         <|> match "IR" Ir
-         <|> match "IS" Is
-         <|> match "IT" It
-         <|> match "JM" Jm
-         <|> match "JO" Jo
-         <|> match "JP" Jp
-         <|> match "KE" Ke
-         <|> match "KG" Kg
-         <|> match "KH" Kh
-         <|> match "KI" Ki
-         <|> match "KM" Km
-         <|> match "KN" Kn
-         <|> match "KP" Kp
-         <|> match "KR" Kr
-         <|> match "KW" Kw
-         <|> match "KY" Ky
-         <|> match "KZ" Kz
-         <|> match "LA" La
-         <|> match "LB" Lb
-         <|> match "LC" Lc
-         <|> match "LI" Li
-         <|> match "LK" Lk
-         <|> match "LR" Lr
-         <|> match "LS" Ls
-         <|> match "LT" Lt
-         <|> match "LU" Lu
-         <|> match "LV" Lv
-         <|> match "LY" Ly
-         <|> match "MA" Ma
-         <|> match "MC" Mc
-         <|> match "MD" Md
-         <|> match "ME" Me
-         <|> match "MF" Mf
-         <|> match "MG" Mg
-         <|> match "MH" Mh
-         <|> match "MK" Mk
-         <|> match "ML" Ml
-         <|> match "MM" Mm
-         <|> match "MN" Mn
-         <|> match "MO" Mo
-         <|> match "MP" Mp
-         <|> match "MR" Mr
-         <|> match "MS" Ms
-         <|> match "MT" Mt
-         <|> match "MU" Mu
-         <|> match "MV" Mv
-         <|> match "MW" Mw
-         <|> match "MX" Mx
-         <|> match "MY" My
-         <|> match "MZ" Mz
-         <|> match "NA" Na
-         <|> match "NC" Nc
-         <|> match "NE" Ne
-         <|> match "NG" Ng
-         <|> match "NI" Ni
-         <|> match "NL" Nl
-         <|> match "NO" No
-         <|> match "NP" Np
-         <|> match "NR" Nr
-         <|> match "NU" Nu
-         <|> match "NZ" Nz
-         <|> match "OM" Om
-         <|> match "PA" Pa
-         <|> match "PE" Pe
-         <|> match "PF" Pf
-         <|> match "PG" Pg
-         <|> match "PH" Ph
-         <|> match "PK" Pk
-         <|> match "PL" Pl
-         <|> match "PM" Pm
-         <|> match "PN" Pn
-         <|> match "PR" Pr
-         <|> match "PT" Pt
-         <|> match "PW" Pw
-         <|> match "PY" Py
-         <|> match "QA" Qa
-         <|> match "RO" Ro
-         <|> match "RS" Rs
-         <|> match "RU" Ru
-         <|> match "RW" Rw
-         <|> match "SA" Sa
-         <|> match "SB" Sb
-         <|> match "SC" Sc
-         <|> match "SD" Sd
-         <|> match "SE" Se
-         <|> match "SG" Sg
-         <|> match "SH" Sh
-         <|> match "SI" Si
-         <|> match "SK" Sk
-         <|> match "SL" Sl
-         <|> match "SM" Sm
-         <|> match "SN" Sn
-         <|> match "SO" So
-         <|> match "SR" Sr
-         <|> match "ST" St
-         <|> match "SV" Sv
-         <|> match "SY" Sy
-         <|> match "SZ" Sz
-         <|> match "TC" Tc
-         <|> match "TD" Td
-         <|> match "TG" Tg
-         <|> match "TH" Th
-         <|> match "TJ" Tj
-         <|> match "TK" Tk
-         <|> match "TL" Tl
-         <|> match "TM" Tm
-         <|> match "TN" Tn
-         <|> match "TO" To
-         <|> match "TR" Tr
-         <|> match "TT" Tt
-         <|> match "TV" Tv
-         <|> match "TW" Tw
-         <|> match "TZ" Tz
-         <|> match "UA" Ua
-         <|> match "UG" Ug
-         <|> match "US" Us
-         <|> match "UY" Uy
-         <|> match "UZ" Uz
-         <|> match "VA" Va
-         <|> match "VC" Vc
-         <|> match "VE" Ve
-         <|> match "VG" Vg
-         <|> match "VI" Vi
-         <|> match "VN" Vn
-         <|> match "VU" Vu
-         <|> match "WF" Wf
-         <|> match "WS" Ws
-         <|> match "YE" Ye
-         <|> match "YT" Yt
-         <|> match "ZA" Za
-         <|> match "ZM" Zm
-         <|> match "ZW" Zw
+    parser = takeText >>= \case
+        "AD" -> pure Ad
+        "AE" -> pure Ae
+        "AF" -> pure Af
+        "AG" -> pure Ag
+        "AI" -> pure Ai
+        "AL" -> pure Al
+        "AM" -> pure Am
+        "AN" -> pure An
+        "AO" -> pure Ao
+        "AQ" -> pure Aq
+        "AR" -> pure Ar
+        "AS" -> pure As
+        "AT" -> pure At
+        "AU" -> pure Au
+        "AW" -> pure Aw
+        "AZ" -> pure Az
+        "BA" -> pure Ba
+        "BB" -> pure Bb
+        "BD" -> pure Bd
+        "BE" -> pure Be
+        "BF" -> pure Bf
+        "BG" -> pure Bg
+        "BH" -> pure Bh
+        "BI" -> pure Bi
+        "BJ" -> pure Bj
+        "BL" -> pure Bl
+        "BM" -> pure Bm
+        "BN" -> pure Bn
+        "BO" -> pure Bo
+        "BR" -> pure Br
+        "BS" -> pure Bs
+        "BT" -> pure Bt
+        "BW" -> pure Bw
+        "BY" -> pure By
+        "BZ" -> pure Bz
+        "CA" -> pure Ca
+        "CC" -> pure Cc
+        "CD" -> pure Cd
+        "CF" -> pure Cf
+        "CG" -> pure Cg
+        "CH" -> pure Ch
+        "CI" -> pure Ci
+        "CK" -> pure Ck
+        "CL" -> pure Cl
+        "CM" -> pure Cm
+        "CN" -> pure Cn
+        "CO" -> pure Co
+        "CR" -> pure Cr
+        "CU" -> pure Cu
+        "CV" -> pure Cv
+        "CX" -> pure Cx
+        "CY" -> pure Cy
+        "CZ" -> pure Cz
+        "DE" -> pure De
+        "DJ" -> pure Dj
+        "DK" -> pure Dk
+        "DM" -> pure Dm
+        "DO" -> pure Do'
+        "DZ" -> pure Dz
+        "EC" -> pure Ec
+        "EE" -> pure Ee
+        "EG" -> pure Eg
+        "ER" -> pure Er
+        "ES" -> pure Es
+        "ET" -> pure Et
+        "FI" -> pure Fi
+        "FJ" -> pure Fj
+        "FK" -> pure Fk
+        "FM" -> pure Fm
+        "FO" -> pure Fo
+        "FR" -> pure Fr
+        "GA" -> pure Ga
+        "GB" -> pure Gb
+        "GD" -> pure Gd
+        "GE" -> pure Ge
+        "GH" -> pure Gh
+        "GI" -> pure Gi
+        "GL" -> pure Gl
+        "GM" -> pure Gm
+        "GN" -> pure Gn
+        "GQ" -> pure Gq
+        "GR" -> pure Gr
+        "GT" -> pure Gt
+        "GU" -> pure Gu
+        "GW" -> pure Gw
+        "GY" -> pure Gy
+        "HK" -> pure Hk
+        "HN" -> pure Hn
+        "HR" -> pure Hr
+        "HT" -> pure Ht
+        "HU" -> pure Hu
+        "ID" -> pure Id
+        "IE" -> pure Ie
+        "IL" -> pure Il
+        "IM" -> pure Im
+        "IN" -> pure In'
+        "IQ" -> pure Iq
+        "IR" -> pure Ir
+        "IS" -> pure Is
+        "IT" -> pure It
+        "JM" -> pure Jm
+        "JO" -> pure Jo
+        "JP" -> pure Jp
+        "KE" -> pure Ke
+        "KG" -> pure Kg
+        "KH" -> pure Kh
+        "KI" -> pure Ki
+        "KM" -> pure Km
+        "KN" -> pure Kn
+        "KP" -> pure Kp
+        "KR" -> pure Kr
+        "KW" -> pure Kw
+        "KY" -> pure Ky
+        "KZ" -> pure Kz
+        "LA" -> pure La
+        "LB" -> pure Lb
+        "LC" -> pure Lc
+        "LI" -> pure Li
+        "LK" -> pure Lk
+        "LR" -> pure Lr
+        "LS" -> pure Ls
+        "LT" -> pure Lt
+        "LU" -> pure Lu
+        "LV" -> pure Lv
+        "LY" -> pure Ly
+        "MA" -> pure Ma
+        "MC" -> pure Mc
+        "MD" -> pure Md
+        "ME" -> pure Me
+        "MF" -> pure Mf
+        "MG" -> pure Mg
+        "MH" -> pure Mh
+        "MK" -> pure Mk
+        "ML" -> pure Ml
+        "MM" -> pure Mm
+        "MN" -> pure Mn
+        "MO" -> pure Mo
+        "MP" -> pure Mp
+        "MR" -> pure Mr
+        "MS" -> pure Ms
+        "MT" -> pure Mt
+        "MU" -> pure Mu
+        "MV" -> pure Mv
+        "MW" -> pure Mw
+        "MX" -> pure Mx
+        "MY" -> pure My
+        "MZ" -> pure Mz
+        "NA" -> pure Na
+        "NC" -> pure Nc
+        "NE" -> pure Ne
+        "NG" -> pure Ng
+        "NI" -> pure Ni
+        "NL" -> pure Nl
+        "NO" -> pure No
+        "NP" -> pure Np
+        "NR" -> pure Nr
+        "NU" -> pure Nu
+        "NZ" -> pure Nz
+        "OM" -> pure Om
+        "PA" -> pure Pa
+        "PE" -> pure Pe
+        "PF" -> pure Pf
+        "PG" -> pure Pg
+        "PH" -> pure Ph
+        "PK" -> pure Pk
+        "PL" -> pure Pl
+        "PM" -> pure Pm
+        "PN" -> pure Pn
+        "PR" -> pure Pr
+        "PT" -> pure Pt
+        "PW" -> pure Pw
+        "PY" -> pure Py
+        "QA" -> pure Qa
+        "RO" -> pure Ro
+        "RS" -> pure Rs
+        "RU" -> pure Ru
+        "RW" -> pure Rw
+        "SA" -> pure Sa
+        "SB" -> pure Sb
+        "SC" -> pure Sc
+        "SD" -> pure Sd
+        "SE" -> pure Se
+        "SG" -> pure Sg
+        "SH" -> pure Sh
+        "SI" -> pure Si
+        "SK" -> pure Sk
+        "SL" -> pure Sl
+        "SM" -> pure Sm
+        "SN" -> pure Sn
+        "SO" -> pure So
+        "SR" -> pure Sr
+        "ST" -> pure St
+        "SV" -> pure Sv
+        "SY" -> pure Sy
+        "SZ" -> pure Sz
+        "TC" -> pure Tc
+        "TD" -> pure Td
+        "TG" -> pure Tg
+        "TH" -> pure Th
+        "TJ" -> pure Tj
+        "TK" -> pure Tk
+        "TL" -> pure Tl
+        "TM" -> pure Tm
+        "TN" -> pure Tn
+        "TO" -> pure To
+        "TR" -> pure Tr
+        "TT" -> pure Tt
+        "TV" -> pure Tv
+        "TW" -> pure Tw
+        "TZ" -> pure Tz
+        "UA" -> pure Ua
+        "UG" -> pure Ug
+        "US" -> pure Us
+        "UY" -> pure Uy
+        "UZ" -> pure Uz
+        "VA" -> pure Va
+        "VC" -> pure Vc
+        "VE" -> pure Ve
+        "VG" -> pure Vg
+        "VI" -> pure Vi
+        "VN" -> pure Vn
+        "VU" -> pure Vu
+        "WF" -> pure Wf
+        "WS" -> pure Ws
+        "YE" -> pure Ye
+        "YT" -> pure Yt
+        "ZA" -> pure Za
+        "ZM" -> pure Zm
+        "ZW" -> pure Zw
+        e    -> fail $
+            "Failure parsing CountryCode from " ++ show e
 
 instance ToText CountryCode where
     toText = \case
@@ -1139,19 +1173,33 @@
     , _epValue = p2
     }
 
--- | Name of the additional parameter required by the top-level domain. Type:
--- String Default: None Valid values: DUNS_NUMBER | BRAND_NUMBER |
--- BIRTH_DEPARTMENT | BIRTH_DATE_IN_YYYY_MM_DD | BIRTH_COUNTRY | BIRTH_CITY
--- | DOCUMENT_NUMBER | AU_ID_NUMBER | AU_ID_TYPE | CA_LEGAL_TYPE |
--- FI_BUSINESS_NUMBER | FI_ID_NUMBER | IT_PIN | RU_PASSPORT_DATA |
--- SE_ID_NUMBER | SG_ID_NUMBER | VAT_NUMBER Parent: ExtraParams Required:
--- Yes.
+-- | Name of the additional parameter required by the top-level domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Valid values: 'DUNS_NUMBER' | 'BRAND_NUMBER' | 'BIRTH_DEPARTMENT' | 'BIRTH_DATE_IN_YYYY_MM_DD' | 'BIRTH_COUNTRY' | 'BIRTH_CITY' | 'DOCUMENT_NUMBER' | 'AU_ID_NUMBER' | 'AU_ID_TYPE' | 'CA_LEGAL_TYPE' | 'FI_BUSINESS_NUMBER' | 'FI_ID_NUMBER' | 'IT_PIN' | 'RU_PASSPORT_DATA'
+-- | 'SE_ID_NUMBER' | 'SG_ID_NUMBER' | 'VAT_NUMBER'
+--
+-- Parent: 'ExtraParams'
+--
+-- Required: Yes
 epName :: Lens' ExtraParam ExtraParamName
 epName = lens _epName (\s a -> s { _epName = a })
 
 -- | Values corresponding to the additional parameter names required by some
--- top-level domains. Type: String Default: None Constraints: Maximum 2048
--- characters. Parent: ExtraParams Required: Yes.
+-- top-level domains.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 2048 characters.
+--
+-- Parent: 'ExtraParams'
+--
+-- Required: Yes
 epValue :: Lens' ExtraParam Text
 epValue = lens _epValue (\s a -> s { _epValue = a })
 
@@ -1177,11 +1225,14 @@
 instance Hashable ContactType
 
 instance FromText ContactType where
-    parser = match "ASSOCIATION" CTAssociation
-         <|> match "COMPANY"     CTCompany
-         <|> match "PERSON"      CTPerson
-         <|> match "PUBLIC_BODY" CTPublicBody
-         <|> match "RESELLER"    CTReseller
+    parser = takeText >>= \case
+        "ASSOCIATION" -> pure CTAssociation
+        "COMPANY"     -> pure CTCompany
+        "PERSON"      -> pure CTPerson
+        "PUBLIC_BODY" -> pure CTPublicBody
+        "RESELLER"    -> pure CTReseller
+        e             -> fail $
+            "Failure parsing ContactType from " ++ show e
 
 instance ToText ContactType where
     toText = \case
@@ -1268,96 +1319,209 @@
     , _cdExtraParams      = mempty
     }
 
--- | First line of the contact's address. Type: String Default: None
--- Constraints: Maximum 255 characters. Parents: RegistrantContact,
--- AdminContact, TechContact Required: Yes.
+-- | First line of the contact's address.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdAddressLine1 :: Lens' ContactDetail (Maybe Text)
 cdAddressLine1 = lens _cdAddressLine1 (\s a -> s { _cdAddressLine1 = a })
 
--- | Second line of contact's address, if any. Type: String Default: None
--- Constraints: Maximum 255 characters. Parents: RegistrantContact,
--- AdminContact, TechContact Required: No.
+-- | Second line of contact's address, if any.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: No
 cdAddressLine2 :: Lens' ContactDetail (Maybe Text)
 cdAddressLine2 = lens _cdAddressLine2 (\s a -> s { _cdAddressLine2 = a })
 
--- | The city of the contact's address. Type: String Default: None
--- Constraints: Maximum 255 characters. Parents: RegistrantContact,
--- AdminContact, TechContact Required: Yes.
+-- | The city of the contact's address.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdCity :: Lens' ContactDetail (Maybe Text)
 cdCity = lens _cdCity (\s a -> s { _cdCity = a })
 
--- | Indicates whether the contact is a person, company, association, or
--- public organization. If you choose an option other than PERSON, you must
--- enter an organization name, and you can't enable privacy protection for
--- the contact. Type: String Default: None Constraints: Maximum 255
--- characters. Valid values: PERSON | COMPANY | ASSOCIATION | PUBLIC_BODY
--- Parents: RegistrantContact, AdminContact, TechContact Required: Yes.
+-- | Indicates whether the contact is a person, company, association, or public
+-- organization. If you choose an option other than 'PERSON', you must enter an
+-- organization name, and you can't enable privacy protection for the contact.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Valid values: 'PERSON' | 'COMPANY' | 'ASSOCIATION' | 'PUBLIC_BODY'
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdContactType :: Lens' ContactDetail (Maybe ContactType)
 cdContactType = lens _cdContactType (\s a -> s { _cdContactType = a })
 
--- | Code for the country of the contact's address. Type: String Default: None
--- Constraints: Maximum 255 characters. Parents: RegistrantContact,
--- AdminContact, TechContact Required: Yes.
+-- | Code for the country of the contact's address.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdCountryCode :: Lens' ContactDetail (Maybe CountryCode)
 cdCountryCode = lens _cdCountryCode (\s a -> s { _cdCountryCode = a })
 
--- | Email address of the contact. Type: String Default: None Constraints:
--- Maximum 254 characters. Parents: RegistrantContact, AdminContact,
--- TechContact Required: Yes.
+-- | Email address of the contact.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 254 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdEmail :: Lens' ContactDetail (Maybe Text)
 cdEmail = lens _cdEmail (\s a -> s { _cdEmail = a })
 
 -- | A list of name-value pairs for parameters required by certain top-level
--- domains. Type: Complex Default: None Parents: RegistrantContact,
--- AdminContact, TechContact Children: Name, Value Required: No.
+-- domains.
+--
+-- Type: Complex
+--
+-- Default: None
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Children: 'Name', 'Value'
+--
+-- Required: No
 cdExtraParams :: Lens' ContactDetail [ExtraParam]
 cdExtraParams = lens _cdExtraParams (\s a -> s { _cdExtraParams = a }) . _List
 
--- | Fax number of the contact. Type: String Default: None Constraints: Phone
--- number must be specified in the format "+[country dialing code].[number
--- including any area code]". For example, a US phone number might appear as
--- "+1.1234567890". Parents: RegistrantContact, AdminContact, TechContact
--- Required: No.
+-- | Fax number of the contact.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Phone number must be specified in the format "+[country dialing
+-- code].[number including any area code]". For example, a US phone number might
+-- appear as '"+1.1234567890"'.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: No
 cdFax :: Lens' ContactDetail (Maybe Text)
 cdFax = lens _cdFax (\s a -> s { _cdFax = a })
 
--- | First name of contact. Type: String Default: None Constraints: Maximum
--- 255 characters. Parents: RegistrantContact, AdminContact, TechContact
--- Required: Yes.
+-- | First name of contact.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdFirstName :: Lens' ContactDetail (Maybe Text)
 cdFirstName = lens _cdFirstName (\s a -> s { _cdFirstName = a })
 
--- | Last name of contact. Type: String Default: None Constraints: Maximum 255
--- characters. Parents: RegistrantContact, AdminContact, TechContact
--- Required: Yes.
+-- | Last name of contact.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdLastName :: Lens' ContactDetail (Maybe Text)
 cdLastName = lens _cdLastName (\s a -> s { _cdLastName = a })
 
--- | Name of the organization for contact types other than PERSON. Type:
--- String Default: None Constraints: Maximum 255 characters. Contact type
--- must not be PERSON. Parents: RegistrantContact, AdminContact, TechContact
--- Required: No.
+-- | Name of the organization for contact types other than 'PERSON'.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters. Contact type must not be 'PERSON'.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: No
 cdOrganizationName :: Lens' ContactDetail (Maybe Text)
 cdOrganizationName =
     lens _cdOrganizationName (\s a -> s { _cdOrganizationName = a })
 
--- | The phone number of the contact. Type: String Default: None Constraints:
--- Phone number must be specified in the format "+[country dialing
--- code].[number including any area code&gt;]". For example, a US phone
--- number might appear as "+1.1234567890". Parents: RegistrantContact,
--- AdminContact, TechContact Required: Yes.
+-- | The phone number of the contact.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Phone number must be specified in the format "+[country dialing
+-- code].[number including any area code>]". For example, a US phone number
+-- might appear as '"+1.1234567890"'.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: Yes
 cdPhoneNumber :: Lens' ContactDetail (Maybe Text)
 cdPhoneNumber = lens _cdPhoneNumber (\s a -> s { _cdPhoneNumber = a })
 
--- | The state or province of the contact's city. Type: String Default: None
--- Constraints: Maximum 255 characters. Parents: RegistrantContact,
--- AdminContact, TechContact Required: No.
+-- | The state or province of the contact's city.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: No
 cdState :: Lens' ContactDetail (Maybe Text)
 cdState = lens _cdState (\s a -> s { _cdState = a })
 
--- | The zip or postal code of the contact's address. Type: String Default:
--- None Constraints: Maximum 255 characters. Parents: RegistrantContact,
--- AdminContact, TechContact Required: No.
+-- | The zip or postal code of the contact's address.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
+--
+-- Parents: 'RegistrantContact', 'AdminContact', 'TechContact'
+--
+-- Required: No
 cdZipCode :: Lens' ContactDetail (Maybe Text)
 cdZipCode = lens _cdZipCode (\s a -> s { _cdZipCode = a })
 
@@ -1399,7 +1563,7 @@
 data OperationSummary = OperationSummary
     { _osOperationId   :: Text
     , _osStatus        :: OperationStatus
-    , _osSubmittedDate :: RFC822
+    , _osSubmittedDate :: ISO8601
     , _osType          :: OperationType
     } deriving (Eq, Show)
 
@@ -1427,12 +1591,15 @@
     , _osSubmittedDate = withIso _Time (const id) p4
     }
 
--- | Identifier returned to track the requested action. Type: String.
+-- | Identifier returned to track the requested action.
+--
+-- Type: String
 osOperationId :: Lens' OperationSummary Text
 osOperationId = lens _osOperationId (\s a -> s { _osOperationId = a })
 
--- | The current status of the requested operation in the system. Type:
--- String.
+-- | The current status of the requested operation in the system.
+--
+-- Type: String
 osStatus :: Lens' OperationSummary OperationStatus
 osStatus = lens _osStatus (\s a -> s { _osStatus = a })
 
@@ -1440,9 +1607,11 @@
 osSubmittedDate :: Lens' OperationSummary UTCTime
 osSubmittedDate = lens _osSubmittedDate (\s a -> s { _osSubmittedDate = a }) . _Time
 
--- | Type of the action requested. Type: String Valid values: REGISTER_DOMAIN
--- | DELETE_DOMAIN | TRANSFER_IN_DOMAIN | UPDATE_DOMAIN_CONTACT |
--- UPDATE_NAMESERVER | CHANGE_PRIVACY_PROTECTION | DOMAIN_LOCK.
+-- | Type of the action requested.
+--
+-- Type: String
+--
+-- Valid values: 'REGISTER_DOMAIN' | 'DELETE_DOMAIN' | 'TRANSFER_IN_DOMAIN' | 'UPDATE_DOMAIN_CONTACT' | 'UPDATE_NAMESERVER' | 'CHANGE_PRIVACY_PROTECTION' | 'DOMAIN_LOCK'
 osType :: Lens' OperationSummary OperationType
 osType = lens _osType (\s a -> s { _osType = a })
 
diff --git a/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs b/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs
--- a/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs
+++ b/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs
@@ -22,11 +22,12 @@
 
 -- | This operation updates the contact information for a particular domain.
 -- Information for at least one contact (registrant, administrator, or
--- technical) must be supplied for update. If the update is successful, this
--- method returns an operation ID that you can use to track the progress and
--- completion of the action. If the request is not completed successfully, the
--- domain registrant will be notified by email.
+-- technical) must be supplied for update.
 --
+-- If the update is successful, this method returns an operation ID that you
+-- can use to track the progress and completion of the action. If the request is
+-- not completed successfully, the domain registrant will be notified by email.
+--
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-UpdateDomainContact.html>
 module Network.AWS.Route53Domains.UpdateDomainContact
     (
@@ -81,32 +82,48 @@
     , _udcTechContact       = Nothing
     }
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 udcAdminContact :: Lens' UpdateDomainContact (Maybe ContactDetail)
 udcAdminContact = lens _udcAdminContact (\s a -> s { _udcAdminContact = a })
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 udcDomainName :: Lens' UpdateDomainContact Text
 udcDomainName = lens _udcDomainName (\s a -> s { _udcDomainName = a })
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 udcRegistrantContact :: Lens' UpdateDomainContact (Maybe ContactDetail)
 udcRegistrantContact =
     lens _udcRegistrantContact (\s a -> s { _udcRegistrantContact = a })
 
--- | Provides detailed contact information. Type: Complex Children: FirstName,
--- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,
--- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,
--- ExtraParams Required: Yes.
+-- | Provides detailed contact information.
+--
+-- Type: Complex
+--
+-- Children: 'FirstName', 'MiddleName', 'LastName', 'ContactType', 'OrganizationName', 'AddressLine1', 'AddressLine2', 'City', 'State', 'CountryCode', 'ZipCode', 'PhoneNumber', 'Email', 'Fax', 'ExtraParams'
+--
+-- Required: Yes
 udcTechContact :: Lens' UpdateDomainContact (Maybe ContactDetail)
 udcTechContact = lens _udcTechContact (\s a -> s { _udcTechContact = a })
 
@@ -126,9 +143,14 @@
     { _udcrOperationId = p1
     }
 
--- | Identifier for tracking the progress of the request. To use this ID to
--- query the operation status, use GetOperationDetail. Type: String Default:
--- None Constraints: Maximum 255 characters.
+-- | Identifier for tracking the progress of the request. To use this ID to query
+-- the operation status, use GetOperationDetail.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
 udcrOperationId :: Lens' UpdateDomainContactResponse Text
 udcrOperationId = lens _udcrOperationId (\s a -> s { _udcrOperationId = a })
 
diff --git a/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs b/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs
--- a/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs
+++ b/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs
@@ -23,13 +23,15 @@
 -- | This operation updates the specified domain contact's privacy setting. When
 -- the privacy option is enabled, personal information such as postal or email
 -- address is hidden from the results of a public WHOIS query. The privacy
--- services are provided by the AWS registrar, Gandi. For more information,
--- see the Gandi privacy features. This operation only affects the privacy of
--- the specified contact type (registrant, administrator, or tech). Successful
--- acceptance returns an operation ID that you can use with GetOperationDetail
--- to track the progress and completion of the action. If the request is not
--- completed successfully, the domain registrant will be notified by email.
+-- services are provided by the AWS registrar, Gandi. For more information, see
+-- the <http://www.gandi.net/domain/whois/?currency=USD&amp;lang=en Gandi privacy features>.
 --
+-- This operation only affects the privacy of the specified contact type
+-- (registrant, administrator, or tech). Successful acceptance returns an
+-- operation ID that you can use with GetOperationDetail to track the progress
+-- and completion of the action. If the request is not completed successfully,
+-- the domain registrant will be notified by email.
+--
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-UpdateDomainContactPrivacy.html>
 module Network.AWS.Route53Domains.UpdateDomainContactPrivacy
     (
@@ -84,35 +86,63 @@
     , _udcpTechPrivacy       = Nothing
     }
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: None Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: None
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 udcpAdminPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool)
 udcpAdminPrivacy = lens _udcpAdminPrivacy (\s a -> s { _udcpAdminPrivacy = a })
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 udcpDomainName :: Lens' UpdateDomainContactPrivacy Text
 udcpDomainName = lens _udcpDomainName (\s a -> s { _udcpDomainName = a })
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: None Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: None
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 udcpRegistrantPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool)
 udcpRegistrantPrivacy =
     lens _udcpRegistrantPrivacy (\s a -> s { _udcpRegistrantPrivacy = a })
 
--- | Whether you want to conceal contact information from WHOIS queries. If
--- you specify true, WHOIS ("who is") queries will return contact
--- information for our registrar partner, Gandi, instead of the contact
--- information that you enter. Type: Boolean Default: None Valid values:
--- true | false Required: No.
+-- | Whether you want to conceal contact information from WHOIS queries. If you
+-- specify true, WHOIS ("who is") queries will return contact information for
+-- our registrar partner, Gandi, instead of the contact information that you
+-- enter.
+--
+-- Type: Boolean
+--
+-- Default: None
+--
+-- Valid values: 'true' | 'false'
+--
+-- Required: No
 udcpTechPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool)
 udcpTechPrivacy = lens _udcpTechPrivacy (\s a -> s { _udcpTechPrivacy = a })
 
@@ -132,9 +162,14 @@
     { _udcprOperationId = p1
     }
 
--- | Identifier for tracking the progress of the request. To use this ID to
--- query the operation status, use GetOperationDetail. Type: String Default:
--- None Constraints: Maximum 255 characters.
+-- | Identifier for tracking the progress of the request. To use this ID to query
+-- the operation status, use GetOperationDetail.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
 udcprOperationId :: Lens' UpdateDomainContactPrivacyResponse Text
 udcprOperationId = lens _udcprOperationId (\s a -> s { _udcprOperationId = a })
 
diff --git a/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs b/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs
--- a/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs
+++ b/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs
@@ -23,11 +23,12 @@
 -- | This operation replaces the current set of name servers for the domain with
 -- the specified set of name servers. If you use Amazon Route 53 as your DNS
 -- service, specify the four name servers in the delegation set for the hosted
--- zone for the domain. If successful, this operation returns an operation ID
--- that you can use to track the progress and completion of the action. If the
--- request is not completed successfully, the domain registrant will be
--- notified by email.
+-- zone for the domain.
 --
+-- If successful, this operation returns an operation ID that you can use to
+-- track the progress and completion of the action. If the request is not
+-- completed successfully, the domain registrant will be notified by email.
+--
 -- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-UpdateDomainNameservers.html>
 module Network.AWS.Route53Domains.UpdateDomainNameservers
     (
@@ -72,15 +73,27 @@
     , _udnNameservers = mempty
     }
 
--- | The name of a domain. Type: String Default: None Constraints: The domain
--- name can contain only the letters a through z, the numbers 0 through 9,
--- and hyphen (-). Internationalized Domain Names are not supported.
--- Required: Yes.
+-- | The name of a domain.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: The domain name can contain only the letters a through z, the
+-- numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not
+-- supported.
+--
+-- Required: Yes
 udnDomainName :: Lens' UpdateDomainNameservers Text
 udnDomainName = lens _udnDomainName (\s a -> s { _udnDomainName = a })
 
--- | A list of new name servers for the domain. Type: Complex Children: Name,
--- GlueIps Required: Yes.
+-- | A list of new name servers for the domain.
+--
+-- Type: Complex
+--
+-- Children: 'Name', 'GlueIps'
+--
+-- Required: Yes
 udnNameservers :: Lens' UpdateDomainNameservers [Nameserver]
 udnNameservers = lens _udnNameservers (\s a -> s { _udnNameservers = a }) . _List
 
@@ -100,9 +113,14 @@
     { _udnrOperationId = p1
     }
 
--- | Identifier for tracking the progress of the request. To use this ID to
--- query the operation status, use GetOperationDetail. Type: String Default:
--- None Constraints: Maximum 255 characters.
+-- | Identifier for tracking the progress of the request. To use this ID to query
+-- the operation status, use GetOperationDetail.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Constraints: Maximum 255 characters.
 udnrOperationId :: Lens' UpdateDomainNameserversResponse Text
 udnrOperationId = lens _udnrOperationId (\s a -> s { _udnrOperationId = a })
 
