module Stratosphere.ObservabilityAdmin.TelemetryRule.TelemetryDestinationConfigurationProperty ( module Exports, TelemetryDestinationConfigurationProperty(..), mkTelemetryDestinationConfigurationProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.ObservabilityAdmin.TelemetryRule.VPCFlowLogParametersProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data TelemetryDestinationConfigurationProperty = -- | See: TelemetryDestinationConfigurationProperty {haddock_workaround_ :: (), -- | See: destinationPattern :: (Prelude.Maybe (Value Prelude.Text)), -- | See: destinationType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: retentionInDays :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: vPCFlowLogParameters :: (Prelude.Maybe VPCFlowLogParametersProperty)} deriving stock (Prelude.Eq, Prelude.Show) mkTelemetryDestinationConfigurationProperty :: TelemetryDestinationConfigurationProperty mkTelemetryDestinationConfigurationProperty = TelemetryDestinationConfigurationProperty {haddock_workaround_ = (), destinationPattern = Prelude.Nothing, destinationType = Prelude.Nothing, retentionInDays = Prelude.Nothing, vPCFlowLogParameters = Prelude.Nothing} instance ToResourceProperties TelemetryDestinationConfigurationProperty where toResourceProperties TelemetryDestinationConfigurationProperty {..} = ResourceProperties {awsType = "AWS::ObservabilityAdmin::TelemetryRule.TelemetryDestinationConfiguration", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "DestinationPattern" Prelude.<$> destinationPattern, (JSON..=) "DestinationType" Prelude.<$> destinationType, (JSON..=) "RetentionInDays" Prelude.<$> retentionInDays, (JSON..=) "VPCFlowLogParameters" Prelude.<$> vPCFlowLogParameters])} instance JSON.ToJSON TelemetryDestinationConfigurationProperty where toJSON TelemetryDestinationConfigurationProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "DestinationPattern" Prelude.<$> destinationPattern, (JSON..=) "DestinationType" Prelude.<$> destinationType, (JSON..=) "RetentionInDays" Prelude.<$> retentionInDays, (JSON..=) "VPCFlowLogParameters" Prelude.<$> vPCFlowLogParameters])) instance Property "DestinationPattern" TelemetryDestinationConfigurationProperty where type PropertyType "DestinationPattern" TelemetryDestinationConfigurationProperty = Value Prelude.Text set newValue TelemetryDestinationConfigurationProperty {..} = TelemetryDestinationConfigurationProperty {destinationPattern = Prelude.pure newValue, ..} instance Property "DestinationType" TelemetryDestinationConfigurationProperty where type PropertyType "DestinationType" TelemetryDestinationConfigurationProperty = Value Prelude.Text set newValue TelemetryDestinationConfigurationProperty {..} = TelemetryDestinationConfigurationProperty {destinationType = Prelude.pure newValue, ..} instance Property "RetentionInDays" TelemetryDestinationConfigurationProperty where type PropertyType "RetentionInDays" TelemetryDestinationConfigurationProperty = Value Prelude.Integer set newValue TelemetryDestinationConfigurationProperty {..} = TelemetryDestinationConfigurationProperty {retentionInDays = Prelude.pure newValue, ..} instance Property "VPCFlowLogParameters" TelemetryDestinationConfigurationProperty where type PropertyType "VPCFlowLogParameters" TelemetryDestinationConfigurationProperty = VPCFlowLogParametersProperty set newValue TelemetryDestinationConfigurationProperty {..} = TelemetryDestinationConfigurationProperty {vPCFlowLogParameters = Prelude.pure newValue, ..}