{-# 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.DescribeArtifact
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes an artifact.
module Amazonka.SageMaker.DescribeArtifact
  ( -- * Creating a Request
    DescribeArtifact (..),
    newDescribeArtifact,

    -- * Request Lenses
    describeArtifact_artifactArn,

    -- * Destructuring the Response
    DescribeArtifactResponse (..),
    newDescribeArtifactResponse,

    -- * Response Lenses
    describeArtifactResponse_artifactArn,
    describeArtifactResponse_artifactName,
    describeArtifactResponse_artifactType,
    describeArtifactResponse_createdBy,
    describeArtifactResponse_creationTime,
    describeArtifactResponse_lastModifiedBy,
    describeArtifactResponse_lastModifiedTime,
    describeArtifactResponse_lineageGroupArn,
    describeArtifactResponse_metadataProperties,
    describeArtifactResponse_properties,
    describeArtifactResponse_source,
    describeArtifactResponse_httpStatus,
  )
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
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SageMaker.Types

-- | /See:/ 'newDescribeArtifact' smart constructor.
data DescribeArtifact = DescribeArtifact'
  { -- | The Amazon Resource Name (ARN) of the artifact to describe.
    DescribeArtifact -> Text
artifactArn :: Prelude.Text
  }
  deriving (DescribeArtifact -> DescribeArtifact -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeArtifact -> DescribeArtifact -> Bool
$c/= :: DescribeArtifact -> DescribeArtifact -> Bool
== :: DescribeArtifact -> DescribeArtifact -> Bool
$c== :: DescribeArtifact -> DescribeArtifact -> Bool
Prelude.Eq, ReadPrec [DescribeArtifact]
ReadPrec DescribeArtifact
Int -> ReadS DescribeArtifact
ReadS [DescribeArtifact]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeArtifact]
$creadListPrec :: ReadPrec [DescribeArtifact]
readPrec :: ReadPrec DescribeArtifact
$creadPrec :: ReadPrec DescribeArtifact
readList :: ReadS [DescribeArtifact]
$creadList :: ReadS [DescribeArtifact]
readsPrec :: Int -> ReadS DescribeArtifact
$creadsPrec :: Int -> ReadS DescribeArtifact
Prelude.Read, Int -> DescribeArtifact -> ShowS
[DescribeArtifact] -> ShowS
DescribeArtifact -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeArtifact] -> ShowS
$cshowList :: [DescribeArtifact] -> ShowS
show :: DescribeArtifact -> String
$cshow :: DescribeArtifact -> String
showsPrec :: Int -> DescribeArtifact -> ShowS
$cshowsPrec :: Int -> DescribeArtifact -> ShowS
Prelude.Show, forall x. Rep DescribeArtifact x -> DescribeArtifact
forall x. DescribeArtifact -> Rep DescribeArtifact x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeArtifact x -> DescribeArtifact
$cfrom :: forall x. DescribeArtifact -> Rep DescribeArtifact x
Prelude.Generic)

-- |
-- Create a value of 'DescribeArtifact' 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:
--
-- 'artifactArn', 'describeArtifact_artifactArn' - The Amazon Resource Name (ARN) of the artifact to describe.
newDescribeArtifact ::
  -- | 'artifactArn'
  Prelude.Text ->
  DescribeArtifact
newDescribeArtifact :: Text -> DescribeArtifact
newDescribeArtifact Text
pArtifactArn_ =
  DescribeArtifact' {$sel:artifactArn:DescribeArtifact' :: Text
artifactArn = Text
pArtifactArn_}

-- | The Amazon Resource Name (ARN) of the artifact to describe.
describeArtifact_artifactArn :: Lens.Lens' DescribeArtifact Prelude.Text
describeArtifact_artifactArn :: Lens' DescribeArtifact Text
describeArtifact_artifactArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifact' {Text
artifactArn :: Text
$sel:artifactArn:DescribeArtifact' :: DescribeArtifact -> Text
artifactArn} -> Text
artifactArn) (\s :: DescribeArtifact
s@DescribeArtifact' {} Text
a -> DescribeArtifact
s {$sel:artifactArn:DescribeArtifact' :: Text
artifactArn = Text
a} :: DescribeArtifact)

instance Core.AWSRequest DescribeArtifact where
  type
    AWSResponse DescribeArtifact =
      DescribeArtifactResponse
  request :: (Service -> Service)
-> DescribeArtifact -> Request DescribeArtifact
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 DescribeArtifact
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeArtifact)))
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 Text
-> Maybe Text
-> Maybe Text
-> Maybe UserContext
-> Maybe POSIX
-> Maybe UserContext
-> Maybe POSIX
-> Maybe Text
-> Maybe MetadataProperties
-> Maybe (HashMap Text Text)
-> Maybe ArtifactSource
-> Int
-> DescribeArtifactResponse
DescribeArtifactResponse'
            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
"ArtifactArn")
            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
"ArtifactName")
            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
"ArtifactType")
            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
"CreatedBy")
            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
"CreationTime")
            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
"LastModifiedBy")
            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
"LastModifiedTime")
            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
"LineageGroupArn")
            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
"MetadataProperties")
            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
"Properties" 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
"Source")
            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 DescribeArtifact where
  hashWithSalt :: Int -> DescribeArtifact -> Int
hashWithSalt Int
_salt DescribeArtifact' {Text
artifactArn :: Text
$sel:artifactArn:DescribeArtifact' :: DescribeArtifact -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
artifactArn

instance Prelude.NFData DescribeArtifact where
  rnf :: DescribeArtifact -> ()
rnf DescribeArtifact' {Text
artifactArn :: Text
$sel:artifactArn:DescribeArtifact' :: DescribeArtifact -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
artifactArn

instance Data.ToHeaders DescribeArtifact where
  toHeaders :: DescribeArtifact -> 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
"SageMaker.DescribeArtifact" :: 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 DescribeArtifact where
  toJSON :: DescribeArtifact -> Value
toJSON DescribeArtifact' {Text
artifactArn :: Text
$sel:artifactArn:DescribeArtifact' :: DescribeArtifact -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"ArtifactArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
artifactArn)]
      )

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

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

-- | /See:/ 'newDescribeArtifactResponse' smart constructor.
data DescribeArtifactResponse = DescribeArtifactResponse'
  { -- | The Amazon Resource Name (ARN) of the artifact.
    DescribeArtifactResponse -> Maybe Text
artifactArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the artifact.
    DescribeArtifactResponse -> Maybe Text
artifactName :: Prelude.Maybe Prelude.Text,
    -- | The type of the artifact.
    DescribeArtifactResponse -> Maybe Text
artifactType :: Prelude.Maybe Prelude.Text,
    DescribeArtifactResponse -> Maybe UserContext
createdBy :: Prelude.Maybe UserContext,
    -- | When the artifact was created.
    DescribeArtifactResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    DescribeArtifactResponse -> Maybe UserContext
lastModifiedBy :: Prelude.Maybe UserContext,
    -- | When the artifact was last modified.
    DescribeArtifactResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the lineage group.
    DescribeArtifactResponse -> Maybe Text
lineageGroupArn :: Prelude.Maybe Prelude.Text,
    DescribeArtifactResponse -> Maybe MetadataProperties
metadataProperties :: Prelude.Maybe MetadataProperties,
    -- | A list of the artifact\'s properties.
    DescribeArtifactResponse -> Maybe (HashMap Text Text)
properties :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The source of the artifact.
    DescribeArtifactResponse -> Maybe ArtifactSource
source :: Prelude.Maybe ArtifactSource,
    -- | The response's http status code.
    DescribeArtifactResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeArtifactResponse -> DescribeArtifactResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeArtifactResponse -> DescribeArtifactResponse -> Bool
$c/= :: DescribeArtifactResponse -> DescribeArtifactResponse -> Bool
== :: DescribeArtifactResponse -> DescribeArtifactResponse -> Bool
$c== :: DescribeArtifactResponse -> DescribeArtifactResponse -> Bool
Prelude.Eq, ReadPrec [DescribeArtifactResponse]
ReadPrec DescribeArtifactResponse
Int -> ReadS DescribeArtifactResponse
ReadS [DescribeArtifactResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeArtifactResponse]
$creadListPrec :: ReadPrec [DescribeArtifactResponse]
readPrec :: ReadPrec DescribeArtifactResponse
$creadPrec :: ReadPrec DescribeArtifactResponse
readList :: ReadS [DescribeArtifactResponse]
$creadList :: ReadS [DescribeArtifactResponse]
readsPrec :: Int -> ReadS DescribeArtifactResponse
$creadsPrec :: Int -> ReadS DescribeArtifactResponse
Prelude.Read, Int -> DescribeArtifactResponse -> ShowS
[DescribeArtifactResponse] -> ShowS
DescribeArtifactResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeArtifactResponse] -> ShowS
$cshowList :: [DescribeArtifactResponse] -> ShowS
show :: DescribeArtifactResponse -> String
$cshow :: DescribeArtifactResponse -> String
showsPrec :: Int -> DescribeArtifactResponse -> ShowS
$cshowsPrec :: Int -> DescribeArtifactResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeArtifactResponse x -> DescribeArtifactResponse
forall x.
DescribeArtifactResponse -> Rep DescribeArtifactResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeArtifactResponse x -> DescribeArtifactResponse
$cfrom :: forall x.
DescribeArtifactResponse -> Rep DescribeArtifactResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeArtifactResponse' 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:
--
-- 'artifactArn', 'describeArtifactResponse_artifactArn' - The Amazon Resource Name (ARN) of the artifact.
--
-- 'artifactName', 'describeArtifactResponse_artifactName' - The name of the artifact.
--
-- 'artifactType', 'describeArtifactResponse_artifactType' - The type of the artifact.
--
-- 'createdBy', 'describeArtifactResponse_createdBy' - Undocumented member.
--
-- 'creationTime', 'describeArtifactResponse_creationTime' - When the artifact was created.
--
-- 'lastModifiedBy', 'describeArtifactResponse_lastModifiedBy' - Undocumented member.
--
-- 'lastModifiedTime', 'describeArtifactResponse_lastModifiedTime' - When the artifact was last modified.
--
-- 'lineageGroupArn', 'describeArtifactResponse_lineageGroupArn' - The Amazon Resource Name (ARN) of the lineage group.
--
-- 'metadataProperties', 'describeArtifactResponse_metadataProperties' - Undocumented member.
--
-- 'properties', 'describeArtifactResponse_properties' - A list of the artifact\'s properties.
--
-- 'source', 'describeArtifactResponse_source' - The source of the artifact.
--
-- 'httpStatus', 'describeArtifactResponse_httpStatus' - The response's http status code.
newDescribeArtifactResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeArtifactResponse
newDescribeArtifactResponse :: Int -> DescribeArtifactResponse
newDescribeArtifactResponse Int
pHttpStatus_ =
  DescribeArtifactResponse'
    { $sel:artifactArn:DescribeArtifactResponse' :: Maybe Text
artifactArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:artifactName:DescribeArtifactResponse' :: Maybe Text
artifactName = forall a. Maybe a
Prelude.Nothing,
      $sel:artifactType:DescribeArtifactResponse' :: Maybe Text
artifactType = forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:DescribeArtifactResponse' :: Maybe UserContext
createdBy = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:DescribeArtifactResponse' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:DescribeArtifactResponse' :: Maybe UserContext
lastModifiedBy = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:DescribeArtifactResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:lineageGroupArn:DescribeArtifactResponse' :: Maybe Text
lineageGroupArn = forall a. Maybe a
Prelude.Nothing,
      $sel:metadataProperties:DescribeArtifactResponse' :: Maybe MetadataProperties
metadataProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:properties:DescribeArtifactResponse' :: Maybe (HashMap Text Text)
properties = forall a. Maybe a
Prelude.Nothing,
      $sel:source:DescribeArtifactResponse' :: Maybe ArtifactSource
source = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeArtifactResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the artifact.
describeArtifactResponse_artifactArn :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe Prelude.Text)
describeArtifactResponse_artifactArn :: Lens' DescribeArtifactResponse (Maybe Text)
describeArtifactResponse_artifactArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe Text
artifactArn :: Maybe Text
$sel:artifactArn:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
artifactArn} -> Maybe Text
artifactArn) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe Text
a -> DescribeArtifactResponse
s {$sel:artifactArn:DescribeArtifactResponse' :: Maybe Text
artifactArn = Maybe Text
a} :: DescribeArtifactResponse)

-- | The name of the artifact.
describeArtifactResponse_artifactName :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe Prelude.Text)
describeArtifactResponse_artifactName :: Lens' DescribeArtifactResponse (Maybe Text)
describeArtifactResponse_artifactName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe Text
artifactName :: Maybe Text
$sel:artifactName:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
artifactName} -> Maybe Text
artifactName) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe Text
a -> DescribeArtifactResponse
s {$sel:artifactName:DescribeArtifactResponse' :: Maybe Text
artifactName = Maybe Text
a} :: DescribeArtifactResponse)

-- | The type of the artifact.
describeArtifactResponse_artifactType :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe Prelude.Text)
describeArtifactResponse_artifactType :: Lens' DescribeArtifactResponse (Maybe Text)
describeArtifactResponse_artifactType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe Text
artifactType :: Maybe Text
$sel:artifactType:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
artifactType} -> Maybe Text
artifactType) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe Text
a -> DescribeArtifactResponse
s {$sel:artifactType:DescribeArtifactResponse' :: Maybe Text
artifactType = Maybe Text
a} :: DescribeArtifactResponse)

-- | Undocumented member.
describeArtifactResponse_createdBy :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe UserContext)
describeArtifactResponse_createdBy :: Lens' DescribeArtifactResponse (Maybe UserContext)
describeArtifactResponse_createdBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe UserContext
createdBy :: Maybe UserContext
$sel:createdBy:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe UserContext
createdBy} -> Maybe UserContext
createdBy) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe UserContext
a -> DescribeArtifactResponse
s {$sel:createdBy:DescribeArtifactResponse' :: Maybe UserContext
createdBy = Maybe UserContext
a} :: DescribeArtifactResponse)

-- | When the artifact was created.
describeArtifactResponse_creationTime :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe Prelude.UTCTime)
describeArtifactResponse_creationTime :: Lens' DescribeArtifactResponse (Maybe UTCTime)
describeArtifactResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe POSIX
a -> DescribeArtifactResponse
s {$sel:creationTime:DescribeArtifactResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeArtifactResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Undocumented member.
describeArtifactResponse_lastModifiedBy :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe UserContext)
describeArtifactResponse_lastModifiedBy :: Lens' DescribeArtifactResponse (Maybe UserContext)
describeArtifactResponse_lastModifiedBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe UserContext
lastModifiedBy :: Maybe UserContext
$sel:lastModifiedBy:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe UserContext
lastModifiedBy} -> Maybe UserContext
lastModifiedBy) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe UserContext
a -> DescribeArtifactResponse
s {$sel:lastModifiedBy:DescribeArtifactResponse' :: Maybe UserContext
lastModifiedBy = Maybe UserContext
a} :: DescribeArtifactResponse)

-- | When the artifact was last modified.
describeArtifactResponse_lastModifiedTime :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe Prelude.UTCTime)
describeArtifactResponse_lastModifiedTime :: Lens' DescribeArtifactResponse (Maybe UTCTime)
describeArtifactResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe POSIX
a -> DescribeArtifactResponse
s {$sel:lastModifiedTime:DescribeArtifactResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: DescribeArtifactResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) of the lineage group.
describeArtifactResponse_lineageGroupArn :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe Prelude.Text)
describeArtifactResponse_lineageGroupArn :: Lens' DescribeArtifactResponse (Maybe Text)
describeArtifactResponse_lineageGroupArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe Text
lineageGroupArn :: Maybe Text
$sel:lineageGroupArn:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
lineageGroupArn} -> Maybe Text
lineageGroupArn) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe Text
a -> DescribeArtifactResponse
s {$sel:lineageGroupArn:DescribeArtifactResponse' :: Maybe Text
lineageGroupArn = Maybe Text
a} :: DescribeArtifactResponse)

-- | Undocumented member.
describeArtifactResponse_metadataProperties :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe MetadataProperties)
describeArtifactResponse_metadataProperties :: Lens' DescribeArtifactResponse (Maybe MetadataProperties)
describeArtifactResponse_metadataProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe MetadataProperties
metadataProperties :: Maybe MetadataProperties
$sel:metadataProperties:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe MetadataProperties
metadataProperties} -> Maybe MetadataProperties
metadataProperties) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe MetadataProperties
a -> DescribeArtifactResponse
s {$sel:metadataProperties:DescribeArtifactResponse' :: Maybe MetadataProperties
metadataProperties = Maybe MetadataProperties
a} :: DescribeArtifactResponse)

-- | A list of the artifact\'s properties.
describeArtifactResponse_properties :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeArtifactResponse_properties :: Lens' DescribeArtifactResponse (Maybe (HashMap Text Text))
describeArtifactResponse_properties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe (HashMap Text Text)
properties :: Maybe (HashMap Text Text)
$sel:properties:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe (HashMap Text Text)
properties} -> Maybe (HashMap Text Text)
properties) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe (HashMap Text Text)
a -> DescribeArtifactResponse
s {$sel:properties:DescribeArtifactResponse' :: Maybe (HashMap Text Text)
properties = Maybe (HashMap Text Text)
a} :: DescribeArtifactResponse) 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 source of the artifact.
describeArtifactResponse_source :: Lens.Lens' DescribeArtifactResponse (Prelude.Maybe ArtifactSource)
describeArtifactResponse_source :: Lens' DescribeArtifactResponse (Maybe ArtifactSource)
describeArtifactResponse_source = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArtifactResponse' {Maybe ArtifactSource
source :: Maybe ArtifactSource
$sel:source:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe ArtifactSource
source} -> Maybe ArtifactSource
source) (\s :: DescribeArtifactResponse
s@DescribeArtifactResponse' {} Maybe ArtifactSource
a -> DescribeArtifactResponse
s {$sel:source:DescribeArtifactResponse' :: Maybe ArtifactSource
source = Maybe ArtifactSource
a} :: DescribeArtifactResponse)

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

instance Prelude.NFData DescribeArtifactResponse where
  rnf :: DescribeArtifactResponse -> ()
rnf DescribeArtifactResponse' {Int
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe ArtifactSource
Maybe MetadataProperties
Maybe UserContext
httpStatus :: Int
source :: Maybe ArtifactSource
properties :: Maybe (HashMap Text Text)
metadataProperties :: Maybe MetadataProperties
lineageGroupArn :: Maybe Text
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
creationTime :: Maybe POSIX
createdBy :: Maybe UserContext
artifactType :: Maybe Text
artifactName :: Maybe Text
artifactArn :: Maybe Text
$sel:httpStatus:DescribeArtifactResponse' :: DescribeArtifactResponse -> Int
$sel:source:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe ArtifactSource
$sel:properties:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe (HashMap Text Text)
$sel:metadataProperties:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe MetadataProperties
$sel:lineageGroupArn:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
$sel:lastModifiedTime:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe POSIX
$sel:lastModifiedBy:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe UserContext
$sel:creationTime:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe POSIX
$sel:createdBy:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe UserContext
$sel:artifactType:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
$sel:artifactName:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
$sel:artifactArn:DescribeArtifactResponse' :: DescribeArtifactResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
artifactArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
artifactName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
artifactType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserContext
createdBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserContext
lastModifiedBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lineageGroupArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MetadataProperties
metadataProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
properties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ArtifactSource
source
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus