{-# 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.FraudDetector.DescribeModelVersions
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets all of the model versions for the specified model type or for the
-- specified model type and model ID. You can also get details for a
-- single, specified model version.
module Amazonka.FraudDetector.DescribeModelVersions
  ( -- * Creating a Request
    DescribeModelVersions (..),
    newDescribeModelVersions,

    -- * Request Lenses
    describeModelVersions_maxResults,
    describeModelVersions_modelId,
    describeModelVersions_modelType,
    describeModelVersions_modelVersionNumber,
    describeModelVersions_nextToken,

    -- * Destructuring the Response
    DescribeModelVersionsResponse (..),
    newDescribeModelVersionsResponse,

    -- * Response Lenses
    describeModelVersionsResponse_modelVersionDetails,
    describeModelVersionsResponse_nextToken,
    describeModelVersionsResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FraudDetector.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeModelVersions' smart constructor.
data DescribeModelVersions = DescribeModelVersions'
  { -- | The maximum number of results to return.
    DescribeModelVersions -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The model ID.
    DescribeModelVersions -> Maybe Text
modelId :: Prelude.Maybe Prelude.Text,
    -- | The model type.
    DescribeModelVersions -> Maybe ModelTypeEnum
modelType :: Prelude.Maybe ModelTypeEnum,
    -- | The model version number.
    DescribeModelVersions -> Maybe Text
modelVersionNumber :: Prelude.Maybe Prelude.Text,
    -- | The next token from the previous results.
    DescribeModelVersions -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeModelVersions -> DescribeModelVersions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeModelVersions -> DescribeModelVersions -> Bool
$c/= :: DescribeModelVersions -> DescribeModelVersions -> Bool
== :: DescribeModelVersions -> DescribeModelVersions -> Bool
$c== :: DescribeModelVersions -> DescribeModelVersions -> Bool
Prelude.Eq, ReadPrec [DescribeModelVersions]
ReadPrec DescribeModelVersions
Int -> ReadS DescribeModelVersions
ReadS [DescribeModelVersions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeModelVersions]
$creadListPrec :: ReadPrec [DescribeModelVersions]
readPrec :: ReadPrec DescribeModelVersions
$creadPrec :: ReadPrec DescribeModelVersions
readList :: ReadS [DescribeModelVersions]
$creadList :: ReadS [DescribeModelVersions]
readsPrec :: Int -> ReadS DescribeModelVersions
$creadsPrec :: Int -> ReadS DescribeModelVersions
Prelude.Read, Int -> DescribeModelVersions -> ShowS
[DescribeModelVersions] -> ShowS
DescribeModelVersions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeModelVersions] -> ShowS
$cshowList :: [DescribeModelVersions] -> ShowS
show :: DescribeModelVersions -> String
$cshow :: DescribeModelVersions -> String
showsPrec :: Int -> DescribeModelVersions -> ShowS
$cshowsPrec :: Int -> DescribeModelVersions -> ShowS
Prelude.Show, forall x. Rep DescribeModelVersions x -> DescribeModelVersions
forall x. DescribeModelVersions -> Rep DescribeModelVersions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeModelVersions x -> DescribeModelVersions
$cfrom :: forall x. DescribeModelVersions -> Rep DescribeModelVersions x
Prelude.Generic)

-- |
-- Create a value of 'DescribeModelVersions' 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:
--
-- 'maxResults', 'describeModelVersions_maxResults' - The maximum number of results to return.
--
-- 'modelId', 'describeModelVersions_modelId' - The model ID.
--
-- 'modelType', 'describeModelVersions_modelType' - The model type.
--
-- 'modelVersionNumber', 'describeModelVersions_modelVersionNumber' - The model version number.
--
-- 'nextToken', 'describeModelVersions_nextToken' - The next token from the previous results.
newDescribeModelVersions ::
  DescribeModelVersions
newDescribeModelVersions :: DescribeModelVersions
newDescribeModelVersions =
  DescribeModelVersions'
    { $sel:maxResults:DescribeModelVersions' :: Maybe Natural
maxResults =
        forall a. Maybe a
Prelude.Nothing,
      $sel:modelId:DescribeModelVersions' :: Maybe Text
modelId = forall a. Maybe a
Prelude.Nothing,
      $sel:modelType:DescribeModelVersions' :: Maybe ModelTypeEnum
modelType = forall a. Maybe a
Prelude.Nothing,
      $sel:modelVersionNumber:DescribeModelVersions' :: Maybe Text
modelVersionNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeModelVersions' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | The maximum number of results to return.
describeModelVersions_maxResults :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Natural)
describeModelVersions_maxResults :: Lens' DescribeModelVersions (Maybe Natural)
describeModelVersions_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelVersions' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:DescribeModelVersions' :: DescribeModelVersions -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: DescribeModelVersions
s@DescribeModelVersions' {} Maybe Natural
a -> DescribeModelVersions
s {$sel:maxResults:DescribeModelVersions' :: Maybe Natural
maxResults = Maybe Natural
a} :: DescribeModelVersions)

-- | The model ID.
describeModelVersions_modelId :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Text)
describeModelVersions_modelId :: Lens' DescribeModelVersions (Maybe Text)
describeModelVersions_modelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelVersions' {Maybe Text
modelId :: Maybe Text
$sel:modelId:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
modelId} -> Maybe Text
modelId) (\s :: DescribeModelVersions
s@DescribeModelVersions' {} Maybe Text
a -> DescribeModelVersions
s {$sel:modelId:DescribeModelVersions' :: Maybe Text
modelId = Maybe Text
a} :: DescribeModelVersions)

-- | The model type.
describeModelVersions_modelType :: Lens.Lens' DescribeModelVersions (Prelude.Maybe ModelTypeEnum)
describeModelVersions_modelType :: Lens' DescribeModelVersions (Maybe ModelTypeEnum)
describeModelVersions_modelType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelVersions' {Maybe ModelTypeEnum
modelType :: Maybe ModelTypeEnum
$sel:modelType:DescribeModelVersions' :: DescribeModelVersions -> Maybe ModelTypeEnum
modelType} -> Maybe ModelTypeEnum
modelType) (\s :: DescribeModelVersions
s@DescribeModelVersions' {} Maybe ModelTypeEnum
a -> DescribeModelVersions
s {$sel:modelType:DescribeModelVersions' :: Maybe ModelTypeEnum
modelType = Maybe ModelTypeEnum
a} :: DescribeModelVersions)

-- | The model version number.
describeModelVersions_modelVersionNumber :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Text)
describeModelVersions_modelVersionNumber :: Lens' DescribeModelVersions (Maybe Text)
describeModelVersions_modelVersionNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelVersions' {Maybe Text
modelVersionNumber :: Maybe Text
$sel:modelVersionNumber:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
modelVersionNumber} -> Maybe Text
modelVersionNumber) (\s :: DescribeModelVersions
s@DescribeModelVersions' {} Maybe Text
a -> DescribeModelVersions
s {$sel:modelVersionNumber:DescribeModelVersions' :: Maybe Text
modelVersionNumber = Maybe Text
a} :: DescribeModelVersions)

-- | The next token from the previous results.
describeModelVersions_nextToken :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Text)
describeModelVersions_nextToken :: Lens' DescribeModelVersions (Maybe Text)
describeModelVersions_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelVersions' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeModelVersions
s@DescribeModelVersions' {} Maybe Text
a -> DescribeModelVersions
s {$sel:nextToken:DescribeModelVersions' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeModelVersions)

instance Core.AWSRequest DescribeModelVersions where
  type
    AWSResponse DescribeModelVersions =
      DescribeModelVersionsResponse
  request :: (Service -> Service)
-> DescribeModelVersions -> Request DescribeModelVersions
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeModelVersions
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeModelVersions)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe [ModelVersionDetail]
-> Maybe Text -> Int -> DescribeModelVersionsResponse
DescribeModelVersionsResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"modelVersionDetails"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"nextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeModelVersions where
  hashWithSalt :: Int -> DescribeModelVersions -> Int
hashWithSalt Int
_salt DescribeModelVersions' {Maybe Natural
Maybe Text
Maybe ModelTypeEnum
nextToken :: Maybe Text
modelVersionNumber :: Maybe Text
modelType :: Maybe ModelTypeEnum
modelId :: Maybe Text
maxResults :: Maybe Natural
$sel:nextToken:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:modelVersionNumber:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:modelType:DescribeModelVersions' :: DescribeModelVersions -> Maybe ModelTypeEnum
$sel:modelId:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:maxResults:DescribeModelVersions' :: DescribeModelVersions -> Maybe Natural
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelTypeEnum
modelType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelVersionNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken

instance Prelude.NFData DescribeModelVersions where
  rnf :: DescribeModelVersions -> ()
rnf DescribeModelVersions' {Maybe Natural
Maybe Text
Maybe ModelTypeEnum
nextToken :: Maybe Text
modelVersionNumber :: Maybe Text
modelType :: Maybe ModelTypeEnum
modelId :: Maybe Text
maxResults :: Maybe Natural
$sel:nextToken:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:modelVersionNumber:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:modelType:DescribeModelVersions' :: DescribeModelVersions -> Maybe ModelTypeEnum
$sel:modelId:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:maxResults:DescribeModelVersions' :: DescribeModelVersions -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelTypeEnum
modelType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelVersionNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken

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

instance Data.ToJSON DescribeModelVersions where
  toJSON :: DescribeModelVersions -> Value
toJSON DescribeModelVersions' {Maybe Natural
Maybe Text
Maybe ModelTypeEnum
nextToken :: Maybe Text
modelVersionNumber :: Maybe Text
modelType :: Maybe ModelTypeEnum
modelId :: Maybe Text
maxResults :: Maybe Natural
$sel:nextToken:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:modelVersionNumber:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:modelType:DescribeModelVersions' :: DescribeModelVersions -> Maybe ModelTypeEnum
$sel:modelId:DescribeModelVersions' :: DescribeModelVersions -> Maybe Text
$sel:maxResults:DescribeModelVersions' :: DescribeModelVersions -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"maxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxResults,
            (Key
"modelId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
modelId,
            (Key
"modelType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ModelTypeEnum
modelType,
            (Key
"modelVersionNumber" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
modelVersionNumber,
            (Key
"nextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken
          ]
      )

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

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

-- | /See:/ 'newDescribeModelVersionsResponse' smart constructor.
data DescribeModelVersionsResponse = DescribeModelVersionsResponse'
  { -- | The model version details.
    DescribeModelVersionsResponse -> Maybe [ModelVersionDetail]
modelVersionDetails :: Prelude.Maybe [ModelVersionDetail],
    -- | The next token.
    DescribeModelVersionsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeModelVersionsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeModelVersionsResponse
-> DescribeModelVersionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeModelVersionsResponse
-> DescribeModelVersionsResponse -> Bool
$c/= :: DescribeModelVersionsResponse
-> DescribeModelVersionsResponse -> Bool
== :: DescribeModelVersionsResponse
-> DescribeModelVersionsResponse -> Bool
$c== :: DescribeModelVersionsResponse
-> DescribeModelVersionsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeModelVersionsResponse]
ReadPrec DescribeModelVersionsResponse
Int -> ReadS DescribeModelVersionsResponse
ReadS [DescribeModelVersionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeModelVersionsResponse]
$creadListPrec :: ReadPrec [DescribeModelVersionsResponse]
readPrec :: ReadPrec DescribeModelVersionsResponse
$creadPrec :: ReadPrec DescribeModelVersionsResponse
readList :: ReadS [DescribeModelVersionsResponse]
$creadList :: ReadS [DescribeModelVersionsResponse]
readsPrec :: Int -> ReadS DescribeModelVersionsResponse
$creadsPrec :: Int -> ReadS DescribeModelVersionsResponse
Prelude.Read, Int -> DescribeModelVersionsResponse -> ShowS
[DescribeModelVersionsResponse] -> ShowS
DescribeModelVersionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeModelVersionsResponse] -> ShowS
$cshowList :: [DescribeModelVersionsResponse] -> ShowS
show :: DescribeModelVersionsResponse -> String
$cshow :: DescribeModelVersionsResponse -> String
showsPrec :: Int -> DescribeModelVersionsResponse -> ShowS
$cshowsPrec :: Int -> DescribeModelVersionsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeModelVersionsResponse x
-> DescribeModelVersionsResponse
forall x.
DescribeModelVersionsResponse
-> Rep DescribeModelVersionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeModelVersionsResponse x
-> DescribeModelVersionsResponse
$cfrom :: forall x.
DescribeModelVersionsResponse
-> Rep DescribeModelVersionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeModelVersionsResponse' 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:
--
-- 'modelVersionDetails', 'describeModelVersionsResponse_modelVersionDetails' - The model version details.
--
-- 'nextToken', 'describeModelVersionsResponse_nextToken' - The next token.
--
-- 'httpStatus', 'describeModelVersionsResponse_httpStatus' - The response's http status code.
newDescribeModelVersionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeModelVersionsResponse
newDescribeModelVersionsResponse :: Int -> DescribeModelVersionsResponse
newDescribeModelVersionsResponse Int
pHttpStatus_ =
  DescribeModelVersionsResponse'
    { $sel:modelVersionDetails:DescribeModelVersionsResponse' :: Maybe [ModelVersionDetail]
modelVersionDetails =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeModelVersionsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeModelVersionsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The model version details.
describeModelVersionsResponse_modelVersionDetails :: Lens.Lens' DescribeModelVersionsResponse (Prelude.Maybe [ModelVersionDetail])
describeModelVersionsResponse_modelVersionDetails :: Lens' DescribeModelVersionsResponse (Maybe [ModelVersionDetail])
describeModelVersionsResponse_modelVersionDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelVersionsResponse' {Maybe [ModelVersionDetail]
modelVersionDetails :: Maybe [ModelVersionDetail]
$sel:modelVersionDetails:DescribeModelVersionsResponse' :: DescribeModelVersionsResponse -> Maybe [ModelVersionDetail]
modelVersionDetails} -> Maybe [ModelVersionDetail]
modelVersionDetails) (\s :: DescribeModelVersionsResponse
s@DescribeModelVersionsResponse' {} Maybe [ModelVersionDetail]
a -> DescribeModelVersionsResponse
s {$sel:modelVersionDetails:DescribeModelVersionsResponse' :: Maybe [ModelVersionDetail]
modelVersionDetails = Maybe [ModelVersionDetail]
a} :: DescribeModelVersionsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The next token.
describeModelVersionsResponse_nextToken :: Lens.Lens' DescribeModelVersionsResponse (Prelude.Maybe Prelude.Text)
describeModelVersionsResponse_nextToken :: Lens' DescribeModelVersionsResponse (Maybe Text)
describeModelVersionsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelVersionsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeModelVersionsResponse' :: DescribeModelVersionsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeModelVersionsResponse
s@DescribeModelVersionsResponse' {} Maybe Text
a -> DescribeModelVersionsResponse
s {$sel:nextToken:DescribeModelVersionsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeModelVersionsResponse)

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

instance Prelude.NFData DescribeModelVersionsResponse where
  rnf :: DescribeModelVersionsResponse -> ()
rnf DescribeModelVersionsResponse' {Int
Maybe [ModelVersionDetail]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
modelVersionDetails :: Maybe [ModelVersionDetail]
$sel:httpStatus:DescribeModelVersionsResponse' :: DescribeModelVersionsResponse -> Int
$sel:nextToken:DescribeModelVersionsResponse' :: DescribeModelVersionsResponse -> Maybe Text
$sel:modelVersionDetails:DescribeModelVersionsResponse' :: DescribeModelVersionsResponse -> Maybe [ModelVersionDetail]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [ModelVersionDetail]
modelVersionDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus