{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.CodeBuild.Types.Webhook where
import Amazonka.CodeBuild.Types.WebhookBuildType
import Amazonka.CodeBuild.Types.WebhookFilter
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data Webhook = Webhook'
{
Webhook -> Maybe Text
branchFilter :: Prelude.Maybe Prelude.Text,
Webhook -> Maybe WebhookBuildType
buildType :: Prelude.Maybe WebhookBuildType,
Webhook -> Maybe [[WebhookFilter]]
filterGroups :: Prelude.Maybe [[WebhookFilter]],
Webhook -> Maybe POSIX
lastModifiedSecret :: Prelude.Maybe Data.POSIX,
Webhook -> Maybe Text
payloadUrl :: Prelude.Maybe Prelude.Text,
Webhook -> Maybe Text
secret :: Prelude.Maybe Prelude.Text,
Webhook -> Maybe Text
url :: Prelude.Maybe Prelude.Text
}
deriving (Webhook -> Webhook -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Webhook -> Webhook -> Bool
$c/= :: Webhook -> Webhook -> Bool
== :: Webhook -> Webhook -> Bool
$c== :: Webhook -> Webhook -> Bool
Prelude.Eq, ReadPrec [Webhook]
ReadPrec Webhook
Int -> ReadS Webhook
ReadS [Webhook]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Webhook]
$creadListPrec :: ReadPrec [Webhook]
readPrec :: ReadPrec Webhook
$creadPrec :: ReadPrec Webhook
readList :: ReadS [Webhook]
$creadList :: ReadS [Webhook]
readsPrec :: Int -> ReadS Webhook
$creadsPrec :: Int -> ReadS Webhook
Prelude.Read, Int -> Webhook -> ShowS
[Webhook] -> ShowS
Webhook -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Webhook] -> ShowS
$cshowList :: [Webhook] -> ShowS
show :: Webhook -> String
$cshow :: Webhook -> String
showsPrec :: Int -> Webhook -> ShowS
$cshowsPrec :: Int -> Webhook -> ShowS
Prelude.Show, forall x. Rep Webhook x -> Webhook
forall x. Webhook -> Rep Webhook x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Webhook x -> Webhook
$cfrom :: forall x. Webhook -> Rep Webhook x
Prelude.Generic)
newWebhook ::
Webhook
newWebhook :: Webhook
newWebhook =
Webhook'
{ $sel:branchFilter:Webhook' :: Maybe Text
branchFilter = forall a. Maybe a
Prelude.Nothing,
$sel:buildType:Webhook' :: Maybe WebhookBuildType
buildType = forall a. Maybe a
Prelude.Nothing,
$sel:filterGroups:Webhook' :: Maybe [[WebhookFilter]]
filterGroups = forall a. Maybe a
Prelude.Nothing,
$sel:lastModifiedSecret:Webhook' :: Maybe POSIX
lastModifiedSecret = forall a. Maybe a
Prelude.Nothing,
$sel:payloadUrl:Webhook' :: Maybe Text
payloadUrl = forall a. Maybe a
Prelude.Nothing,
$sel:secret:Webhook' :: Maybe Text
secret = forall a. Maybe a
Prelude.Nothing,
$sel:url:Webhook' :: Maybe Text
url = forall a. Maybe a
Prelude.Nothing
}
webhook_branchFilter :: Lens.Lens' Webhook (Prelude.Maybe Prelude.Text)
webhook_branchFilter :: Lens' Webhook (Maybe Text)
webhook_branchFilter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Webhook' {Maybe Text
branchFilter :: Maybe Text
$sel:branchFilter:Webhook' :: Webhook -> Maybe Text
branchFilter} -> Maybe Text
branchFilter) (\s :: Webhook
s@Webhook' {} Maybe Text
a -> Webhook
s {$sel:branchFilter:Webhook' :: Maybe Text
branchFilter = Maybe Text
a} :: Webhook)
webhook_buildType :: Lens.Lens' Webhook (Prelude.Maybe WebhookBuildType)
webhook_buildType :: Lens' Webhook (Maybe WebhookBuildType)
webhook_buildType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Webhook' {Maybe WebhookBuildType
buildType :: Maybe WebhookBuildType
$sel:buildType:Webhook' :: Webhook -> Maybe WebhookBuildType
buildType} -> Maybe WebhookBuildType
buildType) (\s :: Webhook
s@Webhook' {} Maybe WebhookBuildType
a -> Webhook
s {$sel:buildType:Webhook' :: Maybe WebhookBuildType
buildType = Maybe WebhookBuildType
a} :: Webhook)
webhook_filterGroups :: Lens.Lens' Webhook (Prelude.Maybe [[WebhookFilter]])
webhook_filterGroups :: Lens' Webhook (Maybe [[WebhookFilter]])
webhook_filterGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Webhook' {Maybe [[WebhookFilter]]
filterGroups :: Maybe [[WebhookFilter]]
$sel:filterGroups:Webhook' :: Webhook -> Maybe [[WebhookFilter]]
filterGroups} -> Maybe [[WebhookFilter]]
filterGroups) (\s :: Webhook
s@Webhook' {} Maybe [[WebhookFilter]]
a -> Webhook
s {$sel:filterGroups:Webhook' :: Maybe [[WebhookFilter]]
filterGroups = Maybe [[WebhookFilter]]
a} :: Webhook) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
webhook_lastModifiedSecret :: Lens.Lens' Webhook (Prelude.Maybe Prelude.UTCTime)
webhook_lastModifiedSecret :: Lens' Webhook (Maybe UTCTime)
webhook_lastModifiedSecret = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Webhook' {Maybe POSIX
lastModifiedSecret :: Maybe POSIX
$sel:lastModifiedSecret:Webhook' :: Webhook -> Maybe POSIX
lastModifiedSecret} -> Maybe POSIX
lastModifiedSecret) (\s :: Webhook
s@Webhook' {} Maybe POSIX
a -> Webhook
s {$sel:lastModifiedSecret:Webhook' :: Maybe POSIX
lastModifiedSecret = Maybe POSIX
a} :: Webhook) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
webhook_payloadUrl :: Lens.Lens' Webhook (Prelude.Maybe Prelude.Text)
webhook_payloadUrl :: Lens' Webhook (Maybe Text)
webhook_payloadUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Webhook' {Maybe Text
payloadUrl :: Maybe Text
$sel:payloadUrl:Webhook' :: Webhook -> Maybe Text
payloadUrl} -> Maybe Text
payloadUrl) (\s :: Webhook
s@Webhook' {} Maybe Text
a -> Webhook
s {$sel:payloadUrl:Webhook' :: Maybe Text
payloadUrl = Maybe Text
a} :: Webhook)
webhook_secret :: Lens.Lens' Webhook (Prelude.Maybe Prelude.Text)
webhook_secret :: Lens' Webhook (Maybe Text)
webhook_secret = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Webhook' {Maybe Text
secret :: Maybe Text
$sel:secret:Webhook' :: Webhook -> Maybe Text
secret} -> Maybe Text
secret) (\s :: Webhook
s@Webhook' {} Maybe Text
a -> Webhook
s {$sel:secret:Webhook' :: Maybe Text
secret = Maybe Text
a} :: Webhook)
webhook_url :: Lens.Lens' Webhook (Prelude.Maybe Prelude.Text)
webhook_url :: Lens' Webhook (Maybe Text)
webhook_url = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Webhook' {Maybe Text
url :: Maybe Text
$sel:url:Webhook' :: Webhook -> Maybe Text
url} -> Maybe Text
url) (\s :: Webhook
s@Webhook' {} Maybe Text
a -> Webhook
s {$sel:url:Webhook' :: Maybe Text
url = Maybe Text
a} :: Webhook)
instance Data.FromJSON Webhook where
parseJSON :: Value -> Parser Webhook
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Webhook"
( \Object
x ->
Maybe Text
-> Maybe WebhookBuildType
-> Maybe [[WebhookFilter]]
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Webhook
Webhook'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"branchFilter")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"buildType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"filterGroups" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lastModifiedSecret")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"payloadUrl")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"secret")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"url")
)
instance Prelude.Hashable Webhook where
hashWithSalt :: Int -> Webhook -> Int
hashWithSalt Int
_salt Webhook' {Maybe [[WebhookFilter]]
Maybe Text
Maybe POSIX
Maybe WebhookBuildType
url :: Maybe Text
secret :: Maybe Text
payloadUrl :: Maybe Text
lastModifiedSecret :: Maybe POSIX
filterGroups :: Maybe [[WebhookFilter]]
buildType :: Maybe WebhookBuildType
branchFilter :: Maybe Text
$sel:url:Webhook' :: Webhook -> Maybe Text
$sel:secret:Webhook' :: Webhook -> Maybe Text
$sel:payloadUrl:Webhook' :: Webhook -> Maybe Text
$sel:lastModifiedSecret:Webhook' :: Webhook -> Maybe POSIX
$sel:filterGroups:Webhook' :: Webhook -> Maybe [[WebhookFilter]]
$sel:buildType:Webhook' :: Webhook -> Maybe WebhookBuildType
$sel:branchFilter:Webhook' :: Webhook -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
branchFilter
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WebhookBuildType
buildType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [[WebhookFilter]]
filterGroups
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedSecret
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
payloadUrl
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
secret
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
url
instance Prelude.NFData Webhook where
rnf :: Webhook -> ()
rnf Webhook' {Maybe [[WebhookFilter]]
Maybe Text
Maybe POSIX
Maybe WebhookBuildType
url :: Maybe Text
secret :: Maybe Text
payloadUrl :: Maybe Text
lastModifiedSecret :: Maybe POSIX
filterGroups :: Maybe [[WebhookFilter]]
buildType :: Maybe WebhookBuildType
branchFilter :: Maybe Text
$sel:url:Webhook' :: Webhook -> Maybe Text
$sel:secret:Webhook' :: Webhook -> Maybe Text
$sel:payloadUrl:Webhook' :: Webhook -> Maybe Text
$sel:lastModifiedSecret:Webhook' :: Webhook -> Maybe POSIX
$sel:filterGroups:Webhook' :: Webhook -> Maybe [[WebhookFilter]]
$sel:buildType:Webhook' :: Webhook -> Maybe WebhookBuildType
$sel:branchFilter:Webhook' :: Webhook -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
branchFilter
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WebhookBuildType
buildType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [[WebhookFilter]]
filterGroups
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedSecret
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
payloadUrl
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
secret
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
url