module Stratosphere.EKS.AccessEntry.AccessPolicyProperty (
        module Exports, AccessPolicyProperty(..), mkAccessPolicyProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.EKS.AccessEntry.AccessScopeProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AccessPolicyProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-accessentry-accesspolicy.html>
    AccessPolicyProperty {AccessPolicyProperty -> ()
haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-accessentry-accesspolicy.html#cfn-eks-accessentry-accesspolicy-accessscope>
                          AccessPolicyProperty -> AccessScopeProperty
accessScope :: AccessScopeProperty,
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-accessentry-accesspolicy.html#cfn-eks-accessentry-accesspolicy-policyarn>
                          AccessPolicyProperty -> Value Text
policyArn :: (Value Prelude.Text)}
  deriving stock (AccessPolicyProperty -> AccessPolicyProperty -> Bool
(AccessPolicyProperty -> AccessPolicyProperty -> Bool)
-> (AccessPolicyProperty -> AccessPolicyProperty -> Bool)
-> Eq AccessPolicyProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccessPolicyProperty -> AccessPolicyProperty -> Bool
== :: AccessPolicyProperty -> AccessPolicyProperty -> Bool
$c/= :: AccessPolicyProperty -> AccessPolicyProperty -> Bool
/= :: AccessPolicyProperty -> AccessPolicyProperty -> Bool
Prelude.Eq, Int -> AccessPolicyProperty -> ShowS
[AccessPolicyProperty] -> ShowS
AccessPolicyProperty -> String
(Int -> AccessPolicyProperty -> ShowS)
-> (AccessPolicyProperty -> String)
-> ([AccessPolicyProperty] -> ShowS)
-> Show AccessPolicyProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccessPolicyProperty -> ShowS
showsPrec :: Int -> AccessPolicyProperty -> ShowS
$cshow :: AccessPolicyProperty -> String
show :: AccessPolicyProperty -> String
$cshowList :: [AccessPolicyProperty] -> ShowS
showList :: [AccessPolicyProperty] -> ShowS
Prelude.Show)
mkAccessPolicyProperty ::
  AccessScopeProperty -> Value Prelude.Text -> AccessPolicyProperty
mkAccessPolicyProperty :: AccessScopeProperty -> Value Text -> AccessPolicyProperty
mkAccessPolicyProperty AccessScopeProperty
accessScope Value Text
policyArn
  = AccessPolicyProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), accessScope :: AccessScopeProperty
accessScope = AccessScopeProperty
accessScope,
       policyArn :: Value Text
policyArn = Value Text
policyArn}
instance ToResourceProperties AccessPolicyProperty where
  toResourceProperties :: AccessPolicyProperty -> ResourceProperties
toResourceProperties AccessPolicyProperty {()
Value Text
AccessScopeProperty
haddock_workaround_ :: AccessPolicyProperty -> ()
accessScope :: AccessPolicyProperty -> AccessScopeProperty
policyArn :: AccessPolicyProperty -> Value Text
haddock_workaround_ :: ()
accessScope :: AccessScopeProperty
policyArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EKS::AccessEntry.AccessPolicy",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AccessScope" Key -> AccessScopeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessScopeProperty
accessScope,
                       Key
"PolicyArn" 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
policyArn]}
instance JSON.ToJSON AccessPolicyProperty where
  toJSON :: AccessPolicyProperty -> Value
toJSON AccessPolicyProperty {()
Value Text
AccessScopeProperty
haddock_workaround_ :: AccessPolicyProperty -> ()
accessScope :: AccessPolicyProperty -> AccessScopeProperty
policyArn :: AccessPolicyProperty -> Value Text
haddock_workaround_ :: ()
accessScope :: AccessScopeProperty
policyArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AccessScope" Key -> AccessScopeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessScopeProperty
accessScope, Key
"PolicyArn" 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
policyArn]
instance Property "AccessScope" AccessPolicyProperty where
  type PropertyType "AccessScope" AccessPolicyProperty = AccessScopeProperty
  set :: PropertyType "AccessScope" AccessPolicyProperty
-> AccessPolicyProperty -> AccessPolicyProperty
set PropertyType "AccessScope" AccessPolicyProperty
newValue AccessPolicyProperty {()
Value Text
AccessScopeProperty
haddock_workaround_ :: AccessPolicyProperty -> ()
accessScope :: AccessPolicyProperty -> AccessScopeProperty
policyArn :: AccessPolicyProperty -> Value Text
haddock_workaround_ :: ()
accessScope :: AccessScopeProperty
policyArn :: Value Text
..}
    = AccessPolicyProperty {accessScope :: AccessScopeProperty
accessScope = PropertyType "AccessScope" AccessPolicyProperty
AccessScopeProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
policyArn :: Value Text
haddock_workaround_ :: ()
policyArn :: Value Text
..}
instance Property "PolicyArn" AccessPolicyProperty where
  type PropertyType "PolicyArn" AccessPolicyProperty = Value Prelude.Text
  set :: PropertyType "PolicyArn" AccessPolicyProperty
-> AccessPolicyProperty -> AccessPolicyProperty
set PropertyType "PolicyArn" AccessPolicyProperty
newValue AccessPolicyProperty {()
Value Text
AccessScopeProperty
haddock_workaround_ :: AccessPolicyProperty -> ()
accessScope :: AccessPolicyProperty -> AccessScopeProperty
policyArn :: AccessPolicyProperty -> Value Text
haddock_workaround_ :: ()
accessScope :: AccessScopeProperty
policyArn :: Value Text
..}
    = AccessPolicyProperty {policyArn :: Value Text
policyArn = PropertyType "PolicyArn" AccessPolicyProperty
Value Text
newValue, ()
AccessScopeProperty
haddock_workaround_ :: ()
accessScope :: AccessScopeProperty
haddock_workaround_ :: ()
accessScope :: AccessScopeProperty
..}