{-# 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.DeleteModelPackage
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Deletes a model package.
--
-- A model package is used to create SageMaker models or list on Amazon Web
-- Services Marketplace. Buyers can subscribe to model packages listed on
-- Amazon Web Services Marketplace to create models in SageMaker.
module Amazonka.SageMaker.DeleteModelPackage
  ( -- * Creating a Request
    DeleteModelPackage (..),
    newDeleteModelPackage,

    -- * Request Lenses
    deleteModelPackage_modelPackageName,

    -- * Destructuring the Response
    DeleteModelPackageResponse (..),
    newDeleteModelPackageResponse,
  )
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:/ 'newDeleteModelPackage' smart constructor.
data DeleteModelPackage = DeleteModelPackage'
  { -- | The name or Amazon Resource Name (ARN) of the model package to delete.
    --
    -- When you specify a name, the name must have 1 to 63 characters. Valid
    -- characters are a-z, A-Z, 0-9, and - (hyphen).
    DeleteModelPackage -> Text
modelPackageName :: Prelude.Text
  }
  deriving (DeleteModelPackage -> DeleteModelPackage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteModelPackage -> DeleteModelPackage -> Bool
$c/= :: DeleteModelPackage -> DeleteModelPackage -> Bool
== :: DeleteModelPackage -> DeleteModelPackage -> Bool
$c== :: DeleteModelPackage -> DeleteModelPackage -> Bool
Prelude.Eq, ReadPrec [DeleteModelPackage]
ReadPrec DeleteModelPackage
Int -> ReadS DeleteModelPackage
ReadS [DeleteModelPackage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteModelPackage]
$creadListPrec :: ReadPrec [DeleteModelPackage]
readPrec :: ReadPrec DeleteModelPackage
$creadPrec :: ReadPrec DeleteModelPackage
readList :: ReadS [DeleteModelPackage]
$creadList :: ReadS [DeleteModelPackage]
readsPrec :: Int -> ReadS DeleteModelPackage
$creadsPrec :: Int -> ReadS DeleteModelPackage
Prelude.Read, Int -> DeleteModelPackage -> ShowS
[DeleteModelPackage] -> ShowS
DeleteModelPackage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteModelPackage] -> ShowS
$cshowList :: [DeleteModelPackage] -> ShowS
show :: DeleteModelPackage -> String
$cshow :: DeleteModelPackage -> String
showsPrec :: Int -> DeleteModelPackage -> ShowS
$cshowsPrec :: Int -> DeleteModelPackage -> ShowS
Prelude.Show, forall x. Rep DeleteModelPackage x -> DeleteModelPackage
forall x. DeleteModelPackage -> Rep DeleteModelPackage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteModelPackage x -> DeleteModelPackage
$cfrom :: forall x. DeleteModelPackage -> Rep DeleteModelPackage x
Prelude.Generic)

-- |
-- Create a value of 'DeleteModelPackage' 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:
--
-- 'modelPackageName', 'deleteModelPackage_modelPackageName' - The name or Amazon Resource Name (ARN) of the model package to delete.
--
-- When you specify a name, the name must have 1 to 63 characters. Valid
-- characters are a-z, A-Z, 0-9, and - (hyphen).
newDeleteModelPackage ::
  -- | 'modelPackageName'
  Prelude.Text ->
  DeleteModelPackage
newDeleteModelPackage :: Text -> DeleteModelPackage
newDeleteModelPackage Text
pModelPackageName_ =
  DeleteModelPackage'
    { $sel:modelPackageName:DeleteModelPackage' :: Text
modelPackageName =
        Text
pModelPackageName_
    }

-- | The name or Amazon Resource Name (ARN) of the model package to delete.
--
-- When you specify a name, the name must have 1 to 63 characters. Valid
-- characters are a-z, A-Z, 0-9, and - (hyphen).
deleteModelPackage_modelPackageName :: Lens.Lens' DeleteModelPackage Prelude.Text
deleteModelPackage_modelPackageName :: Lens' DeleteModelPackage Text
deleteModelPackage_modelPackageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteModelPackage' {Text
modelPackageName :: Text
$sel:modelPackageName:DeleteModelPackage' :: DeleteModelPackage -> Text
modelPackageName} -> Text
modelPackageName) (\s :: DeleteModelPackage
s@DeleteModelPackage' {} Text
a -> DeleteModelPackage
s {$sel:modelPackageName:DeleteModelPackage' :: Text
modelPackageName = Text
a} :: DeleteModelPackage)

instance Core.AWSRequest DeleteModelPackage where
  type
    AWSResponse DeleteModelPackage =
      DeleteModelPackageResponse
  request :: (Service -> Service)
-> DeleteModelPackage -> Request DeleteModelPackage
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 DeleteModelPackage
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DeleteModelPackage)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull DeleteModelPackageResponse
DeleteModelPackageResponse'

instance Prelude.Hashable DeleteModelPackage where
  hashWithSalt :: Int -> DeleteModelPackage -> Int
hashWithSalt Int
_salt DeleteModelPackage' {Text
modelPackageName :: Text
$sel:modelPackageName:DeleteModelPackage' :: DeleteModelPackage -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
modelPackageName

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

instance Data.ToHeaders DeleteModelPackage where
  toHeaders :: DeleteModelPackage -> [Header]
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 -> [Header]
Data.=# ( ByteString
"SageMaker.DeleteModelPackage" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DeleteModelPackage where
  toJSON :: DeleteModelPackage -> Value
toJSON DeleteModelPackage' {Text
modelPackageName :: Text
$sel:modelPackageName:DeleteModelPackage' :: DeleteModelPackage -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              (Key
"ModelPackageName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
modelPackageName)
          ]
      )

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

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

-- | /See:/ 'newDeleteModelPackageResponse' smart constructor.
data DeleteModelPackageResponse = DeleteModelPackageResponse'
  {
  }
  deriving (DeleteModelPackageResponse -> DeleteModelPackageResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteModelPackageResponse -> DeleteModelPackageResponse -> Bool
$c/= :: DeleteModelPackageResponse -> DeleteModelPackageResponse -> Bool
== :: DeleteModelPackageResponse -> DeleteModelPackageResponse -> Bool
$c== :: DeleteModelPackageResponse -> DeleteModelPackageResponse -> Bool
Prelude.Eq, ReadPrec [DeleteModelPackageResponse]
ReadPrec DeleteModelPackageResponse
Int -> ReadS DeleteModelPackageResponse
ReadS [DeleteModelPackageResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteModelPackageResponse]
$creadListPrec :: ReadPrec [DeleteModelPackageResponse]
readPrec :: ReadPrec DeleteModelPackageResponse
$creadPrec :: ReadPrec DeleteModelPackageResponse
readList :: ReadS [DeleteModelPackageResponse]
$creadList :: ReadS [DeleteModelPackageResponse]
readsPrec :: Int -> ReadS DeleteModelPackageResponse
$creadsPrec :: Int -> ReadS DeleteModelPackageResponse
Prelude.Read, Int -> DeleteModelPackageResponse -> ShowS
[DeleteModelPackageResponse] -> ShowS
DeleteModelPackageResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteModelPackageResponse] -> ShowS
$cshowList :: [DeleteModelPackageResponse] -> ShowS
show :: DeleteModelPackageResponse -> String
$cshow :: DeleteModelPackageResponse -> String
showsPrec :: Int -> DeleteModelPackageResponse -> ShowS
$cshowsPrec :: Int -> DeleteModelPackageResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteModelPackageResponse x -> DeleteModelPackageResponse
forall x.
DeleteModelPackageResponse -> Rep DeleteModelPackageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteModelPackageResponse x -> DeleteModelPackageResponse
$cfrom :: forall x.
DeleteModelPackageResponse -> Rep DeleteModelPackageResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeleteModelPackageResponse' 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.
newDeleteModelPackageResponse ::
  DeleteModelPackageResponse
newDeleteModelPackageResponse :: DeleteModelPackageResponse
newDeleteModelPackageResponse =
  DeleteModelPackageResponse
DeleteModelPackageResponse'

instance Prelude.NFData DeleteModelPackageResponse where
  rnf :: DeleteModelPackageResponse -> ()
rnf DeleteModelPackageResponse
_ = ()