packages feed

stratosphere-eks-1.0.0: gen/Stratosphere/EKS/Cluster/RemoteNetworkConfigProperty.hs

module Stratosphere.EKS.Cluster.RemoteNetworkConfigProperty (
        module Exports, RemoteNetworkConfigProperty(..),
        mkRemoteNetworkConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.EKS.Cluster.RemoteNodeNetworkProperty as Exports
import {-# SOURCE #-} Stratosphere.EKS.Cluster.RemotePodNetworkProperty as Exports
import Stratosphere.ResourceProperties
data RemoteNetworkConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html>
    RemoteNetworkConfigProperty {haddock_workaround_ :: (),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html#cfn-eks-cluster-remotenetworkconfig-remotenodenetworks>
                                 remoteNodeNetworks :: [RemoteNodeNetworkProperty],
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html#cfn-eks-cluster-remotenetworkconfig-remotepodnetworks>
                                 remotePodNetworks :: (Prelude.Maybe [RemotePodNetworkProperty])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkRemoteNetworkConfigProperty ::
  [RemoteNodeNetworkProperty] -> RemoteNetworkConfigProperty
mkRemoteNetworkConfigProperty remoteNodeNetworks
  = RemoteNetworkConfigProperty
      {haddock_workaround_ = (), remoteNodeNetworks = remoteNodeNetworks,
       remotePodNetworks = Prelude.Nothing}
instance ToResourceProperties RemoteNetworkConfigProperty where
  toResourceProperties RemoteNetworkConfigProperty {..}
    = ResourceProperties
        {awsType = "AWS::EKS::Cluster.RemoteNetworkConfig",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["RemoteNodeNetworks" JSON..= remoteNodeNetworks]
                           (Prelude.catMaybes
                              [(JSON..=) "RemotePodNetworks" Prelude.<$> remotePodNetworks]))}
instance JSON.ToJSON RemoteNetworkConfigProperty where
  toJSON RemoteNetworkConfigProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["RemoteNodeNetworks" JSON..= remoteNodeNetworks]
              (Prelude.catMaybes
                 [(JSON..=) "RemotePodNetworks" Prelude.<$> remotePodNetworks])))
instance Property "RemoteNodeNetworks" RemoteNetworkConfigProperty where
  type PropertyType "RemoteNodeNetworks" RemoteNetworkConfigProperty = [RemoteNodeNetworkProperty]
  set newValue RemoteNetworkConfigProperty {..}
    = RemoteNetworkConfigProperty {remoteNodeNetworks = newValue, ..}
instance Property "RemotePodNetworks" RemoteNetworkConfigProperty where
  type PropertyType "RemotePodNetworks" RemoteNetworkConfigProperty = [RemotePodNetworkProperty]
  set newValue RemoteNetworkConfigProperty {..}
    = RemoteNetworkConfigProperty
        {remotePodNetworks = Prelude.pure newValue, ..}