packages feed

stratosphere-0.39.0: library-gen/Stratosphere/Resources/PinpointAPNSVoipChannel.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html

module Stratosphere.Resources.PinpointAPNSVoipChannel where

import Stratosphere.ResourceImports


-- | Full data type definition for PinpointAPNSVoipChannel. See
-- 'pinpointAPNSVoipChannel' for a more convenient constructor.
data PinpointAPNSVoipChannel =
  PinpointAPNSVoipChannel
  { _pinpointAPNSVoipChannelApplicationId :: Val Text
  , _pinpointAPNSVoipChannelBundleId :: Maybe (Val Text)
  , _pinpointAPNSVoipChannelCertificate :: Maybe (Val Text)
  , _pinpointAPNSVoipChannelDefaultAuthenticationMethod :: Maybe (Val Text)
  , _pinpointAPNSVoipChannelEnabled :: Maybe (Val Bool)
  , _pinpointAPNSVoipChannelPrivateKey :: Maybe (Val Text)
  , _pinpointAPNSVoipChannelTeamId :: Maybe (Val Text)
  , _pinpointAPNSVoipChannelTokenKey :: Maybe (Val Text)
  , _pinpointAPNSVoipChannelTokenKeyId :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToResourceProperties PinpointAPNSVoipChannel where
  toResourceProperties PinpointAPNSVoipChannel{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::Pinpoint::APNSVoipChannel"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ (Just . ("ApplicationId",) . toJSON) _pinpointAPNSVoipChannelApplicationId
        , fmap (("BundleId",) . toJSON) _pinpointAPNSVoipChannelBundleId
        , fmap (("Certificate",) . toJSON) _pinpointAPNSVoipChannelCertificate
        , fmap (("DefaultAuthenticationMethod",) . toJSON) _pinpointAPNSVoipChannelDefaultAuthenticationMethod
        , fmap (("Enabled",) . toJSON) _pinpointAPNSVoipChannelEnabled
        , fmap (("PrivateKey",) . toJSON) _pinpointAPNSVoipChannelPrivateKey
        , fmap (("TeamId",) . toJSON) _pinpointAPNSVoipChannelTeamId
        , fmap (("TokenKey",) . toJSON) _pinpointAPNSVoipChannelTokenKey
        , fmap (("TokenKeyId",) . toJSON) _pinpointAPNSVoipChannelTokenKeyId
        ]
    }

-- | Constructor for 'PinpointAPNSVoipChannel' containing required fields as
-- arguments.
pinpointAPNSVoipChannel
  :: Val Text -- ^ 'papnsvcApplicationId'
  -> PinpointAPNSVoipChannel
pinpointAPNSVoipChannel applicationIdarg =
  PinpointAPNSVoipChannel
  { _pinpointAPNSVoipChannelApplicationId = applicationIdarg
  , _pinpointAPNSVoipChannelBundleId = Nothing
  , _pinpointAPNSVoipChannelCertificate = Nothing
  , _pinpointAPNSVoipChannelDefaultAuthenticationMethod = Nothing
  , _pinpointAPNSVoipChannelEnabled = Nothing
  , _pinpointAPNSVoipChannelPrivateKey = Nothing
  , _pinpointAPNSVoipChannelTeamId = Nothing
  , _pinpointAPNSVoipChannelTokenKey = Nothing
  , _pinpointAPNSVoipChannelTokenKeyId = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-applicationid
papnsvcApplicationId :: Lens' PinpointAPNSVoipChannel (Val Text)
papnsvcApplicationId = lens _pinpointAPNSVoipChannelApplicationId (\s a -> s { _pinpointAPNSVoipChannelApplicationId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-bundleid
papnsvcBundleId :: Lens' PinpointAPNSVoipChannel (Maybe (Val Text))
papnsvcBundleId = lens _pinpointAPNSVoipChannelBundleId (\s a -> s { _pinpointAPNSVoipChannelBundleId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-certificate
papnsvcCertificate :: Lens' PinpointAPNSVoipChannel (Maybe (Val Text))
papnsvcCertificate = lens _pinpointAPNSVoipChannelCertificate (\s a -> s { _pinpointAPNSVoipChannelCertificate = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-defaultauthenticationmethod
papnsvcDefaultAuthenticationMethod :: Lens' PinpointAPNSVoipChannel (Maybe (Val Text))
papnsvcDefaultAuthenticationMethod = lens _pinpointAPNSVoipChannelDefaultAuthenticationMethod (\s a -> s { _pinpointAPNSVoipChannelDefaultAuthenticationMethod = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-enabled
papnsvcEnabled :: Lens' PinpointAPNSVoipChannel (Maybe (Val Bool))
papnsvcEnabled = lens _pinpointAPNSVoipChannelEnabled (\s a -> s { _pinpointAPNSVoipChannelEnabled = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-privatekey
papnsvcPrivateKey :: Lens' PinpointAPNSVoipChannel (Maybe (Val Text))
papnsvcPrivateKey = lens _pinpointAPNSVoipChannelPrivateKey (\s a -> s { _pinpointAPNSVoipChannelPrivateKey = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-teamid
papnsvcTeamId :: Lens' PinpointAPNSVoipChannel (Maybe (Val Text))
papnsvcTeamId = lens _pinpointAPNSVoipChannelTeamId (\s a -> s { _pinpointAPNSVoipChannelTeamId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-tokenkey
papnsvcTokenKey :: Lens' PinpointAPNSVoipChannel (Maybe (Val Text))
papnsvcTokenKey = lens _pinpointAPNSVoipChannelTokenKey (\s a -> s { _pinpointAPNSVoipChannelTokenKey = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-apnsvoipchannel.html#cfn-pinpoint-apnsvoipchannel-tokenkeyid
papnsvcTokenKeyId :: Lens' PinpointAPNSVoipChannel (Maybe (Val Text))
papnsvcTokenKeyId = lens _pinpointAPNSVoipChannelTokenKeyId (\s a -> s { _pinpointAPNSVoipChannelTokenKeyId = a })