module Stratosphere.Logs.QueryDefinition ( QueryDefinition(..), mkQueryDefinition ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import Stratosphere.ResourceProperties import Stratosphere.Value data QueryDefinition = -- | See: QueryDefinition {haddock_workaround_ :: (), -- | See: logGroupNames :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: name :: (Value Prelude.Text), -- | See: queryLanguage :: (Prelude.Maybe (Value Prelude.Text)), -- | See: queryString :: (Value Prelude.Text)} deriving stock (Prelude.Eq, Prelude.Show) mkQueryDefinition :: Value Prelude.Text -> Value Prelude.Text -> QueryDefinition mkQueryDefinition name queryString = QueryDefinition {haddock_workaround_ = (), name = name, queryString = queryString, logGroupNames = Prelude.Nothing, queryLanguage = Prelude.Nothing} instance ToResourceProperties QueryDefinition where toResourceProperties QueryDefinition {..} = ResourceProperties {awsType = "AWS::Logs::QueryDefinition", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["Name" JSON..= name, "QueryString" JSON..= queryString] (Prelude.catMaybes [(JSON..=) "LogGroupNames" Prelude.<$> logGroupNames, (JSON..=) "QueryLanguage" Prelude.<$> queryLanguage]))} instance JSON.ToJSON QueryDefinition where toJSON QueryDefinition {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["Name" JSON..= name, "QueryString" JSON..= queryString] (Prelude.catMaybes [(JSON..=) "LogGroupNames" Prelude.<$> logGroupNames, (JSON..=) "QueryLanguage" Prelude.<$> queryLanguage]))) instance Property "LogGroupNames" QueryDefinition where type PropertyType "LogGroupNames" QueryDefinition = ValueList Prelude.Text set newValue QueryDefinition {..} = QueryDefinition {logGroupNames = Prelude.pure newValue, ..} instance Property "Name" QueryDefinition where type PropertyType "Name" QueryDefinition = Value Prelude.Text set newValue QueryDefinition {..} = QueryDefinition {name = newValue, ..} instance Property "QueryLanguage" QueryDefinition where type PropertyType "QueryLanguage" QueryDefinition = Value Prelude.Text set newValue QueryDefinition {..} = QueryDefinition {queryLanguage = Prelude.pure newValue, ..} instance Property "QueryString" QueryDefinition where type PropertyType "QueryString" QueryDefinition = Value Prelude.Text set newValue QueryDefinition {..} = QueryDefinition {queryString = newValue, ..}