{-# 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.MigrationHubReFactorSpaces.DeleteService
-- 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 an Amazon Web Services Migration Hub Refactor Spaces service.
module Amazonka.MigrationHubReFactorSpaces.DeleteService
  ( -- * Creating a Request
    DeleteService (..),
    newDeleteService,

    -- * Request Lenses
    deleteService_applicationIdentifier,
    deleteService_environmentIdentifier,
    deleteService_serviceIdentifier,

    -- * Destructuring the Response
    DeleteServiceResponse (..),
    newDeleteServiceResponse,

    -- * Response Lenses
    deleteServiceResponse_applicationId,
    deleteServiceResponse_arn,
    deleteServiceResponse_environmentId,
    deleteServiceResponse_lastUpdatedTime,
    deleteServiceResponse_name,
    deleteServiceResponse_serviceId,
    deleteServiceResponse_state,
    deleteServiceResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MigrationHubReFactorSpaces.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDeleteService' smart constructor.
data DeleteService = DeleteService'
  { -- | Deletes a Refactor Spaces service.
    --
    -- The @RefactorSpacesSecurityGroup@ security group must be removed from
    -- all Amazon Web Services resources in the virtual private cloud (VPC)
    -- prior to deleting a service with a URL endpoint in a VPC.
    DeleteService -> Text
applicationIdentifier :: Prelude.Text,
    -- | The ID of the environment that the service is in.
    DeleteService -> Text
environmentIdentifier :: Prelude.Text,
    -- | The ID of the service to delete.
    DeleteService -> Text
serviceIdentifier :: Prelude.Text
  }
  deriving (DeleteService -> DeleteService -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteService -> DeleteService -> Bool
$c/= :: DeleteService -> DeleteService -> Bool
== :: DeleteService -> DeleteService -> Bool
$c== :: DeleteService -> DeleteService -> Bool
Prelude.Eq, ReadPrec [DeleteService]
ReadPrec DeleteService
Int -> ReadS DeleteService
ReadS [DeleteService]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteService]
$creadListPrec :: ReadPrec [DeleteService]
readPrec :: ReadPrec DeleteService
$creadPrec :: ReadPrec DeleteService
readList :: ReadS [DeleteService]
$creadList :: ReadS [DeleteService]
readsPrec :: Int -> ReadS DeleteService
$creadsPrec :: Int -> ReadS DeleteService
Prelude.Read, Int -> DeleteService -> ShowS
[DeleteService] -> ShowS
DeleteService -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteService] -> ShowS
$cshowList :: [DeleteService] -> ShowS
show :: DeleteService -> String
$cshow :: DeleteService -> String
showsPrec :: Int -> DeleteService -> ShowS
$cshowsPrec :: Int -> DeleteService -> ShowS
Prelude.Show, forall x. Rep DeleteService x -> DeleteService
forall x. DeleteService -> Rep DeleteService x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteService x -> DeleteService
$cfrom :: forall x. DeleteService -> Rep DeleteService x
Prelude.Generic)

-- |
-- Create a value of 'DeleteService' 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:
--
-- 'applicationIdentifier', 'deleteService_applicationIdentifier' - Deletes a Refactor Spaces service.
--
-- The @RefactorSpacesSecurityGroup@ security group must be removed from
-- all Amazon Web Services resources in the virtual private cloud (VPC)
-- prior to deleting a service with a URL endpoint in a VPC.
--
-- 'environmentIdentifier', 'deleteService_environmentIdentifier' - The ID of the environment that the service is in.
--
-- 'serviceIdentifier', 'deleteService_serviceIdentifier' - The ID of the service to delete.
newDeleteService ::
  -- | 'applicationIdentifier'
  Prelude.Text ->
  -- | 'environmentIdentifier'
  Prelude.Text ->
  -- | 'serviceIdentifier'
  Prelude.Text ->
  DeleteService
newDeleteService :: Text -> Text -> Text -> DeleteService
newDeleteService
  Text
pApplicationIdentifier_
  Text
pEnvironmentIdentifier_
  Text
pServiceIdentifier_ =
    DeleteService'
      { $sel:applicationIdentifier:DeleteService' :: Text
applicationIdentifier =
          Text
pApplicationIdentifier_,
        $sel:environmentIdentifier:DeleteService' :: Text
environmentIdentifier = Text
pEnvironmentIdentifier_,
        $sel:serviceIdentifier:DeleteService' :: Text
serviceIdentifier = Text
pServiceIdentifier_
      }

-- | Deletes a Refactor Spaces service.
--
-- The @RefactorSpacesSecurityGroup@ security group must be removed from
-- all Amazon Web Services resources in the virtual private cloud (VPC)
-- prior to deleting a service with a URL endpoint in a VPC.
deleteService_applicationIdentifier :: Lens.Lens' DeleteService Prelude.Text
deleteService_applicationIdentifier :: Lens' DeleteService Text
deleteService_applicationIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteService' {Text
applicationIdentifier :: Text
$sel:applicationIdentifier:DeleteService' :: DeleteService -> Text
applicationIdentifier} -> Text
applicationIdentifier) (\s :: DeleteService
s@DeleteService' {} Text
a -> DeleteService
s {$sel:applicationIdentifier:DeleteService' :: Text
applicationIdentifier = Text
a} :: DeleteService)

-- | The ID of the environment that the service is in.
deleteService_environmentIdentifier :: Lens.Lens' DeleteService Prelude.Text
deleteService_environmentIdentifier :: Lens' DeleteService Text
deleteService_environmentIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteService' {Text
environmentIdentifier :: Text
$sel:environmentIdentifier:DeleteService' :: DeleteService -> Text
environmentIdentifier} -> Text
environmentIdentifier) (\s :: DeleteService
s@DeleteService' {} Text
a -> DeleteService
s {$sel:environmentIdentifier:DeleteService' :: Text
environmentIdentifier = Text
a} :: DeleteService)

-- | The ID of the service to delete.
deleteService_serviceIdentifier :: Lens.Lens' DeleteService Prelude.Text
deleteService_serviceIdentifier :: Lens' DeleteService Text
deleteService_serviceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteService' {Text
serviceIdentifier :: Text
$sel:serviceIdentifier:DeleteService' :: DeleteService -> Text
serviceIdentifier} -> Text
serviceIdentifier) (\s :: DeleteService
s@DeleteService' {} Text
a -> DeleteService
s {$sel:serviceIdentifier:DeleteService' :: Text
serviceIdentifier = Text
a} :: DeleteService)

instance Core.AWSRequest DeleteService where
  type
    AWSResponse DeleteService =
      DeleteServiceResponse
  request :: (Service -> Service) -> DeleteService -> Request DeleteService
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 DeleteService
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DeleteService)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe ServiceState
-> Int
-> DeleteServiceResponse
DeleteServiceResponse'
            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
"ApplicationId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EnvironmentId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastUpdatedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ServiceId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"State")
            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 DeleteService where
  hashWithSalt :: Int -> DeleteService -> Int
hashWithSalt Int
_salt DeleteService' {Text
serviceIdentifier :: Text
environmentIdentifier :: Text
applicationIdentifier :: Text
$sel:serviceIdentifier:DeleteService' :: DeleteService -> Text
$sel:environmentIdentifier:DeleteService' :: DeleteService -> Text
$sel:applicationIdentifier:DeleteService' :: DeleteService -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
environmentIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
serviceIdentifier

instance Prelude.NFData DeleteService where
  rnf :: DeleteService -> ()
rnf DeleteService' {Text
serviceIdentifier :: Text
environmentIdentifier :: Text
applicationIdentifier :: Text
$sel:serviceIdentifier:DeleteService' :: DeleteService -> Text
$sel:environmentIdentifier:DeleteService' :: DeleteService -> Text
$sel:applicationIdentifier:DeleteService' :: DeleteService -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
applicationIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
environmentIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
serviceIdentifier

instance Data.ToHeaders DeleteService where
  toHeaders :: DeleteService -> ResponseHeaders
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 -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DeleteService where
  toPath :: DeleteService -> ByteString
toPath DeleteService' {Text
serviceIdentifier :: Text
environmentIdentifier :: Text
applicationIdentifier :: Text
$sel:serviceIdentifier:DeleteService' :: DeleteService -> Text
$sel:environmentIdentifier:DeleteService' :: DeleteService -> Text
$sel:applicationIdentifier:DeleteService' :: DeleteService -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/environments/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
environmentIdentifier,
        ByteString
"/applications/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
applicationIdentifier,
        ByteString
"/services/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
serviceIdentifier
      ]

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

-- | /See:/ 'newDeleteServiceResponse' smart constructor.
data DeleteServiceResponse = DeleteServiceResponse'
  { -- | The ID of the application that the service is in.
    DeleteServiceResponse -> Maybe Text
applicationId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the service.
    DeleteServiceResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier of the environment.
    DeleteServiceResponse -> Maybe Text
environmentId :: Prelude.Maybe Prelude.Text,
    -- | A timestamp that indicates when the service was last updated.
    DeleteServiceResponse -> Maybe POSIX
lastUpdatedTime :: Prelude.Maybe Data.POSIX,
    -- | The name of the service.
    DeleteServiceResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier of the service.
    DeleteServiceResponse -> Maybe Text
serviceId :: Prelude.Maybe Prelude.Text,
    -- | The current state of the service.
    DeleteServiceResponse -> Maybe ServiceState
state :: Prelude.Maybe ServiceState,
    -- | The response's http status code.
    DeleteServiceResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DeleteServiceResponse -> DeleteServiceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteServiceResponse -> DeleteServiceResponse -> Bool
$c/= :: DeleteServiceResponse -> DeleteServiceResponse -> Bool
== :: DeleteServiceResponse -> DeleteServiceResponse -> Bool
$c== :: DeleteServiceResponse -> DeleteServiceResponse -> Bool
Prelude.Eq, ReadPrec [DeleteServiceResponse]
ReadPrec DeleteServiceResponse
Int -> ReadS DeleteServiceResponse
ReadS [DeleteServiceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteServiceResponse]
$creadListPrec :: ReadPrec [DeleteServiceResponse]
readPrec :: ReadPrec DeleteServiceResponse
$creadPrec :: ReadPrec DeleteServiceResponse
readList :: ReadS [DeleteServiceResponse]
$creadList :: ReadS [DeleteServiceResponse]
readsPrec :: Int -> ReadS DeleteServiceResponse
$creadsPrec :: Int -> ReadS DeleteServiceResponse
Prelude.Read, Int -> DeleteServiceResponse -> ShowS
[DeleteServiceResponse] -> ShowS
DeleteServiceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteServiceResponse] -> ShowS
$cshowList :: [DeleteServiceResponse] -> ShowS
show :: DeleteServiceResponse -> String
$cshow :: DeleteServiceResponse -> String
showsPrec :: Int -> DeleteServiceResponse -> ShowS
$cshowsPrec :: Int -> DeleteServiceResponse -> ShowS
Prelude.Show, forall x. Rep DeleteServiceResponse x -> DeleteServiceResponse
forall x. DeleteServiceResponse -> Rep DeleteServiceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteServiceResponse x -> DeleteServiceResponse
$cfrom :: forall x. DeleteServiceResponse -> Rep DeleteServiceResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeleteServiceResponse' 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:
--
-- 'applicationId', 'deleteServiceResponse_applicationId' - The ID of the application that the service is in.
--
-- 'arn', 'deleteServiceResponse_arn' - The Amazon Resource Name (ARN) of the service.
--
-- 'environmentId', 'deleteServiceResponse_environmentId' - The unique identifier of the environment.
--
-- 'lastUpdatedTime', 'deleteServiceResponse_lastUpdatedTime' - A timestamp that indicates when the service was last updated.
--
-- 'name', 'deleteServiceResponse_name' - The name of the service.
--
-- 'serviceId', 'deleteServiceResponse_serviceId' - The unique identifier of the service.
--
-- 'state', 'deleteServiceResponse_state' - The current state of the service.
--
-- 'httpStatus', 'deleteServiceResponse_httpStatus' - The response's http status code.
newDeleteServiceResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeleteServiceResponse
newDeleteServiceResponse :: Int -> DeleteServiceResponse
newDeleteServiceResponse Int
pHttpStatus_ =
  DeleteServiceResponse'
    { $sel:applicationId:DeleteServiceResponse' :: Maybe Text
applicationId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:arn:DeleteServiceResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:environmentId:DeleteServiceResponse' :: Maybe Text
environmentId = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:DeleteServiceResponse' :: Maybe POSIX
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:DeleteServiceResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceId:DeleteServiceResponse' :: Maybe Text
serviceId = forall a. Maybe a
Prelude.Nothing,
      $sel:state:DeleteServiceResponse' :: Maybe ServiceState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DeleteServiceResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ID of the application that the service is in.
deleteServiceResponse_applicationId :: Lens.Lens' DeleteServiceResponse (Prelude.Maybe Prelude.Text)
deleteServiceResponse_applicationId :: Lens' DeleteServiceResponse (Maybe Text)
deleteServiceResponse_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteServiceResponse' {Maybe Text
applicationId :: Maybe Text
$sel:applicationId:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
applicationId} -> Maybe Text
applicationId) (\s :: DeleteServiceResponse
s@DeleteServiceResponse' {} Maybe Text
a -> DeleteServiceResponse
s {$sel:applicationId:DeleteServiceResponse' :: Maybe Text
applicationId = Maybe Text
a} :: DeleteServiceResponse)

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

-- | The unique identifier of the environment.
deleteServiceResponse_environmentId :: Lens.Lens' DeleteServiceResponse (Prelude.Maybe Prelude.Text)
deleteServiceResponse_environmentId :: Lens' DeleteServiceResponse (Maybe Text)
deleteServiceResponse_environmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteServiceResponse' {Maybe Text
environmentId :: Maybe Text
$sel:environmentId:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
environmentId} -> Maybe Text
environmentId) (\s :: DeleteServiceResponse
s@DeleteServiceResponse' {} Maybe Text
a -> DeleteServiceResponse
s {$sel:environmentId:DeleteServiceResponse' :: Maybe Text
environmentId = Maybe Text
a} :: DeleteServiceResponse)

-- | A timestamp that indicates when the service was last updated.
deleteServiceResponse_lastUpdatedTime :: Lens.Lens' DeleteServiceResponse (Prelude.Maybe Prelude.UTCTime)
deleteServiceResponse_lastUpdatedTime :: Lens' DeleteServiceResponse (Maybe UTCTime)
deleteServiceResponse_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteServiceResponse' {Maybe POSIX
lastUpdatedTime :: Maybe POSIX
$sel:lastUpdatedTime:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe POSIX
lastUpdatedTime} -> Maybe POSIX
lastUpdatedTime) (\s :: DeleteServiceResponse
s@DeleteServiceResponse' {} Maybe POSIX
a -> DeleteServiceResponse
s {$sel:lastUpdatedTime:DeleteServiceResponse' :: Maybe POSIX
lastUpdatedTime = Maybe POSIX
a} :: DeleteServiceResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

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

-- | The unique identifier of the service.
deleteServiceResponse_serviceId :: Lens.Lens' DeleteServiceResponse (Prelude.Maybe Prelude.Text)
deleteServiceResponse_serviceId :: Lens' DeleteServiceResponse (Maybe Text)
deleteServiceResponse_serviceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteServiceResponse' {Maybe Text
serviceId :: Maybe Text
$sel:serviceId:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
serviceId} -> Maybe Text
serviceId) (\s :: DeleteServiceResponse
s@DeleteServiceResponse' {} Maybe Text
a -> DeleteServiceResponse
s {$sel:serviceId:DeleteServiceResponse' :: Maybe Text
serviceId = Maybe Text
a} :: DeleteServiceResponse)

-- | The current state of the service.
deleteServiceResponse_state :: Lens.Lens' DeleteServiceResponse (Prelude.Maybe ServiceState)
deleteServiceResponse_state :: Lens' DeleteServiceResponse (Maybe ServiceState)
deleteServiceResponse_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteServiceResponse' {Maybe ServiceState
state :: Maybe ServiceState
$sel:state:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe ServiceState
state} -> Maybe ServiceState
state) (\s :: DeleteServiceResponse
s@DeleteServiceResponse' {} Maybe ServiceState
a -> DeleteServiceResponse
s {$sel:state:DeleteServiceResponse' :: Maybe ServiceState
state = Maybe ServiceState
a} :: DeleteServiceResponse)

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

instance Prelude.NFData DeleteServiceResponse where
  rnf :: DeleteServiceResponse -> ()
rnf DeleteServiceResponse' {Int
Maybe Text
Maybe POSIX
Maybe ServiceState
httpStatus :: Int
state :: Maybe ServiceState
serviceId :: Maybe Text
name :: Maybe Text
lastUpdatedTime :: Maybe POSIX
environmentId :: Maybe Text
arn :: Maybe Text
applicationId :: Maybe Text
$sel:httpStatus:DeleteServiceResponse' :: DeleteServiceResponse -> Int
$sel:state:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe ServiceState
$sel:serviceId:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
$sel:name:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
$sel:lastUpdatedTime:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe POSIX
$sel:environmentId:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
$sel:arn:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
$sel:applicationId:DeleteServiceResponse' :: DeleteServiceResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
environmentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ServiceState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus