module Stratosphere.EKS.FargateProfile.SelectorProperty (
        module Exports, SelectorProperty(..), mkSelectorProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.EKS.FargateProfile.LabelProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SelectorProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html>
    SelectorProperty {SelectorProperty -> ()
haddock_workaround_ :: (),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html#cfn-eks-fargateprofile-selector-labels>
                      SelectorProperty -> Maybe [LabelProperty]
labels :: (Prelude.Maybe [LabelProperty]),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html#cfn-eks-fargateprofile-selector-namespace>
                      SelectorProperty -> Value Text
namespace :: (Value Prelude.Text)}
  deriving stock (SelectorProperty -> SelectorProperty -> Bool
(SelectorProperty -> SelectorProperty -> Bool)
-> (SelectorProperty -> SelectorProperty -> Bool)
-> Eq SelectorProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SelectorProperty -> SelectorProperty -> Bool
== :: SelectorProperty -> SelectorProperty -> Bool
$c/= :: SelectorProperty -> SelectorProperty -> Bool
/= :: SelectorProperty -> SelectorProperty -> Bool
Prelude.Eq, Int -> SelectorProperty -> ShowS
[SelectorProperty] -> ShowS
SelectorProperty -> String
(Int -> SelectorProperty -> ShowS)
-> (SelectorProperty -> String)
-> ([SelectorProperty] -> ShowS)
-> Show SelectorProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SelectorProperty -> ShowS
showsPrec :: Int -> SelectorProperty -> ShowS
$cshow :: SelectorProperty -> String
show :: SelectorProperty -> String
$cshowList :: [SelectorProperty] -> ShowS
showList :: [SelectorProperty] -> ShowS
Prelude.Show)
mkSelectorProperty :: Value Prelude.Text -> SelectorProperty
mkSelectorProperty :: Value Text -> SelectorProperty
mkSelectorProperty Value Text
namespace
  = SelectorProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), namespace :: Value Text
namespace = Value Text
namespace,
       labels :: Maybe [LabelProperty]
labels = Maybe [LabelProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties SelectorProperty where
  toResourceProperties :: SelectorProperty -> ResourceProperties
toResourceProperties SelectorProperty {Maybe [LabelProperty]
()
Value Text
haddock_workaround_ :: SelectorProperty -> ()
labels :: SelectorProperty -> Maybe [LabelProperty]
namespace :: SelectorProperty -> Value Text
haddock_workaround_ :: ()
labels :: Maybe [LabelProperty]
namespace :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EKS::FargateProfile.Selector",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"Namespace" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
namespace]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes [Key -> [LabelProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Labels" ([LabelProperty] -> (Key, Value))
-> Maybe [LabelProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [LabelProperty]
labels]))}
instance JSON.ToJSON SelectorProperty where
  toJSON :: SelectorProperty -> Value
toJSON SelectorProperty {Maybe [LabelProperty]
()
Value Text
haddock_workaround_ :: SelectorProperty -> ()
labels :: SelectorProperty -> Maybe [LabelProperty]
namespace :: SelectorProperty -> Value Text
haddock_workaround_ :: ()
labels :: Maybe [LabelProperty]
namespace :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"Namespace" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
namespace]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes [Key -> [LabelProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Labels" ([LabelProperty] -> (Key, Value))
-> Maybe [LabelProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [LabelProperty]
labels])))
instance Property "Labels" SelectorProperty where
  type PropertyType "Labels" SelectorProperty = [LabelProperty]
  set :: PropertyType "Labels" SelectorProperty
-> SelectorProperty -> SelectorProperty
set PropertyType "Labels" SelectorProperty
newValue SelectorProperty {Maybe [LabelProperty]
()
Value Text
haddock_workaround_ :: SelectorProperty -> ()
labels :: SelectorProperty -> Maybe [LabelProperty]
namespace :: SelectorProperty -> Value Text
haddock_workaround_ :: ()
labels :: Maybe [LabelProperty]
namespace :: Value Text
..}
    = SelectorProperty {labels :: Maybe [LabelProperty]
labels = [LabelProperty] -> Maybe [LabelProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [LabelProperty]
PropertyType "Labels" SelectorProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
namespace :: Value Text
haddock_workaround_ :: ()
namespace :: Value Text
..}
instance Property "Namespace" SelectorProperty where
  type PropertyType "Namespace" SelectorProperty = Value Prelude.Text
  set :: PropertyType "Namespace" SelectorProperty
-> SelectorProperty -> SelectorProperty
set PropertyType "Namespace" SelectorProperty
newValue SelectorProperty {Maybe [LabelProperty]
()
Value Text
haddock_workaround_ :: SelectorProperty -> ()
labels :: SelectorProperty -> Maybe [LabelProperty]
namespace :: SelectorProperty -> Value Text
haddock_workaround_ :: ()
labels :: Maybe [LabelProperty]
namespace :: Value Text
..}
    = SelectorProperty {namespace :: Value Text
namespace = PropertyType "Namespace" SelectorProperty
Value Text
newValue, Maybe [LabelProperty]
()
haddock_workaround_ :: ()
labels :: Maybe [LabelProperty]
haddock_workaround_ :: ()
labels :: Maybe [LabelProperty]
..}