{-# 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 types generated from the schema Apps_Secret module StripeAPI.Types.Apps_Secret where import qualified Control.Monad.Fail 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.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 GHC.Base import qualified GHC.Classes import qualified GHC.Int import qualified GHC.Show import qualified GHC.Types import qualified StripeAPI.Common import StripeAPI.TypeAlias import {-# SOURCE #-} StripeAPI.Types.SecretServiceResourceScope import qualified Prelude as GHC.Integer.Type import qualified Prelude as GHC.Maybe -- | Defines the object schema located at @components.schemas.apps.secret@ in the specification. -- -- Secret Store is an API that allows Stripe Apps developers to securely persist secrets for use by UI Extensions and app backends. -- -- The primary resource in Secret Store is a \`secret\`. Other apps can\'t view secrets created by an app. Additionally, secrets are scoped to provide further permission control. -- -- All Dashboard users and the app backend share \`account\` scoped secrets. Use the \`account\` scope for secrets that don\'t change per-user, like a third-party API key. -- -- A \`user\` scoped secret is accessible by the app backend and one specific Dashboard user. Use the \`user\` scope for per-user secrets like per-user OAuth tokens, where different users might have different permissions. -- -- Related guide: [Store data between page reloads](https:\/\/stripe.com\/docs\/stripe-apps\/store-auth-data-custom-objects). data Apps'secret = Apps'secret { -- | created: Time at which the object was created. Measured in seconds since the Unix epoch. apps'secretCreated :: GHC.Types.Int, -- | deleted: If true, indicates that this secret has been deleted apps'secretDeleted :: (GHC.Maybe.Maybe GHC.Types.Bool), -- | id: Unique identifier for the object. -- -- Constraints: -- -- * Maximum length of 5000 apps'secretId :: Data.Text.Internal.Text, -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode. apps'secretLivemode :: GHC.Types.Bool, -- | name: A name for the secret that\'s unique within the scope. -- -- Constraints: -- -- * Maximum length of 5000 apps'secretName :: Data.Text.Internal.Text, -- | payload: The plaintext secret value to be stored. -- -- Constraints: -- -- * Maximum length of 5000 apps'secretPayload :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable Data.Text.Internal.Text)), -- | scope: apps'secretScope :: SecretServiceResourceScope } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Apps'secret where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (["created" Data.Aeson.Types.ToJSON..= apps'secretCreated obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("deleted" Data.Aeson.Types.ToJSON..=)) (apps'secretDeleted obj) : ["id" Data.Aeson.Types.ToJSON..= apps'secretId obj] : ["livemode" Data.Aeson.Types.ToJSON..= apps'secretLivemode obj] : ["name" Data.Aeson.Types.ToJSON..= apps'secretName obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("payload" Data.Aeson.Types.ToJSON..=)) (apps'secretPayload obj) : ["scope" Data.Aeson.Types.ToJSON..= apps'secretScope obj] : ["object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "apps.secret"] : GHC.Base.mempty)) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (GHC.Base.mconcat (Data.Foldable.concat (["created" Data.Aeson.Types.ToJSON..= apps'secretCreated obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("deleted" Data.Aeson.Types.ToJSON..=)) (apps'secretDeleted obj) : ["id" Data.Aeson.Types.ToJSON..= apps'secretId obj] : ["livemode" Data.Aeson.Types.ToJSON..= apps'secretLivemode obj] : ["name" Data.Aeson.Types.ToJSON..= apps'secretName obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("payload" Data.Aeson.Types.ToJSON..=)) (apps'secretPayload obj) : ["scope" Data.Aeson.Types.ToJSON..= apps'secretScope obj] : ["object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "apps.secret"] : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON Apps'secret where parseJSON = Data.Aeson.Types.FromJSON.withObject "Apps'secret" (\obj -> ((((((GHC.Base.pure Apps'secret GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "deleted")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "payload")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "scope")) -- | Create a new 'Apps'secret' with all required fields. mkApps'secret :: -- | 'apps'secretCreated' GHC.Types.Int -> -- | 'apps'secretId' Data.Text.Internal.Text -> -- | 'apps'secretLivemode' GHC.Types.Bool -> -- | 'apps'secretName' Data.Text.Internal.Text -> -- | 'apps'secretScope' SecretServiceResourceScope -> Apps'secret mkApps'secret apps'secretCreated apps'secretId apps'secretLivemode apps'secretName apps'secretScope = Apps'secret { apps'secretCreated = apps'secretCreated, apps'secretDeleted = GHC.Maybe.Nothing, apps'secretId = apps'secretId, apps'secretLivemode = apps'secretLivemode, apps'secretName = apps'secretName, apps'secretPayload = GHC.Maybe.Nothing, apps'secretScope = apps'secretScope }