module Stratosphere.CodeBuild.Project.ProjectTriggersProperty ( module Exports, ProjectTriggersProperty(..), mkProjectTriggersProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.CodeBuild.Project.FilterGroupProperty as Exports import {-# SOURCE #-} Stratosphere.CodeBuild.Project.PullRequestBuildPolicyProperty as Exports import {-# SOURCE #-} Stratosphere.CodeBuild.Project.ScopeConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data ProjectTriggersProperty = -- | See: ProjectTriggersProperty {haddock_workaround_ :: (), -- | See: buildType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: filterGroups :: (Prelude.Maybe [FilterGroupProperty]), -- | See: pullRequestBuildPolicy :: (Prelude.Maybe PullRequestBuildPolicyProperty), -- | See: scopeConfiguration :: (Prelude.Maybe ScopeConfigurationProperty), -- | See: webhook :: (Prelude.Maybe (Value Prelude.Bool))} deriving stock (Prelude.Eq, Prelude.Show) mkProjectTriggersProperty :: ProjectTriggersProperty mkProjectTriggersProperty = ProjectTriggersProperty {haddock_workaround_ = (), buildType = Prelude.Nothing, filterGroups = Prelude.Nothing, pullRequestBuildPolicy = Prelude.Nothing, scopeConfiguration = Prelude.Nothing, webhook = Prelude.Nothing} instance ToResourceProperties ProjectTriggersProperty where toResourceProperties ProjectTriggersProperty {..} = ResourceProperties {awsType = "AWS::CodeBuild::Project.ProjectTriggers", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "BuildType" Prelude.<$> buildType, (JSON..=) "FilterGroups" Prelude.<$> filterGroups, (JSON..=) "PullRequestBuildPolicy" Prelude.<$> pullRequestBuildPolicy, (JSON..=) "ScopeConfiguration" Prelude.<$> scopeConfiguration, (JSON..=) "Webhook" Prelude.<$> webhook])} instance JSON.ToJSON ProjectTriggersProperty where toJSON ProjectTriggersProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "BuildType" Prelude.<$> buildType, (JSON..=) "FilterGroups" Prelude.<$> filterGroups, (JSON..=) "PullRequestBuildPolicy" Prelude.<$> pullRequestBuildPolicy, (JSON..=) "ScopeConfiguration" Prelude.<$> scopeConfiguration, (JSON..=) "Webhook" Prelude.<$> webhook])) instance Property "BuildType" ProjectTriggersProperty where type PropertyType "BuildType" ProjectTriggersProperty = Value Prelude.Text set newValue ProjectTriggersProperty {..} = ProjectTriggersProperty {buildType = Prelude.pure newValue, ..} instance Property "FilterGroups" ProjectTriggersProperty where type PropertyType "FilterGroups" ProjectTriggersProperty = [FilterGroupProperty] set newValue ProjectTriggersProperty {..} = ProjectTriggersProperty {filterGroups = Prelude.pure newValue, ..} instance Property "PullRequestBuildPolicy" ProjectTriggersProperty where type PropertyType "PullRequestBuildPolicy" ProjectTriggersProperty = PullRequestBuildPolicyProperty set newValue ProjectTriggersProperty {..} = ProjectTriggersProperty {pullRequestBuildPolicy = Prelude.pure newValue, ..} instance Property "ScopeConfiguration" ProjectTriggersProperty where type PropertyType "ScopeConfiguration" ProjectTriggersProperty = ScopeConfigurationProperty set newValue ProjectTriggersProperty {..} = ProjectTriggersProperty {scopeConfiguration = Prelude.pure newValue, ..} instance Property "Webhook" ProjectTriggersProperty where type PropertyType "Webhook" ProjectTriggersProperty = Value Prelude.Bool set newValue ProjectTriggersProperty {..} = ProjectTriggersProperty {webhook = Prelude.pure newValue, ..}