{-# 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.Connect.DisassociateApprovedOrigin
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- This API is in preview release for Amazon Connect and is subject to
-- change.
--
-- Revokes access to integrated applications from Amazon Connect.
module Amazonka.Connect.DisassociateApprovedOrigin
  ( -- * Creating a Request
    DisassociateApprovedOrigin (..),
    newDisassociateApprovedOrigin,

    -- * Request Lenses
    disassociateApprovedOrigin_instanceId,
    disassociateApprovedOrigin_origin,

    -- * Destructuring the Response
    DisassociateApprovedOriginResponse (..),
    newDisassociateApprovedOriginResponse,
  )
where

import Amazonka.Connect.Types
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

-- | /See:/ 'newDisassociateApprovedOrigin' smart constructor.
data DisassociateApprovedOrigin = DisassociateApprovedOrigin'
  { -- | The identifier of the Amazon Connect instance. You can find the
    -- instanceId in the ARN of the instance.
    DisassociateApprovedOrigin -> Text
instanceId :: Prelude.Text,
    -- | The domain URL of the integrated application.
    DisassociateApprovedOrigin -> Text
origin :: Prelude.Text
  }
  deriving (DisassociateApprovedOrigin -> DisassociateApprovedOrigin -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DisassociateApprovedOrigin -> DisassociateApprovedOrigin -> Bool
$c/= :: DisassociateApprovedOrigin -> DisassociateApprovedOrigin -> Bool
== :: DisassociateApprovedOrigin -> DisassociateApprovedOrigin -> Bool
$c== :: DisassociateApprovedOrigin -> DisassociateApprovedOrigin -> Bool
Prelude.Eq, ReadPrec [DisassociateApprovedOrigin]
ReadPrec DisassociateApprovedOrigin
Int -> ReadS DisassociateApprovedOrigin
ReadS [DisassociateApprovedOrigin]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DisassociateApprovedOrigin]
$creadListPrec :: ReadPrec [DisassociateApprovedOrigin]
readPrec :: ReadPrec DisassociateApprovedOrigin
$creadPrec :: ReadPrec DisassociateApprovedOrigin
readList :: ReadS [DisassociateApprovedOrigin]
$creadList :: ReadS [DisassociateApprovedOrigin]
readsPrec :: Int -> ReadS DisassociateApprovedOrigin
$creadsPrec :: Int -> ReadS DisassociateApprovedOrigin
Prelude.Read, Int -> DisassociateApprovedOrigin -> ShowS
[DisassociateApprovedOrigin] -> ShowS
DisassociateApprovedOrigin -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DisassociateApprovedOrigin] -> ShowS
$cshowList :: [DisassociateApprovedOrigin] -> ShowS
show :: DisassociateApprovedOrigin -> String
$cshow :: DisassociateApprovedOrigin -> String
showsPrec :: Int -> DisassociateApprovedOrigin -> ShowS
$cshowsPrec :: Int -> DisassociateApprovedOrigin -> ShowS
Prelude.Show, forall x.
Rep DisassociateApprovedOrigin x -> DisassociateApprovedOrigin
forall x.
DisassociateApprovedOrigin -> Rep DisassociateApprovedOrigin x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DisassociateApprovedOrigin x -> DisassociateApprovedOrigin
$cfrom :: forall x.
DisassociateApprovedOrigin -> Rep DisassociateApprovedOrigin x
Prelude.Generic)

-- |
-- Create a value of 'DisassociateApprovedOrigin' 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:
--
-- 'instanceId', 'disassociateApprovedOrigin_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
--
-- 'origin', 'disassociateApprovedOrigin_origin' - The domain URL of the integrated application.
newDisassociateApprovedOrigin ::
  -- | 'instanceId'
  Prelude.Text ->
  -- | 'origin'
  Prelude.Text ->
  DisassociateApprovedOrigin
newDisassociateApprovedOrigin :: Text -> Text -> DisassociateApprovedOrigin
newDisassociateApprovedOrigin Text
pInstanceId_ Text
pOrigin_ =
  DisassociateApprovedOrigin'
    { $sel:instanceId:DisassociateApprovedOrigin' :: Text
instanceId =
        Text
pInstanceId_,
      $sel:origin:DisassociateApprovedOrigin' :: Text
origin = Text
pOrigin_
    }

-- | The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
disassociateApprovedOrigin_instanceId :: Lens.Lens' DisassociateApprovedOrigin Prelude.Text
disassociateApprovedOrigin_instanceId :: Lens' DisassociateApprovedOrigin Text
disassociateApprovedOrigin_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateApprovedOrigin' {Text
instanceId :: Text
$sel:instanceId:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
instanceId} -> Text
instanceId) (\s :: DisassociateApprovedOrigin
s@DisassociateApprovedOrigin' {} Text
a -> DisassociateApprovedOrigin
s {$sel:instanceId:DisassociateApprovedOrigin' :: Text
instanceId = Text
a} :: DisassociateApprovedOrigin)

-- | The domain URL of the integrated application.
disassociateApprovedOrigin_origin :: Lens.Lens' DisassociateApprovedOrigin Prelude.Text
disassociateApprovedOrigin_origin :: Lens' DisassociateApprovedOrigin Text
disassociateApprovedOrigin_origin = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateApprovedOrigin' {Text
origin :: Text
$sel:origin:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
origin} -> Text
origin) (\s :: DisassociateApprovedOrigin
s@DisassociateApprovedOrigin' {} Text
a -> DisassociateApprovedOrigin
s {$sel:origin:DisassociateApprovedOrigin' :: Text
origin = Text
a} :: DisassociateApprovedOrigin)

instance Core.AWSRequest DisassociateApprovedOrigin where
  type
    AWSResponse DisassociateApprovedOrigin =
      DisassociateApprovedOriginResponse
  request :: (Service -> Service)
-> DisassociateApprovedOrigin -> Request DisassociateApprovedOrigin
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.delete (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DisassociateApprovedOrigin
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DisassociateApprovedOrigin)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull
      DisassociateApprovedOriginResponse
DisassociateApprovedOriginResponse'

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

instance Prelude.NFData DisassociateApprovedOrigin where
  rnf :: DisassociateApprovedOrigin -> ()
rnf DisassociateApprovedOrigin' {Text
origin :: Text
instanceId :: Text
$sel:origin:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
$sel:instanceId:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
instanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
origin

instance Data.ToHeaders DisassociateApprovedOrigin where
  toHeaders :: DisassociateApprovedOrigin -> [Header]
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DisassociateApprovedOrigin where
  toPath :: DisassociateApprovedOrigin -> ByteString
toPath DisassociateApprovedOrigin' {Text
origin :: Text
instanceId :: Text
$sel:origin:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
$sel:instanceId:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/instance/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
instanceId,
        ByteString
"/approved-origin"
      ]

instance Data.ToQuery DisassociateApprovedOrigin where
  toQuery :: DisassociateApprovedOrigin -> QueryString
toQuery DisassociateApprovedOrigin' {Text
origin :: Text
instanceId :: Text
$sel:origin:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
$sel:instanceId:DisassociateApprovedOrigin' :: DisassociateApprovedOrigin -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"origin" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
origin]

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

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

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