content: module Stratosphere.SecurityLake.SubscriberNotification.HttpsNotificationConfigurationProperty (
          HttpsNotificationConfigurationProperty(..),
          mkHttpsNotificationConfigurationProperty
      ) where
  import qualified Data.Aeson as JSON
  import qualified Stratosphere.Prelude as Prelude
  import Stratosphere.Property
  import Stratosphere.ResourceProperties
  import Stratosphere.Value
  data HttpsNotificationConfigurationProperty
    = HttpsNotificationConfigurationProperty {authorizationApiKeyName :: (Prelude.Maybe (Value Prelude.Text)),
                                              authorizationApiKeyValue :: (Prelude.Maybe (Value Prelude.Text)),
                                              endpoint :: (Value Prelude.Text),
                                              httpMethod :: (Prelude.Maybe (Value Prelude.Text)),
                                              targetRoleArn :: (Value Prelude.Text)}
    deriving stock (Prelude.Eq, Prelude.Show)
  mkHttpsNotificationConfigurationProperty ::
    Value Prelude.Text
    -> Value Prelude.Text -> HttpsNotificationConfigurationProperty
  mkHttpsNotificationConfigurationProperty endpoint targetRoleArn
    = HttpsNotificationConfigurationProperty
        {endpoint = endpoint, targetRoleArn = targetRoleArn,
         authorizationApiKeyName = Prelude.Nothing,
         authorizationApiKeyValue = Prelude.Nothing,
         httpMethod = Prelude.Nothing}
  instance ToResourceProperties HttpsNotificationConfigurationProperty where
    toResourceProperties HttpsNotificationConfigurationProperty {..}
      = ResourceProperties
          {awsType = "AWS::SecurityLake::SubscriberNotification.HttpsNotificationConfiguration",
           supportsTags = Prelude.False,
           properties = Prelude.fromList
                          ((Prelude.<>)
                             ["Endpoint" JSON..= endpoint,
                              "TargetRoleArn" JSON..= targetRoleArn]
                             (Prelude.catMaybes
                                [(JSON..=) "AuthorizationApiKeyName"
                                   Prelude.<$> authorizationApiKeyName,
                                 (JSON..=) "AuthorizationApiKeyValue"
                                   Prelude.<$> authorizationApiKeyValue,
                                 (JSON..=) "HttpMethod" Prelude.<$> httpMethod]))}
  instance JSON.ToJSON HttpsNotificationConfigurationProperty where
    toJSON HttpsNotificationConfigurationProperty {..}
      = JSON.object
          (Prelude.fromList
             ((Prelude.<>)
                ["Endpoint" JSON..= endpoint,
                 "TargetRoleArn" JSON..= targetRoleArn]
                (Prelude.catMaybes
                   [(JSON..=) "AuthorizationApiKeyName"
                      Prelude.<$> authorizationApiKeyName,
                    (JSON..=) "AuthorizationApiKeyValue"
                      Prelude.<$> authorizationApiKeyValue,
                    (JSON..=) "HttpMethod" Prelude.<$> httpMethod])))
  instance Property "AuthorizationApiKeyName" HttpsNotificationConfigurationProperty where
    type PropertyType "AuthorizationApiKeyName" HttpsNotificationConfigurationProperty = Value Prelude.Text
    set newValue HttpsNotificationConfigurationProperty {..}
      = HttpsNotificationConfigurationProperty
          {authorizationApiKeyName = Prelude.pure newValue, ..}
  instance Property "AuthorizationApiKeyValue" HttpsNotificationConfigurationProperty where
    type PropertyType "AuthorizationApiKeyValue" HttpsNotificationConfigurationProperty = Value Prelude.Text
    set newValue HttpsNotificationConfigurationProperty {..}
      = HttpsNotificationConfigurationProperty
          {authorizationApiKeyValue = Prelude.pure newValue, ..}
  instance Property "Endpoint" HttpsNotificationConfigurationProperty where
    type PropertyType "Endpoint" HttpsNotificationConfigurationProperty = Value Prelude.Text
    set newValue HttpsNotificationConfigurationProperty {..}
      = HttpsNotificationConfigurationProperty {endpoint = newValue, ..}
  instance Property "HttpMethod" HttpsNotificationConfigurationProperty where
    type PropertyType "HttpMethod" HttpsNotificationConfigurationProperty = Value Prelude.Text
    set newValue HttpsNotificationConfigurationProperty {..}
      = HttpsNotificationConfigurationProperty
          {httpMethod = Prelude.pure newValue, ..}
  instance Property "TargetRoleArn" HttpsNotificationConfigurationProperty where
    type PropertyType "TargetRoleArn" HttpsNotificationConfigurationProperty = Value Prelude.Text
    set newValue HttpsNotificationConfigurationProperty {..}
      = HttpsNotificationConfigurationProperty
          {targetRoleArn = newValue, ..}