amazonka-finspace-2.0: gen/Amazonka/FinSpace/Types/FederationParameters.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.FinSpace.Types.FederationParameters
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.FinSpace.Types.FederationParameters where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
-- | Configuration information when authentication mode is FEDERATED.
--
-- /See:/ 'newFederationParameters' smart constructor.
data FederationParameters = FederationParameters'
{ -- | The redirect or sign-in URL that should be entered into the SAML 2.0
-- compliant identity provider configuration (IdP).
applicationCallBackURL :: Prelude.Maybe Prelude.Text,
-- | SAML attribute name and value. The name must always be @Email@ and the
-- value should be set to the attribute definition in which user email is
-- set. For example, name would be @Email@ and value
-- @http:\/\/schemas.xmlsoap.org\/ws\/2005\/05\/identity\/claims\/emailaddress@.
-- Please check your SAML 2.0 compliant identity provider (IdP)
-- documentation for details.
attributeMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
-- | Name of the identity provider (IdP).
federationProviderName :: Prelude.Maybe Prelude.Text,
-- | The Uniform Resource Name (URN). Also referred as Service Provider URN
-- or Audience URI or Service Provider Entity ID.
federationURN :: Prelude.Maybe Prelude.Text,
-- | SAML 2.0 Metadata document from identity provider (IdP).
samlMetadataDocument :: Prelude.Maybe Prelude.Text,
-- | Provide the metadata URL from your SAML 2.0 compliant identity provider
-- (IdP).
samlMetadataURL :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'FederationParameters' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'applicationCallBackURL', 'federationParameters_applicationCallBackURL' - The redirect or sign-in URL that should be entered into the SAML 2.0
-- compliant identity provider configuration (IdP).
--
-- 'attributeMap', 'federationParameters_attributeMap' - SAML attribute name and value. The name must always be @Email@ and the
-- value should be set to the attribute definition in which user email is
-- set. For example, name would be @Email@ and value
-- @http:\/\/schemas.xmlsoap.org\/ws\/2005\/05\/identity\/claims\/emailaddress@.
-- Please check your SAML 2.0 compliant identity provider (IdP)
-- documentation for details.
--
-- 'federationProviderName', 'federationParameters_federationProviderName' - Name of the identity provider (IdP).
--
-- 'federationURN', 'federationParameters_federationURN' - The Uniform Resource Name (URN). Also referred as Service Provider URN
-- or Audience URI or Service Provider Entity ID.
--
-- 'samlMetadataDocument', 'federationParameters_samlMetadataDocument' - SAML 2.0 Metadata document from identity provider (IdP).
--
-- 'samlMetadataURL', 'federationParameters_samlMetadataURL' - Provide the metadata URL from your SAML 2.0 compliant identity provider
-- (IdP).
newFederationParameters ::
FederationParameters
newFederationParameters =
FederationParameters'
{ applicationCallBackURL =
Prelude.Nothing,
attributeMap = Prelude.Nothing,
federationProviderName = Prelude.Nothing,
federationURN = Prelude.Nothing,
samlMetadataDocument = Prelude.Nothing,
samlMetadataURL = Prelude.Nothing
}
-- | The redirect or sign-in URL that should be entered into the SAML 2.0
-- compliant identity provider configuration (IdP).
federationParameters_applicationCallBackURL :: Lens.Lens' FederationParameters (Prelude.Maybe Prelude.Text)
federationParameters_applicationCallBackURL = Lens.lens (\FederationParameters' {applicationCallBackURL} -> applicationCallBackURL) (\s@FederationParameters' {} a -> s {applicationCallBackURL = a} :: FederationParameters)
-- | SAML attribute name and value. The name must always be @Email@ and the
-- value should be set to the attribute definition in which user email is
-- set. For example, name would be @Email@ and value
-- @http:\/\/schemas.xmlsoap.org\/ws\/2005\/05\/identity\/claims\/emailaddress@.
-- Please check your SAML 2.0 compliant identity provider (IdP)
-- documentation for details.
federationParameters_attributeMap :: Lens.Lens' FederationParameters (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
federationParameters_attributeMap = Lens.lens (\FederationParameters' {attributeMap} -> attributeMap) (\s@FederationParameters' {} a -> s {attributeMap = a} :: FederationParameters) Prelude.. Lens.mapping Lens.coerced
-- | Name of the identity provider (IdP).
federationParameters_federationProviderName :: Lens.Lens' FederationParameters (Prelude.Maybe Prelude.Text)
federationParameters_federationProviderName = Lens.lens (\FederationParameters' {federationProviderName} -> federationProviderName) (\s@FederationParameters' {} a -> s {federationProviderName = a} :: FederationParameters)
-- | The Uniform Resource Name (URN). Also referred as Service Provider URN
-- or Audience URI or Service Provider Entity ID.
federationParameters_federationURN :: Lens.Lens' FederationParameters (Prelude.Maybe Prelude.Text)
federationParameters_federationURN = Lens.lens (\FederationParameters' {federationURN} -> federationURN) (\s@FederationParameters' {} a -> s {federationURN = a} :: FederationParameters)
-- | SAML 2.0 Metadata document from identity provider (IdP).
federationParameters_samlMetadataDocument :: Lens.Lens' FederationParameters (Prelude.Maybe Prelude.Text)
federationParameters_samlMetadataDocument = Lens.lens (\FederationParameters' {samlMetadataDocument} -> samlMetadataDocument) (\s@FederationParameters' {} a -> s {samlMetadataDocument = a} :: FederationParameters)
-- | Provide the metadata URL from your SAML 2.0 compliant identity provider
-- (IdP).
federationParameters_samlMetadataURL :: Lens.Lens' FederationParameters (Prelude.Maybe Prelude.Text)
federationParameters_samlMetadataURL = Lens.lens (\FederationParameters' {samlMetadataURL} -> samlMetadataURL) (\s@FederationParameters' {} a -> s {samlMetadataURL = a} :: FederationParameters)
instance Data.FromJSON FederationParameters where
parseJSON =
Data.withObject
"FederationParameters"
( \x ->
FederationParameters'
Prelude.<$> (x Data..:? "applicationCallBackURL")
Prelude.<*> (x Data..:? "attributeMap" Data..!= Prelude.mempty)
Prelude.<*> (x Data..:? "federationProviderName")
Prelude.<*> (x Data..:? "federationURN")
Prelude.<*> (x Data..:? "samlMetadataDocument")
Prelude.<*> (x Data..:? "samlMetadataURL")
)
instance Prelude.Hashable FederationParameters where
hashWithSalt _salt FederationParameters' {..} =
_salt
`Prelude.hashWithSalt` applicationCallBackURL
`Prelude.hashWithSalt` attributeMap
`Prelude.hashWithSalt` federationProviderName
`Prelude.hashWithSalt` federationURN
`Prelude.hashWithSalt` samlMetadataDocument
`Prelude.hashWithSalt` samlMetadataURL
instance Prelude.NFData FederationParameters where
rnf FederationParameters' {..} =
Prelude.rnf applicationCallBackURL
`Prelude.seq` Prelude.rnf attributeMap
`Prelude.seq` Prelude.rnf federationProviderName
`Prelude.seq` Prelude.rnf federationURN
`Prelude.seq` Prelude.rnf samlMetadataDocument
`Prelude.seq` Prelude.rnf samlMetadataURL
instance Data.ToJSON FederationParameters where
toJSON FederationParameters' {..} =
Data.object
( Prelude.catMaybes
[ ("applicationCallBackURL" Data..=)
Prelude.<$> applicationCallBackURL,
("attributeMap" Data..=) Prelude.<$> attributeMap,
("federationProviderName" Data..=)
Prelude.<$> federationProviderName,
("federationURN" Data..=) Prelude.<$> federationURN,
("samlMetadataDocument" Data..=)
Prelude.<$> samlMetadataDocument,
("samlMetadataURL" Data..=)
Prelude.<$> samlMetadataURL
]
)