packages feed

stratosphere-0.40.0: library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreDatastoreStorage.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html

module Stratosphere.ResourceProperties.IoTAnalyticsDatastoreDatastoreStorage where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreCustomerManagedS3
import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreServiceManagedS3

-- | Full data type definition for IoTAnalyticsDatastoreDatastoreStorage. See
-- 'ioTAnalyticsDatastoreDatastoreStorage' for a more convenient
-- constructor.
data IoTAnalyticsDatastoreDatastoreStorage =
  IoTAnalyticsDatastoreDatastoreStorage
  { _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 :: Maybe IoTAnalyticsDatastoreCustomerManagedS3
  , _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 :: Maybe IoTAnalyticsDatastoreServiceManagedS3
  } deriving (Show, Eq)

instance ToJSON IoTAnalyticsDatastoreDatastoreStorage where
  toJSON IoTAnalyticsDatastoreDatastoreStorage{..} =
    object $
    catMaybes
    [ fmap (("CustomerManagedS3",) . toJSON) _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3
    , fmap (("ServiceManagedS3",) . toJSON) _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3
    ]

-- | Constructor for 'IoTAnalyticsDatastoreDatastoreStorage' containing
-- required fields as arguments.
ioTAnalyticsDatastoreDatastoreStorage
  :: IoTAnalyticsDatastoreDatastoreStorage
ioTAnalyticsDatastoreDatastoreStorage  =
  IoTAnalyticsDatastoreDatastoreStorage
  { _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 = Nothing
  , _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html#cfn-iotanalytics-datastore-datastorestorage-customermanageds3
itaddsCustomerManagedS3 :: Lens' IoTAnalyticsDatastoreDatastoreStorage (Maybe IoTAnalyticsDatastoreCustomerManagedS3)
itaddsCustomerManagedS3 = lens _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 (\s a -> s { _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html#cfn-iotanalytics-datastore-datastorestorage-servicemanageds3
itaddsServiceManagedS3 :: Lens' IoTAnalyticsDatastoreDatastoreStorage (Maybe IoTAnalyticsDatastoreServiceManagedS3)
itaddsServiceManagedS3 = lens _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 (\s a -> s { _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 = a })