packages feed

stratosphere-elasticache-1.0.0: gen/Stratosphere/ElastiCache/GlobalReplicationGroup/RegionalConfigurationProperty.hs

module Stratosphere.ElastiCache.GlobalReplicationGroup.RegionalConfigurationProperty (
        module Exports, RegionalConfigurationProperty(..),
        mkRegionalConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ElastiCache.GlobalReplicationGroup.ReshardingConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RegionalConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html>
    RegionalConfigurationProperty {haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-replicationgroupid>
                                   replicationGroupId :: (Prelude.Maybe (Value Prelude.Text)),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-replicationgroupregion>
                                   replicationGroupRegion :: (Prelude.Maybe (Value Prelude.Text)),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-reshardingconfigurations>
                                   reshardingConfigurations :: (Prelude.Maybe [ReshardingConfigurationProperty])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkRegionalConfigurationProperty :: RegionalConfigurationProperty
mkRegionalConfigurationProperty
  = RegionalConfigurationProperty
      {haddock_workaround_ = (), replicationGroupId = Prelude.Nothing,
       replicationGroupRegion = Prelude.Nothing,
       reshardingConfigurations = Prelude.Nothing}
instance ToResourceProperties RegionalConfigurationProperty where
  toResourceProperties RegionalConfigurationProperty {..}
    = ResourceProperties
        {awsType = "AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,
                            (JSON..=) "ReplicationGroupRegion"
                              Prelude.<$> replicationGroupRegion,
                            (JSON..=) "ReshardingConfigurations"
                              Prelude.<$> reshardingConfigurations])}
instance JSON.ToJSON RegionalConfigurationProperty where
  toJSON RegionalConfigurationProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,
               (JSON..=) "ReplicationGroupRegion"
                 Prelude.<$> replicationGroupRegion,
               (JSON..=) "ReshardingConfigurations"
                 Prelude.<$> reshardingConfigurations]))
instance Property "ReplicationGroupId" RegionalConfigurationProperty where
  type PropertyType "ReplicationGroupId" RegionalConfigurationProperty = Value Prelude.Text
  set newValue RegionalConfigurationProperty {..}
    = RegionalConfigurationProperty
        {replicationGroupId = Prelude.pure newValue, ..}
instance Property "ReplicationGroupRegion" RegionalConfigurationProperty where
  type PropertyType "ReplicationGroupRegion" RegionalConfigurationProperty = Value Prelude.Text
  set newValue RegionalConfigurationProperty {..}
    = RegionalConfigurationProperty
        {replicationGroupRegion = Prelude.pure newValue, ..}
instance Property "ReshardingConfigurations" RegionalConfigurationProperty where
  type PropertyType "ReshardingConfigurations" RegionalConfigurationProperty = [ReshardingConfigurationProperty]
  set newValue RegionalConfigurationProperty {..}
    = RegionalConfigurationProperty
        {reshardingConfigurations = Prelude.pure newValue, ..}