{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.Route53Domains.UpdateDomainContact -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | 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. -- -- module Network.AWS.Route53Domains.UpdateDomainContact ( -- * Request UpdateDomainContact -- ** Request constructor , updateDomainContact -- ** Request lenses , udcAdminContact , udcDomainName , udcRegistrantContact , udcTechContact -- * Response , UpdateDomainContactResponse -- ** Response constructor , updateDomainContactResponse -- ** Response lenses , udcrOperationId ) where import Network.AWS.Prelude import Network.AWS.Request.JSON import Network.AWS.Route53Domains.Types import qualified GHC.Exts data UpdateDomainContact = UpdateDomainContact { _udcAdminContact :: Maybe ContactDetail , _udcDomainName :: Text , _udcRegistrantContact :: Maybe ContactDetail , _udcTechContact :: Maybe ContactDetail } deriving (Eq, Show) -- | 'UpdateDomainContact' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'udcAdminContact' @::@ 'Maybe' 'ContactDetail' -- -- * 'udcDomainName' @::@ 'Text' -- -- * 'udcRegistrantContact' @::@ 'Maybe' 'ContactDetail' -- -- * 'udcTechContact' @::@ 'Maybe' 'ContactDetail' -- updateDomainContact :: Text -- ^ 'udcDomainName' -> UpdateDomainContact updateDomainContact p1 = UpdateDomainContact { _udcDomainName = p1 , _udcAdminContact = Nothing , _udcRegistrantContact = Nothing , _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 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 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 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 udcTechContact :: Lens' UpdateDomainContact (Maybe ContactDetail) udcTechContact = lens _udcTechContact (\s a -> s { _udcTechContact = a }) newtype UpdateDomainContactResponse = UpdateDomainContactResponse { _udcrOperationId :: Text } deriving (Eq, Ord, Show, Monoid, IsString) -- | 'UpdateDomainContactResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'udcrOperationId' @::@ 'Text' -- updateDomainContactResponse :: Text -- ^ 'udcrOperationId' -> UpdateDomainContactResponse updateDomainContactResponse p1 = UpdateDomainContactResponse { _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. udcrOperationId :: Lens' UpdateDomainContactResponse Text udcrOperationId = lens _udcrOperationId (\s a -> s { _udcrOperationId = a }) instance ToPath UpdateDomainContact where toPath = const "/" instance ToQuery UpdateDomainContact where toQuery = const mempty instance ToHeaders UpdateDomainContact instance ToJSON UpdateDomainContact where toJSON UpdateDomainContact{..} = object [ "DomainName" .= _udcDomainName , "AdminContact" .= _udcAdminContact , "RegistrantContact" .= _udcRegistrantContact , "TechContact" .= _udcTechContact ] instance AWSRequest UpdateDomainContact where type Sv UpdateDomainContact = Route53Domains type Rs UpdateDomainContact = UpdateDomainContactResponse request = post "UpdateDomainContact" response = jsonResponse instance FromJSON UpdateDomainContactResponse where parseJSON = withObject "UpdateDomainContactResponse" $ \o -> UpdateDomainContactResponse <$> o .: "OperationId"