{-# 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.Proton.GetTemplateSyncStatus
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get the status of a template sync.
module Amazonka.Proton.GetTemplateSyncStatus
  ( -- * Creating a Request
    GetTemplateSyncStatus (..),
    newGetTemplateSyncStatus,

    -- * Request Lenses
    getTemplateSyncStatus_templateName,
    getTemplateSyncStatus_templateType,
    getTemplateSyncStatus_templateVersion,

    -- * Destructuring the Response
    GetTemplateSyncStatusResponse (..),
    newGetTemplateSyncStatusResponse,

    -- * Response Lenses
    getTemplateSyncStatusResponse_desiredState,
    getTemplateSyncStatusResponse_latestSuccessfulSync,
    getTemplateSyncStatusResponse_latestSync,
    getTemplateSyncStatusResponse_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 Amazonka.Proton.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newGetTemplateSyncStatus' smart constructor.
data GetTemplateSyncStatus = GetTemplateSyncStatus'
  { -- | The template name.
    GetTemplateSyncStatus -> Text
templateName :: Prelude.Text,
    -- | The template type.
    GetTemplateSyncStatus -> TemplateType
templateType :: TemplateType,
    -- | The template major version.
    GetTemplateSyncStatus -> Text
templateVersion :: Prelude.Text
  }
  deriving (GetTemplateSyncStatus -> GetTemplateSyncStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTemplateSyncStatus -> GetTemplateSyncStatus -> Bool
$c/= :: GetTemplateSyncStatus -> GetTemplateSyncStatus -> Bool
== :: GetTemplateSyncStatus -> GetTemplateSyncStatus -> Bool
$c== :: GetTemplateSyncStatus -> GetTemplateSyncStatus -> Bool
Prelude.Eq, ReadPrec [GetTemplateSyncStatus]
ReadPrec GetTemplateSyncStatus
Int -> ReadS GetTemplateSyncStatus
ReadS [GetTemplateSyncStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTemplateSyncStatus]
$creadListPrec :: ReadPrec [GetTemplateSyncStatus]
readPrec :: ReadPrec GetTemplateSyncStatus
$creadPrec :: ReadPrec GetTemplateSyncStatus
readList :: ReadS [GetTemplateSyncStatus]
$creadList :: ReadS [GetTemplateSyncStatus]
readsPrec :: Int -> ReadS GetTemplateSyncStatus
$creadsPrec :: Int -> ReadS GetTemplateSyncStatus
Prelude.Read, Int -> GetTemplateSyncStatus -> ShowS
[GetTemplateSyncStatus] -> ShowS
GetTemplateSyncStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTemplateSyncStatus] -> ShowS
$cshowList :: [GetTemplateSyncStatus] -> ShowS
show :: GetTemplateSyncStatus -> String
$cshow :: GetTemplateSyncStatus -> String
showsPrec :: Int -> GetTemplateSyncStatus -> ShowS
$cshowsPrec :: Int -> GetTemplateSyncStatus -> ShowS
Prelude.Show, forall x. Rep GetTemplateSyncStatus x -> GetTemplateSyncStatus
forall x. GetTemplateSyncStatus -> Rep GetTemplateSyncStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetTemplateSyncStatus x -> GetTemplateSyncStatus
$cfrom :: forall x. GetTemplateSyncStatus -> Rep GetTemplateSyncStatus x
Prelude.Generic)

-- |
-- Create a value of 'GetTemplateSyncStatus' 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:
--
-- 'templateName', 'getTemplateSyncStatus_templateName' - The template name.
--
-- 'templateType', 'getTemplateSyncStatus_templateType' - The template type.
--
-- 'templateVersion', 'getTemplateSyncStatus_templateVersion' - The template major version.
newGetTemplateSyncStatus ::
  -- | 'templateName'
  Prelude.Text ->
  -- | 'templateType'
  TemplateType ->
  -- | 'templateVersion'
  Prelude.Text ->
  GetTemplateSyncStatus
newGetTemplateSyncStatus :: Text -> TemplateType -> Text -> GetTemplateSyncStatus
newGetTemplateSyncStatus
  Text
pTemplateName_
  TemplateType
pTemplateType_
  Text
pTemplateVersion_ =
    GetTemplateSyncStatus'
      { $sel:templateName:GetTemplateSyncStatus' :: Text
templateName =
          Text
pTemplateName_,
        $sel:templateType:GetTemplateSyncStatus' :: TemplateType
templateType = TemplateType
pTemplateType_,
        $sel:templateVersion:GetTemplateSyncStatus' :: Text
templateVersion = Text
pTemplateVersion_
      }

-- | The template name.
getTemplateSyncStatus_templateName :: Lens.Lens' GetTemplateSyncStatus Prelude.Text
getTemplateSyncStatus_templateName :: Lens' GetTemplateSyncStatus Text
getTemplateSyncStatus_templateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateSyncStatus' {Text
templateName :: Text
$sel:templateName:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> Text
templateName} -> Text
templateName) (\s :: GetTemplateSyncStatus
s@GetTemplateSyncStatus' {} Text
a -> GetTemplateSyncStatus
s {$sel:templateName:GetTemplateSyncStatus' :: Text
templateName = Text
a} :: GetTemplateSyncStatus)

-- | The template type.
getTemplateSyncStatus_templateType :: Lens.Lens' GetTemplateSyncStatus TemplateType
getTemplateSyncStatus_templateType :: Lens' GetTemplateSyncStatus TemplateType
getTemplateSyncStatus_templateType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateSyncStatus' {TemplateType
templateType :: TemplateType
$sel:templateType:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> TemplateType
templateType} -> TemplateType
templateType) (\s :: GetTemplateSyncStatus
s@GetTemplateSyncStatus' {} TemplateType
a -> GetTemplateSyncStatus
s {$sel:templateType:GetTemplateSyncStatus' :: TemplateType
templateType = TemplateType
a} :: GetTemplateSyncStatus)

-- | The template major version.
getTemplateSyncStatus_templateVersion :: Lens.Lens' GetTemplateSyncStatus Prelude.Text
getTemplateSyncStatus_templateVersion :: Lens' GetTemplateSyncStatus Text
getTemplateSyncStatus_templateVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateSyncStatus' {Text
templateVersion :: Text
$sel:templateVersion:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> Text
templateVersion} -> Text
templateVersion) (\s :: GetTemplateSyncStatus
s@GetTemplateSyncStatus' {} Text
a -> GetTemplateSyncStatus
s {$sel:templateVersion:GetTemplateSyncStatus' :: Text
templateVersion = Text
a} :: GetTemplateSyncStatus)

instance Core.AWSRequest GetTemplateSyncStatus where
  type
    AWSResponse GetTemplateSyncStatus =
      GetTemplateSyncStatusResponse
  request :: (Service -> Service)
-> GetTemplateSyncStatus -> Request GetTemplateSyncStatus
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 GetTemplateSyncStatus
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetTemplateSyncStatus)))
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 Revision
-> Maybe ResourceSyncAttempt
-> Maybe ResourceSyncAttempt
-> Int
-> GetTemplateSyncStatusResponse
GetTemplateSyncStatusResponse'
            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
"desiredState")
            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
"latestSuccessfulSync")
            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
"latestSync")
            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 GetTemplateSyncStatus where
  hashWithSalt :: Int -> GetTemplateSyncStatus -> Int
hashWithSalt Int
_salt GetTemplateSyncStatus' {Text
TemplateType
templateVersion :: Text
templateType :: TemplateType
templateName :: Text
$sel:templateVersion:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> Text
$sel:templateType:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> TemplateType
$sel:templateName:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TemplateType
templateType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateVersion

instance Prelude.NFData GetTemplateSyncStatus where
  rnf :: GetTemplateSyncStatus -> ()
rnf GetTemplateSyncStatus' {Text
TemplateType
templateVersion :: Text
templateType :: TemplateType
templateName :: Text
$sel:templateVersion:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> Text
$sel:templateType:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> TemplateType
$sel:templateName:GetTemplateSyncStatus' :: GetTemplateSyncStatus -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
templateName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TemplateType
templateType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
templateVersion

instance Data.ToHeaders GetTemplateSyncStatus where
  toHeaders :: GetTemplateSyncStatus -> 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
"AwsProton20200720.GetTemplateSyncStatus" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

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

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

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

-- | /See:/ 'newGetTemplateSyncStatusResponse' smart constructor.
data GetTemplateSyncStatusResponse = GetTemplateSyncStatusResponse'
  { -- | The template sync desired state that\'s returned by Proton.
    GetTemplateSyncStatusResponse -> Maybe Revision
desiredState :: Prelude.Maybe Revision,
    -- | The details of the last successful sync that\'s returned by Proton.
    GetTemplateSyncStatusResponse -> Maybe ResourceSyncAttempt
latestSuccessfulSync :: Prelude.Maybe ResourceSyncAttempt,
    -- | The details of the last sync that\'s returned by Proton.
    GetTemplateSyncStatusResponse -> Maybe ResourceSyncAttempt
latestSync :: Prelude.Maybe ResourceSyncAttempt,
    -- | The response's http status code.
    GetTemplateSyncStatusResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetTemplateSyncStatusResponse
-> GetTemplateSyncStatusResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTemplateSyncStatusResponse
-> GetTemplateSyncStatusResponse -> Bool
$c/= :: GetTemplateSyncStatusResponse
-> GetTemplateSyncStatusResponse -> Bool
== :: GetTemplateSyncStatusResponse
-> GetTemplateSyncStatusResponse -> Bool
$c== :: GetTemplateSyncStatusResponse
-> GetTemplateSyncStatusResponse -> Bool
Prelude.Eq, ReadPrec [GetTemplateSyncStatusResponse]
ReadPrec GetTemplateSyncStatusResponse
Int -> ReadS GetTemplateSyncStatusResponse
ReadS [GetTemplateSyncStatusResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTemplateSyncStatusResponse]
$creadListPrec :: ReadPrec [GetTemplateSyncStatusResponse]
readPrec :: ReadPrec GetTemplateSyncStatusResponse
$creadPrec :: ReadPrec GetTemplateSyncStatusResponse
readList :: ReadS [GetTemplateSyncStatusResponse]
$creadList :: ReadS [GetTemplateSyncStatusResponse]
readsPrec :: Int -> ReadS GetTemplateSyncStatusResponse
$creadsPrec :: Int -> ReadS GetTemplateSyncStatusResponse
Prelude.Read, Int -> GetTemplateSyncStatusResponse -> ShowS
[GetTemplateSyncStatusResponse] -> ShowS
GetTemplateSyncStatusResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTemplateSyncStatusResponse] -> ShowS
$cshowList :: [GetTemplateSyncStatusResponse] -> ShowS
show :: GetTemplateSyncStatusResponse -> String
$cshow :: GetTemplateSyncStatusResponse -> String
showsPrec :: Int -> GetTemplateSyncStatusResponse -> ShowS
$cshowsPrec :: Int -> GetTemplateSyncStatusResponse -> ShowS
Prelude.Show, forall x.
Rep GetTemplateSyncStatusResponse x
-> GetTemplateSyncStatusResponse
forall x.
GetTemplateSyncStatusResponse
-> Rep GetTemplateSyncStatusResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetTemplateSyncStatusResponse x
-> GetTemplateSyncStatusResponse
$cfrom :: forall x.
GetTemplateSyncStatusResponse
-> Rep GetTemplateSyncStatusResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetTemplateSyncStatusResponse' 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:
--
-- 'desiredState', 'getTemplateSyncStatusResponse_desiredState' - The template sync desired state that\'s returned by Proton.
--
-- 'latestSuccessfulSync', 'getTemplateSyncStatusResponse_latestSuccessfulSync' - The details of the last successful sync that\'s returned by Proton.
--
-- 'latestSync', 'getTemplateSyncStatusResponse_latestSync' - The details of the last sync that\'s returned by Proton.
--
-- 'httpStatus', 'getTemplateSyncStatusResponse_httpStatus' - The response's http status code.
newGetTemplateSyncStatusResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetTemplateSyncStatusResponse
newGetTemplateSyncStatusResponse :: Int -> GetTemplateSyncStatusResponse
newGetTemplateSyncStatusResponse Int
pHttpStatus_ =
  GetTemplateSyncStatusResponse'
    { $sel:desiredState:GetTemplateSyncStatusResponse' :: Maybe Revision
desiredState =
        forall a. Maybe a
Prelude.Nothing,
      $sel:latestSuccessfulSync:GetTemplateSyncStatusResponse' :: Maybe ResourceSyncAttempt
latestSuccessfulSync = forall a. Maybe a
Prelude.Nothing,
      $sel:latestSync:GetTemplateSyncStatusResponse' :: Maybe ResourceSyncAttempt
latestSync = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetTemplateSyncStatusResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The template sync desired state that\'s returned by Proton.
getTemplateSyncStatusResponse_desiredState :: Lens.Lens' GetTemplateSyncStatusResponse (Prelude.Maybe Revision)
getTemplateSyncStatusResponse_desiredState :: Lens' GetTemplateSyncStatusResponse (Maybe Revision)
getTemplateSyncStatusResponse_desiredState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateSyncStatusResponse' {Maybe Revision
desiredState :: Maybe Revision
$sel:desiredState:GetTemplateSyncStatusResponse' :: GetTemplateSyncStatusResponse -> Maybe Revision
desiredState} -> Maybe Revision
desiredState) (\s :: GetTemplateSyncStatusResponse
s@GetTemplateSyncStatusResponse' {} Maybe Revision
a -> GetTemplateSyncStatusResponse
s {$sel:desiredState:GetTemplateSyncStatusResponse' :: Maybe Revision
desiredState = Maybe Revision
a} :: GetTemplateSyncStatusResponse)

-- | The details of the last successful sync that\'s returned by Proton.
getTemplateSyncStatusResponse_latestSuccessfulSync :: Lens.Lens' GetTemplateSyncStatusResponse (Prelude.Maybe ResourceSyncAttempt)
getTemplateSyncStatusResponse_latestSuccessfulSync :: Lens' GetTemplateSyncStatusResponse (Maybe ResourceSyncAttempt)
getTemplateSyncStatusResponse_latestSuccessfulSync = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateSyncStatusResponse' {Maybe ResourceSyncAttempt
latestSuccessfulSync :: Maybe ResourceSyncAttempt
$sel:latestSuccessfulSync:GetTemplateSyncStatusResponse' :: GetTemplateSyncStatusResponse -> Maybe ResourceSyncAttempt
latestSuccessfulSync} -> Maybe ResourceSyncAttempt
latestSuccessfulSync) (\s :: GetTemplateSyncStatusResponse
s@GetTemplateSyncStatusResponse' {} Maybe ResourceSyncAttempt
a -> GetTemplateSyncStatusResponse
s {$sel:latestSuccessfulSync:GetTemplateSyncStatusResponse' :: Maybe ResourceSyncAttempt
latestSuccessfulSync = Maybe ResourceSyncAttempt
a} :: GetTemplateSyncStatusResponse)

-- | The details of the last sync that\'s returned by Proton.
getTemplateSyncStatusResponse_latestSync :: Lens.Lens' GetTemplateSyncStatusResponse (Prelude.Maybe ResourceSyncAttempt)
getTemplateSyncStatusResponse_latestSync :: Lens' GetTemplateSyncStatusResponse (Maybe ResourceSyncAttempt)
getTemplateSyncStatusResponse_latestSync = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateSyncStatusResponse' {Maybe ResourceSyncAttempt
latestSync :: Maybe ResourceSyncAttempt
$sel:latestSync:GetTemplateSyncStatusResponse' :: GetTemplateSyncStatusResponse -> Maybe ResourceSyncAttempt
latestSync} -> Maybe ResourceSyncAttempt
latestSync) (\s :: GetTemplateSyncStatusResponse
s@GetTemplateSyncStatusResponse' {} Maybe ResourceSyncAttempt
a -> GetTemplateSyncStatusResponse
s {$sel:latestSync:GetTemplateSyncStatusResponse' :: Maybe ResourceSyncAttempt
latestSync = Maybe ResourceSyncAttempt
a} :: GetTemplateSyncStatusResponse)

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

instance Prelude.NFData GetTemplateSyncStatusResponse where
  rnf :: GetTemplateSyncStatusResponse -> ()
rnf GetTemplateSyncStatusResponse' {Int
Maybe Revision
Maybe ResourceSyncAttempt
httpStatus :: Int
latestSync :: Maybe ResourceSyncAttempt
latestSuccessfulSync :: Maybe ResourceSyncAttempt
desiredState :: Maybe Revision
$sel:httpStatus:GetTemplateSyncStatusResponse' :: GetTemplateSyncStatusResponse -> Int
$sel:latestSync:GetTemplateSyncStatusResponse' :: GetTemplateSyncStatusResponse -> Maybe ResourceSyncAttempt
$sel:latestSuccessfulSync:GetTemplateSyncStatusResponse' :: GetTemplateSyncStatusResponse -> Maybe ResourceSyncAttempt
$sel:desiredState:GetTemplateSyncStatusResponse' :: GetTemplateSyncStatusResponse -> Maybe Revision
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Revision
desiredState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceSyncAttempt
latestSuccessfulSync
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceSyncAttempt
latestSync
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus