packages feed

amazonka-pinpoint-2.0: gen/Amazonka/Pinpoint/Types/RecommenderConfigurationResponse.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.Pinpoint.Types.RecommenderConfigurationResponse
-- 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.Pinpoint.Types.RecommenderConfigurationResponse 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

-- | Provides information about Amazon Pinpoint configuration settings for
-- retrieving and processing data from a recommender model.
--
-- /See:/ 'newRecommenderConfigurationResponse' smart constructor.
data RecommenderConfigurationResponse = RecommenderConfigurationResponse'
  { -- | A map that defines 1-10 custom endpoint or user attributes, depending on
    -- the value for the RecommendationProviderIdType property. Each of these
    -- attributes temporarily stores a recommended item that\'s retrieved from
    -- the recommender model and sent to an AWS Lambda function for additional
    -- processing. Each attribute can be used as a message variable in a
    -- message template.
    --
    -- This value is null if the configuration doesn\'t invoke an AWS Lambda
    -- function (RecommendationTransformerUri) to perform additional processing
    -- of recommendation data.
    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The custom description of the configuration for the recommender model.
    description :: Prelude.Maybe Prelude.Text,
    -- | The custom name of the configuration for the recommender model.
    name :: Prelude.Maybe Prelude.Text,
    -- | The type of Amazon Pinpoint ID that\'s associated with unique user IDs
    -- in the recommender model. This value enables the model to use attribute
    -- and event data that’s specific to a particular endpoint or user in an
    -- Amazon Pinpoint application. Possible values are:
    --
    -- -   PINPOINT_ENDPOINT_ID - Each user in the model is associated with a
    --     particular endpoint in Amazon Pinpoint. The data is correlated based
    --     on endpoint IDs in Amazon Pinpoint. This is the default value.
    --
    -- -   PINPOINT_USER_ID - Each user in the model is associated with a
    --     particular user and endpoint in Amazon Pinpoint. The data is
    --     correlated based on user IDs in Amazon Pinpoint. If this value is
    --     specified, an endpoint definition in Amazon Pinpoint has to specify
    --     both a user ID (UserId) and an endpoint ID. Otherwise, messages
    --     won’t be sent to the user\'s endpoint.
    recommendationProviderIdType :: Prelude.Maybe Prelude.Text,
    -- | The name or Amazon Resource Name (ARN) of the AWS Lambda function that
    -- Amazon Pinpoint invokes to perform additional processing of
    -- recommendation data that it retrieves from the recommender model.
    recommendationTransformerUri :: Prelude.Maybe Prelude.Text,
    -- | The custom display name for the standard endpoint or user attribute
    -- (RecommendationItems) that temporarily stores recommended items for each
    -- endpoint or user, depending on the value for the
    -- RecommendationProviderIdType property. This name appears in the
    -- __Attribute finder__ of the template editor on the Amazon Pinpoint
    -- console.
    --
    -- This value is null if the configuration doesn\'t invoke an AWS Lambda
    -- function (RecommendationTransformerUri) to perform additional processing
    -- of recommendation data.
    recommendationsDisplayName :: Prelude.Maybe Prelude.Text,
    -- | The number of recommended items that are retrieved from the model for
    -- each endpoint or user, depending on the value for the
    -- RecommendationProviderIdType property. This number determines how many
    -- recommended items are available for use in message variables.
    recommendationsPerMessage :: Prelude.Maybe Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the recommender model that Amazon
    -- Pinpoint retrieves the recommendation data from. This value is the ARN
    -- of an Amazon Personalize campaign.
    recommendationProviderUri :: Prelude.Text,
    -- | The date, in extended ISO 8601 format, when the configuration for the
    -- recommender model was last modified.
    lastModifiedDate :: Prelude.Text,
    -- | The date, in extended ISO 8601 format, when the configuration was
    -- created for the recommender model.
    creationDate :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the AWS Identity and Access Management
    -- (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation
    -- data from the recommender model.
    recommendationProviderRoleArn :: Prelude.Text,
    -- | The unique identifier for the recommender model configuration.
    id :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'RecommenderConfigurationResponse' 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:
--
-- 'attributes', 'recommenderConfigurationResponse_attributes' - A map that defines 1-10 custom endpoint or user attributes, depending on
-- the value for the RecommendationProviderIdType property. Each of these
-- attributes temporarily stores a recommended item that\'s retrieved from
-- the recommender model and sent to an AWS Lambda function for additional
-- processing. Each attribute can be used as a message variable in a
-- message template.
--
-- This value is null if the configuration doesn\'t invoke an AWS Lambda
-- function (RecommendationTransformerUri) to perform additional processing
-- of recommendation data.
--
-- 'description', 'recommenderConfigurationResponse_description' - The custom description of the configuration for the recommender model.
--
-- 'name', 'recommenderConfigurationResponse_name' - The custom name of the configuration for the recommender model.
--
-- 'recommendationProviderIdType', 'recommenderConfigurationResponse_recommendationProviderIdType' - The type of Amazon Pinpoint ID that\'s associated with unique user IDs
-- in the recommender model. This value enables the model to use attribute
-- and event data that’s specific to a particular endpoint or user in an
-- Amazon Pinpoint application. Possible values are:
--
-- -   PINPOINT_ENDPOINT_ID - Each user in the model is associated with a
--     particular endpoint in Amazon Pinpoint. The data is correlated based
--     on endpoint IDs in Amazon Pinpoint. This is the default value.
--
-- -   PINPOINT_USER_ID - Each user in the model is associated with a
--     particular user and endpoint in Amazon Pinpoint. The data is
--     correlated based on user IDs in Amazon Pinpoint. If this value is
--     specified, an endpoint definition in Amazon Pinpoint has to specify
--     both a user ID (UserId) and an endpoint ID. Otherwise, messages
--     won’t be sent to the user\'s endpoint.
--
-- 'recommendationTransformerUri', 'recommenderConfigurationResponse_recommendationTransformerUri' - The name or Amazon Resource Name (ARN) of the AWS Lambda function that
-- Amazon Pinpoint invokes to perform additional processing of
-- recommendation data that it retrieves from the recommender model.
--
-- 'recommendationsDisplayName', 'recommenderConfigurationResponse_recommendationsDisplayName' - The custom display name for the standard endpoint or user attribute
-- (RecommendationItems) that temporarily stores recommended items for each
-- endpoint or user, depending on the value for the
-- RecommendationProviderIdType property. This name appears in the
-- __Attribute finder__ of the template editor on the Amazon Pinpoint
-- console.
--
-- This value is null if the configuration doesn\'t invoke an AWS Lambda
-- function (RecommendationTransformerUri) to perform additional processing
-- of recommendation data.
--
-- 'recommendationsPerMessage', 'recommenderConfigurationResponse_recommendationsPerMessage' - The number of recommended items that are retrieved from the model for
-- each endpoint or user, depending on the value for the
-- RecommendationProviderIdType property. This number determines how many
-- recommended items are available for use in message variables.
--
-- 'recommendationProviderUri', 'recommenderConfigurationResponse_recommendationProviderUri' - The Amazon Resource Name (ARN) of the recommender model that Amazon
-- Pinpoint retrieves the recommendation data from. This value is the ARN
-- of an Amazon Personalize campaign.
--
-- 'lastModifiedDate', 'recommenderConfigurationResponse_lastModifiedDate' - The date, in extended ISO 8601 format, when the configuration for the
-- recommender model was last modified.
--
-- 'creationDate', 'recommenderConfigurationResponse_creationDate' - The date, in extended ISO 8601 format, when the configuration was
-- created for the recommender model.
--
-- 'recommendationProviderRoleArn', 'recommenderConfigurationResponse_recommendationProviderRoleArn' - The Amazon Resource Name (ARN) of the AWS Identity and Access Management
-- (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation
-- data from the recommender model.
--
-- 'id', 'recommenderConfigurationResponse_id' - The unique identifier for the recommender model configuration.
newRecommenderConfigurationResponse ::
  -- | 'recommendationProviderUri'
  Prelude.Text ->
  -- | 'lastModifiedDate'
  Prelude.Text ->
  -- | 'creationDate'
  Prelude.Text ->
  -- | 'recommendationProviderRoleArn'
  Prelude.Text ->
  -- | 'id'
  Prelude.Text ->
  RecommenderConfigurationResponse
newRecommenderConfigurationResponse
  pRecommendationProviderUri_
  pLastModifiedDate_
  pCreationDate_
  pRecommendationProviderRoleArn_
  pId_ =
    RecommenderConfigurationResponse'
      { attributes =
          Prelude.Nothing,
        description = Prelude.Nothing,
        name = Prelude.Nothing,
        recommendationProviderIdType =
          Prelude.Nothing,
        recommendationTransformerUri =
          Prelude.Nothing,
        recommendationsDisplayName =
          Prelude.Nothing,
        recommendationsPerMessage =
          Prelude.Nothing,
        recommendationProviderUri =
          pRecommendationProviderUri_,
        lastModifiedDate = pLastModifiedDate_,
        creationDate = pCreationDate_,
        recommendationProviderRoleArn =
          pRecommendationProviderRoleArn_,
        id = pId_
      }

-- | A map that defines 1-10 custom endpoint or user attributes, depending on
-- the value for the RecommendationProviderIdType property. Each of these
-- attributes temporarily stores a recommended item that\'s retrieved from
-- the recommender model and sent to an AWS Lambda function for additional
-- processing. Each attribute can be used as a message variable in a
-- message template.
--
-- This value is null if the configuration doesn\'t invoke an AWS Lambda
-- function (RecommendationTransformerUri) to perform additional processing
-- of recommendation data.
recommenderConfigurationResponse_attributes :: Lens.Lens' RecommenderConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
recommenderConfigurationResponse_attributes = Lens.lens (\RecommenderConfigurationResponse' {attributes} -> attributes) (\s@RecommenderConfigurationResponse' {} a -> s {attributes = a} :: RecommenderConfigurationResponse) Prelude.. Lens.mapping Lens.coerced

-- | The custom description of the configuration for the recommender model.
recommenderConfigurationResponse_description :: Lens.Lens' RecommenderConfigurationResponse (Prelude.Maybe Prelude.Text)
recommenderConfigurationResponse_description = Lens.lens (\RecommenderConfigurationResponse' {description} -> description) (\s@RecommenderConfigurationResponse' {} a -> s {description = a} :: RecommenderConfigurationResponse)

-- | The custom name of the configuration for the recommender model.
recommenderConfigurationResponse_name :: Lens.Lens' RecommenderConfigurationResponse (Prelude.Maybe Prelude.Text)
recommenderConfigurationResponse_name = Lens.lens (\RecommenderConfigurationResponse' {name} -> name) (\s@RecommenderConfigurationResponse' {} a -> s {name = a} :: RecommenderConfigurationResponse)

-- | The type of Amazon Pinpoint ID that\'s associated with unique user IDs
-- in the recommender model. This value enables the model to use attribute
-- and event data that’s specific to a particular endpoint or user in an
-- Amazon Pinpoint application. Possible values are:
--
-- -   PINPOINT_ENDPOINT_ID - Each user in the model is associated with a
--     particular endpoint in Amazon Pinpoint. The data is correlated based
--     on endpoint IDs in Amazon Pinpoint. This is the default value.
--
-- -   PINPOINT_USER_ID - Each user in the model is associated with a
--     particular user and endpoint in Amazon Pinpoint. The data is
--     correlated based on user IDs in Amazon Pinpoint. If this value is
--     specified, an endpoint definition in Amazon Pinpoint has to specify
--     both a user ID (UserId) and an endpoint ID. Otherwise, messages
--     won’t be sent to the user\'s endpoint.
recommenderConfigurationResponse_recommendationProviderIdType :: Lens.Lens' RecommenderConfigurationResponse (Prelude.Maybe Prelude.Text)
recommenderConfigurationResponse_recommendationProviderIdType = Lens.lens (\RecommenderConfigurationResponse' {recommendationProviderIdType} -> recommendationProviderIdType) (\s@RecommenderConfigurationResponse' {} a -> s {recommendationProviderIdType = a} :: RecommenderConfigurationResponse)

-- | The name or Amazon Resource Name (ARN) of the AWS Lambda function that
-- Amazon Pinpoint invokes to perform additional processing of
-- recommendation data that it retrieves from the recommender model.
recommenderConfigurationResponse_recommendationTransformerUri :: Lens.Lens' RecommenderConfigurationResponse (Prelude.Maybe Prelude.Text)
recommenderConfigurationResponse_recommendationTransformerUri = Lens.lens (\RecommenderConfigurationResponse' {recommendationTransformerUri} -> recommendationTransformerUri) (\s@RecommenderConfigurationResponse' {} a -> s {recommendationTransformerUri = a} :: RecommenderConfigurationResponse)

-- | The custom display name for the standard endpoint or user attribute
-- (RecommendationItems) that temporarily stores recommended items for each
-- endpoint or user, depending on the value for the
-- RecommendationProviderIdType property. This name appears in the
-- __Attribute finder__ of the template editor on the Amazon Pinpoint
-- console.
--
-- This value is null if the configuration doesn\'t invoke an AWS Lambda
-- function (RecommendationTransformerUri) to perform additional processing
-- of recommendation data.
recommenderConfigurationResponse_recommendationsDisplayName :: Lens.Lens' RecommenderConfigurationResponse (Prelude.Maybe Prelude.Text)
recommenderConfigurationResponse_recommendationsDisplayName = Lens.lens (\RecommenderConfigurationResponse' {recommendationsDisplayName} -> recommendationsDisplayName) (\s@RecommenderConfigurationResponse' {} a -> s {recommendationsDisplayName = a} :: RecommenderConfigurationResponse)

-- | The number of recommended items that are retrieved from the model for
-- each endpoint or user, depending on the value for the
-- RecommendationProviderIdType property. This number determines how many
-- recommended items are available for use in message variables.
recommenderConfigurationResponse_recommendationsPerMessage :: Lens.Lens' RecommenderConfigurationResponse (Prelude.Maybe Prelude.Int)
recommenderConfigurationResponse_recommendationsPerMessage = Lens.lens (\RecommenderConfigurationResponse' {recommendationsPerMessage} -> recommendationsPerMessage) (\s@RecommenderConfigurationResponse' {} a -> s {recommendationsPerMessage = a} :: RecommenderConfigurationResponse)

-- | The Amazon Resource Name (ARN) of the recommender model that Amazon
-- Pinpoint retrieves the recommendation data from. This value is the ARN
-- of an Amazon Personalize campaign.
recommenderConfigurationResponse_recommendationProviderUri :: Lens.Lens' RecommenderConfigurationResponse Prelude.Text
recommenderConfigurationResponse_recommendationProviderUri = Lens.lens (\RecommenderConfigurationResponse' {recommendationProviderUri} -> recommendationProviderUri) (\s@RecommenderConfigurationResponse' {} a -> s {recommendationProviderUri = a} :: RecommenderConfigurationResponse)

-- | The date, in extended ISO 8601 format, when the configuration for the
-- recommender model was last modified.
recommenderConfigurationResponse_lastModifiedDate :: Lens.Lens' RecommenderConfigurationResponse Prelude.Text
recommenderConfigurationResponse_lastModifiedDate = Lens.lens (\RecommenderConfigurationResponse' {lastModifiedDate} -> lastModifiedDate) (\s@RecommenderConfigurationResponse' {} a -> s {lastModifiedDate = a} :: RecommenderConfigurationResponse)

-- | The date, in extended ISO 8601 format, when the configuration was
-- created for the recommender model.
recommenderConfigurationResponse_creationDate :: Lens.Lens' RecommenderConfigurationResponse Prelude.Text
recommenderConfigurationResponse_creationDate = Lens.lens (\RecommenderConfigurationResponse' {creationDate} -> creationDate) (\s@RecommenderConfigurationResponse' {} a -> s {creationDate = a} :: RecommenderConfigurationResponse)

-- | The Amazon Resource Name (ARN) of the AWS Identity and Access Management
-- (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation
-- data from the recommender model.
recommenderConfigurationResponse_recommendationProviderRoleArn :: Lens.Lens' RecommenderConfigurationResponse Prelude.Text
recommenderConfigurationResponse_recommendationProviderRoleArn = Lens.lens (\RecommenderConfigurationResponse' {recommendationProviderRoleArn} -> recommendationProviderRoleArn) (\s@RecommenderConfigurationResponse' {} a -> s {recommendationProviderRoleArn = a} :: RecommenderConfigurationResponse)

-- | The unique identifier for the recommender model configuration.
recommenderConfigurationResponse_id :: Lens.Lens' RecommenderConfigurationResponse Prelude.Text
recommenderConfigurationResponse_id = Lens.lens (\RecommenderConfigurationResponse' {id} -> id) (\s@RecommenderConfigurationResponse' {} a -> s {id = a} :: RecommenderConfigurationResponse)

instance
  Data.FromJSON
    RecommenderConfigurationResponse
  where
  parseJSON =
    Data.withObject
      "RecommenderConfigurationResponse"
      ( \x ->
          RecommenderConfigurationResponse'
            Prelude.<$> (x Data..:? "Attributes" Data..!= Prelude.mempty)
            Prelude.<*> (x Data..:? "Description")
            Prelude.<*> (x Data..:? "Name")
            Prelude.<*> (x Data..:? "RecommendationProviderIdType")
            Prelude.<*> (x Data..:? "RecommendationTransformerUri")
            Prelude.<*> (x Data..:? "RecommendationsDisplayName")
            Prelude.<*> (x Data..:? "RecommendationsPerMessage")
            Prelude.<*> (x Data..: "RecommendationProviderUri")
            Prelude.<*> (x Data..: "LastModifiedDate")
            Prelude.<*> (x Data..: "CreationDate")
            Prelude.<*> (x Data..: "RecommendationProviderRoleArn")
            Prelude.<*> (x Data..: "Id")
      )

instance
  Prelude.Hashable
    RecommenderConfigurationResponse
  where
  hashWithSalt
    _salt
    RecommenderConfigurationResponse' {..} =
      _salt
        `Prelude.hashWithSalt` attributes
        `Prelude.hashWithSalt` description
        `Prelude.hashWithSalt` name
        `Prelude.hashWithSalt` recommendationProviderIdType
        `Prelude.hashWithSalt` recommendationTransformerUri
        `Prelude.hashWithSalt` recommendationsDisplayName
        `Prelude.hashWithSalt` recommendationsPerMessage
        `Prelude.hashWithSalt` recommendationProviderUri
        `Prelude.hashWithSalt` lastModifiedDate
        `Prelude.hashWithSalt` creationDate
        `Prelude.hashWithSalt` recommendationProviderRoleArn
        `Prelude.hashWithSalt` id

instance
  Prelude.NFData
    RecommenderConfigurationResponse
  where
  rnf RecommenderConfigurationResponse' {..} =
    Prelude.rnf attributes
      `Prelude.seq` Prelude.rnf description
      `Prelude.seq` Prelude.rnf name
      `Prelude.seq` Prelude.rnf recommendationProviderIdType
      `Prelude.seq` Prelude.rnf recommendationTransformerUri
      `Prelude.seq` Prelude.rnf recommendationsDisplayName
      `Prelude.seq` Prelude.rnf recommendationsPerMessage
      `Prelude.seq` Prelude.rnf recommendationProviderUri
      `Prelude.seq` Prelude.rnf lastModifiedDate
      `Prelude.seq` Prelude.rnf creationDate
      `Prelude.seq` Prelude.rnf recommendationProviderRoleArn
      `Prelude.seq` Prelude.rnf id