{-# 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 postBillingPortalConfigurations module StripeAPI.Operations.PostBillingPortalConfigurations 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.Functor 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/billing_portal/configurations -- -- \

Creates a configuration that describes the functionality and behavior of a PortalSession\<\/p> postBillingPortalConfigurations :: forall m. StripeAPI.Common.MonadHTTP m => -- | The request body to send PostBillingPortalConfigurationsRequestBody -> -- | Monadic computation which returns the result of the operation StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostBillingPortalConfigurationsResponse) postBillingPortalConfigurations body = GHC.Base.fmap ( \response_0 -> GHC.Base.fmap ( Data.Either.either PostBillingPortalConfigurationsResponseError 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) -> PostBillingPortalConfigurationsResponse200 Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body :: Data.Either.Either GHC.Base.String BillingPortal'configuration ) | GHC.Base.const GHC.Types.True (Network.HTTP.Client.Types.responseStatus response) -> PostBillingPortalConfigurationsResponseDefault 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/billing_portal/configurations") GHC.Base.mempty (GHC.Maybe.Just body) StripeAPI.Common.RequestBodyEncodingFormData) -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification. data PostBillingPortalConfigurationsRequestBody = PostBillingPortalConfigurationsRequestBody { -- | business_profile: The business information shown to customers in the portal. postBillingPortalConfigurationsRequestBodyBusinessProfile :: PostBillingPortalConfigurationsRequestBodyBusinessProfile', -- | default_return_url: The default URL to redirect customers to when they click on the portal\'s link to return to your website. This can be [overriden](https:\/\/stripe.com\/docs\/api\/customer_portal\/sessions\/create\#create_portal_session-return_url) when creating the session. postBillingPortalConfigurationsRequestBodyDefaultReturnUrl :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'Variants), -- | expand: Specifies which fields in the response should be expanded. postBillingPortalConfigurationsRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])), -- | features: Information about the features available in the portal. postBillingPortalConfigurationsRequestBodyFeatures :: PostBillingPortalConfigurationsRequestBodyFeatures' } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBody where toJSON obj = Data.Aeson.Types.Internal.object ("business_profile" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile obj : "default_return_url" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyDefaultReturnUrl obj : "expand" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyExpand obj : "features" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("business_profile" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile obj) GHC.Base.<> (("default_return_url" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyDefaultReturnUrl obj) GHC.Base.<> (("expand" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyExpand obj) GHC.Base.<> ("features" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures obj)))) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBody where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBody" (\obj -> (((GHC.Base.pure PostBillingPortalConfigurationsRequestBody GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "business_profile")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_return_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "expand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "features")) -- | Create a new 'PostBillingPortalConfigurationsRequestBody' with all required fields. mkPostBillingPortalConfigurationsRequestBody :: -- | 'postBillingPortalConfigurationsRequestBodyBusinessProfile' PostBillingPortalConfigurationsRequestBodyBusinessProfile' -> -- | 'postBillingPortalConfigurationsRequestBodyFeatures' PostBillingPortalConfigurationsRequestBodyFeatures' -> PostBillingPortalConfigurationsRequestBody mkPostBillingPortalConfigurationsRequestBody postBillingPortalConfigurationsRequestBodyBusinessProfile postBillingPortalConfigurationsRequestBodyFeatures = PostBillingPortalConfigurationsRequestBody { postBillingPortalConfigurationsRequestBodyBusinessProfile = postBillingPortalConfigurationsRequestBodyBusinessProfile, postBillingPortalConfigurationsRequestBodyDefaultReturnUrl = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyExpand = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyFeatures = postBillingPortalConfigurationsRequestBodyFeatures } -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.business_profile@ in the specification. -- -- The business information shown to customers in the portal. data PostBillingPortalConfigurationsRequestBodyBusinessProfile' = PostBillingPortalConfigurationsRequestBodyBusinessProfile' { -- | headline -- -- Constraints: -- -- * Maximum length of 60 postBillingPortalConfigurationsRequestBodyBusinessProfile'Headline :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | privacy_policy_url postBillingPortalConfigurationsRequestBodyBusinessProfile'PrivacyPolicyUrl :: Data.Text.Internal.Text, -- | terms_of_service_url postBillingPortalConfigurationsRequestBodyBusinessProfile'TermsOfServiceUrl :: Data.Text.Internal.Text } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyBusinessProfile' where toJSON obj = Data.Aeson.Types.Internal.object ("headline" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile'Headline obj : "privacy_policy_url" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile'PrivacyPolicyUrl obj : "terms_of_service_url" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile'TermsOfServiceUrl obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("headline" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile'Headline obj) GHC.Base.<> (("privacy_policy_url" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile'PrivacyPolicyUrl obj) GHC.Base.<> ("terms_of_service_url" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyBusinessProfile'TermsOfServiceUrl obj))) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyBusinessProfile' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyBusinessProfile'" (\obj -> ((GHC.Base.pure PostBillingPortalConfigurationsRequestBodyBusinessProfile' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "headline")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "privacy_policy_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "terms_of_service_url")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyBusinessProfile'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyBusinessProfile' :: -- | 'postBillingPortalConfigurationsRequestBodyBusinessProfile'PrivacyPolicyUrl' Data.Text.Internal.Text -> -- | 'postBillingPortalConfigurationsRequestBodyBusinessProfile'TermsOfServiceUrl' Data.Text.Internal.Text -> PostBillingPortalConfigurationsRequestBodyBusinessProfile' mkPostBillingPortalConfigurationsRequestBodyBusinessProfile' postBillingPortalConfigurationsRequestBodyBusinessProfile'PrivacyPolicyUrl postBillingPortalConfigurationsRequestBodyBusinessProfile'TermsOfServiceUrl = PostBillingPortalConfigurationsRequestBodyBusinessProfile' { postBillingPortalConfigurationsRequestBodyBusinessProfile'Headline = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyBusinessProfile'PrivacyPolicyUrl = postBillingPortalConfigurationsRequestBodyBusinessProfile'PrivacyPolicyUrl, postBillingPortalConfigurationsRequestBodyBusinessProfile'TermsOfServiceUrl = postBillingPortalConfigurationsRequestBodyBusinessProfile'TermsOfServiceUrl } -- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_return_url.anyOf@ in the specification. -- -- The default URL to redirect customers to when they click on the portal\'s link to return to your website. This can be [overriden](https:\/\/stripe.com\/docs\/api\/customer_portal\/sessions\/create\#create_portal_session-return_url) when creating the session. data PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'Variants = -- | Represents the JSON value @""@ PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'EmptyString | PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'Text Data.Text.Internal.Text deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'Variants where toJSON (PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'EmptyString) = "" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'Variants where parseJSON val = if | val GHC.Classes.== "" -> GHC.Base.pure PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'EmptyString | GHC.Base.otherwise -> case (PostBillingPortalConfigurationsRequestBodyDefaultReturnUrl'Text 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 -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features@ in the specification. -- -- Information about the features available in the portal. data PostBillingPortalConfigurationsRequestBodyFeatures' = PostBillingPortalConfigurationsRequestBodyFeatures' { -- | customer_update postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'), -- | invoice_history postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'), -- | payment_method_update postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'), -- | subscription_cancel postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'), -- | subscription_pause postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause'), -- | subscription_update postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate') } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures' where toJSON obj = Data.Aeson.Types.Internal.object ("customer_update" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate obj : "invoice_history" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory obj : "payment_method_update" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate obj : "subscription_cancel" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel obj : "subscription_pause" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause obj : "subscription_update" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("customer_update" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate obj) GHC.Base.<> (("invoice_history" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory obj) GHC.Base.<> (("payment_method_update" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate obj) GHC.Base.<> (("subscription_cancel" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel obj) GHC.Base.<> (("subscription_pause" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause obj) GHC.Base.<> ("subscription_update" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate obj)))))) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'" (\obj -> (((((GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_update")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice_history")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method_update")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_cancel")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_pause")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_update")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures' :: PostBillingPortalConfigurationsRequestBodyFeatures' mkPostBillingPortalConfigurationsRequestBodyFeatures' = PostBillingPortalConfigurationsRequestBodyFeatures' { postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate = GHC.Maybe.Nothing } -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.customer_update@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' = PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' { -- | allowed_updates postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates :: PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants, -- | enabled postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'Enabled :: GHC.Types.Bool } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' where toJSON obj = Data.Aeson.Types.Internal.object ("allowed_updates" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates obj : "enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'Enabled obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("allowed_updates" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates obj) GHC.Base.<> ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'Enabled obj)) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'" (\obj -> (GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "allowed_updates")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "enabled")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' :: -- | 'postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates' PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants -> -- | 'postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'Enabled' GHC.Types.Bool -> PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' mkPostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'Enabled = PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate' { postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates = postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates, postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'Enabled = postBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'Enabled } -- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.customer_update.properties.allowed_updates.anyOf.items@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Typed Data.Text.Internal.Text | -- | Represents the JSON value @"address"@ PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumAddress | -- | Represents the JSON value @"email"@ PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumEmail | -- | Represents the JSON value @"phone"@ PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumPhone | -- | Represents the JSON value @"shipping"@ PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumShipping | -- | Represents the JSON value @"tax_id"@ PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumTaxId deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Other val) = val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumAddress) = "address" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumEmail) = "email" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumPhone) = "phone" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumShipping) = "shipping" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumTaxId) = "tax_id" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "address" -> PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumAddress | val GHC.Classes.== "email" -> PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumEmail | val GHC.Classes.== "phone" -> PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumPhone | val GHC.Classes.== "shipping" -> PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumShipping | val GHC.Classes.== "tax_id" -> PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumTaxId | GHC.Base.otherwise -> PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Other val ) -- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.customer_update.properties.allowed_updates.anyOf@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants = -- | Represents the JSON value @""@ PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'EmptyString | PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'ListTPostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 ([PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]) deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'ListTPostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'EmptyString) = "" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants where parseJSON val = if | val GHC.Classes.== "" -> GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'EmptyString | GHC.Base.otherwise -> case (PostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'ListTPostBillingPortalConfigurationsRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 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 -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.invoice_history@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' = PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' { -- | enabled postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'Enabled :: GHC.Types.Bool } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' where toJSON obj = Data.Aeson.Types.Internal.object ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'Enabled obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'Enabled obj) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'" (\obj -> GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "enabled")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' :: -- | 'postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'Enabled' GHC.Types.Bool -> PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' mkPostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'Enabled = PostBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory' {postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'Enabled = postBillingPortalConfigurationsRequestBodyFeatures'InvoiceHistory'Enabled} -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.payment_method_update@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' = PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' { -- | enabled postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'Enabled :: GHC.Types.Bool } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' where toJSON obj = Data.Aeson.Types.Internal.object ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'Enabled obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'Enabled obj) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'" (\obj -> GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "enabled")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' :: -- | 'postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'Enabled' GHC.Types.Bool -> PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' mkPostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'Enabled = PostBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate' {postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'Enabled = postBillingPortalConfigurationsRequestBodyFeatures'PaymentMethodUpdate'Enabled} -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_cancel@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' { -- | enabled postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Enabled :: GHC.Types.Bool, -- | mode postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'), -- | proration_behavior postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior') } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' where toJSON obj = Data.Aeson.Types.Internal.object ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Enabled obj : "mode" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode obj : "proration_behavior" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Enabled obj) GHC.Base.<> (("mode" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode obj) GHC.Base.<> ("proration_behavior" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior obj))) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'" (\obj -> ((GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "proration_behavior")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' :: -- | 'postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Enabled' GHC.Types.Bool -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Enabled = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel' { postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Enabled = postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Enabled, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode = GHC.Maybe.Nothing, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior = GHC.Maybe.Nothing } -- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_cancel.properties.mode@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'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. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"at_period_end"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'EnumAtPeriodEnd | -- | Represents the JSON value @"immediately"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'EnumImmediately deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode' where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'Other val) = val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'EnumAtPeriodEnd) = "at_period_end" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'EnumImmediately) = "immediately" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "at_period_end" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'EnumAtPeriodEnd | val GHC.Classes.== "immediately" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'EnumImmediately | GHC.Base.otherwise -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'Mode'Other val ) -- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_cancel.properties.proration_behavior@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'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. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"always_invoice"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumAlwaysInvoice | -- | Represents the JSON value @"create_prorations"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumCreateProrations | -- | Represents the JSON value @"none"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumNone deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior' where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'Other val) = val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumAlwaysInvoice) = "always_invoice" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumCreateProrations) = "create_prorations" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumNone) = "none" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "always_invoice" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumAlwaysInvoice | val GHC.Classes.== "create_prorations" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumCreateProrations | val GHC.Classes.== "none" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumNone | GHC.Base.otherwise -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'Other val ) -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_pause@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' { -- | enabled postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause'Enabled :: (GHC.Maybe.Maybe GHC.Types.Bool) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' where toJSON obj = Data.Aeson.Types.Internal.object ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause'Enabled obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs ("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause'Enabled obj) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause'" (\obj -> GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "enabled")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' :: PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause' {postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionPause'Enabled = GHC.Maybe.Nothing} -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' { -- | default_allowed_updates postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates :: PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants, -- | enabled postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Enabled :: GHC.Types.Bool, -- | products postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products :: PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'Variants, -- | proration_behavior postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior') } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' where toJSON obj = Data.Aeson.Types.Internal.object ("default_allowed_updates" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates obj : "enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Enabled obj : "products" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products obj : "proration_behavior" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("default_allowed_updates" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates obj) GHC.Base.<> (("enabled" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Enabled obj) GHC.Base.<> (("products" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products obj) GHC.Base.<> ("proration_behavior" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior obj)))) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'" (\obj -> (((GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "default_allowed_updates")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "products")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "proration_behavior")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' :: -- | 'postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates' PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants -> -- | 'postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Enabled' GHC.Types.Bool -> -- | 'postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products' PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'Variants -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Enabled postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate' { postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates = postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Enabled = postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Enabled, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products = postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior = GHC.Maybe.Nothing } -- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.default_allowed_updates.anyOf.items@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Typed Data.Text.Internal.Text | -- | Represents the JSON value @"price"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPrice | -- | Represents the JSON value @"promotion_code"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPromotionCode | -- | Represents the JSON value @"quantity"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumQuantity deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Other val) = val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPrice) = "price" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPromotionCode) = "promotion_code" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumQuantity) = "quantity" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "price" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPrice | val GHC.Classes.== "promotion_code" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPromotionCode | val GHC.Classes.== "quantity" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumQuantity | GHC.Base.otherwise -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Other val ) -- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.default_allowed_updates.anyOf@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants = -- | Represents the JSON value @""@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'EmptyString | PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'ListTPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 ([PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]) deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'ListTPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'EmptyString) = "" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants where parseJSON val = if | val GHC.Classes.== "" -> GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'EmptyString | GHC.Base.otherwise -> case (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'ListTPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 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 -- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.products.anyOf.items@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 { -- | prices postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices :: ([Data.Text.Internal.Text]), -- | product -- -- Constraints: -- -- * Maximum length of 5000 postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product :: Data.Text.Internal.Text } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 where toJSON obj = Data.Aeson.Types.Internal.object ("prices" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices obj : "product" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("prices" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices obj) GHC.Base.<> ("product" Data.Aeson.Types.ToJSON..= postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product obj)) instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1" (\obj -> (GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "prices")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "product")) -- | Create a new 'PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1' with all required fields. mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 :: -- | 'postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices' [Data.Text.Internal.Text] -> -- | 'postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product' Data.Text.Internal.Text -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 mkPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product = PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 { postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices = postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices, postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product = postBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product } -- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.products.anyOf@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'Variants = -- | Represents the JSON value @""@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'EmptyString | PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'ListTPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 ([PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]) deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'Variants where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'ListTPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'EmptyString) = "" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'Variants where parseJSON val = if | val GHC.Classes.== "" -> GHC.Base.pure PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'EmptyString | GHC.Base.otherwise -> case (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'ListTPostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 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 -- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.proration_behavior@ in the specification. data PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'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. PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"always_invoice"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumAlwaysInvoice | -- | Represents the JSON value @"create_prorations"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumCreateProrations | -- | Represents the JSON value @"none"@ PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumNone deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior' where toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'Other val) = val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumAlwaysInvoice) = "always_invoice" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumCreateProrations) = "create_prorations" toJSON (PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumNone) = "none" instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "always_invoice" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumAlwaysInvoice | val GHC.Classes.== "create_prorations" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumCreateProrations | val GHC.Classes.== "none" -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumNone | GHC.Base.otherwise -> PostBillingPortalConfigurationsRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'Other val ) -- | Represents a response of the operation 'postBillingPortalConfigurations'. -- -- 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), 'PostBillingPortalConfigurationsResponseError' is used. data PostBillingPortalConfigurationsResponse = -- | Means either no matching case available or a parse error PostBillingPortalConfigurationsResponseError GHC.Base.String | -- | Successful response. PostBillingPortalConfigurationsResponse200 BillingPortal'configuration | -- | Error response. PostBillingPortalConfigurationsResponseDefault Error deriving (GHC.Show.Show, GHC.Classes.Eq)