{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.AWS.Route53Domains.Types.Product where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Route53Domains.Types.Sum
data BillingRecord = BillingRecord'
{ _brOperation :: !(Maybe OperationType)
, _brInvoiceId :: !(Maybe Text)
, _brDomainName :: !(Maybe Text)
, _brBillDate :: !(Maybe POSIX)
, _brPrice :: !(Maybe Double)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
billingRecord
:: BillingRecord
billingRecord =
BillingRecord'
{ _brOperation = Nothing
, _brInvoiceId = Nothing
, _brDomainName = Nothing
, _brBillDate = Nothing
, _brPrice = Nothing
}
brOperation :: Lens' BillingRecord (Maybe OperationType)
brOperation = lens _brOperation (\ s a -> s{_brOperation = a});
brInvoiceId :: Lens' BillingRecord (Maybe Text)
brInvoiceId = lens _brInvoiceId (\ s a -> s{_brInvoiceId = a});
brDomainName :: Lens' BillingRecord (Maybe Text)
brDomainName = lens _brDomainName (\ s a -> s{_brDomainName = a});
brBillDate :: Lens' BillingRecord (Maybe UTCTime)
brBillDate = lens _brBillDate (\ s a -> s{_brBillDate = a}) . mapping _Time;
brPrice :: Lens' BillingRecord (Maybe Double)
brPrice = lens _brPrice (\ s a -> s{_brPrice = a});
instance FromJSON BillingRecord where
parseJSON
= withObject "BillingRecord"
(\ x ->
BillingRecord' <$>
(x .:? "Operation") <*> (x .:? "InvoiceId") <*>
(x .:? "DomainName")
<*> (x .:? "BillDate")
<*> (x .:? "Price"))
instance Hashable BillingRecord
instance NFData BillingRecord
data ContactDetail = ContactDetail'
{ _cdOrganizationName :: !(Maybe Text)
, _cdEmail :: !(Maybe Text)
, _cdState :: !(Maybe Text)
, _cdFax :: !(Maybe Text)
, _cdLastName :: !(Maybe Text)
, _cdExtraParams :: !(Maybe [ExtraParam])
, _cdZipCode :: !(Maybe Text)
, _cdAddressLine1 :: !(Maybe Text)
, _cdCity :: !(Maybe Text)
, _cdPhoneNumber :: !(Maybe Text)
, _cdAddressLine2 :: !(Maybe Text)
, _cdFirstName :: !(Maybe Text)
, _cdCountryCode :: !(Maybe CountryCode)
, _cdContactType :: !(Maybe ContactType)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
contactDetail
:: ContactDetail
contactDetail =
ContactDetail'
{ _cdOrganizationName = Nothing
, _cdEmail = Nothing
, _cdState = Nothing
, _cdFax = Nothing
, _cdLastName = Nothing
, _cdExtraParams = Nothing
, _cdZipCode = Nothing
, _cdAddressLine1 = Nothing
, _cdCity = Nothing
, _cdPhoneNumber = Nothing
, _cdAddressLine2 = Nothing
, _cdFirstName = Nothing
, _cdCountryCode = Nothing
, _cdContactType = Nothing
}
cdOrganizationName :: Lens' ContactDetail (Maybe Text)
cdOrganizationName = lens _cdOrganizationName (\ s a -> s{_cdOrganizationName = a});
cdEmail :: Lens' ContactDetail (Maybe Text)
cdEmail = lens _cdEmail (\ s a -> s{_cdEmail = a});
cdState :: Lens' ContactDetail (Maybe Text)
cdState = lens _cdState (\ s a -> s{_cdState = a});
cdFax :: Lens' ContactDetail (Maybe Text)
cdFax = lens _cdFax (\ s a -> s{_cdFax = a});
cdLastName :: Lens' ContactDetail (Maybe Text)
cdLastName = lens _cdLastName (\ s a -> s{_cdLastName = a});
cdExtraParams :: Lens' ContactDetail [ExtraParam]
cdExtraParams = lens _cdExtraParams (\ s a -> s{_cdExtraParams = a}) . _Default . _Coerce;
cdZipCode :: Lens' ContactDetail (Maybe Text)
cdZipCode = lens _cdZipCode (\ s a -> s{_cdZipCode = a});
cdAddressLine1 :: Lens' ContactDetail (Maybe Text)
cdAddressLine1 = lens _cdAddressLine1 (\ s a -> s{_cdAddressLine1 = a});
cdCity :: Lens' ContactDetail (Maybe Text)
cdCity = lens _cdCity (\ s a -> s{_cdCity = a});
cdPhoneNumber :: Lens' ContactDetail (Maybe Text)
cdPhoneNumber = lens _cdPhoneNumber (\ s a -> s{_cdPhoneNumber = a});
cdAddressLine2 :: Lens' ContactDetail (Maybe Text)
cdAddressLine2 = lens _cdAddressLine2 (\ s a -> s{_cdAddressLine2 = a});
cdFirstName :: Lens' ContactDetail (Maybe Text)
cdFirstName = lens _cdFirstName (\ s a -> s{_cdFirstName = a});
cdCountryCode :: Lens' ContactDetail (Maybe CountryCode)
cdCountryCode = lens _cdCountryCode (\ s a -> s{_cdCountryCode = a});
cdContactType :: Lens' ContactDetail (Maybe ContactType)
cdContactType = lens _cdContactType (\ s a -> s{_cdContactType = a});
instance FromJSON ContactDetail where
parseJSON
= withObject "ContactDetail"
(\ x ->
ContactDetail' <$>
(x .:? "OrganizationName") <*> (x .:? "Email") <*>
(x .:? "State")
<*> (x .:? "Fax")
<*> (x .:? "LastName")
<*> (x .:? "ExtraParams" .!= mempty)
<*> (x .:? "ZipCode")
<*> (x .:? "AddressLine1")
<*> (x .:? "City")
<*> (x .:? "PhoneNumber")
<*> (x .:? "AddressLine2")
<*> (x .:? "FirstName")
<*> (x .:? "CountryCode")
<*> (x .:? "ContactType"))
instance Hashable ContactDetail
instance NFData ContactDetail
instance ToJSON ContactDetail where
toJSON ContactDetail'{..}
= object
(catMaybes
[("OrganizationName" .=) <$> _cdOrganizationName,
("Email" .=) <$> _cdEmail, ("State" .=) <$> _cdState,
("Fax" .=) <$> _cdFax,
("LastName" .=) <$> _cdLastName,
("ExtraParams" .=) <$> _cdExtraParams,
("ZipCode" .=) <$> _cdZipCode,
("AddressLine1" .=) <$> _cdAddressLine1,
("City" .=) <$> _cdCity,
("PhoneNumber" .=) <$> _cdPhoneNumber,
("AddressLine2" .=) <$> _cdAddressLine2,
("FirstName" .=) <$> _cdFirstName,
("CountryCode" .=) <$> _cdCountryCode,
("ContactType" .=) <$> _cdContactType])
data DomainSuggestion = DomainSuggestion'
{ _dAvailability :: !(Maybe Text)
, _dDomainName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
domainSuggestion
:: DomainSuggestion
domainSuggestion =
DomainSuggestion'
{ _dAvailability = Nothing
, _dDomainName = Nothing
}
dAvailability :: Lens' DomainSuggestion (Maybe Text)
dAvailability = lens _dAvailability (\ s a -> s{_dAvailability = a});
dDomainName :: Lens' DomainSuggestion (Maybe Text)
dDomainName = lens _dDomainName (\ s a -> s{_dDomainName = a});
instance FromJSON DomainSuggestion where
parseJSON
= withObject "DomainSuggestion"
(\ x ->
DomainSuggestion' <$>
(x .:? "Availability") <*> (x .:? "DomainName"))
instance Hashable DomainSuggestion
instance NFData DomainSuggestion
data DomainSummary = DomainSummary'
{ _dsExpiry :: !(Maybe POSIX)
, _dsTransferLock :: !(Maybe Bool)
, _dsAutoRenew :: !(Maybe Bool)
, _dsDomainName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
domainSummary
:: Text
-> DomainSummary
domainSummary pDomainName_ =
DomainSummary'
{ _dsExpiry = Nothing
, _dsTransferLock = Nothing
, _dsAutoRenew = Nothing
, _dsDomainName = pDomainName_
}
dsExpiry :: Lens' DomainSummary (Maybe UTCTime)
dsExpiry = lens _dsExpiry (\ s a -> s{_dsExpiry = a}) . mapping _Time;
dsTransferLock :: Lens' DomainSummary (Maybe Bool)
dsTransferLock = lens _dsTransferLock (\ s a -> s{_dsTransferLock = a});
dsAutoRenew :: Lens' DomainSummary (Maybe Bool)
dsAutoRenew = lens _dsAutoRenew (\ s a -> s{_dsAutoRenew = a});
dsDomainName :: Lens' DomainSummary Text
dsDomainName = lens _dsDomainName (\ s a -> s{_dsDomainName = a});
instance FromJSON DomainSummary where
parseJSON
= withObject "DomainSummary"
(\ x ->
DomainSummary' <$>
(x .:? "Expiry") <*> (x .:? "TransferLock") <*>
(x .:? "AutoRenew")
<*> (x .: "DomainName"))
instance Hashable DomainSummary
instance NFData DomainSummary
data ExtraParam = ExtraParam'
{ _epName :: !ExtraParamName
, _epValue :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
extraParam
:: ExtraParamName
-> Text
-> ExtraParam
extraParam pName_ pValue_ =
ExtraParam'
{ _epName = pName_
, _epValue = pValue_
}
epName :: Lens' ExtraParam ExtraParamName
epName = lens _epName (\ s a -> s{_epName = a});
epValue :: Lens' ExtraParam Text
epValue = lens _epValue (\ s a -> s{_epValue = a});
instance FromJSON ExtraParam where
parseJSON
= withObject "ExtraParam"
(\ x ->
ExtraParam' <$> (x .: "Name") <*> (x .: "Value"))
instance Hashable ExtraParam
instance NFData ExtraParam
instance ToJSON ExtraParam where
toJSON ExtraParam'{..}
= object
(catMaybes
[Just ("Name" .= _epName),
Just ("Value" .= _epValue)])
data Nameserver = Nameserver'
{ _nGlueIPs :: !(Maybe [Text])
, _nName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
nameserver
:: Text
-> Nameserver
nameserver pName_ =
Nameserver'
{ _nGlueIPs = Nothing
, _nName = pName_
}
nGlueIPs :: Lens' Nameserver [Text]
nGlueIPs = lens _nGlueIPs (\ s a -> s{_nGlueIPs = a}) . _Default . _Coerce;
nName :: Lens' Nameserver Text
nName = lens _nName (\ s a -> s{_nName = a});
instance FromJSON Nameserver where
parseJSON
= withObject "Nameserver"
(\ x ->
Nameserver' <$>
(x .:? "GlueIps" .!= mempty) <*> (x .: "Name"))
instance Hashable Nameserver
instance NFData Nameserver
instance ToJSON Nameserver where
toJSON Nameserver'{..}
= object
(catMaybes
[("GlueIps" .=) <$> _nGlueIPs,
Just ("Name" .= _nName)])
data OperationSummary = OperationSummary'
{ _osOperationId :: !Text
, _osStatus :: !OperationStatus
, _osType :: !OperationType
, _osSubmittedDate :: !POSIX
} deriving (Eq,Read,Show,Data,Typeable,Generic)
operationSummary
:: Text
-> OperationStatus
-> OperationType
-> UTCTime
-> OperationSummary
operationSummary pOperationId_ pStatus_ pType_ pSubmittedDate_ =
OperationSummary'
{ _osOperationId = pOperationId_
, _osStatus = pStatus_
, _osType = pType_
, _osSubmittedDate = _Time # pSubmittedDate_
}
osOperationId :: Lens' OperationSummary Text
osOperationId = lens _osOperationId (\ s a -> s{_osOperationId = a});
osStatus :: Lens' OperationSummary OperationStatus
osStatus = lens _osStatus (\ s a -> s{_osStatus = a});
osType :: Lens' OperationSummary OperationType
osType = lens _osType (\ s a -> s{_osType = a});
osSubmittedDate :: Lens' OperationSummary UTCTime
osSubmittedDate = lens _osSubmittedDate (\ s a -> s{_osSubmittedDate = a}) . _Time;
instance FromJSON OperationSummary where
parseJSON
= withObject "OperationSummary"
(\ x ->
OperationSummary' <$>
(x .: "OperationId") <*> (x .: "Status") <*>
(x .: "Type")
<*> (x .: "SubmittedDate"))
instance Hashable OperationSummary
instance NFData OperationSummary
data Tag = Tag'
{ _tagValue :: !(Maybe Text)
, _tagKey :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
tag
:: Tag
tag =
Tag'
{ _tagValue = Nothing
, _tagKey = Nothing
}
tagValue :: Lens' Tag (Maybe Text)
tagValue = lens _tagValue (\ s a -> s{_tagValue = a});
tagKey :: Lens' Tag (Maybe Text)
tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
instance FromJSON Tag where
parseJSON
= withObject "Tag"
(\ x -> Tag' <$> (x .:? "Value") <*> (x .:? "Key"))
instance Hashable Tag
instance NFData Tag
instance ToJSON Tag where
toJSON Tag'{..}
= object
(catMaybes
[("Value" .=) <$> _tagValue, ("Key" .=) <$> _tagKey])