packages feed

stratosphere-codepipeline-1.0.0: gen/Stratosphere/CodePipeline/Webhook.hs

module Stratosphere.CodePipeline.Webhook (
        module Exports, Webhook(..), mkWebhook
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CodePipeline.Webhook.WebhookAuthConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.CodePipeline.Webhook.WebhookFilterRuleProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data Webhook
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html>
    Webhook {haddock_workaround_ :: (),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-authentication>
             authentication :: (Value Prelude.Text),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-authenticationconfiguration>
             authenticationConfiguration :: WebhookAuthConfigurationProperty,
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-filters>
             filters :: [WebhookFilterRuleProperty],
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-name>
             name :: (Prelude.Maybe (Value Prelude.Text)),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-registerwiththirdparty>
             registerWithThirdParty :: (Prelude.Maybe (Value Prelude.Bool)),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-targetaction>
             targetAction :: (Value Prelude.Text),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-targetpipeline>
             targetPipeline :: (Value Prelude.Text),
             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-targetpipelineversion>
             targetPipelineVersion :: (Prelude.Maybe (Value Prelude.Integer))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkWebhook ::
  Value Prelude.Text
  -> WebhookAuthConfigurationProperty
     -> [WebhookFilterRuleProperty]
        -> Value Prelude.Text -> Value Prelude.Text -> Webhook
mkWebhook
  authentication
  authenticationConfiguration
  filters
  targetAction
  targetPipeline
  = Webhook
      {haddock_workaround_ = (), authentication = authentication,
       authenticationConfiguration = authenticationConfiguration,
       filters = filters, targetAction = targetAction,
       targetPipeline = targetPipeline, name = Prelude.Nothing,
       registerWithThirdParty = Prelude.Nothing,
       targetPipelineVersion = Prelude.Nothing}
instance ToResourceProperties Webhook where
  toResourceProperties Webhook {..}
    = ResourceProperties
        {awsType = "AWS::CodePipeline::Webhook",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["Authentication" JSON..= authentication,
                            "AuthenticationConfiguration" JSON..= authenticationConfiguration,
                            "Filters" JSON..= filters, "TargetAction" JSON..= targetAction,
                            "TargetPipeline" JSON..= targetPipeline]
                           (Prelude.catMaybes
                              [(JSON..=) "Name" Prelude.<$> name,
                               (JSON..=) "RegisterWithThirdParty"
                                 Prelude.<$> registerWithThirdParty,
                               (JSON..=) "TargetPipelineVersion"
                                 Prelude.<$> targetPipelineVersion]))}
instance JSON.ToJSON Webhook where
  toJSON Webhook {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["Authentication" JSON..= authentication,
               "AuthenticationConfiguration" JSON..= authenticationConfiguration,
               "Filters" JSON..= filters, "TargetAction" JSON..= targetAction,
               "TargetPipeline" JSON..= targetPipeline]
              (Prelude.catMaybes
                 [(JSON..=) "Name" Prelude.<$> name,
                  (JSON..=) "RegisterWithThirdParty"
                    Prelude.<$> registerWithThirdParty,
                  (JSON..=) "TargetPipelineVersion"
                    Prelude.<$> targetPipelineVersion])))
instance Property "Authentication" Webhook where
  type PropertyType "Authentication" Webhook = Value Prelude.Text
  set newValue Webhook {..} = Webhook {authentication = newValue, ..}
instance Property "AuthenticationConfiguration" Webhook where
  type PropertyType "AuthenticationConfiguration" Webhook = WebhookAuthConfigurationProperty
  set newValue Webhook {..}
    = Webhook {authenticationConfiguration = newValue, ..}
instance Property "Filters" Webhook where
  type PropertyType "Filters" Webhook = [WebhookFilterRuleProperty]
  set newValue Webhook {..} = Webhook {filters = newValue, ..}
instance Property "Name" Webhook where
  type PropertyType "Name" Webhook = Value Prelude.Text
  set newValue Webhook {..}
    = Webhook {name = Prelude.pure newValue, ..}
instance Property "RegisterWithThirdParty" Webhook where
  type PropertyType "RegisterWithThirdParty" Webhook = Value Prelude.Bool
  set newValue Webhook {..}
    = Webhook {registerWithThirdParty = Prelude.pure newValue, ..}
instance Property "TargetAction" Webhook where
  type PropertyType "TargetAction" Webhook = Value Prelude.Text
  set newValue Webhook {..} = Webhook {targetAction = newValue, ..}
instance Property "TargetPipeline" Webhook where
  type PropertyType "TargetPipeline" Webhook = Value Prelude.Text
  set newValue Webhook {..} = Webhook {targetPipeline = newValue, ..}
instance Property "TargetPipelineVersion" Webhook where
  type PropertyType "TargetPipelineVersion" Webhook = Value Prelude.Integer
  set newValue Webhook {..}
    = Webhook {targetPipelineVersion = Prelude.pure newValue, ..}