{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.SageMaker.DescribeFeatureGroup
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Use this operation to describe a @FeatureGroup@. The response includes
-- information on the creation time, @FeatureGroup@ name, the unique
-- identifier for each @FeatureGroup@, and more.
module Amazonka.SageMaker.DescribeFeatureGroup
  ( -- * Creating a Request
    DescribeFeatureGroup (..),
    newDescribeFeatureGroup,

    -- * Request Lenses
    describeFeatureGroup_nextToken,
    describeFeatureGroup_featureGroupName,

    -- * Destructuring the Response
    DescribeFeatureGroupResponse (..),
    newDescribeFeatureGroupResponse,

    -- * Response Lenses
    describeFeatureGroupResponse_offlineStoreConfig,
    describeFeatureGroupResponse_failureReason,
    describeFeatureGroupResponse_featureGroupStatus,
    describeFeatureGroupResponse_offlineStoreStatus,
    describeFeatureGroupResponse_onlineStoreConfig,
    describeFeatureGroupResponse_description,
    describeFeatureGroupResponse_roleArn,
    describeFeatureGroupResponse_httpStatus,
    describeFeatureGroupResponse_featureGroupArn,
    describeFeatureGroupResponse_featureGroupName,
    describeFeatureGroupResponse_recordIdentifierFeatureName,
    describeFeatureGroupResponse_eventTimeFeatureName,
    describeFeatureGroupResponse_featureDefinitions,
    describeFeatureGroupResponse_creationTime,
    describeFeatureGroupResponse_nextToken,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SageMaker.Types

-- | /See:/ 'newDescribeFeatureGroup' smart constructor.
data DescribeFeatureGroup = DescribeFeatureGroup'
  { -- | A token to resume pagination of the list of @Features@
    -- (@FeatureDefinitions@). 2,500 @Features@ are returned by default.
    DescribeFeatureGroup -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The name of the @FeatureGroup@ you want described.
    DescribeFeatureGroup -> Text
featureGroupName :: Prelude.Text
  }
  deriving (DescribeFeatureGroup -> DescribeFeatureGroup -> Bool
(DescribeFeatureGroup -> DescribeFeatureGroup -> Bool)
-> (DescribeFeatureGroup -> DescribeFeatureGroup -> Bool)
-> Eq DescribeFeatureGroup
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFeatureGroup -> DescribeFeatureGroup -> Bool
$c/= :: DescribeFeatureGroup -> DescribeFeatureGroup -> Bool
== :: DescribeFeatureGroup -> DescribeFeatureGroup -> Bool
$c== :: DescribeFeatureGroup -> DescribeFeatureGroup -> Bool
Prelude.Eq, ReadPrec [DescribeFeatureGroup]
ReadPrec DescribeFeatureGroup
Int -> ReadS DescribeFeatureGroup
ReadS [DescribeFeatureGroup]
(Int -> ReadS DescribeFeatureGroup)
-> ReadS [DescribeFeatureGroup]
-> ReadPrec DescribeFeatureGroup
-> ReadPrec [DescribeFeatureGroup]
-> Read DescribeFeatureGroup
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFeatureGroup]
$creadListPrec :: ReadPrec [DescribeFeatureGroup]
readPrec :: ReadPrec DescribeFeatureGroup
$creadPrec :: ReadPrec DescribeFeatureGroup
readList :: ReadS [DescribeFeatureGroup]
$creadList :: ReadS [DescribeFeatureGroup]
readsPrec :: Int -> ReadS DescribeFeatureGroup
$creadsPrec :: Int -> ReadS DescribeFeatureGroup
Prelude.Read, Int -> DescribeFeatureGroup -> ShowS
[DescribeFeatureGroup] -> ShowS
DescribeFeatureGroup -> String
(Int -> DescribeFeatureGroup -> ShowS)
-> (DescribeFeatureGroup -> String)
-> ([DescribeFeatureGroup] -> ShowS)
-> Show DescribeFeatureGroup
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFeatureGroup] -> ShowS
$cshowList :: [DescribeFeatureGroup] -> ShowS
show :: DescribeFeatureGroup -> String
$cshow :: DescribeFeatureGroup -> String
showsPrec :: Int -> DescribeFeatureGroup -> ShowS
$cshowsPrec :: Int -> DescribeFeatureGroup -> ShowS
Prelude.Show, (forall x. DescribeFeatureGroup -> Rep DescribeFeatureGroup x)
-> (forall x. Rep DescribeFeatureGroup x -> DescribeFeatureGroup)
-> Generic DescribeFeatureGroup
forall x. Rep DescribeFeatureGroup x -> DescribeFeatureGroup
forall x. DescribeFeatureGroup -> Rep DescribeFeatureGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeFeatureGroup x -> DescribeFeatureGroup
$cfrom :: forall x. DescribeFeatureGroup -> Rep DescribeFeatureGroup x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFeatureGroup' 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:
--
-- 'nextToken', 'describeFeatureGroup_nextToken' - A token to resume pagination of the list of @Features@
-- (@FeatureDefinitions@). 2,500 @Features@ are returned by default.
--
-- 'featureGroupName', 'describeFeatureGroup_featureGroupName' - The name of the @FeatureGroup@ you want described.
newDescribeFeatureGroup ::
  -- | 'featureGroupName'
  Prelude.Text ->
  DescribeFeatureGroup
newDescribeFeatureGroup :: Text -> DescribeFeatureGroup
newDescribeFeatureGroup Text
pFeatureGroupName_ =
  DescribeFeatureGroup' :: Maybe Text -> Text -> DescribeFeatureGroup
DescribeFeatureGroup'
    { $sel:nextToken:DescribeFeatureGroup' :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:featureGroupName:DescribeFeatureGroup' :: Text
featureGroupName = Text
pFeatureGroupName_
    }

-- | A token to resume pagination of the list of @Features@
-- (@FeatureDefinitions@). 2,500 @Features@ are returned by default.
describeFeatureGroup_nextToken :: Lens.Lens' DescribeFeatureGroup (Prelude.Maybe Prelude.Text)
describeFeatureGroup_nextToken :: (Maybe Text -> f (Maybe Text))
-> DescribeFeatureGroup -> f DescribeFeatureGroup
describeFeatureGroup_nextToken = (DescribeFeatureGroup -> Maybe Text)
-> (DescribeFeatureGroup -> Maybe Text -> DescribeFeatureGroup)
-> Lens
     DescribeFeatureGroup DescribeFeatureGroup (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroup' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeFeatureGroup' :: DescribeFeatureGroup -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeFeatureGroup
s@DescribeFeatureGroup' {} Maybe Text
a -> DescribeFeatureGroup
s {$sel:nextToken:DescribeFeatureGroup' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeFeatureGroup)

-- | The name of the @FeatureGroup@ you want described.
describeFeatureGroup_featureGroupName :: Lens.Lens' DescribeFeatureGroup Prelude.Text
describeFeatureGroup_featureGroupName :: (Text -> f Text) -> DescribeFeatureGroup -> f DescribeFeatureGroup
describeFeatureGroup_featureGroupName = (DescribeFeatureGroup -> Text)
-> (DescribeFeatureGroup -> Text -> DescribeFeatureGroup)
-> Lens DescribeFeatureGroup DescribeFeatureGroup Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroup' {Text
featureGroupName :: Text
$sel:featureGroupName:DescribeFeatureGroup' :: DescribeFeatureGroup -> Text
featureGroupName} -> Text
featureGroupName) (\s :: DescribeFeatureGroup
s@DescribeFeatureGroup' {} Text
a -> DescribeFeatureGroup
s {$sel:featureGroupName:DescribeFeatureGroup' :: Text
featureGroupName = Text
a} :: DescribeFeatureGroup)

instance Core.AWSRequest DescribeFeatureGroup where
  type
    AWSResponse DescribeFeatureGroup =
      DescribeFeatureGroupResponse
  request :: DescribeFeatureGroup -> Request DescribeFeatureGroup
request = Service -> DescribeFeatureGroup -> Request DescribeFeatureGroup
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeFeatureGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeFeatureGroup)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeFeatureGroup))
-> Logger
-> Service
-> Proxy DescribeFeatureGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeFeatureGroup)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe OfflineStoreConfig
-> Maybe Text
-> Maybe FeatureGroupStatus
-> Maybe OfflineStoreStatus
-> Maybe OnlineStoreConfig
-> Maybe Text
-> Maybe Text
-> Int
-> Text
-> Text
-> Text
-> Text
-> NonEmpty FeatureDefinition
-> POSIX
-> Text
-> DescribeFeatureGroupResponse
DescribeFeatureGroupResponse'
            (Maybe OfflineStoreConfig
 -> Maybe Text
 -> Maybe FeatureGroupStatus
 -> Maybe OfflineStoreStatus
 -> Maybe OnlineStoreConfig
 -> Maybe Text
 -> Maybe Text
 -> Int
 -> Text
 -> Text
 -> Text
 -> Text
 -> NonEmpty FeatureDefinition
 -> POSIX
 -> Text
 -> DescribeFeatureGroupResponse)
-> Either String (Maybe OfflineStoreConfig)
-> Either
     String
     (Maybe Text
      -> Maybe FeatureGroupStatus
      -> Maybe OfflineStoreStatus
      -> Maybe OnlineStoreConfig
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe OfflineStoreConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"OfflineStoreConfig")
            Either
  String
  (Maybe Text
   -> Maybe FeatureGroupStatus
   -> Maybe OfflineStoreStatus
   -> Maybe OnlineStoreConfig
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe FeatureGroupStatus
      -> Maybe OfflineStoreStatus
      -> Maybe OnlineStoreConfig
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"FailureReason")
            Either
  String
  (Maybe FeatureGroupStatus
   -> Maybe OfflineStoreStatus
   -> Maybe OnlineStoreConfig
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String (Maybe FeatureGroupStatus)
-> Either
     String
     (Maybe OfflineStoreStatus
      -> Maybe OnlineStoreConfig
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe FeatureGroupStatus)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"FeatureGroupStatus")
            Either
  String
  (Maybe OfflineStoreStatus
   -> Maybe OnlineStoreConfig
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String (Maybe OfflineStoreStatus)
-> Either
     String
     (Maybe OnlineStoreConfig
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe OfflineStoreStatus)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"OfflineStoreStatus")
            Either
  String
  (Maybe OnlineStoreConfig
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String (Maybe OnlineStoreConfig)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe OnlineStoreConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"OnlineStoreConfig")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Description")
            Either
  String
  (Maybe Text
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"RoleArn")
            Either
  String
  (Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String Int
-> Either
     String
     (Text
      -> Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            Either
  String
  (Text
   -> Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String Text
-> Either
     String
     (Text
      -> Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"FeatureGroupArn")
            Either
  String
  (Text
   -> Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String Text
-> Either
     String
     (Text
      -> Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"FeatureGroupName")
            Either
  String
  (Text
   -> Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String Text
-> Either
     String
     (Text
      -> NonEmpty FeatureDefinition
      -> POSIX
      -> Text
      -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"RecordIdentifierFeatureName")
            Either
  String
  (Text
   -> NonEmpty FeatureDefinition
   -> POSIX
   -> Text
   -> DescribeFeatureGroupResponse)
-> Either String Text
-> Either
     String
     (NonEmpty FeatureDefinition
      -> POSIX -> Text -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"EventTimeFeatureName")
            Either
  String
  (NonEmpty FeatureDefinition
   -> POSIX -> Text -> DescribeFeatureGroupResponse)
-> Either String (NonEmpty FeatureDefinition)
-> Either String (POSIX -> Text -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (NonEmpty FeatureDefinition)
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"FeatureDefinitions")
            Either String (POSIX -> Text -> DescribeFeatureGroupResponse)
-> Either String POSIX
-> Either String (Text -> DescribeFeatureGroupResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String POSIX
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"CreationTime")
            Either String (Text -> DescribeFeatureGroupResponse)
-> Either String Text -> Either String DescribeFeatureGroupResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"NextToken")
      )

instance Prelude.Hashable DescribeFeatureGroup

instance Prelude.NFData DescribeFeatureGroup

instance Core.ToHeaders DescribeFeatureGroup where
  toHeaders :: DescribeFeatureGroup -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribeFeatureGroup -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"SageMaker.DescribeFeatureGroup" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON DescribeFeatureGroup where
  toJSON :: DescribeFeatureGroup -> Value
toJSON DescribeFeatureGroup' {Maybe Text
Text
featureGroupName :: Text
nextToken :: Maybe Text
$sel:featureGroupName:DescribeFeatureGroup' :: DescribeFeatureGroup -> Text
$sel:nextToken:DescribeFeatureGroup' :: DescribeFeatureGroup -> Maybe Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"NextToken" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              (Text
"FeatureGroupName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
featureGroupName)
          ]
      )

instance Core.ToPath DescribeFeatureGroup where
  toPath :: DescribeFeatureGroup -> ByteString
toPath = ByteString -> DescribeFeatureGroup -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Core.ToQuery DescribeFeatureGroup where
  toQuery :: DescribeFeatureGroup -> QueryString
toQuery = QueryString -> DescribeFeatureGroup -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeFeatureGroupResponse' smart constructor.
data DescribeFeatureGroupResponse = DescribeFeatureGroupResponse'
  { -- | The configuration of the @OfflineStore@, inducing the S3 location of the
    -- @OfflineStore@, Amazon Web Services Glue or Amazon Web Services Hive
    -- data catalogue configurations, and the security configuration.
    DescribeFeatureGroupResponse -> Maybe OfflineStoreConfig
offlineStoreConfig :: Prelude.Maybe OfflineStoreConfig,
    -- | The reason that the @FeatureGroup@ failed to be replicated in the
    -- @OfflineStore@. This is failure can occur because:
    --
    -- -   The @FeatureGroup@ could not be created in the @OfflineStore@.
    --
    -- -   The @FeatureGroup@ could not be deleted from the @OfflineStore@.
    DescribeFeatureGroupResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The status of the feature group.
    DescribeFeatureGroupResponse -> Maybe FeatureGroupStatus
featureGroupStatus :: Prelude.Maybe FeatureGroupStatus,
    -- | The status of the @OfflineStore@. Notifies you if replicating data into
    -- the @OfflineStore@ has failed. Returns either: @Active@ or @Blocked@
    DescribeFeatureGroupResponse -> Maybe OfflineStoreStatus
offlineStoreStatus :: Prelude.Maybe OfflineStoreStatus,
    -- | The configuration for the @OnlineStore@.
    DescribeFeatureGroupResponse -> Maybe OnlineStoreConfig
onlineStoreConfig :: Prelude.Maybe OnlineStoreConfig,
    -- | A free form description of the feature group.
    DescribeFeatureGroupResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the IAM execution role used to persist
    -- data into the @OfflineStore@ if an @OfflineStoreConfig@ is provided.
    DescribeFeatureGroupResponse -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeFeatureGroupResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the @FeatureGroup@.
    DescribeFeatureGroupResponse -> Text
featureGroupArn :: Prelude.Text,
    -- | he name of the @FeatureGroup@.
    DescribeFeatureGroupResponse -> Text
featureGroupName :: Prelude.Text,
    -- | The name of the @Feature@ used for @RecordIdentifier@, whose value
    -- uniquely identifies a record stored in the feature store.
    DescribeFeatureGroupResponse -> Text
recordIdentifierFeatureName :: Prelude.Text,
    -- | The name of the feature that stores the @EventTime@ of a Record in a
    -- @FeatureGroup@.
    --
    -- An @EventTime@ is a point in time when a new event occurs that
    -- corresponds to the creation or update of a @Record@ in a @FeatureGroup@.
    -- All @Records@ in the @FeatureGroup@ have a corresponding @EventTime@.
    DescribeFeatureGroupResponse -> Text
eventTimeFeatureName :: Prelude.Text,
    -- | A list of the @Features@ in the @FeatureGroup@. Each feature is defined
    -- by a @FeatureName@ and @FeatureType@.
    DescribeFeatureGroupResponse -> NonEmpty FeatureDefinition
featureDefinitions :: Prelude.NonEmpty FeatureDefinition,
    -- | A timestamp indicating when SageMaker created the @FeatureGroup@.
    DescribeFeatureGroupResponse -> POSIX
creationTime :: Core.POSIX,
    -- | A token to resume pagination of the list of @Features@
    -- (@FeatureDefinitions@).
    DescribeFeatureGroupResponse -> Text
nextToken :: Prelude.Text
  }
  deriving (DescribeFeatureGroupResponse
-> DescribeFeatureGroupResponse -> Bool
(DescribeFeatureGroupResponse
 -> DescribeFeatureGroupResponse -> Bool)
-> (DescribeFeatureGroupResponse
    -> DescribeFeatureGroupResponse -> Bool)
-> Eq DescribeFeatureGroupResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFeatureGroupResponse
-> DescribeFeatureGroupResponse -> Bool
$c/= :: DescribeFeatureGroupResponse
-> DescribeFeatureGroupResponse -> Bool
== :: DescribeFeatureGroupResponse
-> DescribeFeatureGroupResponse -> Bool
$c== :: DescribeFeatureGroupResponse
-> DescribeFeatureGroupResponse -> Bool
Prelude.Eq, ReadPrec [DescribeFeatureGroupResponse]
ReadPrec DescribeFeatureGroupResponse
Int -> ReadS DescribeFeatureGroupResponse
ReadS [DescribeFeatureGroupResponse]
(Int -> ReadS DescribeFeatureGroupResponse)
-> ReadS [DescribeFeatureGroupResponse]
-> ReadPrec DescribeFeatureGroupResponse
-> ReadPrec [DescribeFeatureGroupResponse]
-> Read DescribeFeatureGroupResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFeatureGroupResponse]
$creadListPrec :: ReadPrec [DescribeFeatureGroupResponse]
readPrec :: ReadPrec DescribeFeatureGroupResponse
$creadPrec :: ReadPrec DescribeFeatureGroupResponse
readList :: ReadS [DescribeFeatureGroupResponse]
$creadList :: ReadS [DescribeFeatureGroupResponse]
readsPrec :: Int -> ReadS DescribeFeatureGroupResponse
$creadsPrec :: Int -> ReadS DescribeFeatureGroupResponse
Prelude.Read, Int -> DescribeFeatureGroupResponse -> ShowS
[DescribeFeatureGroupResponse] -> ShowS
DescribeFeatureGroupResponse -> String
(Int -> DescribeFeatureGroupResponse -> ShowS)
-> (DescribeFeatureGroupResponse -> String)
-> ([DescribeFeatureGroupResponse] -> ShowS)
-> Show DescribeFeatureGroupResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFeatureGroupResponse] -> ShowS
$cshowList :: [DescribeFeatureGroupResponse] -> ShowS
show :: DescribeFeatureGroupResponse -> String
$cshow :: DescribeFeatureGroupResponse -> String
showsPrec :: Int -> DescribeFeatureGroupResponse -> ShowS
$cshowsPrec :: Int -> DescribeFeatureGroupResponse -> ShowS
Prelude.Show, (forall x.
 DescribeFeatureGroupResponse -> Rep DescribeFeatureGroupResponse x)
-> (forall x.
    Rep DescribeFeatureGroupResponse x -> DescribeFeatureGroupResponse)
-> Generic DescribeFeatureGroupResponse
forall x.
Rep DescribeFeatureGroupResponse x -> DescribeFeatureGroupResponse
forall x.
DescribeFeatureGroupResponse -> Rep DescribeFeatureGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeFeatureGroupResponse x -> DescribeFeatureGroupResponse
$cfrom :: forall x.
DescribeFeatureGroupResponse -> Rep DescribeFeatureGroupResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFeatureGroupResponse' 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:
--
-- 'offlineStoreConfig', 'describeFeatureGroupResponse_offlineStoreConfig' - The configuration of the @OfflineStore@, inducing the S3 location of the
-- @OfflineStore@, Amazon Web Services Glue or Amazon Web Services Hive
-- data catalogue configurations, and the security configuration.
--
-- 'failureReason', 'describeFeatureGroupResponse_failureReason' - The reason that the @FeatureGroup@ failed to be replicated in the
-- @OfflineStore@. This is failure can occur because:
--
-- -   The @FeatureGroup@ could not be created in the @OfflineStore@.
--
-- -   The @FeatureGroup@ could not be deleted from the @OfflineStore@.
--
-- 'featureGroupStatus', 'describeFeatureGroupResponse_featureGroupStatus' - The status of the feature group.
--
-- 'offlineStoreStatus', 'describeFeatureGroupResponse_offlineStoreStatus' - The status of the @OfflineStore@. Notifies you if replicating data into
-- the @OfflineStore@ has failed. Returns either: @Active@ or @Blocked@
--
-- 'onlineStoreConfig', 'describeFeatureGroupResponse_onlineStoreConfig' - The configuration for the @OnlineStore@.
--
-- 'description', 'describeFeatureGroupResponse_description' - A free form description of the feature group.
--
-- 'roleArn', 'describeFeatureGroupResponse_roleArn' - The Amazon Resource Name (ARN) of the IAM execution role used to persist
-- data into the @OfflineStore@ if an @OfflineStoreConfig@ is provided.
--
-- 'httpStatus', 'describeFeatureGroupResponse_httpStatus' - The response's http status code.
--
-- 'featureGroupArn', 'describeFeatureGroupResponse_featureGroupArn' - The Amazon Resource Name (ARN) of the @FeatureGroup@.
--
-- 'featureGroupName', 'describeFeatureGroupResponse_featureGroupName' - he name of the @FeatureGroup@.
--
-- 'recordIdentifierFeatureName', 'describeFeatureGroupResponse_recordIdentifierFeatureName' - The name of the @Feature@ used for @RecordIdentifier@, whose value
-- uniquely identifies a record stored in the feature store.
--
-- 'eventTimeFeatureName', 'describeFeatureGroupResponse_eventTimeFeatureName' - The name of the feature that stores the @EventTime@ of a Record in a
-- @FeatureGroup@.
--
-- An @EventTime@ is a point in time when a new event occurs that
-- corresponds to the creation or update of a @Record@ in a @FeatureGroup@.
-- All @Records@ in the @FeatureGroup@ have a corresponding @EventTime@.
--
-- 'featureDefinitions', 'describeFeatureGroupResponse_featureDefinitions' - A list of the @Features@ in the @FeatureGroup@. Each feature is defined
-- by a @FeatureName@ and @FeatureType@.
--
-- 'creationTime', 'describeFeatureGroupResponse_creationTime' - A timestamp indicating when SageMaker created the @FeatureGroup@.
--
-- 'nextToken', 'describeFeatureGroupResponse_nextToken' - A token to resume pagination of the list of @Features@
-- (@FeatureDefinitions@).
newDescribeFeatureGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'featureGroupArn'
  Prelude.Text ->
  -- | 'featureGroupName'
  Prelude.Text ->
  -- | 'recordIdentifierFeatureName'
  Prelude.Text ->
  -- | 'eventTimeFeatureName'
  Prelude.Text ->
  -- | 'featureDefinitions'
  Prelude.NonEmpty FeatureDefinition ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'nextToken'
  Prelude.Text ->
  DescribeFeatureGroupResponse
newDescribeFeatureGroupResponse :: Int
-> Text
-> Text
-> Text
-> Text
-> NonEmpty FeatureDefinition
-> UTCTime
-> Text
-> DescribeFeatureGroupResponse
newDescribeFeatureGroupResponse
  Int
pHttpStatus_
  Text
pFeatureGroupArn_
  Text
pFeatureGroupName_
  Text
pRecordIdentifierFeatureName_
  Text
pEventTimeFeatureName_
  NonEmpty FeatureDefinition
pFeatureDefinitions_
  UTCTime
pCreationTime_
  Text
pNextToken_ =
    DescribeFeatureGroupResponse' :: Maybe OfflineStoreConfig
-> Maybe Text
-> Maybe FeatureGroupStatus
-> Maybe OfflineStoreStatus
-> Maybe OnlineStoreConfig
-> Maybe Text
-> Maybe Text
-> Int
-> Text
-> Text
-> Text
-> Text
-> NonEmpty FeatureDefinition
-> POSIX
-> Text
-> DescribeFeatureGroupResponse
DescribeFeatureGroupResponse'
      { $sel:offlineStoreConfig:DescribeFeatureGroupResponse' :: Maybe OfflineStoreConfig
offlineStoreConfig =
          Maybe OfflineStoreConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:failureReason:DescribeFeatureGroupResponse' :: Maybe Text
failureReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:featureGroupStatus:DescribeFeatureGroupResponse' :: Maybe FeatureGroupStatus
featureGroupStatus = Maybe FeatureGroupStatus
forall a. Maybe a
Prelude.Nothing,
        $sel:offlineStoreStatus:DescribeFeatureGroupResponse' :: Maybe OfflineStoreStatus
offlineStoreStatus = Maybe OfflineStoreStatus
forall a. Maybe a
Prelude.Nothing,
        $sel:onlineStoreConfig:DescribeFeatureGroupResponse' :: Maybe OnlineStoreConfig
onlineStoreConfig = Maybe OnlineStoreConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:description:DescribeFeatureGroupResponse' :: Maybe Text
description = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:roleArn:DescribeFeatureGroupResponse' :: Maybe Text
roleArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeFeatureGroupResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:featureGroupArn:DescribeFeatureGroupResponse' :: Text
featureGroupArn = Text
pFeatureGroupArn_,
        $sel:featureGroupName:DescribeFeatureGroupResponse' :: Text
featureGroupName = Text
pFeatureGroupName_,
        $sel:recordIdentifierFeatureName:DescribeFeatureGroupResponse' :: Text
recordIdentifierFeatureName =
          Text
pRecordIdentifierFeatureName_,
        $sel:eventTimeFeatureName:DescribeFeatureGroupResponse' :: Text
eventTimeFeatureName = Text
pEventTimeFeatureName_,
        $sel:featureDefinitions:DescribeFeatureGroupResponse' :: NonEmpty FeatureDefinition
featureDefinitions =
          Tagged
  (NonEmpty FeatureDefinition)
  (Identity (NonEmpty FeatureDefinition))
-> Tagged
     (NonEmpty FeatureDefinition)
     (Identity (NonEmpty FeatureDefinition))
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced (Tagged
   (NonEmpty FeatureDefinition)
   (Identity (NonEmpty FeatureDefinition))
 -> Tagged
      (NonEmpty FeatureDefinition)
      (Identity (NonEmpty FeatureDefinition)))
-> NonEmpty FeatureDefinition -> NonEmpty FeatureDefinition
forall t b. AReview t b -> b -> t
Lens.# NonEmpty FeatureDefinition
pFeatureDefinitions_,
        $sel:creationTime:DescribeFeatureGroupResponse' :: POSIX
creationTime =
          Tagged UTCTime (Identity UTCTime) -> Tagged POSIX (Identity POSIX)
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time (Tagged UTCTime (Identity UTCTime)
 -> Tagged POSIX (Identity POSIX))
-> UTCTime -> POSIX
forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:nextToken:DescribeFeatureGroupResponse' :: Text
nextToken = Text
pNextToken_
      }

-- | The configuration of the @OfflineStore@, inducing the S3 location of the
-- @OfflineStore@, Amazon Web Services Glue or Amazon Web Services Hive
-- data catalogue configurations, and the security configuration.
describeFeatureGroupResponse_offlineStoreConfig :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.Maybe OfflineStoreConfig)
describeFeatureGroupResponse_offlineStoreConfig :: (Maybe OfflineStoreConfig -> f (Maybe OfflineStoreConfig))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_offlineStoreConfig = (DescribeFeatureGroupResponse -> Maybe OfflineStoreConfig)
-> (DescribeFeatureGroupResponse
    -> Maybe OfflineStoreConfig -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (Maybe OfflineStoreConfig)
     (Maybe OfflineStoreConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Maybe OfflineStoreConfig
offlineStoreConfig :: Maybe OfflineStoreConfig
$sel:offlineStoreConfig:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Maybe OfflineStoreConfig
offlineStoreConfig} -> Maybe OfflineStoreConfig
offlineStoreConfig) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Maybe OfflineStoreConfig
a -> DescribeFeatureGroupResponse
s {$sel:offlineStoreConfig:DescribeFeatureGroupResponse' :: Maybe OfflineStoreConfig
offlineStoreConfig = Maybe OfflineStoreConfig
a} :: DescribeFeatureGroupResponse)

-- | The reason that the @FeatureGroup@ failed to be replicated in the
-- @OfflineStore@. This is failure can occur because:
--
-- -   The @FeatureGroup@ could not be created in the @OfflineStore@.
--
-- -   The @FeatureGroup@ could not be deleted from the @OfflineStore@.
describeFeatureGroupResponse_failureReason :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.Maybe Prelude.Text)
describeFeatureGroupResponse_failureReason :: (Maybe Text -> f (Maybe Text))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_failureReason = (DescribeFeatureGroupResponse -> Maybe Text)
-> (DescribeFeatureGroupResponse
    -> Maybe Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Maybe Text
a -> DescribeFeatureGroupResponse
s {$sel:failureReason:DescribeFeatureGroupResponse' :: Maybe Text
failureReason = Maybe Text
a} :: DescribeFeatureGroupResponse)

-- | The status of the feature group.
describeFeatureGroupResponse_featureGroupStatus :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.Maybe FeatureGroupStatus)
describeFeatureGroupResponse_featureGroupStatus :: (Maybe FeatureGroupStatus -> f (Maybe FeatureGroupStatus))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_featureGroupStatus = (DescribeFeatureGroupResponse -> Maybe FeatureGroupStatus)
-> (DescribeFeatureGroupResponse
    -> Maybe FeatureGroupStatus -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (Maybe FeatureGroupStatus)
     (Maybe FeatureGroupStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Maybe FeatureGroupStatus
featureGroupStatus :: Maybe FeatureGroupStatus
$sel:featureGroupStatus:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Maybe FeatureGroupStatus
featureGroupStatus} -> Maybe FeatureGroupStatus
featureGroupStatus) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Maybe FeatureGroupStatus
a -> DescribeFeatureGroupResponse
s {$sel:featureGroupStatus:DescribeFeatureGroupResponse' :: Maybe FeatureGroupStatus
featureGroupStatus = Maybe FeatureGroupStatus
a} :: DescribeFeatureGroupResponse)

-- | The status of the @OfflineStore@. Notifies you if replicating data into
-- the @OfflineStore@ has failed. Returns either: @Active@ or @Blocked@
describeFeatureGroupResponse_offlineStoreStatus :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.Maybe OfflineStoreStatus)
describeFeatureGroupResponse_offlineStoreStatus :: (Maybe OfflineStoreStatus -> f (Maybe OfflineStoreStatus))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_offlineStoreStatus = (DescribeFeatureGroupResponse -> Maybe OfflineStoreStatus)
-> (DescribeFeatureGroupResponse
    -> Maybe OfflineStoreStatus -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (Maybe OfflineStoreStatus)
     (Maybe OfflineStoreStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Maybe OfflineStoreStatus
offlineStoreStatus :: Maybe OfflineStoreStatus
$sel:offlineStoreStatus:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Maybe OfflineStoreStatus
offlineStoreStatus} -> Maybe OfflineStoreStatus
offlineStoreStatus) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Maybe OfflineStoreStatus
a -> DescribeFeatureGroupResponse
s {$sel:offlineStoreStatus:DescribeFeatureGroupResponse' :: Maybe OfflineStoreStatus
offlineStoreStatus = Maybe OfflineStoreStatus
a} :: DescribeFeatureGroupResponse)

-- | The configuration for the @OnlineStore@.
describeFeatureGroupResponse_onlineStoreConfig :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.Maybe OnlineStoreConfig)
describeFeatureGroupResponse_onlineStoreConfig :: (Maybe OnlineStoreConfig -> f (Maybe OnlineStoreConfig))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_onlineStoreConfig = (DescribeFeatureGroupResponse -> Maybe OnlineStoreConfig)
-> (DescribeFeatureGroupResponse
    -> Maybe OnlineStoreConfig -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (Maybe OnlineStoreConfig)
     (Maybe OnlineStoreConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Maybe OnlineStoreConfig
onlineStoreConfig :: Maybe OnlineStoreConfig
$sel:onlineStoreConfig:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Maybe OnlineStoreConfig
onlineStoreConfig} -> Maybe OnlineStoreConfig
onlineStoreConfig) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Maybe OnlineStoreConfig
a -> DescribeFeatureGroupResponse
s {$sel:onlineStoreConfig:DescribeFeatureGroupResponse' :: Maybe OnlineStoreConfig
onlineStoreConfig = Maybe OnlineStoreConfig
a} :: DescribeFeatureGroupResponse)

-- | A free form description of the feature group.
describeFeatureGroupResponse_description :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.Maybe Prelude.Text)
describeFeatureGroupResponse_description :: (Maybe Text -> f (Maybe Text))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_description = (DescribeFeatureGroupResponse -> Maybe Text)
-> (DescribeFeatureGroupResponse
    -> Maybe Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Maybe Text
a -> DescribeFeatureGroupResponse
s {$sel:description:DescribeFeatureGroupResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeFeatureGroupResponse)

-- | The Amazon Resource Name (ARN) of the IAM execution role used to persist
-- data into the @OfflineStore@ if an @OfflineStoreConfig@ is provided.
describeFeatureGroupResponse_roleArn :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.Maybe Prelude.Text)
describeFeatureGroupResponse_roleArn :: (Maybe Text -> f (Maybe Text))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_roleArn = (DescribeFeatureGroupResponse -> Maybe Text)
-> (DescribeFeatureGroupResponse
    -> Maybe Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Maybe Text
a -> DescribeFeatureGroupResponse
s {$sel:roleArn:DescribeFeatureGroupResponse' :: Maybe Text
roleArn = Maybe Text
a} :: DescribeFeatureGroupResponse)

-- | The response's http status code.
describeFeatureGroupResponse_httpStatus :: Lens.Lens' DescribeFeatureGroupResponse Prelude.Int
describeFeatureGroupResponse_httpStatus :: (Int -> f Int)
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_httpStatus = (DescribeFeatureGroupResponse -> Int)
-> (DescribeFeatureGroupResponse
    -> Int -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse DescribeFeatureGroupResponse Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Int
a -> DescribeFeatureGroupResponse
s {$sel:httpStatus:DescribeFeatureGroupResponse' :: Int
httpStatus = Int
a} :: DescribeFeatureGroupResponse)

-- | The Amazon Resource Name (ARN) of the @FeatureGroup@.
describeFeatureGroupResponse_featureGroupArn :: Lens.Lens' DescribeFeatureGroupResponse Prelude.Text
describeFeatureGroupResponse_featureGroupArn :: (Text -> f Text)
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_featureGroupArn = (DescribeFeatureGroupResponse -> Text)
-> (DescribeFeatureGroupResponse
    -> Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse DescribeFeatureGroupResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Text
featureGroupArn :: Text
$sel:featureGroupArn:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Text
featureGroupArn} -> Text
featureGroupArn) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Text
a -> DescribeFeatureGroupResponse
s {$sel:featureGroupArn:DescribeFeatureGroupResponse' :: Text
featureGroupArn = Text
a} :: DescribeFeatureGroupResponse)

-- | he name of the @FeatureGroup@.
describeFeatureGroupResponse_featureGroupName :: Lens.Lens' DescribeFeatureGroupResponse Prelude.Text
describeFeatureGroupResponse_featureGroupName :: (Text -> f Text)
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_featureGroupName = (DescribeFeatureGroupResponse -> Text)
-> (DescribeFeatureGroupResponse
    -> Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse DescribeFeatureGroupResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Text
featureGroupName :: Text
$sel:featureGroupName:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Text
featureGroupName} -> Text
featureGroupName) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Text
a -> DescribeFeatureGroupResponse
s {$sel:featureGroupName:DescribeFeatureGroupResponse' :: Text
featureGroupName = Text
a} :: DescribeFeatureGroupResponse)

-- | The name of the @Feature@ used for @RecordIdentifier@, whose value
-- uniquely identifies a record stored in the feature store.
describeFeatureGroupResponse_recordIdentifierFeatureName :: Lens.Lens' DescribeFeatureGroupResponse Prelude.Text
describeFeatureGroupResponse_recordIdentifierFeatureName :: (Text -> f Text)
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_recordIdentifierFeatureName = (DescribeFeatureGroupResponse -> Text)
-> (DescribeFeatureGroupResponse
    -> Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse DescribeFeatureGroupResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Text
recordIdentifierFeatureName :: Text
$sel:recordIdentifierFeatureName:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Text
recordIdentifierFeatureName} -> Text
recordIdentifierFeatureName) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Text
a -> DescribeFeatureGroupResponse
s {$sel:recordIdentifierFeatureName:DescribeFeatureGroupResponse' :: Text
recordIdentifierFeatureName = Text
a} :: DescribeFeatureGroupResponse)

-- | The name of the feature that stores the @EventTime@ of a Record in a
-- @FeatureGroup@.
--
-- An @EventTime@ is a point in time when a new event occurs that
-- corresponds to the creation or update of a @Record@ in a @FeatureGroup@.
-- All @Records@ in the @FeatureGroup@ have a corresponding @EventTime@.
describeFeatureGroupResponse_eventTimeFeatureName :: Lens.Lens' DescribeFeatureGroupResponse Prelude.Text
describeFeatureGroupResponse_eventTimeFeatureName :: (Text -> f Text)
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_eventTimeFeatureName = (DescribeFeatureGroupResponse -> Text)
-> (DescribeFeatureGroupResponse
    -> Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse DescribeFeatureGroupResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Text
eventTimeFeatureName :: Text
$sel:eventTimeFeatureName:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Text
eventTimeFeatureName} -> Text
eventTimeFeatureName) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Text
a -> DescribeFeatureGroupResponse
s {$sel:eventTimeFeatureName:DescribeFeatureGroupResponse' :: Text
eventTimeFeatureName = Text
a} :: DescribeFeatureGroupResponse)

-- | A list of the @Features@ in the @FeatureGroup@. Each feature is defined
-- by a @FeatureName@ and @FeatureType@.
describeFeatureGroupResponse_featureDefinitions :: Lens.Lens' DescribeFeatureGroupResponse (Prelude.NonEmpty FeatureDefinition)
describeFeatureGroupResponse_featureDefinitions :: (NonEmpty FeatureDefinition -> f (NonEmpty FeatureDefinition))
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_featureDefinitions = (DescribeFeatureGroupResponse -> NonEmpty FeatureDefinition)
-> (DescribeFeatureGroupResponse
    -> NonEmpty FeatureDefinition -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     (NonEmpty FeatureDefinition)
     (NonEmpty FeatureDefinition)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {NonEmpty FeatureDefinition
featureDefinitions :: NonEmpty FeatureDefinition
$sel:featureDefinitions:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> NonEmpty FeatureDefinition
featureDefinitions} -> NonEmpty FeatureDefinition
featureDefinitions) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} NonEmpty FeatureDefinition
a -> DescribeFeatureGroupResponse
s {$sel:featureDefinitions:DescribeFeatureGroupResponse' :: NonEmpty FeatureDefinition
featureDefinitions = NonEmpty FeatureDefinition
a} :: DescribeFeatureGroupResponse) ((NonEmpty FeatureDefinition -> f (NonEmpty FeatureDefinition))
 -> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse)
-> ((NonEmpty FeatureDefinition -> f (NonEmpty FeatureDefinition))
    -> NonEmpty FeatureDefinition -> f (NonEmpty FeatureDefinition))
-> (NonEmpty FeatureDefinition -> f (NonEmpty FeatureDefinition))
-> DescribeFeatureGroupResponse
-> f DescribeFeatureGroupResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (NonEmpty FeatureDefinition -> f (NonEmpty FeatureDefinition))
-> NonEmpty FeatureDefinition -> f (NonEmpty FeatureDefinition)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A timestamp indicating when SageMaker created the @FeatureGroup@.
describeFeatureGroupResponse_creationTime :: Lens.Lens' DescribeFeatureGroupResponse Prelude.UTCTime
describeFeatureGroupResponse_creationTime :: (UTCTime -> f UTCTime)
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_creationTime = (DescribeFeatureGroupResponse -> POSIX)
-> (DescribeFeatureGroupResponse
    -> POSIX -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse
     DescribeFeatureGroupResponse
     POSIX
     POSIX
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} POSIX
a -> DescribeFeatureGroupResponse
s {$sel:creationTime:DescribeFeatureGroupResponse' :: POSIX
creationTime = POSIX
a} :: DescribeFeatureGroupResponse) ((POSIX -> f POSIX)
 -> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse)
-> ((UTCTime -> f UTCTime) -> POSIX -> f POSIX)
-> (UTCTime -> f UTCTime)
-> DescribeFeatureGroupResponse
-> f DescribeFeatureGroupResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (UTCTime -> f UTCTime) -> POSIX -> f POSIX
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | A token to resume pagination of the list of @Features@
-- (@FeatureDefinitions@).
describeFeatureGroupResponse_nextToken :: Lens.Lens' DescribeFeatureGroupResponse Prelude.Text
describeFeatureGroupResponse_nextToken :: (Text -> f Text)
-> DescribeFeatureGroupResponse -> f DescribeFeatureGroupResponse
describeFeatureGroupResponse_nextToken = (DescribeFeatureGroupResponse -> Text)
-> (DescribeFeatureGroupResponse
    -> Text -> DescribeFeatureGroupResponse)
-> Lens
     DescribeFeatureGroupResponse DescribeFeatureGroupResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFeatureGroupResponse' {Text
nextToken :: Text
$sel:nextToken:DescribeFeatureGroupResponse' :: DescribeFeatureGroupResponse -> Text
nextToken} -> Text
nextToken) (\s :: DescribeFeatureGroupResponse
s@DescribeFeatureGroupResponse' {} Text
a -> DescribeFeatureGroupResponse
s {$sel:nextToken:DescribeFeatureGroupResponse' :: Text
nextToken = Text
a} :: DescribeFeatureGroupResponse)

instance Prelude.NFData DescribeFeatureGroupResponse