{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html module Stratosphere.Resources.AmplifyDomain where import Stratosphere.ResourceImports import Stratosphere.ResourceProperties.AmplifyDomainSubDomainSetting -- | Full data type definition for AmplifyDomain. See 'amplifyDomain' for a -- more convenient constructor. data AmplifyDomain = AmplifyDomain { _amplifyDomainAppId :: Val Text , _amplifyDomainDomainName :: Val Text , _amplifyDomainSubDomainSettings :: [AmplifyDomainSubDomainSetting] } deriving (Show, Eq) instance ToResourceProperties AmplifyDomain where toResourceProperties AmplifyDomain{..} = ResourceProperties { resourcePropertiesType = "AWS::Amplify::Domain" , resourcePropertiesProperties = hashMapFromList $ catMaybes [ (Just . ("AppId",) . toJSON) _amplifyDomainAppId , (Just . ("DomainName",) . toJSON) _amplifyDomainDomainName , (Just . ("SubDomainSettings",) . toJSON) _amplifyDomainSubDomainSettings ] } -- | Constructor for 'AmplifyDomain' containing required fields as arguments. amplifyDomain :: Val Text -- ^ 'adAppId' -> Val Text -- ^ 'adDomainName' -> [AmplifyDomainSubDomainSetting] -- ^ 'adSubDomainSettings' -> AmplifyDomain amplifyDomain appIdarg domainNamearg subDomainSettingsarg = AmplifyDomain { _amplifyDomainAppId = appIdarg , _amplifyDomainDomainName = domainNamearg , _amplifyDomainSubDomainSettings = subDomainSettingsarg } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-appid adAppId :: Lens' AmplifyDomain (Val Text) adAppId = lens _amplifyDomainAppId (\s a -> s { _amplifyDomainAppId = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-domainname adDomainName :: Lens' AmplifyDomain (Val Text) adDomainName = lens _amplifyDomainDomainName (\s a -> s { _amplifyDomainDomainName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-subdomainsettings adSubDomainSettings :: Lens' AmplifyDomain [AmplifyDomainSubDomainSetting] adSubDomainSettings = lens _amplifyDomainSubDomainSettings (\s a -> s { _amplifyDomainSubDomainSettings = a })