module Stratosphere.ElasticLoadBalancingV2.ListenerCertificate (
        module Exports, ListenerCertificate(..), mkListenerCertificate
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ElasticLoadBalancingV2.ListenerCertificate.CertificateProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ListenerCertificate
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html>
    ListenerCertificate {ListenerCertificate -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-certificates>
                         ListenerCertificate -> [CertificateProperty]
certificates :: [CertificateProperty],
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-listenerarn>
                         ListenerCertificate -> Value Text
listenerArn :: (Value Prelude.Text)}
  deriving stock (ListenerCertificate -> ListenerCertificate -> Bool
(ListenerCertificate -> ListenerCertificate -> Bool)
-> (ListenerCertificate -> ListenerCertificate -> Bool)
-> Eq ListenerCertificate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListenerCertificate -> ListenerCertificate -> Bool
== :: ListenerCertificate -> ListenerCertificate -> Bool
$c/= :: ListenerCertificate -> ListenerCertificate -> Bool
/= :: ListenerCertificate -> ListenerCertificate -> Bool
Prelude.Eq, Int -> ListenerCertificate -> ShowS
[ListenerCertificate] -> ShowS
ListenerCertificate -> String
(Int -> ListenerCertificate -> ShowS)
-> (ListenerCertificate -> String)
-> ([ListenerCertificate] -> ShowS)
-> Show ListenerCertificate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListenerCertificate -> ShowS
showsPrec :: Int -> ListenerCertificate -> ShowS
$cshow :: ListenerCertificate -> String
show :: ListenerCertificate -> String
$cshowList :: [ListenerCertificate] -> ShowS
showList :: [ListenerCertificate] -> ShowS
Prelude.Show)
mkListenerCertificate ::
  [CertificateProperty] -> Value Prelude.Text -> ListenerCertificate
mkListenerCertificate :: [CertificateProperty] -> Value Text -> ListenerCertificate
mkListenerCertificate [CertificateProperty]
certificates Value Text
listenerArn
  = ListenerCertificate
      {haddock_workaround_ :: ()
haddock_workaround_ = (), certificates :: [CertificateProperty]
certificates = [CertificateProperty]
certificates,
       listenerArn :: Value Text
listenerArn = Value Text
listenerArn}
instance ToResourceProperties ListenerCertificate where
  toResourceProperties :: ListenerCertificate -> ResourceProperties
toResourceProperties ListenerCertificate {[CertificateProperty]
()
Value Text
haddock_workaround_ :: ListenerCertificate -> ()
certificates :: ListenerCertificate -> [CertificateProperty]
listenerArn :: ListenerCertificate -> Value Text
haddock_workaround_ :: ()
certificates :: [CertificateProperty]
listenerArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ElasticLoadBalancingV2::ListenerCertificate",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Certificates" Key -> [CertificateProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [CertificateProperty]
certificates,
                       Key
"ListenerArn" 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
listenerArn]}
instance JSON.ToJSON ListenerCertificate where
  toJSON :: ListenerCertificate -> Value
toJSON ListenerCertificate {[CertificateProperty]
()
Value Text
haddock_workaround_ :: ListenerCertificate -> ()
certificates :: ListenerCertificate -> [CertificateProperty]
listenerArn :: ListenerCertificate -> Value Text
haddock_workaround_ :: ()
certificates :: [CertificateProperty]
listenerArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Certificates" Key -> [CertificateProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [CertificateProperty]
certificates,
         Key
"ListenerArn" 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
listenerArn]
instance Property "Certificates" ListenerCertificate where
  type PropertyType "Certificates" ListenerCertificate = [CertificateProperty]
  set :: PropertyType "Certificates" ListenerCertificate
-> ListenerCertificate -> ListenerCertificate
set PropertyType "Certificates" ListenerCertificate
newValue ListenerCertificate {[CertificateProperty]
()
Value Text
haddock_workaround_ :: ListenerCertificate -> ()
certificates :: ListenerCertificate -> [CertificateProperty]
listenerArn :: ListenerCertificate -> Value Text
haddock_workaround_ :: ()
certificates :: [CertificateProperty]
listenerArn :: Value Text
..}
    = ListenerCertificate {certificates :: [CertificateProperty]
certificates = [CertificateProperty]
PropertyType "Certificates" ListenerCertificate
newValue, ()
Value Text
haddock_workaround_ :: ()
listenerArn :: Value Text
haddock_workaround_ :: ()
listenerArn :: Value Text
..}
instance Property "ListenerArn" ListenerCertificate where
  type PropertyType "ListenerArn" ListenerCertificate = Value Prelude.Text
  set :: PropertyType "ListenerArn" ListenerCertificate
-> ListenerCertificate -> ListenerCertificate
set PropertyType "ListenerArn" ListenerCertificate
newValue ListenerCertificate {[CertificateProperty]
()
Value Text
haddock_workaround_ :: ListenerCertificate -> ()
certificates :: ListenerCertificate -> [CertificateProperty]
listenerArn :: ListenerCertificate -> Value Text
haddock_workaround_ :: ()
certificates :: [CertificateProperty]
listenerArn :: Value Text
..}
    = ListenerCertificate {listenerArn :: Value Text
listenerArn = PropertyType "ListenerArn" ListenerCertificate
Value Text
newValue, [CertificateProperty]
()
haddock_workaround_ :: ()
certificates :: [CertificateProperty]
haddock_workaround_ :: ()
certificates :: [CertificateProperty]
..}