packages feed

stratosphere-events-1.0.0: gen/Stratosphere/Events/Connection/OAuthParametersProperty.hs

module Stratosphere.Events.Connection.OAuthParametersProperty (
        module Exports, OAuthParametersProperty(..),
        mkOAuthParametersProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Events.Connection.ClientParametersProperty as Exports
import {-# SOURCE #-} Stratosphere.Events.Connection.ConnectionHttpParametersProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OAuthParametersProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html>
    OAuthParametersProperty {haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html#cfn-events-connection-oauthparameters-authorizationendpoint>
                             authorizationEndpoint :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html#cfn-events-connection-oauthparameters-clientparameters>
                             clientParameters :: ClientParametersProperty,
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html#cfn-events-connection-oauthparameters-httpmethod>
                             httpMethod :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html#cfn-events-connection-oauthparameters-oauthhttpparameters>
                             oAuthHttpParameters :: (Prelude.Maybe ConnectionHttpParametersProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkOAuthParametersProperty ::
  Value Prelude.Text
  -> ClientParametersProperty
     -> Value Prelude.Text -> OAuthParametersProperty
mkOAuthParametersProperty
  authorizationEndpoint
  clientParameters
  httpMethod
  = OAuthParametersProperty
      {haddock_workaround_ = (),
       authorizationEndpoint = authorizationEndpoint,
       clientParameters = clientParameters, httpMethod = httpMethod,
       oAuthHttpParameters = Prelude.Nothing}
instance ToResourceProperties OAuthParametersProperty where
  toResourceProperties OAuthParametersProperty {..}
    = ResourceProperties
        {awsType = "AWS::Events::Connection.OAuthParameters",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["AuthorizationEndpoint" JSON..= authorizationEndpoint,
                            "ClientParameters" JSON..= clientParameters,
                            "HttpMethod" JSON..= httpMethod]
                           (Prelude.catMaybes
                              [(JSON..=) "OAuthHttpParameters"
                                 Prelude.<$> oAuthHttpParameters]))}
instance JSON.ToJSON OAuthParametersProperty where
  toJSON OAuthParametersProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["AuthorizationEndpoint" JSON..= authorizationEndpoint,
               "ClientParameters" JSON..= clientParameters,
               "HttpMethod" JSON..= httpMethod]
              (Prelude.catMaybes
                 [(JSON..=) "OAuthHttpParameters"
                    Prelude.<$> oAuthHttpParameters])))
instance Property "AuthorizationEndpoint" OAuthParametersProperty where
  type PropertyType "AuthorizationEndpoint" OAuthParametersProperty = Value Prelude.Text
  set newValue OAuthParametersProperty {..}
    = OAuthParametersProperty {authorizationEndpoint = newValue, ..}
instance Property "ClientParameters" OAuthParametersProperty where
  type PropertyType "ClientParameters" OAuthParametersProperty = ClientParametersProperty
  set newValue OAuthParametersProperty {..}
    = OAuthParametersProperty {clientParameters = newValue, ..}
instance Property "HttpMethod" OAuthParametersProperty where
  type PropertyType "HttpMethod" OAuthParametersProperty = Value Prelude.Text
  set newValue OAuthParametersProperty {..}
    = OAuthParametersProperty {httpMethod = newValue, ..}
instance Property "OAuthHttpParameters" OAuthParametersProperty where
  type PropertyType "OAuthHttpParameters" OAuthParametersProperty = ConnectionHttpParametersProperty
  set newValue OAuthParametersProperty {..}
    = OAuthParametersProperty
        {oAuthHttpParameters = Prelude.pure newValue, ..}