{-# 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.DescribeNotebookInstance
-- 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)
--
-- Returns information about a notebook instance.
module Amazonka.SageMaker.DescribeNotebookInstance
  ( -- * Creating a Request
    DescribeNotebookInstance (..),
    newDescribeNotebookInstance,

    -- * Request Lenses
    describeNotebookInstance_notebookInstanceName,

    -- * Destructuring the Response
    DescribeNotebookInstanceResponse (..),
    newDescribeNotebookInstanceResponse,

    -- * Response Lenses
    describeNotebookInstanceResponse_creationTime,
    describeNotebookInstanceResponse_failureReason,
    describeNotebookInstanceResponse_acceleratorTypes,
    describeNotebookInstanceResponse_platformIdentifier,
    describeNotebookInstanceResponse_notebookInstanceName,
    describeNotebookInstanceResponse_securityGroups,
    describeNotebookInstanceResponse_additionalCodeRepositories,
    describeNotebookInstanceResponse_url,
    describeNotebookInstanceResponse_lastModifiedTime,
    describeNotebookInstanceResponse_networkInterfaceId,
    describeNotebookInstanceResponse_subnetId,
    describeNotebookInstanceResponse_instanceType,
    describeNotebookInstanceResponse_notebookInstanceStatus,
    describeNotebookInstanceResponse_defaultCodeRepository,
    describeNotebookInstanceResponse_volumeSizeInGB,
    describeNotebookInstanceResponse_kmsKeyId,
    describeNotebookInstanceResponse_rootAccess,
    describeNotebookInstanceResponse_directInternetAccess,
    describeNotebookInstanceResponse_notebookInstanceArn,
    describeNotebookInstanceResponse_notebookInstanceLifecycleConfigName,
    describeNotebookInstanceResponse_roleArn,
    describeNotebookInstanceResponse_httpStatus,
  )
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:/ 'newDescribeNotebookInstance' smart constructor.
data DescribeNotebookInstance = DescribeNotebookInstance'
  { -- | The name of the notebook instance that you want information about.
    DescribeNotebookInstance -> Text
notebookInstanceName :: Prelude.Text
  }
  deriving (DescribeNotebookInstance -> DescribeNotebookInstance -> Bool
(DescribeNotebookInstance -> DescribeNotebookInstance -> Bool)
-> (DescribeNotebookInstance -> DescribeNotebookInstance -> Bool)
-> Eq DescribeNotebookInstance
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeNotebookInstance -> DescribeNotebookInstance -> Bool
$c/= :: DescribeNotebookInstance -> DescribeNotebookInstance -> Bool
== :: DescribeNotebookInstance -> DescribeNotebookInstance -> Bool
$c== :: DescribeNotebookInstance -> DescribeNotebookInstance -> Bool
Prelude.Eq, ReadPrec [DescribeNotebookInstance]
ReadPrec DescribeNotebookInstance
Int -> ReadS DescribeNotebookInstance
ReadS [DescribeNotebookInstance]
(Int -> ReadS DescribeNotebookInstance)
-> ReadS [DescribeNotebookInstance]
-> ReadPrec DescribeNotebookInstance
-> ReadPrec [DescribeNotebookInstance]
-> Read DescribeNotebookInstance
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeNotebookInstance]
$creadListPrec :: ReadPrec [DescribeNotebookInstance]
readPrec :: ReadPrec DescribeNotebookInstance
$creadPrec :: ReadPrec DescribeNotebookInstance
readList :: ReadS [DescribeNotebookInstance]
$creadList :: ReadS [DescribeNotebookInstance]
readsPrec :: Int -> ReadS DescribeNotebookInstance
$creadsPrec :: Int -> ReadS DescribeNotebookInstance
Prelude.Read, Int -> DescribeNotebookInstance -> ShowS
[DescribeNotebookInstance] -> ShowS
DescribeNotebookInstance -> String
(Int -> DescribeNotebookInstance -> ShowS)
-> (DescribeNotebookInstance -> String)
-> ([DescribeNotebookInstance] -> ShowS)
-> Show DescribeNotebookInstance
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeNotebookInstance] -> ShowS
$cshowList :: [DescribeNotebookInstance] -> ShowS
show :: DescribeNotebookInstance -> String
$cshow :: DescribeNotebookInstance -> String
showsPrec :: Int -> DescribeNotebookInstance -> ShowS
$cshowsPrec :: Int -> DescribeNotebookInstance -> ShowS
Prelude.Show, (forall x.
 DescribeNotebookInstance -> Rep DescribeNotebookInstance x)
-> (forall x.
    Rep DescribeNotebookInstance x -> DescribeNotebookInstance)
-> Generic DescribeNotebookInstance
forall x.
Rep DescribeNotebookInstance x -> DescribeNotebookInstance
forall x.
DescribeNotebookInstance -> Rep DescribeNotebookInstance x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeNotebookInstance x -> DescribeNotebookInstance
$cfrom :: forall x.
DescribeNotebookInstance -> Rep DescribeNotebookInstance x
Prelude.Generic)

-- |
-- Create a value of 'DescribeNotebookInstance' 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:
--
-- 'notebookInstanceName', 'describeNotebookInstance_notebookInstanceName' - The name of the notebook instance that you want information about.
newDescribeNotebookInstance ::
  -- | 'notebookInstanceName'
  Prelude.Text ->
  DescribeNotebookInstance
newDescribeNotebookInstance :: Text -> DescribeNotebookInstance
newDescribeNotebookInstance Text
pNotebookInstanceName_ =
  DescribeNotebookInstance' :: Text -> DescribeNotebookInstance
DescribeNotebookInstance'
    { $sel:notebookInstanceName:DescribeNotebookInstance' :: Text
notebookInstanceName =
        Text
pNotebookInstanceName_
    }

-- | The name of the notebook instance that you want information about.
describeNotebookInstance_notebookInstanceName :: Lens.Lens' DescribeNotebookInstance Prelude.Text
describeNotebookInstance_notebookInstanceName :: (Text -> f Text)
-> DescribeNotebookInstance -> f DescribeNotebookInstance
describeNotebookInstance_notebookInstanceName = (DescribeNotebookInstance -> Text)
-> (DescribeNotebookInstance -> Text -> DescribeNotebookInstance)
-> Lens DescribeNotebookInstance DescribeNotebookInstance Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstance' {Text
notebookInstanceName :: Text
$sel:notebookInstanceName:DescribeNotebookInstance' :: DescribeNotebookInstance -> Text
notebookInstanceName} -> Text
notebookInstanceName) (\s :: DescribeNotebookInstance
s@DescribeNotebookInstance' {} Text
a -> DescribeNotebookInstance
s {$sel:notebookInstanceName:DescribeNotebookInstance' :: Text
notebookInstanceName = Text
a} :: DescribeNotebookInstance)

instance Core.AWSRequest DescribeNotebookInstance where
  type
    AWSResponse DescribeNotebookInstance =
      DescribeNotebookInstanceResponse
  request :: DescribeNotebookInstance -> Request DescribeNotebookInstance
request = Service
-> DescribeNotebookInstance -> Request DescribeNotebookInstance
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeNotebookInstance
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeNotebookInstance)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeNotebookInstance))
-> Logger
-> Service
-> Proxy DescribeNotebookInstance
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeNotebookInstance)))
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 POSIX
-> Maybe Text
-> Maybe [NotebookInstanceAcceleratorType]
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe InstanceType
-> Maybe NotebookInstanceStatus
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe RootAccess
-> Maybe DirectInternetAccess
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeNotebookInstanceResponse
DescribeNotebookInstanceResponse'
            (Maybe POSIX
 -> Maybe Text
 -> Maybe [NotebookInstanceAcceleratorType]
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe Text
 -> Maybe InstanceType
 -> Maybe NotebookInstanceStatus
 -> Maybe Text
 -> Maybe Natural
 -> Maybe Text
 -> Maybe RootAccess
 -> Maybe DirectInternetAccess
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Int
 -> DescribeNotebookInstanceResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe Text
      -> Maybe [NotebookInstanceAcceleratorType]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"CreationTime")
            Either
  String
  (Maybe Text
   -> Maybe [NotebookInstanceAcceleratorType]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [NotebookInstanceAcceleratorType]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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 [NotebookInstanceAcceleratorType]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe [NotebookInstanceAcceleratorType])
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Either String (Maybe (Maybe [NotebookInstanceAcceleratorType]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"AcceleratorTypes"
                            Either String (Maybe (Maybe [NotebookInstanceAcceleratorType]))
-> Maybe [NotebookInstanceAcceleratorType]
-> Either String (Maybe [NotebookInstanceAcceleratorType])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [NotebookInstanceAcceleratorType]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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
"PlatformIdentifier")
            Either
  String
  (Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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
"NotebookInstanceName")
            Either
  String
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe [Text]
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"SecurityGroups" Either String (Maybe (Maybe [Text]))
-> Maybe [Text] -> Either String (Maybe [Text])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [Text]
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Maybe [Text]
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Either String (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"AdditionalCodeRepositories"
                            Either String (Maybe (Maybe [Text]))
-> Maybe [Text] -> Either String (Maybe [Text])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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
"Url")
            Either
  String
  (Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LastModifiedTime")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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
"NetworkInterfaceId")
            Either
  String
  (Maybe Text
   -> Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe InstanceType
      -> Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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
"SubnetId")
            Either
  String
  (Maybe InstanceType
   -> Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe InstanceType)
-> Either
     String
     (Maybe NotebookInstanceStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe InstanceType)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstanceType")
            Either
  String
  (Maybe NotebookInstanceStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe NotebookInstanceStatus)
-> Either
     String
     (Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe NotebookInstanceStatus)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"NotebookInstanceStatus")
            Either
  String
  (Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Natural
      -> Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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
"DefaultCodeRepository")
            Either
  String
  (Maybe Natural
   -> Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Natural)
-> Either
     String
     (Maybe Text
      -> Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"VolumeSizeInGB")
            Either
  String
  (Maybe Text
   -> Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe RootAccess
      -> Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
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
"KmsKeyId")
            Either
  String
  (Maybe RootAccess
   -> Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe RootAccess)
-> Either
     String
     (Maybe DirectInternetAccess
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe RootAccess)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"RootAccess")
            Either
  String
  (Maybe DirectInternetAccess
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe DirectInternetAccess)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeNotebookInstanceResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe DirectInternetAccess)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DirectInternetAccess")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text -> Int -> DescribeNotebookInstanceResponse)
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
"NotebookInstanceArn")
            Either
  String
  (Maybe Text
   -> Maybe Text -> Int -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either
     String (Maybe Text -> Int -> DescribeNotebookInstanceResponse)
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
"NotebookInstanceLifecycleConfigName")
            Either
  String (Maybe Text -> Int -> DescribeNotebookInstanceResponse)
-> Either String (Maybe Text)
-> Either String (Int -> DescribeNotebookInstanceResponse)
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 -> DescribeNotebookInstanceResponse)
-> Either String Int
-> Either String DescribeNotebookInstanceResponse
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))
      )

instance Prelude.Hashable DescribeNotebookInstance

instance Prelude.NFData DescribeNotebookInstance

instance Core.ToHeaders DescribeNotebookInstance where
  toHeaders :: DescribeNotebookInstance -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribeNotebookInstance -> 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.DescribeNotebookInstance" ::
                          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 DescribeNotebookInstance where
  toJSON :: DescribeNotebookInstance -> Value
toJSON DescribeNotebookInstance' {Text
notebookInstanceName :: Text
$sel:notebookInstanceName:DescribeNotebookInstance' :: DescribeNotebookInstance -> Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"NotebookInstanceName"
                  Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
notebookInstanceName
              )
          ]
      )

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

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

-- | /See:/ 'newDescribeNotebookInstanceResponse' smart constructor.
data DescribeNotebookInstanceResponse = DescribeNotebookInstanceResponse'
  { -- | A timestamp. Use this parameter to return the time when the notebook
    -- instance was created
    DescribeNotebookInstanceResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Core.POSIX,
    -- | If status is @Failed@, the reason it failed.
    DescribeNotebookInstanceResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | A list of the Elastic Inference (EI) instance types associated with this
    -- notebook instance. Currently only one EI instance type can be associated
    -- with a notebook instance. For more information, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html Using Elastic Inference in Amazon SageMaker>.
    DescribeNotebookInstanceResponse
-> Maybe [NotebookInstanceAcceleratorType]
acceleratorTypes :: Prelude.Maybe [NotebookInstanceAcceleratorType],
    -- | The platform identifier of the notebook instance runtime environment.
    DescribeNotebookInstanceResponse -> Maybe Text
platformIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The name of the Amazon SageMaker notebook instance.
    DescribeNotebookInstanceResponse -> Maybe Text
notebookInstanceName :: Prelude.Maybe Prelude.Text,
    -- | The IDs of the VPC security groups.
    DescribeNotebookInstanceResponse -> Maybe [Text]
securityGroups :: Prelude.Maybe [Prelude.Text],
    -- | An array of up to three Git repositories associated with the notebook
    -- instance. These can be either the names of Git repositories stored as
    -- resources in your account, or the URL of Git repositories in
    -- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html Amazon Web Services CodeCommit>
    -- or in any other Git repository. These repositories are cloned at the
    -- same level as the default repository of your notebook instance. For more
    -- information, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html Associating Git Repositories with Amazon SageMaker Notebook Instances>.
    DescribeNotebookInstanceResponse -> Maybe [Text]
additionalCodeRepositories :: Prelude.Maybe [Prelude.Text],
    -- | The URL that you use to connect to the Jupyter notebook that is running
    -- in your notebook instance.
    DescribeNotebookInstanceResponse -> Maybe Text
url :: Prelude.Maybe Prelude.Text,
    -- | A timestamp. Use this parameter to retrieve the time when the notebook
    -- instance was last modified.
    DescribeNotebookInstanceResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Core.POSIX,
    -- | The network interface IDs that Amazon SageMaker created at the time of
    -- creating the instance.
    DescribeNotebookInstanceResponse -> Maybe Text
networkInterfaceId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the VPC subnet.
    DescribeNotebookInstanceResponse -> Maybe Text
subnetId :: Prelude.Maybe Prelude.Text,
    -- | The type of ML compute instance running on the notebook instance.
    DescribeNotebookInstanceResponse -> Maybe InstanceType
instanceType :: Prelude.Maybe InstanceType,
    -- | The status of the notebook instance.
    DescribeNotebookInstanceResponse -> Maybe NotebookInstanceStatus
notebookInstanceStatus :: Prelude.Maybe NotebookInstanceStatus,
    -- | The Git repository associated with the notebook instance as its default
    -- code repository. This can be either the name of a Git repository stored
    -- as a resource in your account, or the URL of a Git repository in
    -- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html Amazon Web Services CodeCommit>
    -- or in any other Git repository. When you open a notebook instance, it
    -- opens in the directory that contains this repository. For more
    -- information, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html Associating Git Repositories with Amazon SageMaker Notebook Instances>.
    DescribeNotebookInstanceResponse -> Maybe Text
defaultCodeRepository :: Prelude.Maybe Prelude.Text,
    -- | The size, in GB, of the ML storage volume attached to the notebook
    -- instance.
    DescribeNotebookInstanceResponse -> Maybe Natural
volumeSizeInGB :: Prelude.Maybe Prelude.Natural,
    -- | The Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data
    -- when storing it on the ML storage volume attached to the instance.
    DescribeNotebookInstanceResponse -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Whether root access is enabled or disabled for users of the notebook
    -- instance.
    --
    -- Lifecycle configurations need root access to be able to set up a
    -- notebook instance. Because of this, lifecycle configurations associated
    -- with a notebook instance always run with root access even if you disable
    -- root access for users.
    DescribeNotebookInstanceResponse -> Maybe RootAccess
rootAccess :: Prelude.Maybe RootAccess,
    -- | Describes whether Amazon SageMaker provides internet access to the
    -- notebook instance. If this value is set to /Disabled/, the notebook
    -- instance does not have internet access, and cannot connect to Amazon
    -- SageMaker training and endpoint services.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access Notebook Instances Are Internet-Enabled by Default>.
    DescribeNotebookInstanceResponse -> Maybe DirectInternetAccess
directInternetAccess :: Prelude.Maybe DirectInternetAccess,
    -- | The Amazon Resource Name (ARN) of the notebook instance.
    DescribeNotebookInstanceResponse -> Maybe Text
notebookInstanceArn :: Prelude.Maybe Prelude.Text,
    -- | Returns the name of a notebook instance lifecycle configuration.
    --
    -- For information about notebook instance lifestyle configurations, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html Step 2.1: (Optional) Customize a Notebook Instance>
    DescribeNotebookInstanceResponse -> Maybe Text
notebookInstanceLifecycleConfigName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the IAM role associated with the
    -- instance.
    DescribeNotebookInstanceResponse -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeNotebookInstanceResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeNotebookInstanceResponse
-> DescribeNotebookInstanceResponse -> Bool
(DescribeNotebookInstanceResponse
 -> DescribeNotebookInstanceResponse -> Bool)
-> (DescribeNotebookInstanceResponse
    -> DescribeNotebookInstanceResponse -> Bool)
-> Eq DescribeNotebookInstanceResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeNotebookInstanceResponse
-> DescribeNotebookInstanceResponse -> Bool
$c/= :: DescribeNotebookInstanceResponse
-> DescribeNotebookInstanceResponse -> Bool
== :: DescribeNotebookInstanceResponse
-> DescribeNotebookInstanceResponse -> Bool
$c== :: DescribeNotebookInstanceResponse
-> DescribeNotebookInstanceResponse -> Bool
Prelude.Eq, ReadPrec [DescribeNotebookInstanceResponse]
ReadPrec DescribeNotebookInstanceResponse
Int -> ReadS DescribeNotebookInstanceResponse
ReadS [DescribeNotebookInstanceResponse]
(Int -> ReadS DescribeNotebookInstanceResponse)
-> ReadS [DescribeNotebookInstanceResponse]
-> ReadPrec DescribeNotebookInstanceResponse
-> ReadPrec [DescribeNotebookInstanceResponse]
-> Read DescribeNotebookInstanceResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeNotebookInstanceResponse]
$creadListPrec :: ReadPrec [DescribeNotebookInstanceResponse]
readPrec :: ReadPrec DescribeNotebookInstanceResponse
$creadPrec :: ReadPrec DescribeNotebookInstanceResponse
readList :: ReadS [DescribeNotebookInstanceResponse]
$creadList :: ReadS [DescribeNotebookInstanceResponse]
readsPrec :: Int -> ReadS DescribeNotebookInstanceResponse
$creadsPrec :: Int -> ReadS DescribeNotebookInstanceResponse
Prelude.Read, Int -> DescribeNotebookInstanceResponse -> ShowS
[DescribeNotebookInstanceResponse] -> ShowS
DescribeNotebookInstanceResponse -> String
(Int -> DescribeNotebookInstanceResponse -> ShowS)
-> (DescribeNotebookInstanceResponse -> String)
-> ([DescribeNotebookInstanceResponse] -> ShowS)
-> Show DescribeNotebookInstanceResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeNotebookInstanceResponse] -> ShowS
$cshowList :: [DescribeNotebookInstanceResponse] -> ShowS
show :: DescribeNotebookInstanceResponse -> String
$cshow :: DescribeNotebookInstanceResponse -> String
showsPrec :: Int -> DescribeNotebookInstanceResponse -> ShowS
$cshowsPrec :: Int -> DescribeNotebookInstanceResponse -> ShowS
Prelude.Show, (forall x.
 DescribeNotebookInstanceResponse
 -> Rep DescribeNotebookInstanceResponse x)
-> (forall x.
    Rep DescribeNotebookInstanceResponse x
    -> DescribeNotebookInstanceResponse)
-> Generic DescribeNotebookInstanceResponse
forall x.
Rep DescribeNotebookInstanceResponse x
-> DescribeNotebookInstanceResponse
forall x.
DescribeNotebookInstanceResponse
-> Rep DescribeNotebookInstanceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeNotebookInstanceResponse x
-> DescribeNotebookInstanceResponse
$cfrom :: forall x.
DescribeNotebookInstanceResponse
-> Rep DescribeNotebookInstanceResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeNotebookInstanceResponse' 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:
--
-- 'creationTime', 'describeNotebookInstanceResponse_creationTime' - A timestamp. Use this parameter to return the time when the notebook
-- instance was created
--
-- 'failureReason', 'describeNotebookInstanceResponse_failureReason' - If status is @Failed@, the reason it failed.
--
-- 'acceleratorTypes', 'describeNotebookInstanceResponse_acceleratorTypes' - A list of the Elastic Inference (EI) instance types associated with this
-- notebook instance. Currently only one EI instance type can be associated
-- with a notebook instance. For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html Using Elastic Inference in Amazon SageMaker>.
--
-- 'platformIdentifier', 'describeNotebookInstanceResponse_platformIdentifier' - The platform identifier of the notebook instance runtime environment.
--
-- 'notebookInstanceName', 'describeNotebookInstanceResponse_notebookInstanceName' - The name of the Amazon SageMaker notebook instance.
--
-- 'securityGroups', 'describeNotebookInstanceResponse_securityGroups' - The IDs of the VPC security groups.
--
-- 'additionalCodeRepositories', 'describeNotebookInstanceResponse_additionalCodeRepositories' - An array of up to three Git repositories associated with the notebook
-- instance. These can be either the names of Git repositories stored as
-- resources in your account, or the URL of Git repositories in
-- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html Amazon Web Services CodeCommit>
-- or in any other Git repository. These repositories are cloned at the
-- same level as the default repository of your notebook instance. For more
-- information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html Associating Git Repositories with Amazon SageMaker Notebook Instances>.
--
-- 'url', 'describeNotebookInstanceResponse_url' - The URL that you use to connect to the Jupyter notebook that is running
-- in your notebook instance.
--
-- 'lastModifiedTime', 'describeNotebookInstanceResponse_lastModifiedTime' - A timestamp. Use this parameter to retrieve the time when the notebook
-- instance was last modified.
--
-- 'networkInterfaceId', 'describeNotebookInstanceResponse_networkInterfaceId' - The network interface IDs that Amazon SageMaker created at the time of
-- creating the instance.
--
-- 'subnetId', 'describeNotebookInstanceResponse_subnetId' - The ID of the VPC subnet.
--
-- 'instanceType', 'describeNotebookInstanceResponse_instanceType' - The type of ML compute instance running on the notebook instance.
--
-- 'notebookInstanceStatus', 'describeNotebookInstanceResponse_notebookInstanceStatus' - The status of the notebook instance.
--
-- 'defaultCodeRepository', 'describeNotebookInstanceResponse_defaultCodeRepository' - The Git repository associated with the notebook instance as its default
-- code repository. This can be either the name of a Git repository stored
-- as a resource in your account, or the URL of a Git repository in
-- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html Amazon Web Services CodeCommit>
-- or in any other Git repository. When you open a notebook instance, it
-- opens in the directory that contains this repository. For more
-- information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html Associating Git Repositories with Amazon SageMaker Notebook Instances>.
--
-- 'volumeSizeInGB', 'describeNotebookInstanceResponse_volumeSizeInGB' - The size, in GB, of the ML storage volume attached to the notebook
-- instance.
--
-- 'kmsKeyId', 'describeNotebookInstanceResponse_kmsKeyId' - The Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data
-- when storing it on the ML storage volume attached to the instance.
--
-- 'rootAccess', 'describeNotebookInstanceResponse_rootAccess' - Whether root access is enabled or disabled for users of the notebook
-- instance.
--
-- Lifecycle configurations need root access to be able to set up a
-- notebook instance. Because of this, lifecycle configurations associated
-- with a notebook instance always run with root access even if you disable
-- root access for users.
--
-- 'directInternetAccess', 'describeNotebookInstanceResponse_directInternetAccess' - Describes whether Amazon SageMaker provides internet access to the
-- notebook instance. If this value is set to /Disabled/, the notebook
-- instance does not have internet access, and cannot connect to Amazon
-- SageMaker training and endpoint services.
--
-- For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access Notebook Instances Are Internet-Enabled by Default>.
--
-- 'notebookInstanceArn', 'describeNotebookInstanceResponse_notebookInstanceArn' - The Amazon Resource Name (ARN) of the notebook instance.
--
-- 'notebookInstanceLifecycleConfigName', 'describeNotebookInstanceResponse_notebookInstanceLifecycleConfigName' - Returns the name of a notebook instance lifecycle configuration.
--
-- For information about notebook instance lifestyle configurations, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html Step 2.1: (Optional) Customize a Notebook Instance>
--
-- 'roleArn', 'describeNotebookInstanceResponse_roleArn' - The Amazon Resource Name (ARN) of the IAM role associated with the
-- instance.
--
-- 'httpStatus', 'describeNotebookInstanceResponse_httpStatus' - The response's http status code.
newDescribeNotebookInstanceResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeNotebookInstanceResponse
newDescribeNotebookInstanceResponse :: Int -> DescribeNotebookInstanceResponse
newDescribeNotebookInstanceResponse Int
pHttpStatus_ =
  DescribeNotebookInstanceResponse' :: Maybe POSIX
-> Maybe Text
-> Maybe [NotebookInstanceAcceleratorType]
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe InstanceType
-> Maybe NotebookInstanceStatus
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe RootAccess
-> Maybe DirectInternetAccess
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeNotebookInstanceResponse
DescribeNotebookInstanceResponse'
    { $sel:creationTime:DescribeNotebookInstanceResponse' :: Maybe POSIX
creationTime =
        Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:failureReason:DescribeNotebookInstanceResponse' :: Maybe Text
failureReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:acceleratorTypes:DescribeNotebookInstanceResponse' :: Maybe [NotebookInstanceAcceleratorType]
acceleratorTypes = Maybe [NotebookInstanceAcceleratorType]
forall a. Maybe a
Prelude.Nothing,
      $sel:platformIdentifier:DescribeNotebookInstanceResponse' :: Maybe Text
platformIdentifier = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:notebookInstanceName:DescribeNotebookInstanceResponse' :: Maybe Text
notebookInstanceName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:securityGroups:DescribeNotebookInstanceResponse' :: Maybe [Text]
securityGroups = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:additionalCodeRepositories:DescribeNotebookInstanceResponse' :: Maybe [Text]
additionalCodeRepositories =
        Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:url:DescribeNotebookInstanceResponse' :: Maybe Text
url = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:DescribeNotebookInstanceResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:networkInterfaceId:DescribeNotebookInstanceResponse' :: Maybe Text
networkInterfaceId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:subnetId:DescribeNotebookInstanceResponse' :: Maybe Text
subnetId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:instanceType:DescribeNotebookInstanceResponse' :: Maybe InstanceType
instanceType = Maybe InstanceType
forall a. Maybe a
Prelude.Nothing,
      $sel:notebookInstanceStatus:DescribeNotebookInstanceResponse' :: Maybe NotebookInstanceStatus
notebookInstanceStatus = Maybe NotebookInstanceStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:defaultCodeRepository:DescribeNotebookInstanceResponse' :: Maybe Text
defaultCodeRepository = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:volumeSizeInGB:DescribeNotebookInstanceResponse' :: Maybe Natural
volumeSizeInGB = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyId:DescribeNotebookInstanceResponse' :: Maybe Text
kmsKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:rootAccess:DescribeNotebookInstanceResponse' :: Maybe RootAccess
rootAccess = Maybe RootAccess
forall a. Maybe a
Prelude.Nothing,
      $sel:directInternetAccess:DescribeNotebookInstanceResponse' :: Maybe DirectInternetAccess
directInternetAccess = Maybe DirectInternetAccess
forall a. Maybe a
Prelude.Nothing,
      $sel:notebookInstanceArn:DescribeNotebookInstanceResponse' :: Maybe Text
notebookInstanceArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:notebookInstanceLifecycleConfigName:DescribeNotebookInstanceResponse' :: Maybe Text
notebookInstanceLifecycleConfigName =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:roleArn:DescribeNotebookInstanceResponse' :: Maybe Text
roleArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeNotebookInstanceResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A timestamp. Use this parameter to return the time when the notebook
-- instance was created
describeNotebookInstanceResponse_creationTime :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.UTCTime)
describeNotebookInstanceResponse_creationTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_creationTime = (DescribeNotebookInstanceResponse -> Maybe POSIX)
-> (DescribeNotebookInstanceResponse
    -> Maybe POSIX -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe POSIX
a -> DescribeNotebookInstanceResponse
s {$sel:creationTime:DescribeNotebookInstanceResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeNotebookInstanceResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeNotebookInstanceResponse
 -> f DescribeNotebookInstanceResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | If status is @Failed@, the reason it failed.
describeNotebookInstanceResponse_failureReason :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_failureReason :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_failureReason = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:failureReason:DescribeNotebookInstanceResponse' :: Maybe Text
failureReason = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | A list of the Elastic Inference (EI) instance types associated with this
-- notebook instance. Currently only one EI instance type can be associated
-- with a notebook instance. For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html Using Elastic Inference in Amazon SageMaker>.
describeNotebookInstanceResponse_acceleratorTypes :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe [NotebookInstanceAcceleratorType])
describeNotebookInstanceResponse_acceleratorTypes :: (Maybe [NotebookInstanceAcceleratorType]
 -> f (Maybe [NotebookInstanceAcceleratorType]))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_acceleratorTypes = (DescribeNotebookInstanceResponse
 -> Maybe [NotebookInstanceAcceleratorType])
-> (DescribeNotebookInstanceResponse
    -> Maybe [NotebookInstanceAcceleratorType]
    -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe [NotebookInstanceAcceleratorType])
     (Maybe [NotebookInstanceAcceleratorType])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe [NotebookInstanceAcceleratorType]
acceleratorTypes :: Maybe [NotebookInstanceAcceleratorType]
$sel:acceleratorTypes:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse
-> Maybe [NotebookInstanceAcceleratorType]
acceleratorTypes} -> Maybe [NotebookInstanceAcceleratorType]
acceleratorTypes) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe [NotebookInstanceAcceleratorType]
a -> DescribeNotebookInstanceResponse
s {$sel:acceleratorTypes:DescribeNotebookInstanceResponse' :: Maybe [NotebookInstanceAcceleratorType]
acceleratorTypes = Maybe [NotebookInstanceAcceleratorType]
a} :: DescribeNotebookInstanceResponse) ((Maybe [NotebookInstanceAcceleratorType]
  -> f (Maybe [NotebookInstanceAcceleratorType]))
 -> DescribeNotebookInstanceResponse
 -> f DescribeNotebookInstanceResponse)
-> ((Maybe [NotebookInstanceAcceleratorType]
     -> f (Maybe [NotebookInstanceAcceleratorType]))
    -> Maybe [NotebookInstanceAcceleratorType]
    -> f (Maybe [NotebookInstanceAcceleratorType]))
-> (Maybe [NotebookInstanceAcceleratorType]
    -> f (Maybe [NotebookInstanceAcceleratorType]))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [NotebookInstanceAcceleratorType]
  [NotebookInstanceAcceleratorType]
  [NotebookInstanceAcceleratorType]
  [NotebookInstanceAcceleratorType]
-> Iso
     (Maybe [NotebookInstanceAcceleratorType])
     (Maybe [NotebookInstanceAcceleratorType])
     (Maybe [NotebookInstanceAcceleratorType])
     (Maybe [NotebookInstanceAcceleratorType])
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 AnIso
  [NotebookInstanceAcceleratorType]
  [NotebookInstanceAcceleratorType]
  [NotebookInstanceAcceleratorType]
  [NotebookInstanceAcceleratorType]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The platform identifier of the notebook instance runtime environment.
describeNotebookInstanceResponse_platformIdentifier :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_platformIdentifier :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_platformIdentifier = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
platformIdentifier :: Maybe Text
$sel:platformIdentifier:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
platformIdentifier} -> Maybe Text
platformIdentifier) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:platformIdentifier:DescribeNotebookInstanceResponse' :: Maybe Text
platformIdentifier = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | The name of the Amazon SageMaker notebook instance.
describeNotebookInstanceResponse_notebookInstanceName :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_notebookInstanceName :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_notebookInstanceName = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
notebookInstanceName :: Maybe Text
$sel:notebookInstanceName:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
notebookInstanceName} -> Maybe Text
notebookInstanceName) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:notebookInstanceName:DescribeNotebookInstanceResponse' :: Maybe Text
notebookInstanceName = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | The IDs of the VPC security groups.
describeNotebookInstanceResponse_securityGroups :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe [Prelude.Text])
describeNotebookInstanceResponse_securityGroups :: (Maybe [Text] -> f (Maybe [Text]))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_securityGroups = (DescribeNotebookInstanceResponse -> Maybe [Text])
-> (DescribeNotebookInstanceResponse
    -> Maybe [Text] -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe [Text]
securityGroups :: Maybe [Text]
$sel:securityGroups:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe [Text]
securityGroups} -> Maybe [Text]
securityGroups) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe [Text]
a -> DescribeNotebookInstanceResponse
s {$sel:securityGroups:DescribeNotebookInstanceResponse' :: Maybe [Text]
securityGroups = Maybe [Text]
a} :: DescribeNotebookInstanceResponse) ((Maybe [Text] -> f (Maybe [Text]))
 -> DescribeNotebookInstanceResponse
 -> f DescribeNotebookInstanceResponse)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An array of up to three Git repositories associated with the notebook
-- instance. These can be either the names of Git repositories stored as
-- resources in your account, or the URL of Git repositories in
-- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html Amazon Web Services CodeCommit>
-- or in any other Git repository. These repositories are cloned at the
-- same level as the default repository of your notebook instance. For more
-- information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html Associating Git Repositories with Amazon SageMaker Notebook Instances>.
describeNotebookInstanceResponse_additionalCodeRepositories :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe [Prelude.Text])
describeNotebookInstanceResponse_additionalCodeRepositories :: (Maybe [Text] -> f (Maybe [Text]))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_additionalCodeRepositories = (DescribeNotebookInstanceResponse -> Maybe [Text])
-> (DescribeNotebookInstanceResponse
    -> Maybe [Text] -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe [Text]
additionalCodeRepositories :: Maybe [Text]
$sel:additionalCodeRepositories:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe [Text]
additionalCodeRepositories} -> Maybe [Text]
additionalCodeRepositories) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe [Text]
a -> DescribeNotebookInstanceResponse
s {$sel:additionalCodeRepositories:DescribeNotebookInstanceResponse' :: Maybe [Text]
additionalCodeRepositories = Maybe [Text]
a} :: DescribeNotebookInstanceResponse) ((Maybe [Text] -> f (Maybe [Text]))
 -> DescribeNotebookInstanceResponse
 -> f DescribeNotebookInstanceResponse)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The URL that you use to connect to the Jupyter notebook that is running
-- in your notebook instance.
describeNotebookInstanceResponse_url :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_url :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_url = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
url :: Maybe Text
$sel:url:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
url} -> Maybe Text
url) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:url:DescribeNotebookInstanceResponse' :: Maybe Text
url = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | A timestamp. Use this parameter to retrieve the time when the notebook
-- instance was last modified.
describeNotebookInstanceResponse_lastModifiedTime :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.UTCTime)
describeNotebookInstanceResponse_lastModifiedTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_lastModifiedTime = (DescribeNotebookInstanceResponse -> Maybe POSIX)
-> (DescribeNotebookInstanceResponse
    -> Maybe POSIX -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe POSIX
a -> DescribeNotebookInstanceResponse
s {$sel:lastModifiedTime:DescribeNotebookInstanceResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: DescribeNotebookInstanceResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeNotebookInstanceResponse
 -> f DescribeNotebookInstanceResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The network interface IDs that Amazon SageMaker created at the time of
-- creating the instance.
describeNotebookInstanceResponse_networkInterfaceId :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_networkInterfaceId :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_networkInterfaceId = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
networkInterfaceId :: Maybe Text
$sel:networkInterfaceId:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
networkInterfaceId} -> Maybe Text
networkInterfaceId) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:networkInterfaceId:DescribeNotebookInstanceResponse' :: Maybe Text
networkInterfaceId = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | The ID of the VPC subnet.
describeNotebookInstanceResponse_subnetId :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_subnetId :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_subnetId = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
subnetId :: Maybe Text
$sel:subnetId:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
subnetId} -> Maybe Text
subnetId) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:subnetId:DescribeNotebookInstanceResponse' :: Maybe Text
subnetId = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | The type of ML compute instance running on the notebook instance.
describeNotebookInstanceResponse_instanceType :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe InstanceType)
describeNotebookInstanceResponse_instanceType :: (Maybe InstanceType -> f (Maybe InstanceType))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_instanceType = (DescribeNotebookInstanceResponse -> Maybe InstanceType)
-> (DescribeNotebookInstanceResponse
    -> Maybe InstanceType -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe InstanceType)
     (Maybe InstanceType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe InstanceType
instanceType :: Maybe InstanceType
$sel:instanceType:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe InstanceType
instanceType} -> Maybe InstanceType
instanceType) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe InstanceType
a -> DescribeNotebookInstanceResponse
s {$sel:instanceType:DescribeNotebookInstanceResponse' :: Maybe InstanceType
instanceType = Maybe InstanceType
a} :: DescribeNotebookInstanceResponse)

-- | The status of the notebook instance.
describeNotebookInstanceResponse_notebookInstanceStatus :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe NotebookInstanceStatus)
describeNotebookInstanceResponse_notebookInstanceStatus :: (Maybe NotebookInstanceStatus -> f (Maybe NotebookInstanceStatus))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_notebookInstanceStatus = (DescribeNotebookInstanceResponse -> Maybe NotebookInstanceStatus)
-> (DescribeNotebookInstanceResponse
    -> Maybe NotebookInstanceStatus
    -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe NotebookInstanceStatus)
     (Maybe NotebookInstanceStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe NotebookInstanceStatus
notebookInstanceStatus :: Maybe NotebookInstanceStatus
$sel:notebookInstanceStatus:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe NotebookInstanceStatus
notebookInstanceStatus} -> Maybe NotebookInstanceStatus
notebookInstanceStatus) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe NotebookInstanceStatus
a -> DescribeNotebookInstanceResponse
s {$sel:notebookInstanceStatus:DescribeNotebookInstanceResponse' :: Maybe NotebookInstanceStatus
notebookInstanceStatus = Maybe NotebookInstanceStatus
a} :: DescribeNotebookInstanceResponse)

-- | The Git repository associated with the notebook instance as its default
-- code repository. This can be either the name of a Git repository stored
-- as a resource in your account, or the URL of a Git repository in
-- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html Amazon Web Services CodeCommit>
-- or in any other Git repository. When you open a notebook instance, it
-- opens in the directory that contains this repository. For more
-- information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html Associating Git Repositories with Amazon SageMaker Notebook Instances>.
describeNotebookInstanceResponse_defaultCodeRepository :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_defaultCodeRepository :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_defaultCodeRepository = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
defaultCodeRepository :: Maybe Text
$sel:defaultCodeRepository:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
defaultCodeRepository} -> Maybe Text
defaultCodeRepository) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:defaultCodeRepository:DescribeNotebookInstanceResponse' :: Maybe Text
defaultCodeRepository = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | The size, in GB, of the ML storage volume attached to the notebook
-- instance.
describeNotebookInstanceResponse_volumeSizeInGB :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Natural)
describeNotebookInstanceResponse_volumeSizeInGB :: (Maybe Natural -> f (Maybe Natural))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_volumeSizeInGB = (DescribeNotebookInstanceResponse -> Maybe Natural)
-> (DescribeNotebookInstanceResponse
    -> Maybe Natural -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Natural
volumeSizeInGB :: Maybe Natural
$sel:volumeSizeInGB:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Natural
volumeSizeInGB} -> Maybe Natural
volumeSizeInGB) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Natural
a -> DescribeNotebookInstanceResponse
s {$sel:volumeSizeInGB:DescribeNotebookInstanceResponse' :: Maybe Natural
volumeSizeInGB = Maybe Natural
a} :: DescribeNotebookInstanceResponse)

-- | The Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data
-- when storing it on the ML storage volume attached to the instance.
describeNotebookInstanceResponse_kmsKeyId :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_kmsKeyId :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_kmsKeyId = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:kmsKeyId:DescribeNotebookInstanceResponse' :: Maybe Text
kmsKeyId = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | Whether root access is enabled or disabled for users of the notebook
-- instance.
--
-- Lifecycle configurations need root access to be able to set up a
-- notebook instance. Because of this, lifecycle configurations associated
-- with a notebook instance always run with root access even if you disable
-- root access for users.
describeNotebookInstanceResponse_rootAccess :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe RootAccess)
describeNotebookInstanceResponse_rootAccess :: (Maybe RootAccess -> f (Maybe RootAccess))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_rootAccess = (DescribeNotebookInstanceResponse -> Maybe RootAccess)
-> (DescribeNotebookInstanceResponse
    -> Maybe RootAccess -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe RootAccess)
     (Maybe RootAccess)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe RootAccess
rootAccess :: Maybe RootAccess
$sel:rootAccess:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe RootAccess
rootAccess} -> Maybe RootAccess
rootAccess) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe RootAccess
a -> DescribeNotebookInstanceResponse
s {$sel:rootAccess:DescribeNotebookInstanceResponse' :: Maybe RootAccess
rootAccess = Maybe RootAccess
a} :: DescribeNotebookInstanceResponse)

-- | Describes whether Amazon SageMaker provides internet access to the
-- notebook instance. If this value is set to /Disabled/, the notebook
-- instance does not have internet access, and cannot connect to Amazon
-- SageMaker training and endpoint services.
--
-- For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access Notebook Instances Are Internet-Enabled by Default>.
describeNotebookInstanceResponse_directInternetAccess :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe DirectInternetAccess)
describeNotebookInstanceResponse_directInternetAccess :: (Maybe DirectInternetAccess -> f (Maybe DirectInternetAccess))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_directInternetAccess = (DescribeNotebookInstanceResponse -> Maybe DirectInternetAccess)
-> (DescribeNotebookInstanceResponse
    -> Maybe DirectInternetAccess -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe DirectInternetAccess)
     (Maybe DirectInternetAccess)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe DirectInternetAccess
directInternetAccess :: Maybe DirectInternetAccess
$sel:directInternetAccess:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe DirectInternetAccess
directInternetAccess} -> Maybe DirectInternetAccess
directInternetAccess) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe DirectInternetAccess
a -> DescribeNotebookInstanceResponse
s {$sel:directInternetAccess:DescribeNotebookInstanceResponse' :: Maybe DirectInternetAccess
directInternetAccess = Maybe DirectInternetAccess
a} :: DescribeNotebookInstanceResponse)

-- | The Amazon Resource Name (ARN) of the notebook instance.
describeNotebookInstanceResponse_notebookInstanceArn :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_notebookInstanceArn :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_notebookInstanceArn = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
notebookInstanceArn :: Maybe Text
$sel:notebookInstanceArn:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
notebookInstanceArn} -> Maybe Text
notebookInstanceArn) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:notebookInstanceArn:DescribeNotebookInstanceResponse' :: Maybe Text
notebookInstanceArn = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | Returns the name of a notebook instance lifecycle configuration.
--
-- For information about notebook instance lifestyle configurations, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html Step 2.1: (Optional) Customize a Notebook Instance>
describeNotebookInstanceResponse_notebookInstanceLifecycleConfigName :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_notebookInstanceLifecycleConfigName :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_notebookInstanceLifecycleConfigName = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
notebookInstanceLifecycleConfigName :: Maybe Text
$sel:notebookInstanceLifecycleConfigName:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
notebookInstanceLifecycleConfigName} -> Maybe Text
notebookInstanceLifecycleConfigName) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:notebookInstanceLifecycleConfigName:DescribeNotebookInstanceResponse' :: Maybe Text
notebookInstanceLifecycleConfigName = Maybe Text
a} :: DescribeNotebookInstanceResponse)

-- | The Amazon Resource Name (ARN) of the IAM role associated with the
-- instance.
describeNotebookInstanceResponse_roleArn :: Lens.Lens' DescribeNotebookInstanceResponse (Prelude.Maybe Prelude.Text)
describeNotebookInstanceResponse_roleArn :: (Maybe Text -> f (Maybe Text))
-> DescribeNotebookInstanceResponse
-> f DescribeNotebookInstanceResponse
describeNotebookInstanceResponse_roleArn = (DescribeNotebookInstanceResponse -> Maybe Text)
-> (DescribeNotebookInstanceResponse
    -> Maybe Text -> DescribeNotebookInstanceResponse)
-> Lens
     DescribeNotebookInstanceResponse
     DescribeNotebookInstanceResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNotebookInstanceResponse' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DescribeNotebookInstanceResponse' :: DescribeNotebookInstanceResponse -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DescribeNotebookInstanceResponse
s@DescribeNotebookInstanceResponse' {} Maybe Text
a -> DescribeNotebookInstanceResponse
s {$sel:roleArn:DescribeNotebookInstanceResponse' :: Maybe Text
roleArn = Maybe Text
a} :: DescribeNotebookInstanceResponse)

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

instance
  Prelude.NFData
    DescribeNotebookInstanceResponse