{-# 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.EC2.CreateStoreImageTask
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Stores an AMI as a single object in an Amazon S3 bucket.
--
-- To use this API, you must have the required permissions. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions Permissions for storing and restoring AMIs using Amazon S3>
-- in the /Amazon EC2 User Guide/.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html Store and restore an AMI using Amazon S3>
-- in the /Amazon EC2 User Guide/.
module Amazonka.EC2.CreateStoreImageTask
  ( -- * Creating a Request
    CreateStoreImageTask (..),
    newCreateStoreImageTask,

    -- * Request Lenses
    createStoreImageTask_dryRun,
    createStoreImageTask_s3ObjectTags,
    createStoreImageTask_imageId,
    createStoreImageTask_bucket,

    -- * Destructuring the Response
    CreateStoreImageTaskResponse (..),
    newCreateStoreImageTaskResponse,

    -- * Response Lenses
    createStoreImageTaskResponse_objectKey,
    createStoreImageTaskResponse_httpStatus,
  )
where

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

-- | /See:/ 'newCreateStoreImageTask' smart constructor.
data CreateStoreImageTask = CreateStoreImageTask'
  { -- | Checks whether you have the required permissions for the action, without
    -- actually making the request, and provides an error response. If you have
    -- the required permissions, the error response is @DryRunOperation@.
    -- Otherwise, it is @UnauthorizedOperation@.
    CreateStoreImageTask -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The tags to apply to the AMI object that will be stored in the Amazon S3
    -- bucket.
    CreateStoreImageTask -> Maybe [S3ObjectTag]
s3ObjectTags :: Prelude.Maybe [S3ObjectTag],
    -- | The ID of the AMI.
    CreateStoreImageTask -> Text
imageId :: Prelude.Text,
    -- | The name of the Amazon S3 bucket in which the AMI object will be stored.
    -- The bucket must be in the Region in which the request is being made. The
    -- AMI object appears in the bucket only after the upload task has
    -- completed.
    CreateStoreImageTask -> Text
bucket :: Prelude.Text
  }
  deriving (CreateStoreImageTask -> CreateStoreImageTask -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStoreImageTask -> CreateStoreImageTask -> Bool
$c/= :: CreateStoreImageTask -> CreateStoreImageTask -> Bool
== :: CreateStoreImageTask -> CreateStoreImageTask -> Bool
$c== :: CreateStoreImageTask -> CreateStoreImageTask -> Bool
Prelude.Eq, ReadPrec [CreateStoreImageTask]
ReadPrec CreateStoreImageTask
Int -> ReadS CreateStoreImageTask
ReadS [CreateStoreImageTask]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStoreImageTask]
$creadListPrec :: ReadPrec [CreateStoreImageTask]
readPrec :: ReadPrec CreateStoreImageTask
$creadPrec :: ReadPrec CreateStoreImageTask
readList :: ReadS [CreateStoreImageTask]
$creadList :: ReadS [CreateStoreImageTask]
readsPrec :: Int -> ReadS CreateStoreImageTask
$creadsPrec :: Int -> ReadS CreateStoreImageTask
Prelude.Read, Int -> CreateStoreImageTask -> ShowS
[CreateStoreImageTask] -> ShowS
CreateStoreImageTask -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStoreImageTask] -> ShowS
$cshowList :: [CreateStoreImageTask] -> ShowS
show :: CreateStoreImageTask -> String
$cshow :: CreateStoreImageTask -> String
showsPrec :: Int -> CreateStoreImageTask -> ShowS
$cshowsPrec :: Int -> CreateStoreImageTask -> ShowS
Prelude.Show, forall x. Rep CreateStoreImageTask x -> CreateStoreImageTask
forall x. CreateStoreImageTask -> Rep CreateStoreImageTask x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateStoreImageTask x -> CreateStoreImageTask
$cfrom :: forall x. CreateStoreImageTask -> Rep CreateStoreImageTask x
Prelude.Generic)

-- |
-- Create a value of 'CreateStoreImageTask' 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:
--
-- 'dryRun', 'createStoreImageTask_dryRun' - Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
--
-- 's3ObjectTags', 'createStoreImageTask_s3ObjectTags' - The tags to apply to the AMI object that will be stored in the Amazon S3
-- bucket.
--
-- 'imageId', 'createStoreImageTask_imageId' - The ID of the AMI.
--
-- 'bucket', 'createStoreImageTask_bucket' - The name of the Amazon S3 bucket in which the AMI object will be stored.
-- The bucket must be in the Region in which the request is being made. The
-- AMI object appears in the bucket only after the upload task has
-- completed.
newCreateStoreImageTask ::
  -- | 'imageId'
  Prelude.Text ->
  -- | 'bucket'
  Prelude.Text ->
  CreateStoreImageTask
newCreateStoreImageTask :: Text -> Text -> CreateStoreImageTask
newCreateStoreImageTask Text
pImageId_ Text
pBucket_ =
  CreateStoreImageTask'
    { $sel:dryRun:CreateStoreImageTask' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
      $sel:s3ObjectTags:CreateStoreImageTask' :: Maybe [S3ObjectTag]
s3ObjectTags = forall a. Maybe a
Prelude.Nothing,
      $sel:imageId:CreateStoreImageTask' :: Text
imageId = Text
pImageId_,
      $sel:bucket:CreateStoreImageTask' :: Text
bucket = Text
pBucket_
    }

-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
createStoreImageTask_dryRun :: Lens.Lens' CreateStoreImageTask (Prelude.Maybe Prelude.Bool)
createStoreImageTask_dryRun :: Lens' CreateStoreImageTask (Maybe Bool)
createStoreImageTask_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStoreImageTask' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: CreateStoreImageTask
s@CreateStoreImageTask' {} Maybe Bool
a -> CreateStoreImageTask
s {$sel:dryRun:CreateStoreImageTask' :: Maybe Bool
dryRun = Maybe Bool
a} :: CreateStoreImageTask)

-- | The tags to apply to the AMI object that will be stored in the Amazon S3
-- bucket.
createStoreImageTask_s3ObjectTags :: Lens.Lens' CreateStoreImageTask (Prelude.Maybe [S3ObjectTag])
createStoreImageTask_s3ObjectTags :: Lens' CreateStoreImageTask (Maybe [S3ObjectTag])
createStoreImageTask_s3ObjectTags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStoreImageTask' {Maybe [S3ObjectTag]
s3ObjectTags :: Maybe [S3ObjectTag]
$sel:s3ObjectTags:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe [S3ObjectTag]
s3ObjectTags} -> Maybe [S3ObjectTag]
s3ObjectTags) (\s :: CreateStoreImageTask
s@CreateStoreImageTask' {} Maybe [S3ObjectTag]
a -> CreateStoreImageTask
s {$sel:s3ObjectTags:CreateStoreImageTask' :: Maybe [S3ObjectTag]
s3ObjectTags = Maybe [S3ObjectTag]
a} :: CreateStoreImageTask) 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 ID of the AMI.
createStoreImageTask_imageId :: Lens.Lens' CreateStoreImageTask Prelude.Text
createStoreImageTask_imageId :: Lens' CreateStoreImageTask Text
createStoreImageTask_imageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStoreImageTask' {Text
imageId :: Text
$sel:imageId:CreateStoreImageTask' :: CreateStoreImageTask -> Text
imageId} -> Text
imageId) (\s :: CreateStoreImageTask
s@CreateStoreImageTask' {} Text
a -> CreateStoreImageTask
s {$sel:imageId:CreateStoreImageTask' :: Text
imageId = Text
a} :: CreateStoreImageTask)

-- | The name of the Amazon S3 bucket in which the AMI object will be stored.
-- The bucket must be in the Region in which the request is being made. The
-- AMI object appears in the bucket only after the upload task has
-- completed.
createStoreImageTask_bucket :: Lens.Lens' CreateStoreImageTask Prelude.Text
createStoreImageTask_bucket :: Lens' CreateStoreImageTask Text
createStoreImageTask_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStoreImageTask' {Text
bucket :: Text
$sel:bucket:CreateStoreImageTask' :: CreateStoreImageTask -> Text
bucket} -> Text
bucket) (\s :: CreateStoreImageTask
s@CreateStoreImageTask' {} Text
a -> CreateStoreImageTask
s {$sel:bucket:CreateStoreImageTask' :: Text
bucket = Text
a} :: CreateStoreImageTask)

instance Core.AWSRequest CreateStoreImageTask where
  type
    AWSResponse CreateStoreImageTask =
      CreateStoreImageTaskResponse
  request :: (Service -> Service)
-> CreateStoreImageTask -> Request CreateStoreImageTask
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateStoreImageTask
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateStoreImageTask)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe Text -> Int -> CreateStoreImageTaskResponse
CreateStoreImageTaskResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"objectKey")
            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 CreateStoreImageTask where
  hashWithSalt :: Int -> CreateStoreImageTask -> Int
hashWithSalt Int
_salt CreateStoreImageTask' {Maybe Bool
Maybe [S3ObjectTag]
Text
bucket :: Text
imageId :: Text
s3ObjectTags :: Maybe [S3ObjectTag]
dryRun :: Maybe Bool
$sel:bucket:CreateStoreImageTask' :: CreateStoreImageTask -> Text
$sel:imageId:CreateStoreImageTask' :: CreateStoreImageTask -> Text
$sel:s3ObjectTags:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe [S3ObjectTag]
$sel:dryRun:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [S3ObjectTag]
s3ObjectTags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
imageId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
bucket

instance Prelude.NFData CreateStoreImageTask where
  rnf :: CreateStoreImageTask -> ()
rnf CreateStoreImageTask' {Maybe Bool
Maybe [S3ObjectTag]
Text
bucket :: Text
imageId :: Text
s3ObjectTags :: Maybe [S3ObjectTag]
dryRun :: Maybe Bool
$sel:bucket:CreateStoreImageTask' :: CreateStoreImageTask -> Text
$sel:imageId:CreateStoreImageTask' :: CreateStoreImageTask -> Text
$sel:s3ObjectTags:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe [S3ObjectTag]
$sel:dryRun:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [S3ObjectTag]
s3ObjectTags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
imageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
bucket

instance Data.ToHeaders CreateStoreImageTask where
  toHeaders :: CreateStoreImageTask -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

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

instance Data.ToQuery CreateStoreImageTask where
  toQuery :: CreateStoreImageTask -> QueryString
toQuery CreateStoreImageTask' {Maybe Bool
Maybe [S3ObjectTag]
Text
bucket :: Text
imageId :: Text
s3ObjectTags :: Maybe [S3ObjectTag]
dryRun :: Maybe Bool
$sel:bucket:CreateStoreImageTask' :: CreateStoreImageTask -> Text
$sel:imageId:CreateStoreImageTask' :: CreateStoreImageTask -> Text
$sel:s3ObjectTags:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe [S3ObjectTag]
$sel:dryRun:CreateStoreImageTask' :: CreateStoreImageTask -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"CreateStoreImageTask" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        forall a. ToQuery a => a -> QueryString
Data.toQuery
          ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"S3ObjectTag"
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [S3ObjectTag]
s3ObjectTags
          ),
        ByteString
"ImageId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
imageId,
        ByteString
"Bucket" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
bucket
      ]

-- | /See:/ 'newCreateStoreImageTaskResponse' smart constructor.
data CreateStoreImageTaskResponse = CreateStoreImageTaskResponse'
  { -- | The name of the stored AMI object in the S3 bucket.
    CreateStoreImageTaskResponse -> Maybe Text
objectKey :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateStoreImageTaskResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateStoreImageTaskResponse
-> CreateStoreImageTaskResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStoreImageTaskResponse
-> CreateStoreImageTaskResponse -> Bool
$c/= :: CreateStoreImageTaskResponse
-> CreateStoreImageTaskResponse -> Bool
== :: CreateStoreImageTaskResponse
-> CreateStoreImageTaskResponse -> Bool
$c== :: CreateStoreImageTaskResponse
-> CreateStoreImageTaskResponse -> Bool
Prelude.Eq, ReadPrec [CreateStoreImageTaskResponse]
ReadPrec CreateStoreImageTaskResponse
Int -> ReadS CreateStoreImageTaskResponse
ReadS [CreateStoreImageTaskResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStoreImageTaskResponse]
$creadListPrec :: ReadPrec [CreateStoreImageTaskResponse]
readPrec :: ReadPrec CreateStoreImageTaskResponse
$creadPrec :: ReadPrec CreateStoreImageTaskResponse
readList :: ReadS [CreateStoreImageTaskResponse]
$creadList :: ReadS [CreateStoreImageTaskResponse]
readsPrec :: Int -> ReadS CreateStoreImageTaskResponse
$creadsPrec :: Int -> ReadS CreateStoreImageTaskResponse
Prelude.Read, Int -> CreateStoreImageTaskResponse -> ShowS
[CreateStoreImageTaskResponse] -> ShowS
CreateStoreImageTaskResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStoreImageTaskResponse] -> ShowS
$cshowList :: [CreateStoreImageTaskResponse] -> ShowS
show :: CreateStoreImageTaskResponse -> String
$cshow :: CreateStoreImageTaskResponse -> String
showsPrec :: Int -> CreateStoreImageTaskResponse -> ShowS
$cshowsPrec :: Int -> CreateStoreImageTaskResponse -> ShowS
Prelude.Show, forall x.
Rep CreateStoreImageTaskResponse x -> CreateStoreImageTaskResponse
forall x.
CreateStoreImageTaskResponse -> Rep CreateStoreImageTaskResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateStoreImageTaskResponse x -> CreateStoreImageTaskResponse
$cfrom :: forall x.
CreateStoreImageTaskResponse -> Rep CreateStoreImageTaskResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateStoreImageTaskResponse' 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:
--
-- 'objectKey', 'createStoreImageTaskResponse_objectKey' - The name of the stored AMI object in the S3 bucket.
--
-- 'httpStatus', 'createStoreImageTaskResponse_httpStatus' - The response's http status code.
newCreateStoreImageTaskResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateStoreImageTaskResponse
newCreateStoreImageTaskResponse :: Int -> CreateStoreImageTaskResponse
newCreateStoreImageTaskResponse Int
pHttpStatus_ =
  CreateStoreImageTaskResponse'
    { $sel:objectKey:CreateStoreImageTaskResponse' :: Maybe Text
objectKey =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateStoreImageTaskResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The name of the stored AMI object in the S3 bucket.
createStoreImageTaskResponse_objectKey :: Lens.Lens' CreateStoreImageTaskResponse (Prelude.Maybe Prelude.Text)
createStoreImageTaskResponse_objectKey :: Lens' CreateStoreImageTaskResponse (Maybe Text)
createStoreImageTaskResponse_objectKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStoreImageTaskResponse' {Maybe Text
objectKey :: Maybe Text
$sel:objectKey:CreateStoreImageTaskResponse' :: CreateStoreImageTaskResponse -> Maybe Text
objectKey} -> Maybe Text
objectKey) (\s :: CreateStoreImageTaskResponse
s@CreateStoreImageTaskResponse' {} Maybe Text
a -> CreateStoreImageTaskResponse
s {$sel:objectKey:CreateStoreImageTaskResponse' :: Maybe Text
objectKey = Maybe Text
a} :: CreateStoreImageTaskResponse)

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

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