packages feed

stratosphere-emrserverless-1.0.0: gen/Stratosphere/EMRServerless/Application/MonitoringConfigurationProperty.hs

module Stratosphere.EMRServerless.Application.MonitoringConfigurationProperty (
        module Exports, MonitoringConfigurationProperty(..),
        mkMonitoringConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.EMRServerless.Application.CloudWatchLoggingConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.EMRServerless.Application.ManagedPersistenceMonitoringConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.EMRServerless.Application.PrometheusMonitoringConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.EMRServerless.Application.S3MonitoringConfigurationProperty as Exports
import Stratosphere.ResourceProperties
data MonitoringConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html>
    MonitoringConfigurationProperty {haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-cloudwatchloggingconfiguration>
                                     cloudWatchLoggingConfiguration :: (Prelude.Maybe CloudWatchLoggingConfigurationProperty),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-managedpersistencemonitoringconfiguration>
                                     managedPersistenceMonitoringConfiguration :: (Prelude.Maybe ManagedPersistenceMonitoringConfigurationProperty),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-prometheusmonitoringconfiguration>
                                     prometheusMonitoringConfiguration :: (Prelude.Maybe PrometheusMonitoringConfigurationProperty),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrserverless-application-monitoringconfiguration.html#cfn-emrserverless-application-monitoringconfiguration-s3monitoringconfiguration>
                                     s3MonitoringConfiguration :: (Prelude.Maybe S3MonitoringConfigurationProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkMonitoringConfigurationProperty ::
  MonitoringConfigurationProperty
mkMonitoringConfigurationProperty
  = MonitoringConfigurationProperty
      {haddock_workaround_ = (),
       cloudWatchLoggingConfiguration = Prelude.Nothing,
       managedPersistenceMonitoringConfiguration = Prelude.Nothing,
       prometheusMonitoringConfiguration = Prelude.Nothing,
       s3MonitoringConfiguration = Prelude.Nothing}
instance ToResourceProperties MonitoringConfigurationProperty where
  toResourceProperties MonitoringConfigurationProperty {..}
    = ResourceProperties
        {awsType = "AWS::EMRServerless::Application.MonitoringConfiguration",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "CloudWatchLoggingConfiguration"
                              Prelude.<$> cloudWatchLoggingConfiguration,
                            (JSON..=) "ManagedPersistenceMonitoringConfiguration"
                              Prelude.<$> managedPersistenceMonitoringConfiguration,
                            (JSON..=) "PrometheusMonitoringConfiguration"
                              Prelude.<$> prometheusMonitoringConfiguration,
                            (JSON..=) "S3MonitoringConfiguration"
                              Prelude.<$> s3MonitoringConfiguration])}
instance JSON.ToJSON MonitoringConfigurationProperty where
  toJSON MonitoringConfigurationProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "CloudWatchLoggingConfiguration"
                 Prelude.<$> cloudWatchLoggingConfiguration,
               (JSON..=) "ManagedPersistenceMonitoringConfiguration"
                 Prelude.<$> managedPersistenceMonitoringConfiguration,
               (JSON..=) "PrometheusMonitoringConfiguration"
                 Prelude.<$> prometheusMonitoringConfiguration,
               (JSON..=) "S3MonitoringConfiguration"
                 Prelude.<$> s3MonitoringConfiguration]))
instance Property "CloudWatchLoggingConfiguration" MonitoringConfigurationProperty where
  type PropertyType "CloudWatchLoggingConfiguration" MonitoringConfigurationProperty = CloudWatchLoggingConfigurationProperty
  set newValue MonitoringConfigurationProperty {..}
    = MonitoringConfigurationProperty
        {cloudWatchLoggingConfiguration = Prelude.pure newValue, ..}
instance Property "ManagedPersistenceMonitoringConfiguration" MonitoringConfigurationProperty where
  type PropertyType "ManagedPersistenceMonitoringConfiguration" MonitoringConfigurationProperty = ManagedPersistenceMonitoringConfigurationProperty
  set newValue MonitoringConfigurationProperty {..}
    = MonitoringConfigurationProperty
        {managedPersistenceMonitoringConfiguration = Prelude.pure newValue,
         ..}
instance Property "PrometheusMonitoringConfiguration" MonitoringConfigurationProperty where
  type PropertyType "PrometheusMonitoringConfiguration" MonitoringConfigurationProperty = PrometheusMonitoringConfigurationProperty
  set newValue MonitoringConfigurationProperty {..}
    = MonitoringConfigurationProperty
        {prometheusMonitoringConfiguration = Prelude.pure newValue, ..}
instance Property "S3MonitoringConfiguration" MonitoringConfigurationProperty where
  type PropertyType "S3MonitoringConfiguration" MonitoringConfigurationProperty = S3MonitoringConfigurationProperty
  set newValue MonitoringConfigurationProperty {..}
    = MonitoringConfigurationProperty
        {s3MonitoringConfiguration = Prelude.pure newValue, ..}