module Stratosphere.ObservabilityAdmin.OrganizationCentralizationRule.CentralizationRuleSourceProperty ( module Exports, CentralizationRuleSourceProperty(..), mkCentralizationRuleSourceProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.ObservabilityAdmin.OrganizationCentralizationRule.SourceLogsConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data CentralizationRuleSourceProperty = -- | See: CentralizationRuleSourceProperty {haddock_workaround_ :: (), -- | See: regions :: (ValueList Prelude.Text), -- | See: scope :: (Prelude.Maybe (Value Prelude.Text)), -- | See: sourceLogsConfiguration :: (Prelude.Maybe SourceLogsConfigurationProperty)} deriving stock (Prelude.Eq, Prelude.Show) mkCentralizationRuleSourceProperty :: ValueList Prelude.Text -> CentralizationRuleSourceProperty mkCentralizationRuleSourceProperty regions = CentralizationRuleSourceProperty {haddock_workaround_ = (), regions = regions, scope = Prelude.Nothing, sourceLogsConfiguration = Prelude.Nothing} instance ToResourceProperties CentralizationRuleSourceProperty where toResourceProperties CentralizationRuleSourceProperty {..} = ResourceProperties {awsType = "AWS::ObservabilityAdmin::OrganizationCentralizationRule.CentralizationRuleSource", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["Regions" JSON..= regions] (Prelude.catMaybes [(JSON..=) "Scope" Prelude.<$> scope, (JSON..=) "SourceLogsConfiguration" Prelude.<$> sourceLogsConfiguration]))} instance JSON.ToJSON CentralizationRuleSourceProperty where toJSON CentralizationRuleSourceProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["Regions" JSON..= regions] (Prelude.catMaybes [(JSON..=) "Scope" Prelude.<$> scope, (JSON..=) "SourceLogsConfiguration" Prelude.<$> sourceLogsConfiguration]))) instance Property "Regions" CentralizationRuleSourceProperty where type PropertyType "Regions" CentralizationRuleSourceProperty = ValueList Prelude.Text set newValue CentralizationRuleSourceProperty {..} = CentralizationRuleSourceProperty {regions = newValue, ..} instance Property "Scope" CentralizationRuleSourceProperty where type PropertyType "Scope" CentralizationRuleSourceProperty = Value Prelude.Text set newValue CentralizationRuleSourceProperty {..} = CentralizationRuleSourceProperty {scope = Prelude.pure newValue, ..} instance Property "SourceLogsConfiguration" CentralizationRuleSourceProperty where type PropertyType "SourceLogsConfiguration" CentralizationRuleSourceProperty = SourceLogsConfigurationProperty set newValue CentralizationRuleSourceProperty {..} = CentralizationRuleSourceProperty {sourceLogsConfiguration = Prelude.pure newValue, ..}