{-# 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.CreateStudioLifecycleConfig
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a new Studio Lifecycle Configuration.
module Amazonka.SageMaker.CreateStudioLifecycleConfig
  ( -- * Creating a Request
    CreateStudioLifecycleConfig (..),
    newCreateStudioLifecycleConfig,

    -- * Request Lenses
    createStudioLifecycleConfig_tags,
    createStudioLifecycleConfig_studioLifecycleConfigName,
    createStudioLifecycleConfig_studioLifecycleConfigContent,
    createStudioLifecycleConfig_studioLifecycleConfigAppType,

    -- * Destructuring the Response
    CreateStudioLifecycleConfigResponse (..),
    newCreateStudioLifecycleConfigResponse,

    -- * Response Lenses
    createStudioLifecycleConfigResponse_studioLifecycleConfigArn,
    createStudioLifecycleConfigResponse_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:/ 'newCreateStudioLifecycleConfig' smart constructor.
data CreateStudioLifecycleConfig = CreateStudioLifecycleConfig'
  { -- | Tags to be associated with the Lifecycle Configuration. Each tag
    -- consists of a key and an optional value. Tag keys must be unique per
    -- resource. Tags are searchable using the Search API.
    CreateStudioLifecycleConfig -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The name of the Studio Lifecycle Configuration to create.
    CreateStudioLifecycleConfig -> Text
studioLifecycleConfigName :: Prelude.Text,
    -- | The content of your Studio Lifecycle Configuration script. This content
    -- must be base64 encoded.
    CreateStudioLifecycleConfig -> Text
studioLifecycleConfigContent :: Prelude.Text,
    -- | The App type that the Lifecycle Configuration is attached to.
    CreateStudioLifecycleConfig -> StudioLifecycleConfigAppType
studioLifecycleConfigAppType :: StudioLifecycleConfigAppType
  }
  deriving (CreateStudioLifecycleConfig -> CreateStudioLifecycleConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStudioLifecycleConfig -> CreateStudioLifecycleConfig -> Bool
$c/= :: CreateStudioLifecycleConfig -> CreateStudioLifecycleConfig -> Bool
== :: CreateStudioLifecycleConfig -> CreateStudioLifecycleConfig -> Bool
$c== :: CreateStudioLifecycleConfig -> CreateStudioLifecycleConfig -> Bool
Prelude.Eq, ReadPrec [CreateStudioLifecycleConfig]
ReadPrec CreateStudioLifecycleConfig
Int -> ReadS CreateStudioLifecycleConfig
ReadS [CreateStudioLifecycleConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStudioLifecycleConfig]
$creadListPrec :: ReadPrec [CreateStudioLifecycleConfig]
readPrec :: ReadPrec CreateStudioLifecycleConfig
$creadPrec :: ReadPrec CreateStudioLifecycleConfig
readList :: ReadS [CreateStudioLifecycleConfig]
$creadList :: ReadS [CreateStudioLifecycleConfig]
readsPrec :: Int -> ReadS CreateStudioLifecycleConfig
$creadsPrec :: Int -> ReadS CreateStudioLifecycleConfig
Prelude.Read, Int -> CreateStudioLifecycleConfig -> ShowS
[CreateStudioLifecycleConfig] -> ShowS
CreateStudioLifecycleConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStudioLifecycleConfig] -> ShowS
$cshowList :: [CreateStudioLifecycleConfig] -> ShowS
show :: CreateStudioLifecycleConfig -> String
$cshow :: CreateStudioLifecycleConfig -> String
showsPrec :: Int -> CreateStudioLifecycleConfig -> ShowS
$cshowsPrec :: Int -> CreateStudioLifecycleConfig -> ShowS
Prelude.Show, forall x.
Rep CreateStudioLifecycleConfig x -> CreateStudioLifecycleConfig
forall x.
CreateStudioLifecycleConfig -> Rep CreateStudioLifecycleConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateStudioLifecycleConfig x -> CreateStudioLifecycleConfig
$cfrom :: forall x.
CreateStudioLifecycleConfig -> Rep CreateStudioLifecycleConfig x
Prelude.Generic)

-- |
-- Create a value of 'CreateStudioLifecycleConfig' 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:
--
-- 'tags', 'createStudioLifecycleConfig_tags' - Tags to be associated with the Lifecycle Configuration. Each tag
-- consists of a key and an optional value. Tag keys must be unique per
-- resource. Tags are searchable using the Search API.
--
-- 'studioLifecycleConfigName', 'createStudioLifecycleConfig_studioLifecycleConfigName' - The name of the Studio Lifecycle Configuration to create.
--
-- 'studioLifecycleConfigContent', 'createStudioLifecycleConfig_studioLifecycleConfigContent' - The content of your Studio Lifecycle Configuration script. This content
-- must be base64 encoded.
--
-- 'studioLifecycleConfigAppType', 'createStudioLifecycleConfig_studioLifecycleConfigAppType' - The App type that the Lifecycle Configuration is attached to.
newCreateStudioLifecycleConfig ::
  -- | 'studioLifecycleConfigName'
  Prelude.Text ->
  -- | 'studioLifecycleConfigContent'
  Prelude.Text ->
  -- | 'studioLifecycleConfigAppType'
  StudioLifecycleConfigAppType ->
  CreateStudioLifecycleConfig
newCreateStudioLifecycleConfig :: Text
-> Text
-> StudioLifecycleConfigAppType
-> CreateStudioLifecycleConfig
newCreateStudioLifecycleConfig
  Text
pStudioLifecycleConfigName_
  Text
pStudioLifecycleConfigContent_
  StudioLifecycleConfigAppType
pStudioLifecycleConfigAppType_ =
    CreateStudioLifecycleConfig'
      { $sel:tags:CreateStudioLifecycleConfig' :: Maybe [Tag]
tags =
          forall a. Maybe a
Prelude.Nothing,
        $sel:studioLifecycleConfigName:CreateStudioLifecycleConfig' :: Text
studioLifecycleConfigName =
          Text
pStudioLifecycleConfigName_,
        $sel:studioLifecycleConfigContent:CreateStudioLifecycleConfig' :: Text
studioLifecycleConfigContent =
          Text
pStudioLifecycleConfigContent_,
        $sel:studioLifecycleConfigAppType:CreateStudioLifecycleConfig' :: StudioLifecycleConfigAppType
studioLifecycleConfigAppType =
          StudioLifecycleConfigAppType
pStudioLifecycleConfigAppType_
      }

-- | Tags to be associated with the Lifecycle Configuration. Each tag
-- consists of a key and an optional value. Tag keys must be unique per
-- resource. Tags are searchable using the Search API.
createStudioLifecycleConfig_tags :: Lens.Lens' CreateStudioLifecycleConfig (Prelude.Maybe [Tag])
createStudioLifecycleConfig_tags :: Lens' CreateStudioLifecycleConfig (Maybe [Tag])
createStudioLifecycleConfig_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStudioLifecycleConfig' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateStudioLifecycleConfig
s@CreateStudioLifecycleConfig' {} Maybe [Tag]
a -> CreateStudioLifecycleConfig
s {$sel:tags:CreateStudioLifecycleConfig' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateStudioLifecycleConfig) 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 name of the Studio Lifecycle Configuration to create.
createStudioLifecycleConfig_studioLifecycleConfigName :: Lens.Lens' CreateStudioLifecycleConfig Prelude.Text
createStudioLifecycleConfig_studioLifecycleConfigName :: Lens' CreateStudioLifecycleConfig Text
createStudioLifecycleConfig_studioLifecycleConfigName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStudioLifecycleConfig' {Text
studioLifecycleConfigName :: Text
$sel:studioLifecycleConfigName:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
studioLifecycleConfigName} -> Text
studioLifecycleConfigName) (\s :: CreateStudioLifecycleConfig
s@CreateStudioLifecycleConfig' {} Text
a -> CreateStudioLifecycleConfig
s {$sel:studioLifecycleConfigName:CreateStudioLifecycleConfig' :: Text
studioLifecycleConfigName = Text
a} :: CreateStudioLifecycleConfig)

-- | The content of your Studio Lifecycle Configuration script. This content
-- must be base64 encoded.
createStudioLifecycleConfig_studioLifecycleConfigContent :: Lens.Lens' CreateStudioLifecycleConfig Prelude.Text
createStudioLifecycleConfig_studioLifecycleConfigContent :: Lens' CreateStudioLifecycleConfig Text
createStudioLifecycleConfig_studioLifecycleConfigContent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStudioLifecycleConfig' {Text
studioLifecycleConfigContent :: Text
$sel:studioLifecycleConfigContent:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
studioLifecycleConfigContent} -> Text
studioLifecycleConfigContent) (\s :: CreateStudioLifecycleConfig
s@CreateStudioLifecycleConfig' {} Text
a -> CreateStudioLifecycleConfig
s {$sel:studioLifecycleConfigContent:CreateStudioLifecycleConfig' :: Text
studioLifecycleConfigContent = Text
a} :: CreateStudioLifecycleConfig)

-- | The App type that the Lifecycle Configuration is attached to.
createStudioLifecycleConfig_studioLifecycleConfigAppType :: Lens.Lens' CreateStudioLifecycleConfig StudioLifecycleConfigAppType
createStudioLifecycleConfig_studioLifecycleConfigAppType :: Lens' CreateStudioLifecycleConfig StudioLifecycleConfigAppType
createStudioLifecycleConfig_studioLifecycleConfigAppType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStudioLifecycleConfig' {StudioLifecycleConfigAppType
studioLifecycleConfigAppType :: StudioLifecycleConfigAppType
$sel:studioLifecycleConfigAppType:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> StudioLifecycleConfigAppType
studioLifecycleConfigAppType} -> StudioLifecycleConfigAppType
studioLifecycleConfigAppType) (\s :: CreateStudioLifecycleConfig
s@CreateStudioLifecycleConfig' {} StudioLifecycleConfigAppType
a -> CreateStudioLifecycleConfig
s {$sel:studioLifecycleConfigAppType:CreateStudioLifecycleConfig' :: StudioLifecycleConfigAppType
studioLifecycleConfigAppType = StudioLifecycleConfigAppType
a} :: CreateStudioLifecycleConfig)

instance Core.AWSRequest CreateStudioLifecycleConfig where
  type
    AWSResponse CreateStudioLifecycleConfig =
      CreateStudioLifecycleConfigResponse
  request :: (Service -> Service)
-> CreateStudioLifecycleConfig
-> Request CreateStudioLifecycleConfig
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 CreateStudioLifecycleConfig
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateStudioLifecycleConfig)))
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 -> Int -> CreateStudioLifecycleConfigResponse
CreateStudioLifecycleConfigResponse'
            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
"StudioLifecycleConfigArn")
            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 CreateStudioLifecycleConfig where
  hashWithSalt :: Int -> CreateStudioLifecycleConfig -> Int
hashWithSalt Int
_salt CreateStudioLifecycleConfig' {Maybe [Tag]
Text
StudioLifecycleConfigAppType
studioLifecycleConfigAppType :: StudioLifecycleConfigAppType
studioLifecycleConfigContent :: Text
studioLifecycleConfigName :: Text
tags :: Maybe [Tag]
$sel:studioLifecycleConfigAppType:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> StudioLifecycleConfigAppType
$sel:studioLifecycleConfigContent:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
$sel:studioLifecycleConfigName:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
$sel:tags:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Maybe [Tag]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
studioLifecycleConfigName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
studioLifecycleConfigContent
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` StudioLifecycleConfigAppType
studioLifecycleConfigAppType

instance Prelude.NFData CreateStudioLifecycleConfig where
  rnf :: CreateStudioLifecycleConfig -> ()
rnf CreateStudioLifecycleConfig' {Maybe [Tag]
Text
StudioLifecycleConfigAppType
studioLifecycleConfigAppType :: StudioLifecycleConfigAppType
studioLifecycleConfigContent :: Text
studioLifecycleConfigName :: Text
tags :: Maybe [Tag]
$sel:studioLifecycleConfigAppType:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> StudioLifecycleConfigAppType
$sel:studioLifecycleConfigContent:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
$sel:studioLifecycleConfigName:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
$sel:tags:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Maybe [Tag]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
studioLifecycleConfigName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
studioLifecycleConfigContent
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf StudioLifecycleConfigAppType
studioLifecycleConfigAppType

instance Data.ToHeaders CreateStudioLifecycleConfig where
  toHeaders :: CreateStudioLifecycleConfig -> 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.CreateStudioLifecycleConfig" ::
                          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 CreateStudioLifecycleConfig where
  toJSON :: CreateStudioLifecycleConfig -> Value
toJSON CreateStudioLifecycleConfig' {Maybe [Tag]
Text
StudioLifecycleConfigAppType
studioLifecycleConfigAppType :: StudioLifecycleConfigAppType
studioLifecycleConfigContent :: Text
studioLifecycleConfigName :: Text
tags :: Maybe [Tag]
$sel:studioLifecycleConfigAppType:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> StudioLifecycleConfigAppType
$sel:studioLifecycleConfigContent:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
$sel:studioLifecycleConfigName:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Text
$sel:tags:CreateStudioLifecycleConfig' :: CreateStudioLifecycleConfig -> Maybe [Tag]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags,
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"StudioLifecycleConfigName"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
studioLifecycleConfigName
              ),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"StudioLifecycleConfigContent"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
studioLifecycleConfigContent
              ),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"StudioLifecycleConfigAppType"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= StudioLifecycleConfigAppType
studioLifecycleConfigAppType
              )
          ]
      )

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

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

-- | /See:/ 'newCreateStudioLifecycleConfigResponse' smart constructor.
data CreateStudioLifecycleConfigResponse = CreateStudioLifecycleConfigResponse'
  { -- | The ARN of your created Lifecycle Configuration.
    CreateStudioLifecycleConfigResponse -> Maybe Text
studioLifecycleConfigArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateStudioLifecycleConfigResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateStudioLifecycleConfigResponse
-> CreateStudioLifecycleConfigResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStudioLifecycleConfigResponse
-> CreateStudioLifecycleConfigResponse -> Bool
$c/= :: CreateStudioLifecycleConfigResponse
-> CreateStudioLifecycleConfigResponse -> Bool
== :: CreateStudioLifecycleConfigResponse
-> CreateStudioLifecycleConfigResponse -> Bool
$c== :: CreateStudioLifecycleConfigResponse
-> CreateStudioLifecycleConfigResponse -> Bool
Prelude.Eq, ReadPrec [CreateStudioLifecycleConfigResponse]
ReadPrec CreateStudioLifecycleConfigResponse
Int -> ReadS CreateStudioLifecycleConfigResponse
ReadS [CreateStudioLifecycleConfigResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStudioLifecycleConfigResponse]
$creadListPrec :: ReadPrec [CreateStudioLifecycleConfigResponse]
readPrec :: ReadPrec CreateStudioLifecycleConfigResponse
$creadPrec :: ReadPrec CreateStudioLifecycleConfigResponse
readList :: ReadS [CreateStudioLifecycleConfigResponse]
$creadList :: ReadS [CreateStudioLifecycleConfigResponse]
readsPrec :: Int -> ReadS CreateStudioLifecycleConfigResponse
$creadsPrec :: Int -> ReadS CreateStudioLifecycleConfigResponse
Prelude.Read, Int -> CreateStudioLifecycleConfigResponse -> ShowS
[CreateStudioLifecycleConfigResponse] -> ShowS
CreateStudioLifecycleConfigResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStudioLifecycleConfigResponse] -> ShowS
$cshowList :: [CreateStudioLifecycleConfigResponse] -> ShowS
show :: CreateStudioLifecycleConfigResponse -> String
$cshow :: CreateStudioLifecycleConfigResponse -> String
showsPrec :: Int -> CreateStudioLifecycleConfigResponse -> ShowS
$cshowsPrec :: Int -> CreateStudioLifecycleConfigResponse -> ShowS
Prelude.Show, forall x.
Rep CreateStudioLifecycleConfigResponse x
-> CreateStudioLifecycleConfigResponse
forall x.
CreateStudioLifecycleConfigResponse
-> Rep CreateStudioLifecycleConfigResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateStudioLifecycleConfigResponse x
-> CreateStudioLifecycleConfigResponse
$cfrom :: forall x.
CreateStudioLifecycleConfigResponse
-> Rep CreateStudioLifecycleConfigResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateStudioLifecycleConfigResponse' 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:
--
-- 'studioLifecycleConfigArn', 'createStudioLifecycleConfigResponse_studioLifecycleConfigArn' - The ARN of your created Lifecycle Configuration.
--
-- 'httpStatus', 'createStudioLifecycleConfigResponse_httpStatus' - The response's http status code.
newCreateStudioLifecycleConfigResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateStudioLifecycleConfigResponse
newCreateStudioLifecycleConfigResponse :: Int -> CreateStudioLifecycleConfigResponse
newCreateStudioLifecycleConfigResponse Int
pHttpStatus_ =
  CreateStudioLifecycleConfigResponse'
    { $sel:studioLifecycleConfigArn:CreateStudioLifecycleConfigResponse' :: Maybe Text
studioLifecycleConfigArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateStudioLifecycleConfigResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN of your created Lifecycle Configuration.
createStudioLifecycleConfigResponse_studioLifecycleConfigArn :: Lens.Lens' CreateStudioLifecycleConfigResponse (Prelude.Maybe Prelude.Text)
createStudioLifecycleConfigResponse_studioLifecycleConfigArn :: Lens' CreateStudioLifecycleConfigResponse (Maybe Text)
createStudioLifecycleConfigResponse_studioLifecycleConfigArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStudioLifecycleConfigResponse' {Maybe Text
studioLifecycleConfigArn :: Maybe Text
$sel:studioLifecycleConfigArn:CreateStudioLifecycleConfigResponse' :: CreateStudioLifecycleConfigResponse -> Maybe Text
studioLifecycleConfigArn} -> Maybe Text
studioLifecycleConfigArn) (\s :: CreateStudioLifecycleConfigResponse
s@CreateStudioLifecycleConfigResponse' {} Maybe Text
a -> CreateStudioLifecycleConfigResponse
s {$sel:studioLifecycleConfigArn:CreateStudioLifecycleConfigResponse' :: Maybe Text
studioLifecycleConfigArn = Maybe Text
a} :: CreateStudioLifecycleConfigResponse)

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

instance
  Prelude.NFData
    CreateStudioLifecycleConfigResponse
  where
  rnf :: CreateStudioLifecycleConfigResponse -> ()
rnf CreateStudioLifecycleConfigResponse' {Int
Maybe Text
httpStatus :: Int
studioLifecycleConfigArn :: Maybe Text
$sel:httpStatus:CreateStudioLifecycleConfigResponse' :: CreateStudioLifecycleConfigResponse -> Int
$sel:studioLifecycleConfigArn:CreateStudioLifecycleConfigResponse' :: CreateStudioLifecycleConfigResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
studioLifecycleConfigArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus