module Stratosphere.EKS.Addon.PodIdentityAssociationProperty (
        PodIdentityAssociationProperty(..),
        mkPodIdentityAssociationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data PodIdentityAssociationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html>
    PodIdentityAssociationProperty {PodIdentityAssociationProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-rolearn>
                                    PodIdentityAssociationProperty -> Value Text
roleArn :: (Value Prelude.Text),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-serviceaccount>
                                    PodIdentityAssociationProperty -> Value Text
serviceAccount :: (Value Prelude.Text)}
  deriving stock (PodIdentityAssociationProperty
-> PodIdentityAssociationProperty -> Bool
(PodIdentityAssociationProperty
 -> PodIdentityAssociationProperty -> Bool)
-> (PodIdentityAssociationProperty
    -> PodIdentityAssociationProperty -> Bool)
-> Eq PodIdentityAssociationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PodIdentityAssociationProperty
-> PodIdentityAssociationProperty -> Bool
== :: PodIdentityAssociationProperty
-> PodIdentityAssociationProperty -> Bool
$c/= :: PodIdentityAssociationProperty
-> PodIdentityAssociationProperty -> Bool
/= :: PodIdentityAssociationProperty
-> PodIdentityAssociationProperty -> Bool
Prelude.Eq, Int -> PodIdentityAssociationProperty -> ShowS
[PodIdentityAssociationProperty] -> ShowS
PodIdentityAssociationProperty -> String
(Int -> PodIdentityAssociationProperty -> ShowS)
-> (PodIdentityAssociationProperty -> String)
-> ([PodIdentityAssociationProperty] -> ShowS)
-> Show PodIdentityAssociationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PodIdentityAssociationProperty -> ShowS
showsPrec :: Int -> PodIdentityAssociationProperty -> ShowS
$cshow :: PodIdentityAssociationProperty -> String
show :: PodIdentityAssociationProperty -> String
$cshowList :: [PodIdentityAssociationProperty] -> ShowS
showList :: [PodIdentityAssociationProperty] -> ShowS
Prelude.Show)
mkPodIdentityAssociationProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> PodIdentityAssociationProperty
mkPodIdentityAssociationProperty :: Value Text -> Value Text -> PodIdentityAssociationProperty
mkPodIdentityAssociationProperty Value Text
roleArn Value Text
serviceAccount
  = PodIdentityAssociationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), roleArn :: Value Text
roleArn = Value Text
roleArn,
       serviceAccount :: Value Text
serviceAccount = Value Text
serviceAccount}
instance ToResourceProperties PodIdentityAssociationProperty where
  toResourceProperties :: PodIdentityAssociationProperty -> ResourceProperties
toResourceProperties PodIdentityAssociationProperty {()
Value Text
haddock_workaround_ :: PodIdentityAssociationProperty -> ()
roleArn :: PodIdentityAssociationProperty -> Value Text
serviceAccount :: PodIdentityAssociationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceAccount :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EKS::Addon.PodIdentityAssociation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"RoleArn" 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
roleArn,
                       Key
"ServiceAccount" 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
serviceAccount]}
instance JSON.ToJSON PodIdentityAssociationProperty where
  toJSON :: PodIdentityAssociationProperty -> Value
toJSON PodIdentityAssociationProperty {()
Value Text
haddock_workaround_ :: PodIdentityAssociationProperty -> ()
roleArn :: PodIdentityAssociationProperty -> Value Text
serviceAccount :: PodIdentityAssociationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceAccount :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"RoleArn" 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
roleArn,
         Key
"ServiceAccount" 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
serviceAccount]
instance Property "RoleArn" PodIdentityAssociationProperty where
  type PropertyType "RoleArn" PodIdentityAssociationProperty = Value Prelude.Text
  set :: PropertyType "RoleArn" PodIdentityAssociationProperty
-> PodIdentityAssociationProperty -> PodIdentityAssociationProperty
set PropertyType "RoleArn" PodIdentityAssociationProperty
newValue PodIdentityAssociationProperty {()
Value Text
haddock_workaround_ :: PodIdentityAssociationProperty -> ()
roleArn :: PodIdentityAssociationProperty -> Value Text
serviceAccount :: PodIdentityAssociationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceAccount :: Value Text
..}
    = PodIdentityAssociationProperty {roleArn :: Value Text
roleArn = PropertyType "RoleArn" PodIdentityAssociationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
serviceAccount :: Value Text
haddock_workaround_ :: ()
serviceAccount :: Value Text
..}
instance Property "ServiceAccount" PodIdentityAssociationProperty where
  type PropertyType "ServiceAccount" PodIdentityAssociationProperty = Value Prelude.Text
  set :: PropertyType "ServiceAccount" PodIdentityAssociationProperty
-> PodIdentityAssociationProperty -> PodIdentityAssociationProperty
set PropertyType "ServiceAccount" PodIdentityAssociationProperty
newValue PodIdentityAssociationProperty {()
Value Text
haddock_workaround_ :: PodIdentityAssociationProperty -> ()
roleArn :: PodIdentityAssociationProperty -> Value Text
serviceAccount :: PodIdentityAssociationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceAccount :: Value Text
..}
    = PodIdentityAssociationProperty {serviceAccount :: Value Text
serviceAccount = PropertyType "ServiceAccount" PodIdentityAssociationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
..}