{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE MultiWayIf #-}
-- CHANGE WITH CAUTION: This is a generated code file generated by https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator.
{-# LANGUAGE OverloadedStrings #-}

-- | Contains the different functions to run the operation postWebhookEndpoints
module StripeAPI.Operations.PostWebhookEndpoints where

import qualified Control.Monad.Fail
import qualified Control.Monad.Trans.Reader
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString.Char8
import qualified Data.ByteString.Char8 as Data.ByteString.Internal
import qualified Data.Either
import qualified Data.Foldable
import qualified Data.Functor
import qualified Data.Maybe
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified Data.Vector
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified Network.HTTP.Client
import qualified Network.HTTP.Client as Network.HTTP.Client.Request
import qualified Network.HTTP.Client as Network.HTTP.Client.Types
import qualified Network.HTTP.Simple
import qualified Network.HTTP.Types
import qualified Network.HTTP.Types as Network.HTTP.Types.Status
import qualified Network.HTTP.Types as Network.HTTP.Types.URI
import qualified StripeAPI.Common
import StripeAPI.Types
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | > POST /v1/webhook_endpoints
--
-- \<p>A webhook endpoint must have a \<code>url\<\/code> and a list of \<code>enabled_events\<\/code>. You may optionally specify the Boolean \<code>connect\<\/code> parameter. If set to true, then a Connect webhook endpoint that notifies the specified \<code>url\<\/code> about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified \<code>url\<\/code> only about events from your account is created. You can also create webhook endpoints in the \<a href=\"https:\/\/dashboard.stripe.com\/account\/webhooks\">webhooks settings\<\/a> section of the Dashboard.\<\/p>
postWebhookEndpoints ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | The request body to send
  PostWebhookEndpointsRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostWebhookEndpointsResponse)
postWebhookEndpoints body =
  GHC.Base.fmap
    ( \response_0 ->
        GHC.Base.fmap
          ( Data.Either.either PostWebhookEndpointsResponseError GHC.Base.id
              GHC.Base.. ( \response body ->
                             if
                                 | (\status_1 -> Network.HTTP.Types.Status.statusCode status_1 GHC.Classes.== 200) (Network.HTTP.Client.Types.responseStatus response) ->
                                   PostWebhookEndpointsResponse200
                                     Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            WebhookEndpoint
                                                      )
                                 | GHC.Base.const GHC.Types.True (Network.HTTP.Client.Types.responseStatus response) ->
                                   PostWebhookEndpointsResponseDefault
                                     Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            Error
                                                      )
                                 | GHC.Base.otherwise -> Data.Either.Left "Missing default response type"
                         )
                response_0
          )
          response_0
    )
    (StripeAPI.Common.doBodyCallWithConfigurationM (Data.Text.toUpper GHC.Base.$ Data.Text.pack "POST") (Data.Text.pack "/v1/webhook_endpoints") GHC.Base.mempty (GHC.Maybe.Just body) StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/webhook_endpoints.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostWebhookEndpointsRequestBody = PostWebhookEndpointsRequestBody
  { -- | api_version: Events sent to this endpoint will be generated with this Stripe Version instead of your account\'s default Stripe Version.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    postWebhookEndpointsRequestBodyApiVersion :: (GHC.Maybe.Maybe PostWebhookEndpointsRequestBodyApiVersion'),
    -- | connect: Whether this endpoint should receive events from connected accounts (\`true\`), or from your account (\`false\`). Defaults to \`false\`.
    postWebhookEndpointsRequestBodyConnect :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | description: An optional description of what the webhook is used for.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    postWebhookEndpointsRequestBodyDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | enabled_events: The list of events to enable for this endpoint. You may specify \`[\'*\']\` to enable all events, except those that require explicit selection.
    postWebhookEndpointsRequestBodyEnabledEvents :: ([PostWebhookEndpointsRequestBodyEnabledEvents']),
    -- | expand: Specifies which fields in the response should be expanded.
    postWebhookEndpointsRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
    postWebhookEndpointsRequestBodyMetadata :: (GHC.Maybe.Maybe PostWebhookEndpointsRequestBodyMetadata'Variants),
    -- | url: The URL of the webhook endpoint.
    postWebhookEndpointsRequestBodyUrl :: Data.Text.Internal.Text
  }
  deriving
    ( GHC.Show.Show,
      GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostWebhookEndpointsRequestBody where
  toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("api_version" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyApiVersion obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("connect" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyConnect obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("description" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyDescription obj) : ["enabled_events" Data.Aeson.Types.ToJSON..= postWebhookEndpointsRequestBodyEnabledEvents obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("expand" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyExpand obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("metadata" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyMetadata obj) : ["url" Data.Aeson.Types.ToJSON..= postWebhookEndpointsRequestBodyUrl obj] : GHC.Base.mempty))
  toEncoding obj = Data.Aeson.Encoding.Internal.pairs (GHC.Base.mconcat (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("api_version" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyApiVersion obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("connect" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyConnect obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("description" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyDescription obj) : ["enabled_events" Data.Aeson.Types.ToJSON..= postWebhookEndpointsRequestBodyEnabledEvents obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("expand" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyExpand obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("metadata" Data.Aeson.Types.ToJSON..=)) (postWebhookEndpointsRequestBodyMetadata obj) : ["url" Data.Aeson.Types.ToJSON..= postWebhookEndpointsRequestBodyUrl obj] : GHC.Base.mempty)))

instance Data.Aeson.Types.FromJSON.FromJSON PostWebhookEndpointsRequestBody where
  parseJSON = Data.Aeson.Types.FromJSON.withObject "PostWebhookEndpointsRequestBody" (\obj -> ((((((GHC.Base.pure PostWebhookEndpointsRequestBody GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "api_version")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "connect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "enabled_events")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "expand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))

-- | Create a new 'PostWebhookEndpointsRequestBody' with all required fields.
mkPostWebhookEndpointsRequestBody ::
  -- | 'postWebhookEndpointsRequestBodyEnabledEvents'
  [PostWebhookEndpointsRequestBodyEnabledEvents'] ->
  -- | 'postWebhookEndpointsRequestBodyUrl'
  Data.Text.Internal.Text ->
  PostWebhookEndpointsRequestBody
mkPostWebhookEndpointsRequestBody postWebhookEndpointsRequestBodyEnabledEvents postWebhookEndpointsRequestBodyUrl =
  PostWebhookEndpointsRequestBody
    { postWebhookEndpointsRequestBodyApiVersion = GHC.Maybe.Nothing,
      postWebhookEndpointsRequestBodyConnect = GHC.Maybe.Nothing,
      postWebhookEndpointsRequestBodyDescription = GHC.Maybe.Nothing,
      postWebhookEndpointsRequestBodyEnabledEvents = postWebhookEndpointsRequestBodyEnabledEvents,
      postWebhookEndpointsRequestBodyExpand = GHC.Maybe.Nothing,
      postWebhookEndpointsRequestBodyMetadata = GHC.Maybe.Nothing,
      postWebhookEndpointsRequestBodyUrl = postWebhookEndpointsRequestBodyUrl
    }

-- | Defines the enum schema located at @paths.\/v1\/webhook_endpoints.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.api_version@ in the specification.
--
-- Events sent to this endpoint will be generated with this Stripe Version instead of your account\'s default Stripe Version.
data PostWebhookEndpointsRequestBodyApiVersion'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostWebhookEndpointsRequestBodyApiVersion'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostWebhookEndpointsRequestBodyApiVersion'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"2011-01-01"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2011_01_01
  | -- | Represents the JSON value @"2011-06-21"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2011_06_21
  | -- | Represents the JSON value @"2011-06-28"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2011_06_28
  | -- | Represents the JSON value @"2011-08-01"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2011_08_01
  | -- | Represents the JSON value @"2011-09-15"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2011_09_15
  | -- | Represents the JSON value @"2011-11-17"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2011_11_17
  | -- | Represents the JSON value @"2012-02-23"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_02_23
  | -- | Represents the JSON value @"2012-03-25"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_03_25
  | -- | Represents the JSON value @"2012-06-18"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_06_18
  | -- | Represents the JSON value @"2012-06-28"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_06_28
  | -- | Represents the JSON value @"2012-07-09"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_07_09
  | -- | Represents the JSON value @"2012-09-24"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_09_24
  | -- | Represents the JSON value @"2012-10-26"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_10_26
  | -- | Represents the JSON value @"2012-11-07"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2012_11_07
  | -- | Represents the JSON value @"2013-02-11"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2013_02_11
  | -- | Represents the JSON value @"2013-02-13"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2013_02_13
  | -- | Represents the JSON value @"2013-07-05"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2013_07_05
  | -- | Represents the JSON value @"2013-08-12"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2013_08_12
  | -- | Represents the JSON value @"2013-08-13"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2013_08_13
  | -- | Represents the JSON value @"2013-10-29"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2013_10_29
  | -- | Represents the JSON value @"2013-12-03"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2013_12_03
  | -- | Represents the JSON value @"2014-01-31"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_01_31
  | -- | Represents the JSON value @"2014-03-13"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_03_13
  | -- | Represents the JSON value @"2014-03-28"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_03_28
  | -- | Represents the JSON value @"2014-05-19"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_05_19
  | -- | Represents the JSON value @"2014-06-13"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_06_13
  | -- | Represents the JSON value @"2014-06-17"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_06_17
  | -- | Represents the JSON value @"2014-07-22"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_07_22
  | -- | Represents the JSON value @"2014-07-26"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_07_26
  | -- | Represents the JSON value @"2014-08-04"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_08_04
  | -- | Represents the JSON value @"2014-08-20"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_08_20
  | -- | Represents the JSON value @"2014-09-08"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_09_08
  | -- | Represents the JSON value @"2014-10-07"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_10_07
  | -- | Represents the JSON value @"2014-11-05"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_11_05
  | -- | Represents the JSON value @"2014-11-20"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_11_20
  | -- | Represents the JSON value @"2014-12-08"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_08
  | -- | Represents the JSON value @"2014-12-17"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_17
  | -- | Represents the JSON value @"2014-12-22"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_22
  | -- | Represents the JSON value @"2015-01-11"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_01_11
  | -- | Represents the JSON value @"2015-01-26"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_01_26
  | -- | Represents the JSON value @"2015-02-10"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_10
  | -- | Represents the JSON value @"2015-02-16"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_16
  | -- | Represents the JSON value @"2015-02-18"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_18
  | -- | Represents the JSON value @"2015-03-24"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_03_24
  | -- | Represents the JSON value @"2015-04-07"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_04_07
  | -- | Represents the JSON value @"2015-06-15"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_06_15
  | -- | Represents the JSON value @"2015-07-07"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_07
  | -- | Represents the JSON value @"2015-07-13"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_13
  | -- | Represents the JSON value @"2015-07-28"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_28
  | -- | Represents the JSON value @"2015-08-07"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_08_07
  | -- | Represents the JSON value @"2015-08-19"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_08_19
  | -- | Represents the JSON value @"2015-09-03"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_03
  | -- | Represents the JSON value @"2015-09-08"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_08
  | -- | Represents the JSON value @"2015-09-23"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_23
  | -- | Represents the JSON value @"2015-10-01"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_01
  | -- | Represents the JSON value @"2015-10-12"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_12
  | -- | Represents the JSON value @"2015-10-16"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_16
  | -- | Represents the JSON value @"2016-02-03"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_03
  | -- | Represents the JSON value @"2016-02-19"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_19
  | -- | Represents the JSON value @"2016-02-22"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_22
  | -- | Represents the JSON value @"2016-02-23"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_23
  | -- | Represents the JSON value @"2016-02-29"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_29
  | -- | Represents the JSON value @"2016-03-07"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_03_07
  | -- | Represents the JSON value @"2016-06-15"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_06_15
  | -- | Represents the JSON value @"2016-07-06"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_07_06
  | -- | Represents the JSON value @"2016-10-19"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2016_10_19
  | -- | Represents the JSON value @"2017-01-27"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2017_01_27
  | -- | Represents the JSON value @"2017-02-14"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2017_02_14
  | -- | Represents the JSON value @"2017-04-06"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2017_04_06
  | -- | Represents the JSON value @"2017-05-25"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2017_05_25
  | -- | Represents the JSON value @"2017-06-05"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2017_06_05
  | -- | Represents the JSON value @"2017-08-15"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2017_08_15
  | -- | Represents the JSON value @"2017-12-14"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2017_12_14
  | -- | Represents the JSON value @"2018-01-23"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_01_23
  | -- | Represents the JSON value @"2018-02-05"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_05
  | -- | Represents the JSON value @"2018-02-06"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_06
  | -- | Represents the JSON value @"2018-02-28"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_28
  | -- | Represents the JSON value @"2018-05-21"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_05_21
  | -- | Represents the JSON value @"2018-07-27"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_07_27
  | -- | Represents the JSON value @"2018-08-23"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_08_23
  | -- | Represents the JSON value @"2018-09-06"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_09_06
  | -- | Represents the JSON value @"2018-09-24"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_09_24
  | -- | Represents the JSON value @"2018-10-31"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_10_31
  | -- | Represents the JSON value @"2018-11-08"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2018_11_08
  | -- | Represents the JSON value @"2019-02-11"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_02_11
  | -- | Represents the JSON value @"2019-02-19"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_02_19
  | -- | Represents the JSON value @"2019-03-14"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_03_14
  | -- | Represents the JSON value @"2019-05-16"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_05_16
  | -- | Represents the JSON value @"2019-08-14"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_08_14
  | -- | Represents the JSON value @"2019-09-09"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_09_09
  | -- | Represents the JSON value @"2019-10-08"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_10_08
  | -- | Represents the JSON value @"2019-10-17"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_10_17
  | -- | Represents the JSON value @"2019-11-05"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_11_05
  | -- | Represents the JSON value @"2019-12-03"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2019_12_03
  | -- | Represents the JSON value @"2020-03-02"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2020_03_02
  | -- | Represents the JSON value @"2020-08-27"@
    PostWebhookEndpointsRequestBodyApiVersion'Enum2020_08_27
  deriving (GHC.Show.Show, GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostWebhookEndpointsRequestBodyApiVersion' where
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Other val) = val
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2011_01_01) = "2011-01-01"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2011_06_21) = "2011-06-21"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2011_06_28) = "2011-06-28"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2011_08_01) = "2011-08-01"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2011_09_15) = "2011-09-15"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2011_11_17) = "2011-11-17"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_02_23) = "2012-02-23"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_03_25) = "2012-03-25"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_06_18) = "2012-06-18"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_06_28) = "2012-06-28"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_07_09) = "2012-07-09"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_09_24) = "2012-09-24"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_10_26) = "2012-10-26"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2012_11_07) = "2012-11-07"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2013_02_11) = "2013-02-11"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2013_02_13) = "2013-02-13"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2013_07_05) = "2013-07-05"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2013_08_12) = "2013-08-12"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2013_08_13) = "2013-08-13"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2013_10_29) = "2013-10-29"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2013_12_03) = "2013-12-03"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_01_31) = "2014-01-31"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_03_13) = "2014-03-13"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_03_28) = "2014-03-28"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_05_19) = "2014-05-19"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_06_13) = "2014-06-13"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_06_17) = "2014-06-17"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_07_22) = "2014-07-22"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_07_26) = "2014-07-26"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_08_04) = "2014-08-04"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_08_20) = "2014-08-20"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_09_08) = "2014-09-08"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_10_07) = "2014-10-07"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_11_05) = "2014-11-05"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_11_20) = "2014-11-20"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_08) = "2014-12-08"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_17) = "2014-12-17"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_22) = "2014-12-22"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_01_11) = "2015-01-11"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_01_26) = "2015-01-26"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_10) = "2015-02-10"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_16) = "2015-02-16"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_18) = "2015-02-18"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_03_24) = "2015-03-24"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_04_07) = "2015-04-07"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_06_15) = "2015-06-15"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_07) = "2015-07-07"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_13) = "2015-07-13"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_28) = "2015-07-28"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_08_07) = "2015-08-07"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_08_19) = "2015-08-19"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_03) = "2015-09-03"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_08) = "2015-09-08"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_23) = "2015-09-23"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_01) = "2015-10-01"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_12) = "2015-10-12"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_16) = "2015-10-16"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_03) = "2016-02-03"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_19) = "2016-02-19"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_22) = "2016-02-22"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_23) = "2016-02-23"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_29) = "2016-02-29"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_03_07) = "2016-03-07"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_06_15) = "2016-06-15"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_07_06) = "2016-07-06"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2016_10_19) = "2016-10-19"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2017_01_27) = "2017-01-27"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2017_02_14) = "2017-02-14"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2017_04_06) = "2017-04-06"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2017_05_25) = "2017-05-25"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2017_06_05) = "2017-06-05"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2017_08_15) = "2017-08-15"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2017_12_14) = "2017-12-14"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_01_23) = "2018-01-23"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_05) = "2018-02-05"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_06) = "2018-02-06"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_28) = "2018-02-28"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_05_21) = "2018-05-21"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_07_27) = "2018-07-27"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_08_23) = "2018-08-23"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_09_06) = "2018-09-06"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_09_24) = "2018-09-24"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_10_31) = "2018-10-31"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2018_11_08) = "2018-11-08"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_02_11) = "2019-02-11"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_02_19) = "2019-02-19"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_03_14) = "2019-03-14"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_05_16) = "2019-05-16"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_08_14) = "2019-08-14"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_09_09) = "2019-09-09"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_10_08) = "2019-10-08"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_10_17) = "2019-10-17"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_11_05) = "2019-11-05"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2019_12_03) = "2019-12-03"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2020_03_02) = "2020-03-02"
  toJSON (PostWebhookEndpointsRequestBodyApiVersion'Enum2020_08_27) = "2020-08-27"

instance Data.Aeson.Types.FromJSON.FromJSON PostWebhookEndpointsRequestBodyApiVersion' where
  parseJSON val =
    GHC.Base.pure
      ( if
            | val GHC.Classes.== "2011-01-01" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2011_01_01
            | val GHC.Classes.== "2011-06-21" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2011_06_21
            | val GHC.Classes.== "2011-06-28" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2011_06_28
            | val GHC.Classes.== "2011-08-01" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2011_08_01
            | val GHC.Classes.== "2011-09-15" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2011_09_15
            | val GHC.Classes.== "2011-11-17" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2011_11_17
            | val GHC.Classes.== "2012-02-23" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_02_23
            | val GHC.Classes.== "2012-03-25" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_03_25
            | val GHC.Classes.== "2012-06-18" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_06_18
            | val GHC.Classes.== "2012-06-28" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_06_28
            | val GHC.Classes.== "2012-07-09" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_07_09
            | val GHC.Classes.== "2012-09-24" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_09_24
            | val GHC.Classes.== "2012-10-26" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_10_26
            | val GHC.Classes.== "2012-11-07" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2012_11_07
            | val GHC.Classes.== "2013-02-11" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2013_02_11
            | val GHC.Classes.== "2013-02-13" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2013_02_13
            | val GHC.Classes.== "2013-07-05" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2013_07_05
            | val GHC.Classes.== "2013-08-12" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2013_08_12
            | val GHC.Classes.== "2013-08-13" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2013_08_13
            | val GHC.Classes.== "2013-10-29" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2013_10_29
            | val GHC.Classes.== "2013-12-03" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2013_12_03
            | val GHC.Classes.== "2014-01-31" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_01_31
            | val GHC.Classes.== "2014-03-13" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_03_13
            | val GHC.Classes.== "2014-03-28" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_03_28
            | val GHC.Classes.== "2014-05-19" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_05_19
            | val GHC.Classes.== "2014-06-13" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_06_13
            | val GHC.Classes.== "2014-06-17" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_06_17
            | val GHC.Classes.== "2014-07-22" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_07_22
            | val GHC.Classes.== "2014-07-26" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_07_26
            | val GHC.Classes.== "2014-08-04" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_08_04
            | val GHC.Classes.== "2014-08-20" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_08_20
            | val GHC.Classes.== "2014-09-08" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_09_08
            | val GHC.Classes.== "2014-10-07" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_10_07
            | val GHC.Classes.== "2014-11-05" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_11_05
            | val GHC.Classes.== "2014-11-20" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_11_20
            | val GHC.Classes.== "2014-12-08" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_08
            | val GHC.Classes.== "2014-12-17" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_17
            | val GHC.Classes.== "2014-12-22" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2014_12_22
            | val GHC.Classes.== "2015-01-11" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_01_11
            | val GHC.Classes.== "2015-01-26" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_01_26
            | val GHC.Classes.== "2015-02-10" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_10
            | val GHC.Classes.== "2015-02-16" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_16
            | val GHC.Classes.== "2015-02-18" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_02_18
            | val GHC.Classes.== "2015-03-24" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_03_24
            | val GHC.Classes.== "2015-04-07" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_04_07
            | val GHC.Classes.== "2015-06-15" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_06_15
            | val GHC.Classes.== "2015-07-07" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_07
            | val GHC.Classes.== "2015-07-13" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_13
            | val GHC.Classes.== "2015-07-28" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_07_28
            | val GHC.Classes.== "2015-08-07" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_08_07
            | val GHC.Classes.== "2015-08-19" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_08_19
            | val GHC.Classes.== "2015-09-03" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_03
            | val GHC.Classes.== "2015-09-08" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_08
            | val GHC.Classes.== "2015-09-23" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_09_23
            | val GHC.Classes.== "2015-10-01" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_01
            | val GHC.Classes.== "2015-10-12" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_12
            | val GHC.Classes.== "2015-10-16" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2015_10_16
            | val GHC.Classes.== "2016-02-03" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_03
            | val GHC.Classes.== "2016-02-19" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_19
            | val GHC.Classes.== "2016-02-22" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_22
            | val GHC.Classes.== "2016-02-23" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_23
            | val GHC.Classes.== "2016-02-29" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_02_29
            | val GHC.Classes.== "2016-03-07" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_03_07
            | val GHC.Classes.== "2016-06-15" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_06_15
            | val GHC.Classes.== "2016-07-06" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_07_06
            | val GHC.Classes.== "2016-10-19" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2016_10_19
            | val GHC.Classes.== "2017-01-27" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2017_01_27
            | val GHC.Classes.== "2017-02-14" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2017_02_14
            | val GHC.Classes.== "2017-04-06" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2017_04_06
            | val GHC.Classes.== "2017-05-25" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2017_05_25
            | val GHC.Classes.== "2017-06-05" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2017_06_05
            | val GHC.Classes.== "2017-08-15" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2017_08_15
            | val GHC.Classes.== "2017-12-14" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2017_12_14
            | val GHC.Classes.== "2018-01-23" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_01_23
            | val GHC.Classes.== "2018-02-05" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_05
            | val GHC.Classes.== "2018-02-06" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_06
            | val GHC.Classes.== "2018-02-28" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_02_28
            | val GHC.Classes.== "2018-05-21" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_05_21
            | val GHC.Classes.== "2018-07-27" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_07_27
            | val GHC.Classes.== "2018-08-23" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_08_23
            | val GHC.Classes.== "2018-09-06" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_09_06
            | val GHC.Classes.== "2018-09-24" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_09_24
            | val GHC.Classes.== "2018-10-31" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_10_31
            | val GHC.Classes.== "2018-11-08" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2018_11_08
            | val GHC.Classes.== "2019-02-11" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_02_11
            | val GHC.Classes.== "2019-02-19" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_02_19
            | val GHC.Classes.== "2019-03-14" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_03_14
            | val GHC.Classes.== "2019-05-16" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_05_16
            | val GHC.Classes.== "2019-08-14" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_08_14
            | val GHC.Classes.== "2019-09-09" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_09_09
            | val GHC.Classes.== "2019-10-08" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_10_08
            | val GHC.Classes.== "2019-10-17" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_10_17
            | val GHC.Classes.== "2019-11-05" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_11_05
            | val GHC.Classes.== "2019-12-03" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2019_12_03
            | val GHC.Classes.== "2020-03-02" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2020_03_02
            | val GHC.Classes.== "2020-08-27" -> PostWebhookEndpointsRequestBodyApiVersion'Enum2020_08_27
            | GHC.Base.otherwise -> PostWebhookEndpointsRequestBodyApiVersion'Other val
      )

-- | Defines the enum schema located at @paths.\/v1\/webhook_endpoints.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.enabled_events.items@ in the specification.
data PostWebhookEndpointsRequestBodyEnabledEvents'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostWebhookEndpointsRequestBodyEnabledEvents'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostWebhookEndpointsRequestBodyEnabledEvents'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"*"@
    PostWebhookEndpointsRequestBodyEnabledEvents'Enum_
  | -- | Represents the JSON value @"account.application.authorized"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'application'authorized
  | -- | Represents the JSON value @"account.application.deauthorized"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'application'deauthorized
  | -- | Represents the JSON value @"account.external_account.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'created
  | -- | Represents the JSON value @"account.external_account.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'deleted
  | -- | Represents the JSON value @"account.external_account.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'updated
  | -- | Represents the JSON value @"account.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'updated
  | -- | Represents the JSON value @"application_fee.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'created
  | -- | Represents the JSON value @"application_fee.refund.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'refund'updated
  | -- | Represents the JSON value @"application_fee.refunded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'refunded
  | -- | Represents the JSON value @"balance.available"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumBalance'available
  | -- | Represents the JSON value @"billing_portal.configuration.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'configuration'created
  | -- | Represents the JSON value @"billing_portal.configuration.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'configuration'updated
  | -- | Represents the JSON value @"billing_portal.session.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'session'created
  | -- | Represents the JSON value @"capability.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCapability'updated
  | -- | Represents the JSON value @"cash_balance.funds_available"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCashBalance'fundsAvailable
  | -- | Represents the JSON value @"charge.captured"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'captured
  | -- | Represents the JSON value @"charge.dispute.closed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'closed
  | -- | Represents the JSON value @"charge.dispute.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'created
  | -- | Represents the JSON value @"charge.dispute.funds_reinstated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'fundsReinstated
  | -- | Represents the JSON value @"charge.dispute.funds_withdrawn"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'fundsWithdrawn
  | -- | Represents the JSON value @"charge.dispute.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'updated
  | -- | Represents the JSON value @"charge.expired"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'expired
  | -- | Represents the JSON value @"charge.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'failed
  | -- | Represents the JSON value @"charge.pending"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'pending
  | -- | Represents the JSON value @"charge.refund.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'refund'updated
  | -- | Represents the JSON value @"charge.refunded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'refunded
  | -- | Represents the JSON value @"charge.succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'succeeded
  | -- | Represents the JSON value @"charge.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'updated
  | -- | Represents the JSON value @"checkout.session.async_payment_failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'asyncPaymentFailed
  | -- | Represents the JSON value @"checkout.session.async_payment_succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'asyncPaymentSucceeded
  | -- | Represents the JSON value @"checkout.session.completed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'completed
  | -- | Represents the JSON value @"checkout.session.expired"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'expired
  | -- | Represents the JSON value @"coupon.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'created
  | -- | Represents the JSON value @"coupon.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'deleted
  | -- | Represents the JSON value @"coupon.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'updated
  | -- | Represents the JSON value @"credit_note.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'created
  | -- | Represents the JSON value @"credit_note.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'updated
  | -- | Represents the JSON value @"credit_note.voided"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'voided
  | -- | Represents the JSON value @"customer.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'created
  | -- | Represents the JSON value @"customer.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'deleted
  | -- | Represents the JSON value @"customer.discount.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'created
  | -- | Represents the JSON value @"customer.discount.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'deleted
  | -- | Represents the JSON value @"customer.discount.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'updated
  | -- | Represents the JSON value @"customer.source.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'created
  | -- | Represents the JSON value @"customer.source.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'deleted
  | -- | Represents the JSON value @"customer.source.expiring"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'expiring
  | -- | Represents the JSON value @"customer.source.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'updated
  | -- | Represents the JSON value @"customer.subscription.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'created
  | -- | Represents the JSON value @"customer.subscription.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'deleted
  | -- | Represents the JSON value @"customer.subscription.pending_update_applied"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'pendingUpdateApplied
  | -- | Represents the JSON value @"customer.subscription.pending_update_expired"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'pendingUpdateExpired
  | -- | Represents the JSON value @"customer.subscription.trial_will_end"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'trialWillEnd
  | -- | Represents the JSON value @"customer.subscription.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'updated
  | -- | Represents the JSON value @"customer.tax_id.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'created
  | -- | Represents the JSON value @"customer.tax_id.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'deleted
  | -- | Represents the JSON value @"customer.tax_id.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'updated
  | -- | Represents the JSON value @"customer.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'updated
  | -- | Represents the JSON value @"file.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumFile'created
  | -- | Represents the JSON value @"identity.verification_session.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'canceled
  | -- | Represents the JSON value @"identity.verification_session.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'created
  | -- | Represents the JSON value @"identity.verification_session.processing"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'processing
  | -- | Represents the JSON value @"identity.verification_session.redacted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'redacted
  | -- | Represents the JSON value @"identity.verification_session.requires_input"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'requiresInput
  | -- | Represents the JSON value @"identity.verification_session.verified"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'verified
  | -- | Represents the JSON value @"invoice.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'created
  | -- | Represents the JSON value @"invoice.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'deleted
  | -- | Represents the JSON value @"invoice.finalization_failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'finalizationFailed
  | -- | Represents the JSON value @"invoice.finalized"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'finalized
  | -- | Represents the JSON value @"invoice.marked_uncollectible"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'markedUncollectible
  | -- | Represents the JSON value @"invoice.paid"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paid
  | -- | Represents the JSON value @"invoice.payment_action_required"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentActionRequired
  | -- | Represents the JSON value @"invoice.payment_failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentFailed
  | -- | Represents the JSON value @"invoice.payment_succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentSucceeded
  | -- | Represents the JSON value @"invoice.sent"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'sent
  | -- | Represents the JSON value @"invoice.upcoming"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'upcoming
  | -- | Represents the JSON value @"invoice.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'updated
  | -- | Represents the JSON value @"invoice.voided"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'voided
  | -- | Represents the JSON value @"invoiceitem.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'created
  | -- | Represents the JSON value @"invoiceitem.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'deleted
  | -- | Represents the JSON value @"invoiceitem.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'updated
  | -- | Represents the JSON value @"issuing_authorization.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'created
  | -- | Represents the JSON value @"issuing_authorization.request"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'request
  | -- | Represents the JSON value @"issuing_authorization.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'updated
  | -- | Represents the JSON value @"issuing_card.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCard'created
  | -- | Represents the JSON value @"issuing_card.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCard'updated
  | -- | Represents the JSON value @"issuing_cardholder.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCardholder'created
  | -- | Represents the JSON value @"issuing_cardholder.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCardholder'updated
  | -- | Represents the JSON value @"issuing_dispute.closed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'closed
  | -- | Represents the JSON value @"issuing_dispute.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'created
  | -- | Represents the JSON value @"issuing_dispute.funds_reinstated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'fundsReinstated
  | -- | Represents the JSON value @"issuing_dispute.submitted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'submitted
  | -- | Represents the JSON value @"issuing_dispute.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'updated
  | -- | Represents the JSON value @"issuing_transaction.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingTransaction'created
  | -- | Represents the JSON value @"issuing_transaction.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingTransaction'updated
  | -- | Represents the JSON value @"mandate.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumMandate'updated
  | -- | Represents the JSON value @"order.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'created
  | -- | Represents the JSON value @"order.payment_failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'paymentFailed
  | -- | Represents the JSON value @"order.payment_succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'paymentSucceeded
  | -- | Represents the JSON value @"order.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'updated
  | -- | Represents the JSON value @"order_return.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrderReturn'created
  | -- | Represents the JSON value @"payment_intent.amount_capturable_updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'amountCapturableUpdated
  | -- | Represents the JSON value @"payment_intent.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'canceled
  | -- | Represents the JSON value @"payment_intent.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'created
  | -- | Represents the JSON value @"payment_intent.partially_funded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'partiallyFunded
  | -- | Represents the JSON value @"payment_intent.payment_failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'paymentFailed
  | -- | Represents the JSON value @"payment_intent.processing"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'processing
  | -- | Represents the JSON value @"payment_intent.requires_action"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'requiresAction
  | -- | Represents the JSON value @"payment_intent.succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'succeeded
  | -- | Represents the JSON value @"payment_link.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentLink'created
  | -- | Represents the JSON value @"payment_link.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentLink'updated
  | -- | Represents the JSON value @"payment_method.attached"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'attached
  | -- | Represents the JSON value @"payment_method.automatically_updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'automaticallyUpdated
  | -- | Represents the JSON value @"payment_method.detached"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'detached
  | -- | Represents the JSON value @"payment_method.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'updated
  | -- | Represents the JSON value @"payout.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'canceled
  | -- | Represents the JSON value @"payout.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'created
  | -- | Represents the JSON value @"payout.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'failed
  | -- | Represents the JSON value @"payout.paid"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'paid
  | -- | Represents the JSON value @"payout.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'updated
  | -- | Represents the JSON value @"person.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'created
  | -- | Represents the JSON value @"person.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'deleted
  | -- | Represents the JSON value @"person.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'updated
  | -- | Represents the JSON value @"plan.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'created
  | -- | Represents the JSON value @"plan.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'deleted
  | -- | Represents the JSON value @"plan.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'updated
  | -- | Represents the JSON value @"price.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'created
  | -- | Represents the JSON value @"price.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'deleted
  | -- | Represents the JSON value @"price.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'updated
  | -- | Represents the JSON value @"product.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'created
  | -- | Represents the JSON value @"product.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'deleted
  | -- | Represents the JSON value @"product.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'updated
  | -- | Represents the JSON value @"promotion_code.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPromotionCode'created
  | -- | Represents the JSON value @"promotion_code.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumPromotionCode'updated
  | -- | Represents the JSON value @"quote.accepted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'accepted
  | -- | Represents the JSON value @"quote.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'canceled
  | -- | Represents the JSON value @"quote.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'created
  | -- | Represents the JSON value @"quote.finalized"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'finalized
  | -- | Represents the JSON value @"radar.early_fraud_warning.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumRadar'earlyFraudWarning'created
  | -- | Represents the JSON value @"radar.early_fraud_warning.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumRadar'earlyFraudWarning'updated
  | -- | Represents the JSON value @"recipient.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'created
  | -- | Represents the JSON value @"recipient.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'deleted
  | -- | Represents the JSON value @"recipient.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'updated
  | -- | Represents the JSON value @"reporting.report_run.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportRun'failed
  | -- | Represents the JSON value @"reporting.report_run.succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportRun'succeeded
  | -- | Represents the JSON value @"reporting.report_type.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportType'updated
  | -- | Represents the JSON value @"review.closed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumReview'closed
  | -- | Represents the JSON value @"review.opened"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumReview'opened
  | -- | Represents the JSON value @"setup_intent.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'canceled
  | -- | Represents the JSON value @"setup_intent.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'created
  | -- | Represents the JSON value @"setup_intent.requires_action"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'requiresAction
  | -- | Represents the JSON value @"setup_intent.setup_failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'setupFailed
  | -- | Represents the JSON value @"setup_intent.succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'succeeded
  | -- | Represents the JSON value @"sigma.scheduled_query_run.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSigma'scheduledQueryRun'created
  | -- | Represents the JSON value @"sku.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'created
  | -- | Represents the JSON value @"sku.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'deleted
  | -- | Represents the JSON value @"sku.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'updated
  | -- | Represents the JSON value @"source.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'canceled
  | -- | Represents the JSON value @"source.chargeable"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'chargeable
  | -- | Represents the JSON value @"source.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'failed
  | -- | Represents the JSON value @"source.mandate_notification"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'mandateNotification
  | -- | Represents the JSON value @"source.refund_attributes_required"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'refundAttributesRequired
  | -- | Represents the JSON value @"source.transaction.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'transaction'created
  | -- | Represents the JSON value @"source.transaction.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'transaction'updated
  | -- | Represents the JSON value @"subscription_schedule.aborted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'aborted
  | -- | Represents the JSON value @"subscription_schedule.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'canceled
  | -- | Represents the JSON value @"subscription_schedule.completed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'completed
  | -- | Represents the JSON value @"subscription_schedule.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'created
  | -- | Represents the JSON value @"subscription_schedule.expiring"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'expiring
  | -- | Represents the JSON value @"subscription_schedule.released"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'released
  | -- | Represents the JSON value @"subscription_schedule.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'updated
  | -- | Represents the JSON value @"tax_rate.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTaxRate'created
  | -- | Represents the JSON value @"tax_rate.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTaxRate'updated
  | -- | Represents the JSON value @"terminal.reader.action_failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTerminal'reader'actionFailed
  | -- | Represents the JSON value @"terminal.reader.action_succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTerminal'reader'actionSucceeded
  | -- | Represents the JSON value @"test_helpers.test_clock.advancing"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'advancing
  | -- | Represents the JSON value @"test_helpers.test_clock.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'created
  | -- | Represents the JSON value @"test_helpers.test_clock.deleted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'deleted
  | -- | Represents the JSON value @"test_helpers.test_clock.internal_failure"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'internalFailure
  | -- | Represents the JSON value @"test_helpers.test_clock.ready"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'ready
  | -- | Represents the JSON value @"topup.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'canceled
  | -- | Represents the JSON value @"topup.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'created
  | -- | Represents the JSON value @"topup.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'failed
  | -- | Represents the JSON value @"topup.reversed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'reversed
  | -- | Represents the JSON value @"topup.succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'succeeded
  | -- | Represents the JSON value @"transfer.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'created
  | -- | Represents the JSON value @"transfer.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'failed
  | -- | Represents the JSON value @"transfer.paid"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'paid
  | -- | Represents the JSON value @"transfer.reversed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'reversed
  | -- | Represents the JSON value @"transfer.updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'updated
  | -- | Represents the JSON value @"treasury.credit_reversal.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'creditReversal'created
  | -- | Represents the JSON value @"treasury.credit_reversal.posted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'creditReversal'posted
  | -- | Represents the JSON value @"treasury.debit_reversal.completed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'completed
  | -- | Represents the JSON value @"treasury.debit_reversal.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'created
  | -- | Represents the JSON value @"treasury.debit_reversal.initial_credit_granted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'initialCreditGranted
  | -- | Represents the JSON value @"treasury.financial_account.closed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'closed
  | -- | Represents the JSON value @"treasury.financial_account.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'created
  | -- | Represents the JSON value @"treasury.financial_account.features_status_updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'featuresStatusUpdated
  | -- | Represents the JSON value @"treasury.inbound_transfer.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'canceled
  | -- | Represents the JSON value @"treasury.inbound_transfer.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'created
  | -- | Represents the JSON value @"treasury.inbound_transfer.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'failed
  | -- | Represents the JSON value @"treasury.inbound_transfer.succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'succeeded
  | -- | Represents the JSON value @"treasury.outbound_payment.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'canceled
  | -- | Represents the JSON value @"treasury.outbound_payment.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'created
  | -- | Represents the JSON value @"treasury.outbound_payment.expected_arrival_date_updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'expectedArrivalDateUpdated
  | -- | Represents the JSON value @"treasury.outbound_payment.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'failed
  | -- | Represents the JSON value @"treasury.outbound_payment.posted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'posted
  | -- | Represents the JSON value @"treasury.outbound_payment.returned"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'returned
  | -- | Represents the JSON value @"treasury.outbound_transfer.canceled"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'canceled
  | -- | Represents the JSON value @"treasury.outbound_transfer.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'created
  | -- | Represents the JSON value @"treasury.outbound_transfer.expected_arrival_date_updated"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'expectedArrivalDateUpdated
  | -- | Represents the JSON value @"treasury.outbound_transfer.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'failed
  | -- | Represents the JSON value @"treasury.outbound_transfer.posted"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'posted
  | -- | Represents the JSON value @"treasury.outbound_transfer.returned"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'returned
  | -- | Represents the JSON value @"treasury.received_credit.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'created
  | -- | Represents the JSON value @"treasury.received_credit.failed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'failed
  | -- | Represents the JSON value @"treasury.received_credit.reversed"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'reversed
  | -- | Represents the JSON value @"treasury.received_credit.succeeded"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'succeeded
  | -- | Represents the JSON value @"treasury.received_debit.created"@
    PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedDebit'created
  deriving (GHC.Show.Show, GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostWebhookEndpointsRequestBodyEnabledEvents' where
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'Other val) = val
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'Enum_) = "*"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'application'authorized) = "account.application.authorized"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'application'deauthorized) = "account.application.deauthorized"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'created) = "account.external_account.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'deleted) = "account.external_account.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'updated) = "account.external_account.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'updated) = "account.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'created) = "application_fee.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'refund'updated) = "application_fee.refund.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'refunded) = "application_fee.refunded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumBalance'available) = "balance.available"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'configuration'created) = "billing_portal.configuration.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'configuration'updated) = "billing_portal.configuration.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'session'created) = "billing_portal.session.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCapability'updated) = "capability.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCashBalance'fundsAvailable) = "cash_balance.funds_available"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'captured) = "charge.captured"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'closed) = "charge.dispute.closed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'created) = "charge.dispute.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'fundsReinstated) = "charge.dispute.funds_reinstated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'fundsWithdrawn) = "charge.dispute.funds_withdrawn"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'updated) = "charge.dispute.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'expired) = "charge.expired"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'failed) = "charge.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'pending) = "charge.pending"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'refund'updated) = "charge.refund.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'refunded) = "charge.refunded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'succeeded) = "charge.succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'updated) = "charge.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'asyncPaymentFailed) = "checkout.session.async_payment_failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'asyncPaymentSucceeded) = "checkout.session.async_payment_succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'completed) = "checkout.session.completed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'expired) = "checkout.session.expired"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'created) = "coupon.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'deleted) = "coupon.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'updated) = "coupon.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'created) = "credit_note.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'updated) = "credit_note.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'voided) = "credit_note.voided"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'created) = "customer.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'deleted) = "customer.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'created) = "customer.discount.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'deleted) = "customer.discount.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'updated) = "customer.discount.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'created) = "customer.source.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'deleted) = "customer.source.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'expiring) = "customer.source.expiring"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'updated) = "customer.source.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'created) = "customer.subscription.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'deleted) = "customer.subscription.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'pendingUpdateApplied) = "customer.subscription.pending_update_applied"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'pendingUpdateExpired) = "customer.subscription.pending_update_expired"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'trialWillEnd) = "customer.subscription.trial_will_end"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'updated) = "customer.subscription.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'created) = "customer.tax_id.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'deleted) = "customer.tax_id.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'updated) = "customer.tax_id.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'updated) = "customer.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumFile'created) = "file.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'canceled) = "identity.verification_session.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'created) = "identity.verification_session.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'processing) = "identity.verification_session.processing"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'redacted) = "identity.verification_session.redacted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'requiresInput) = "identity.verification_session.requires_input"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'verified) = "identity.verification_session.verified"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'created) = "invoice.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'deleted) = "invoice.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'finalizationFailed) = "invoice.finalization_failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'finalized) = "invoice.finalized"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'markedUncollectible) = "invoice.marked_uncollectible"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paid) = "invoice.paid"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentActionRequired) = "invoice.payment_action_required"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentFailed) = "invoice.payment_failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentSucceeded) = "invoice.payment_succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'sent) = "invoice.sent"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'upcoming) = "invoice.upcoming"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'updated) = "invoice.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'voided) = "invoice.voided"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'created) = "invoiceitem.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'deleted) = "invoiceitem.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'updated) = "invoiceitem.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'created) = "issuing_authorization.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'request) = "issuing_authorization.request"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'updated) = "issuing_authorization.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCard'created) = "issuing_card.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCard'updated) = "issuing_card.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCardholder'created) = "issuing_cardholder.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCardholder'updated) = "issuing_cardholder.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'closed) = "issuing_dispute.closed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'created) = "issuing_dispute.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'fundsReinstated) = "issuing_dispute.funds_reinstated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'submitted) = "issuing_dispute.submitted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'updated) = "issuing_dispute.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingTransaction'created) = "issuing_transaction.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingTransaction'updated) = "issuing_transaction.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumMandate'updated) = "mandate.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'created) = "order.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'paymentFailed) = "order.payment_failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'paymentSucceeded) = "order.payment_succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'updated) = "order.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrderReturn'created) = "order_return.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'amountCapturableUpdated) = "payment_intent.amount_capturable_updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'canceled) = "payment_intent.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'created) = "payment_intent.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'partiallyFunded) = "payment_intent.partially_funded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'paymentFailed) = "payment_intent.payment_failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'processing) = "payment_intent.processing"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'requiresAction) = "payment_intent.requires_action"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'succeeded) = "payment_intent.succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentLink'created) = "payment_link.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentLink'updated) = "payment_link.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'attached) = "payment_method.attached"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'automaticallyUpdated) = "payment_method.automatically_updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'detached) = "payment_method.detached"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'updated) = "payment_method.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'canceled) = "payout.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'created) = "payout.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'failed) = "payout.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'paid) = "payout.paid"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'updated) = "payout.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'created) = "person.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'deleted) = "person.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'updated) = "person.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'created) = "plan.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'deleted) = "plan.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'updated) = "plan.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'created) = "price.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'deleted) = "price.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'updated) = "price.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'created) = "product.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'deleted) = "product.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'updated) = "product.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPromotionCode'created) = "promotion_code.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumPromotionCode'updated) = "promotion_code.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'accepted) = "quote.accepted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'canceled) = "quote.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'created) = "quote.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'finalized) = "quote.finalized"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumRadar'earlyFraudWarning'created) = "radar.early_fraud_warning.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumRadar'earlyFraudWarning'updated) = "radar.early_fraud_warning.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'created) = "recipient.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'deleted) = "recipient.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'updated) = "recipient.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportRun'failed) = "reporting.report_run.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportRun'succeeded) = "reporting.report_run.succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportType'updated) = "reporting.report_type.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumReview'closed) = "review.closed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumReview'opened) = "review.opened"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'canceled) = "setup_intent.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'created) = "setup_intent.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'requiresAction) = "setup_intent.requires_action"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'setupFailed) = "setup_intent.setup_failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'succeeded) = "setup_intent.succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSigma'scheduledQueryRun'created) = "sigma.scheduled_query_run.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'created) = "sku.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'deleted) = "sku.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'updated) = "sku.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'canceled) = "source.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'chargeable) = "source.chargeable"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'failed) = "source.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'mandateNotification) = "source.mandate_notification"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'refundAttributesRequired) = "source.refund_attributes_required"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'transaction'created) = "source.transaction.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'transaction'updated) = "source.transaction.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'aborted) = "subscription_schedule.aborted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'canceled) = "subscription_schedule.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'completed) = "subscription_schedule.completed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'created) = "subscription_schedule.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'expiring) = "subscription_schedule.expiring"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'released) = "subscription_schedule.released"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'updated) = "subscription_schedule.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTaxRate'created) = "tax_rate.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTaxRate'updated) = "tax_rate.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTerminal'reader'actionFailed) = "terminal.reader.action_failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTerminal'reader'actionSucceeded) = "terminal.reader.action_succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'advancing) = "test_helpers.test_clock.advancing"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'created) = "test_helpers.test_clock.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'deleted) = "test_helpers.test_clock.deleted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'internalFailure) = "test_helpers.test_clock.internal_failure"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'ready) = "test_helpers.test_clock.ready"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'canceled) = "topup.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'created) = "topup.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'failed) = "topup.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'reversed) = "topup.reversed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'succeeded) = "topup.succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'created) = "transfer.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'failed) = "transfer.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'paid) = "transfer.paid"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'reversed) = "transfer.reversed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'updated) = "transfer.updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'creditReversal'created) = "treasury.credit_reversal.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'creditReversal'posted) = "treasury.credit_reversal.posted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'completed) = "treasury.debit_reversal.completed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'created) = "treasury.debit_reversal.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'initialCreditGranted) = "treasury.debit_reversal.initial_credit_granted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'closed) = "treasury.financial_account.closed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'created) = "treasury.financial_account.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'featuresStatusUpdated) = "treasury.financial_account.features_status_updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'canceled) = "treasury.inbound_transfer.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'created) = "treasury.inbound_transfer.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'failed) = "treasury.inbound_transfer.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'succeeded) = "treasury.inbound_transfer.succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'canceled) = "treasury.outbound_payment.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'created) = "treasury.outbound_payment.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'expectedArrivalDateUpdated) = "treasury.outbound_payment.expected_arrival_date_updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'failed) = "treasury.outbound_payment.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'posted) = "treasury.outbound_payment.posted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'returned) = "treasury.outbound_payment.returned"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'canceled) = "treasury.outbound_transfer.canceled"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'created) = "treasury.outbound_transfer.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'expectedArrivalDateUpdated) = "treasury.outbound_transfer.expected_arrival_date_updated"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'failed) = "treasury.outbound_transfer.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'posted) = "treasury.outbound_transfer.posted"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'returned) = "treasury.outbound_transfer.returned"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'created) = "treasury.received_credit.created"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'failed) = "treasury.received_credit.failed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'reversed) = "treasury.received_credit.reversed"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'succeeded) = "treasury.received_credit.succeeded"
  toJSON (PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedDebit'created) = "treasury.received_debit.created"

instance Data.Aeson.Types.FromJSON.FromJSON PostWebhookEndpointsRequestBodyEnabledEvents' where
  parseJSON val =
    GHC.Base.pure
      ( if
            | val GHC.Classes.== "*" -> PostWebhookEndpointsRequestBodyEnabledEvents'Enum_
            | val GHC.Classes.== "account.application.authorized" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'application'authorized
            | val GHC.Classes.== "account.application.deauthorized" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'application'deauthorized
            | val GHC.Classes.== "account.external_account.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'created
            | val GHC.Classes.== "account.external_account.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'deleted
            | val GHC.Classes.== "account.external_account.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'externalAccount'updated
            | val GHC.Classes.== "account.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumAccount'updated
            | val GHC.Classes.== "application_fee.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'created
            | val GHC.Classes.== "application_fee.refund.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'refund'updated
            | val GHC.Classes.== "application_fee.refunded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumApplicationFee'refunded
            | val GHC.Classes.== "balance.available" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumBalance'available
            | val GHC.Classes.== "billing_portal.configuration.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'configuration'created
            | val GHC.Classes.== "billing_portal.configuration.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'configuration'updated
            | val GHC.Classes.== "billing_portal.session.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumBillingPortal'session'created
            | val GHC.Classes.== "capability.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCapability'updated
            | val GHC.Classes.== "cash_balance.funds_available" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCashBalance'fundsAvailable
            | val GHC.Classes.== "charge.captured" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'captured
            | val GHC.Classes.== "charge.dispute.closed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'closed
            | val GHC.Classes.== "charge.dispute.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'created
            | val GHC.Classes.== "charge.dispute.funds_reinstated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'fundsReinstated
            | val GHC.Classes.== "charge.dispute.funds_withdrawn" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'fundsWithdrawn
            | val GHC.Classes.== "charge.dispute.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'dispute'updated
            | val GHC.Classes.== "charge.expired" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'expired
            | val GHC.Classes.== "charge.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'failed
            | val GHC.Classes.== "charge.pending" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'pending
            | val GHC.Classes.== "charge.refund.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'refund'updated
            | val GHC.Classes.== "charge.refunded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'refunded
            | val GHC.Classes.== "charge.succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'succeeded
            | val GHC.Classes.== "charge.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCharge'updated
            | val GHC.Classes.== "checkout.session.async_payment_failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'asyncPaymentFailed
            | val GHC.Classes.== "checkout.session.async_payment_succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'asyncPaymentSucceeded
            | val GHC.Classes.== "checkout.session.completed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'completed
            | val GHC.Classes.== "checkout.session.expired" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCheckout'session'expired
            | val GHC.Classes.== "coupon.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'created
            | val GHC.Classes.== "coupon.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'deleted
            | val GHC.Classes.== "coupon.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCoupon'updated
            | val GHC.Classes.== "credit_note.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'created
            | val GHC.Classes.== "credit_note.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'updated
            | val GHC.Classes.== "credit_note.voided" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCreditNote'voided
            | val GHC.Classes.== "customer.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'created
            | val GHC.Classes.== "customer.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'deleted
            | val GHC.Classes.== "customer.discount.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'created
            | val GHC.Classes.== "customer.discount.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'deleted
            | val GHC.Classes.== "customer.discount.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'discount'updated
            | val GHC.Classes.== "customer.source.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'created
            | val GHC.Classes.== "customer.source.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'deleted
            | val GHC.Classes.== "customer.source.expiring" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'expiring
            | val GHC.Classes.== "customer.source.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'source'updated
            | val GHC.Classes.== "customer.subscription.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'created
            | val GHC.Classes.== "customer.subscription.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'deleted
            | val GHC.Classes.== "customer.subscription.pending_update_applied" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'pendingUpdateApplied
            | val GHC.Classes.== "customer.subscription.pending_update_expired" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'pendingUpdateExpired
            | val GHC.Classes.== "customer.subscription.trial_will_end" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'trialWillEnd
            | val GHC.Classes.== "customer.subscription.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'subscription'updated
            | val GHC.Classes.== "customer.tax_id.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'created
            | val GHC.Classes.== "customer.tax_id.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'deleted
            | val GHC.Classes.== "customer.tax_id.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'taxId'updated
            | val GHC.Classes.== "customer.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumCustomer'updated
            | val GHC.Classes.== "file.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumFile'created
            | val GHC.Classes.== "identity.verification_session.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'canceled
            | val GHC.Classes.== "identity.verification_session.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'created
            | val GHC.Classes.== "identity.verification_session.processing" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'processing
            | val GHC.Classes.== "identity.verification_session.redacted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'redacted
            | val GHC.Classes.== "identity.verification_session.requires_input" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'requiresInput
            | val GHC.Classes.== "identity.verification_session.verified" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIdentity'verificationSession'verified
            | val GHC.Classes.== "invoice.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'created
            | val GHC.Classes.== "invoice.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'deleted
            | val GHC.Classes.== "invoice.finalization_failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'finalizationFailed
            | val GHC.Classes.== "invoice.finalized" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'finalized
            | val GHC.Classes.== "invoice.marked_uncollectible" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'markedUncollectible
            | val GHC.Classes.== "invoice.paid" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paid
            | val GHC.Classes.== "invoice.payment_action_required" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentActionRequired
            | val GHC.Classes.== "invoice.payment_failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentFailed
            | val GHC.Classes.== "invoice.payment_succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'paymentSucceeded
            | val GHC.Classes.== "invoice.sent" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'sent
            | val GHC.Classes.== "invoice.upcoming" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'upcoming
            | val GHC.Classes.== "invoice.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'updated
            | val GHC.Classes.== "invoice.voided" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoice'voided
            | val GHC.Classes.== "invoiceitem.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'created
            | val GHC.Classes.== "invoiceitem.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'deleted
            | val GHC.Classes.== "invoiceitem.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumInvoiceitem'updated
            | val GHC.Classes.== "issuing_authorization.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'created
            | val GHC.Classes.== "issuing_authorization.request" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'request
            | val GHC.Classes.== "issuing_authorization.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingAuthorization'updated
            | val GHC.Classes.== "issuing_card.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCard'created
            | val GHC.Classes.== "issuing_card.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCard'updated
            | val GHC.Classes.== "issuing_cardholder.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCardholder'created
            | val GHC.Classes.== "issuing_cardholder.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingCardholder'updated
            | val GHC.Classes.== "issuing_dispute.closed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'closed
            | val GHC.Classes.== "issuing_dispute.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'created
            | val GHC.Classes.== "issuing_dispute.funds_reinstated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'fundsReinstated
            | val GHC.Classes.== "issuing_dispute.submitted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'submitted
            | val GHC.Classes.== "issuing_dispute.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingDispute'updated
            | val GHC.Classes.== "issuing_transaction.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingTransaction'created
            | val GHC.Classes.== "issuing_transaction.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumIssuingTransaction'updated
            | val GHC.Classes.== "mandate.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumMandate'updated
            | val GHC.Classes.== "order.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'created
            | val GHC.Classes.== "order.payment_failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'paymentFailed
            | val GHC.Classes.== "order.payment_succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'paymentSucceeded
            | val GHC.Classes.== "order.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrder'updated
            | val GHC.Classes.== "order_return.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumOrderReturn'created
            | val GHC.Classes.== "payment_intent.amount_capturable_updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'amountCapturableUpdated
            | val GHC.Classes.== "payment_intent.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'canceled
            | val GHC.Classes.== "payment_intent.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'created
            | val GHC.Classes.== "payment_intent.partially_funded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'partiallyFunded
            | val GHC.Classes.== "payment_intent.payment_failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'paymentFailed
            | val GHC.Classes.== "payment_intent.processing" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'processing
            | val GHC.Classes.== "payment_intent.requires_action" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'requiresAction
            | val GHC.Classes.== "payment_intent.succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentIntent'succeeded
            | val GHC.Classes.== "payment_link.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentLink'created
            | val GHC.Classes.== "payment_link.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentLink'updated
            | val GHC.Classes.== "payment_method.attached" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'attached
            | val GHC.Classes.== "payment_method.automatically_updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'automaticallyUpdated
            | val GHC.Classes.== "payment_method.detached" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'detached
            | val GHC.Classes.== "payment_method.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPaymentMethod'updated
            | val GHC.Classes.== "payout.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'canceled
            | val GHC.Classes.== "payout.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'created
            | val GHC.Classes.== "payout.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'failed
            | val GHC.Classes.== "payout.paid" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'paid
            | val GHC.Classes.== "payout.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPayout'updated
            | val GHC.Classes.== "person.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'created
            | val GHC.Classes.== "person.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'deleted
            | val GHC.Classes.== "person.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPerson'updated
            | val GHC.Classes.== "plan.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'created
            | val GHC.Classes.== "plan.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'deleted
            | val GHC.Classes.== "plan.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPlan'updated
            | val GHC.Classes.== "price.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'created
            | val GHC.Classes.== "price.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'deleted
            | val GHC.Classes.== "price.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPrice'updated
            | val GHC.Classes.== "product.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'created
            | val GHC.Classes.== "product.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'deleted
            | val GHC.Classes.== "product.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumProduct'updated
            | val GHC.Classes.== "promotion_code.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPromotionCode'created
            | val GHC.Classes.== "promotion_code.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumPromotionCode'updated
            | val GHC.Classes.== "quote.accepted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'accepted
            | val GHC.Classes.== "quote.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'canceled
            | val GHC.Classes.== "quote.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'created
            | val GHC.Classes.== "quote.finalized" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumQuote'finalized
            | val GHC.Classes.== "radar.early_fraud_warning.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumRadar'earlyFraudWarning'created
            | val GHC.Classes.== "radar.early_fraud_warning.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumRadar'earlyFraudWarning'updated
            | val GHC.Classes.== "recipient.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'created
            | val GHC.Classes.== "recipient.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'deleted
            | val GHC.Classes.== "recipient.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumRecipient'updated
            | val GHC.Classes.== "reporting.report_run.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportRun'failed
            | val GHC.Classes.== "reporting.report_run.succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportRun'succeeded
            | val GHC.Classes.== "reporting.report_type.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumReporting'reportType'updated
            | val GHC.Classes.== "review.closed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumReview'closed
            | val GHC.Classes.== "review.opened" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumReview'opened
            | val GHC.Classes.== "setup_intent.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'canceled
            | val GHC.Classes.== "setup_intent.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'created
            | val GHC.Classes.== "setup_intent.requires_action" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'requiresAction
            | val GHC.Classes.== "setup_intent.setup_failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'setupFailed
            | val GHC.Classes.== "setup_intent.succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSetupIntent'succeeded
            | val GHC.Classes.== "sigma.scheduled_query_run.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSigma'scheduledQueryRun'created
            | val GHC.Classes.== "sku.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'created
            | val GHC.Classes.== "sku.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'deleted
            | val GHC.Classes.== "sku.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSku'updated
            | val GHC.Classes.== "source.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'canceled
            | val GHC.Classes.== "source.chargeable" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'chargeable
            | val GHC.Classes.== "source.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'failed
            | val GHC.Classes.== "source.mandate_notification" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'mandateNotification
            | val GHC.Classes.== "source.refund_attributes_required" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'refundAttributesRequired
            | val GHC.Classes.== "source.transaction.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'transaction'created
            | val GHC.Classes.== "source.transaction.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSource'transaction'updated
            | val GHC.Classes.== "subscription_schedule.aborted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'aborted
            | val GHC.Classes.== "subscription_schedule.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'canceled
            | val GHC.Classes.== "subscription_schedule.completed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'completed
            | val GHC.Classes.== "subscription_schedule.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'created
            | val GHC.Classes.== "subscription_schedule.expiring" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'expiring
            | val GHC.Classes.== "subscription_schedule.released" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'released
            | val GHC.Classes.== "subscription_schedule.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumSubscriptionSchedule'updated
            | val GHC.Classes.== "tax_rate.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTaxRate'created
            | val GHC.Classes.== "tax_rate.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTaxRate'updated
            | val GHC.Classes.== "terminal.reader.action_failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTerminal'reader'actionFailed
            | val GHC.Classes.== "terminal.reader.action_succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTerminal'reader'actionSucceeded
            | val GHC.Classes.== "test_helpers.test_clock.advancing" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'advancing
            | val GHC.Classes.== "test_helpers.test_clock.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'created
            | val GHC.Classes.== "test_helpers.test_clock.deleted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'deleted
            | val GHC.Classes.== "test_helpers.test_clock.internal_failure" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'internalFailure
            | val GHC.Classes.== "test_helpers.test_clock.ready" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTestHelpers'testClock'ready
            | val GHC.Classes.== "topup.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'canceled
            | val GHC.Classes.== "topup.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'created
            | val GHC.Classes.== "topup.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'failed
            | val GHC.Classes.== "topup.reversed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'reversed
            | val GHC.Classes.== "topup.succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTopup'succeeded
            | val GHC.Classes.== "transfer.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'created
            | val GHC.Classes.== "transfer.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'failed
            | val GHC.Classes.== "transfer.paid" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'paid
            | val GHC.Classes.== "transfer.reversed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'reversed
            | val GHC.Classes.== "transfer.updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTransfer'updated
            | val GHC.Classes.== "treasury.credit_reversal.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'creditReversal'created
            | val GHC.Classes.== "treasury.credit_reversal.posted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'creditReversal'posted
            | val GHC.Classes.== "treasury.debit_reversal.completed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'completed
            | val GHC.Classes.== "treasury.debit_reversal.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'created
            | val GHC.Classes.== "treasury.debit_reversal.initial_credit_granted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'debitReversal'initialCreditGranted
            | val GHC.Classes.== "treasury.financial_account.closed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'closed
            | val GHC.Classes.== "treasury.financial_account.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'created
            | val GHC.Classes.== "treasury.financial_account.features_status_updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'financialAccount'featuresStatusUpdated
            | val GHC.Classes.== "treasury.inbound_transfer.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'canceled
            | val GHC.Classes.== "treasury.inbound_transfer.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'created
            | val GHC.Classes.== "treasury.inbound_transfer.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'failed
            | val GHC.Classes.== "treasury.inbound_transfer.succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'inboundTransfer'succeeded
            | val GHC.Classes.== "treasury.outbound_payment.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'canceled
            | val GHC.Classes.== "treasury.outbound_payment.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'created
            | val GHC.Classes.== "treasury.outbound_payment.expected_arrival_date_updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'expectedArrivalDateUpdated
            | val GHC.Classes.== "treasury.outbound_payment.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'failed
            | val GHC.Classes.== "treasury.outbound_payment.posted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'posted
            | val GHC.Classes.== "treasury.outbound_payment.returned" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundPayment'returned
            | val GHC.Classes.== "treasury.outbound_transfer.canceled" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'canceled
            | val GHC.Classes.== "treasury.outbound_transfer.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'created
            | val GHC.Classes.== "treasury.outbound_transfer.expected_arrival_date_updated" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'expectedArrivalDateUpdated
            | val GHC.Classes.== "treasury.outbound_transfer.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'failed
            | val GHC.Classes.== "treasury.outbound_transfer.posted" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'posted
            | val GHC.Classes.== "treasury.outbound_transfer.returned" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'outboundTransfer'returned
            | val GHC.Classes.== "treasury.received_credit.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'created
            | val GHC.Classes.== "treasury.received_credit.failed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'failed
            | val GHC.Classes.== "treasury.received_credit.reversed" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'reversed
            | val GHC.Classes.== "treasury.received_credit.succeeded" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedCredit'succeeded
            | val GHC.Classes.== "treasury.received_debit.created" -> PostWebhookEndpointsRequestBodyEnabledEvents'EnumTreasury'receivedDebit'created
            | GHC.Base.otherwise -> PostWebhookEndpointsRequestBodyEnabledEvents'Other val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/webhook_endpoints.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.metadata.anyOf@ in the specification.
--
-- Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
data PostWebhookEndpointsRequestBodyMetadata'Variants
  = -- | Represents the JSON value @""@
    PostWebhookEndpointsRequestBodyMetadata'EmptyString
  | PostWebhookEndpointsRequestBodyMetadata'Object Data.Aeson.Types.Internal.Object
  deriving (GHC.Show.Show, GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostWebhookEndpointsRequestBodyMetadata'Variants where
  toJSON (PostWebhookEndpointsRequestBodyMetadata'Object a) = Data.Aeson.Types.ToJSON.toJSON a
  toJSON (PostWebhookEndpointsRequestBodyMetadata'EmptyString) = ""

instance Data.Aeson.Types.FromJSON.FromJSON PostWebhookEndpointsRequestBodyMetadata'Variants where
  parseJSON val =
    if
        | val GHC.Classes.== "" -> GHC.Base.pure PostWebhookEndpointsRequestBodyMetadata'EmptyString
        | GHC.Base.otherwise -> case (PostWebhookEndpointsRequestBodyMetadata'Object Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched" of
          Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a
          Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a

-- | Represents a response of the operation 'postWebhookEndpoints'.
--
-- The response constructor is chosen by the status code of the response. If no case matches (no specific case for the response code, no range case, no default case), 'PostWebhookEndpointsResponseError' is used.
data PostWebhookEndpointsResponse
  = -- | Means either no matching case available or a parse error
    PostWebhookEndpointsResponseError GHC.Base.String
  | -- | Successful response.
    PostWebhookEndpointsResponse200 WebhookEndpoint
  | -- | Error response.
    PostWebhookEndpointsResponseDefault Error
  deriving (GHC.Show.Show, GHC.Classes.Eq)