{-# 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.DescribeExportImageTasks
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the specified export image tasks or all of your export image
-- tasks.
--
-- This operation returns paginated results.
module Amazonka.EC2.DescribeExportImageTasks
  ( -- * Creating a Request
    DescribeExportImageTasks (..),
    newDescribeExportImageTasks,

    -- * Request Lenses
    describeExportImageTasks_dryRun,
    describeExportImageTasks_exportImageTaskIds,
    describeExportImageTasks_filters,
    describeExportImageTasks_maxResults,
    describeExportImageTasks_nextToken,

    -- * Destructuring the Response
    DescribeExportImageTasksResponse (..),
    newDescribeExportImageTasksResponse,

    -- * Response Lenses
    describeExportImageTasksResponse_exportImageTasks,
    describeExportImageTasksResponse_nextToken,
    describeExportImageTasksResponse_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:/ 'newDescribeExportImageTasks' smart constructor.
data DescribeExportImageTasks = DescribeExportImageTasks'
  { -- | 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@.
    DescribeExportImageTasks -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The IDs of the export image tasks.
    DescribeExportImageTasks -> Maybe [Text]
exportImageTaskIds :: Prelude.Maybe [Prelude.Text],
    -- | Filter tasks using the @task-state@ filter and one of the following
    -- values: @active@, @completed@, @deleting@, or @deleted@.
    DescribeExportImageTasks -> Maybe [Filter]
filters :: Prelude.Maybe [Filter],
    -- | The maximum number of results to return in a single call.
    DescribeExportImageTasks -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | A token that indicates the next page of results.
    DescribeExportImageTasks -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeExportImageTasks -> DescribeExportImageTasks -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeExportImageTasks -> DescribeExportImageTasks -> Bool
$c/= :: DescribeExportImageTasks -> DescribeExportImageTasks -> Bool
== :: DescribeExportImageTasks -> DescribeExportImageTasks -> Bool
$c== :: DescribeExportImageTasks -> DescribeExportImageTasks -> Bool
Prelude.Eq, ReadPrec [DescribeExportImageTasks]
ReadPrec DescribeExportImageTasks
Int -> ReadS DescribeExportImageTasks
ReadS [DescribeExportImageTasks]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeExportImageTasks]
$creadListPrec :: ReadPrec [DescribeExportImageTasks]
readPrec :: ReadPrec DescribeExportImageTasks
$creadPrec :: ReadPrec DescribeExportImageTasks
readList :: ReadS [DescribeExportImageTasks]
$creadList :: ReadS [DescribeExportImageTasks]
readsPrec :: Int -> ReadS DescribeExportImageTasks
$creadsPrec :: Int -> ReadS DescribeExportImageTasks
Prelude.Read, Int -> DescribeExportImageTasks -> ShowS
[DescribeExportImageTasks] -> ShowS
DescribeExportImageTasks -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeExportImageTasks] -> ShowS
$cshowList :: [DescribeExportImageTasks] -> ShowS
show :: DescribeExportImageTasks -> String
$cshow :: DescribeExportImageTasks -> String
showsPrec :: Int -> DescribeExportImageTasks -> ShowS
$cshowsPrec :: Int -> DescribeExportImageTasks -> ShowS
Prelude.Show, forall x.
Rep DescribeExportImageTasks x -> DescribeExportImageTasks
forall x.
DescribeExportImageTasks -> Rep DescribeExportImageTasks x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeExportImageTasks x -> DescribeExportImageTasks
$cfrom :: forall x.
DescribeExportImageTasks -> Rep DescribeExportImageTasks x
Prelude.Generic)

-- |
-- Create a value of 'DescribeExportImageTasks' 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', 'describeExportImageTasks_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@.
--
-- 'exportImageTaskIds', 'describeExportImageTasks_exportImageTaskIds' - The IDs of the export image tasks.
--
-- 'filters', 'describeExportImageTasks_filters' - Filter tasks using the @task-state@ filter and one of the following
-- values: @active@, @completed@, @deleting@, or @deleted@.
--
-- 'maxResults', 'describeExportImageTasks_maxResults' - The maximum number of results to return in a single call.
--
-- 'nextToken', 'describeExportImageTasks_nextToken' - A token that indicates the next page of results.
newDescribeExportImageTasks ::
  DescribeExportImageTasks
newDescribeExportImageTasks :: DescribeExportImageTasks
newDescribeExportImageTasks =
  DescribeExportImageTasks'
    { $sel:dryRun:DescribeExportImageTasks' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
      $sel:exportImageTaskIds:DescribeExportImageTasks' :: Maybe [Text]
exportImageTaskIds = forall a. Maybe a
Prelude.Nothing,
      $sel:filters:DescribeExportImageTasks' :: Maybe [Filter]
filters = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:DescribeExportImageTasks' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeExportImageTasks' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | 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@.
describeExportImageTasks_dryRun :: Lens.Lens' DescribeExportImageTasks (Prelude.Maybe Prelude.Bool)
describeExportImageTasks_dryRun :: Lens' DescribeExportImageTasks (Maybe Bool)
describeExportImageTasks_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportImageTasks' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: DescribeExportImageTasks
s@DescribeExportImageTasks' {} Maybe Bool
a -> DescribeExportImageTasks
s {$sel:dryRun:DescribeExportImageTasks' :: Maybe Bool
dryRun = Maybe Bool
a} :: DescribeExportImageTasks)

-- | The IDs of the export image tasks.
describeExportImageTasks_exportImageTaskIds :: Lens.Lens' DescribeExportImageTasks (Prelude.Maybe [Prelude.Text])
describeExportImageTasks_exportImageTaskIds :: Lens' DescribeExportImageTasks (Maybe [Text])
describeExportImageTasks_exportImageTaskIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportImageTasks' {Maybe [Text]
exportImageTaskIds :: Maybe [Text]
$sel:exportImageTaskIds:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Text]
exportImageTaskIds} -> Maybe [Text]
exportImageTaskIds) (\s :: DescribeExportImageTasks
s@DescribeExportImageTasks' {} Maybe [Text]
a -> DescribeExportImageTasks
s {$sel:exportImageTaskIds:DescribeExportImageTasks' :: Maybe [Text]
exportImageTaskIds = Maybe [Text]
a} :: DescribeExportImageTasks) 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

-- | Filter tasks using the @task-state@ filter and one of the following
-- values: @active@, @completed@, @deleting@, or @deleted@.
describeExportImageTasks_filters :: Lens.Lens' DescribeExportImageTasks (Prelude.Maybe [Filter])
describeExportImageTasks_filters :: Lens' DescribeExportImageTasks (Maybe [Filter])
describeExportImageTasks_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportImageTasks' {Maybe [Filter]
filters :: Maybe [Filter]
$sel:filters:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Filter]
filters} -> Maybe [Filter]
filters) (\s :: DescribeExportImageTasks
s@DescribeExportImageTasks' {} Maybe [Filter]
a -> DescribeExportImageTasks
s {$sel:filters:DescribeExportImageTasks' :: Maybe [Filter]
filters = Maybe [Filter]
a} :: DescribeExportImageTasks) 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 maximum number of results to return in a single call.
describeExportImageTasks_maxResults :: Lens.Lens' DescribeExportImageTasks (Prelude.Maybe Prelude.Natural)
describeExportImageTasks_maxResults :: Lens' DescribeExportImageTasks (Maybe Natural)
describeExportImageTasks_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportImageTasks' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: DescribeExportImageTasks
s@DescribeExportImageTasks' {} Maybe Natural
a -> DescribeExportImageTasks
s {$sel:maxResults:DescribeExportImageTasks' :: Maybe Natural
maxResults = Maybe Natural
a} :: DescribeExportImageTasks)

-- | A token that indicates the next page of results.
describeExportImageTasks_nextToken :: Lens.Lens' DescribeExportImageTasks (Prelude.Maybe Prelude.Text)
describeExportImageTasks_nextToken :: Lens' DescribeExportImageTasks (Maybe Text)
describeExportImageTasks_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportImageTasks' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeExportImageTasks
s@DescribeExportImageTasks' {} Maybe Text
a -> DescribeExportImageTasks
s {$sel:nextToken:DescribeExportImageTasks' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeExportImageTasks)

instance Core.AWSPager DescribeExportImageTasks where
  page :: DescribeExportImageTasks
-> AWSResponse DescribeExportImageTasks
-> Maybe DescribeExportImageTasks
page DescribeExportImageTasks
rq AWSResponse DescribeExportImageTasks
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeExportImageTasks
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeExportImageTasksResponse (Maybe Text)
describeExportImageTasksResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeExportImageTasks
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeExportImageTasksResponse (Maybe [ExportImageTask])
describeExportImageTasksResponse_exportImageTasks
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeExportImageTasks
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeExportImageTasks (Maybe Text)
describeExportImageTasks_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeExportImageTasks
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeExportImageTasksResponse (Maybe Text)
describeExportImageTasksResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest DescribeExportImageTasks where
  type
    AWSResponse DescribeExportImageTasks =
      DescribeExportImageTasksResponse
  request :: (Service -> Service)
-> DescribeExportImageTasks -> Request DescribeExportImageTasks
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 DescribeExportImageTasks
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeExportImageTasks)))
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 [ExportImageTask]
-> Maybe Text -> Int -> DescribeExportImageTasksResponse
DescribeExportImageTasksResponse'
            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
"exportImageTaskSet"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"nextToken")
            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 DescribeExportImageTasks where
  hashWithSalt :: Int -> DescribeExportImageTasks -> Int
hashWithSalt Int
_salt DescribeExportImageTasks' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe [Filter]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe [Filter]
exportImageTaskIds :: Maybe [Text]
dryRun :: Maybe Bool
$sel:nextToken:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Text
$sel:maxResults:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Natural
$sel:filters:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Filter]
$sel:exportImageTaskIds:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Text]
$sel:dryRun:DescribeExportImageTasks' :: DescribeExportImageTasks -> 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 [Text]
exportImageTaskIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Filter]
filters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken

instance Prelude.NFData DescribeExportImageTasks where
  rnf :: DescribeExportImageTasks -> ()
rnf DescribeExportImageTasks' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe [Filter]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe [Filter]
exportImageTaskIds :: Maybe [Text]
dryRun :: Maybe Bool
$sel:nextToken:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Text
$sel:maxResults:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Natural
$sel:filters:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Filter]
$sel:exportImageTaskIds:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Text]
$sel:dryRun:DescribeExportImageTasks' :: DescribeExportImageTasks -> 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 [Text]
exportImageTaskIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Filter]
filters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken

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

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

instance Data.ToQuery DescribeExportImageTasks where
  toQuery :: DescribeExportImageTasks -> QueryString
toQuery DescribeExportImageTasks' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe [Filter]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe [Filter]
exportImageTaskIds :: Maybe [Text]
dryRun :: Maybe Bool
$sel:nextToken:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Text
$sel:maxResults:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Natural
$sel:filters:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Filter]
$sel:exportImageTaskIds:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe [Text]
$sel:dryRun:DescribeExportImageTasks' :: DescribeExportImageTasks -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeExportImageTasks" :: 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
"ExportImageTaskId"
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
exportImageTaskIds
          ),
        forall a. ToQuery a => a -> QueryString
Data.toQuery
          (forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"Filter" forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Filter]
filters),
        ByteString
"MaxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken
      ]

-- | /See:/ 'newDescribeExportImageTasksResponse' smart constructor.
data DescribeExportImageTasksResponse = DescribeExportImageTasksResponse'
  { -- | Information about the export image tasks.
    DescribeExportImageTasksResponse -> Maybe [ExportImageTask]
exportImageTasks :: Prelude.Maybe [ExportImageTask],
    -- | The token to use to get the next page of results. This value is @null@
    -- when there are no more results to return.
    DescribeExportImageTasksResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeExportImageTasksResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeExportImageTasksResponse
-> DescribeExportImageTasksResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeExportImageTasksResponse
-> DescribeExportImageTasksResponse -> Bool
$c/= :: DescribeExportImageTasksResponse
-> DescribeExportImageTasksResponse -> Bool
== :: DescribeExportImageTasksResponse
-> DescribeExportImageTasksResponse -> Bool
$c== :: DescribeExportImageTasksResponse
-> DescribeExportImageTasksResponse -> Bool
Prelude.Eq, ReadPrec [DescribeExportImageTasksResponse]
ReadPrec DescribeExportImageTasksResponse
Int -> ReadS DescribeExportImageTasksResponse
ReadS [DescribeExportImageTasksResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeExportImageTasksResponse]
$creadListPrec :: ReadPrec [DescribeExportImageTasksResponse]
readPrec :: ReadPrec DescribeExportImageTasksResponse
$creadPrec :: ReadPrec DescribeExportImageTasksResponse
readList :: ReadS [DescribeExportImageTasksResponse]
$creadList :: ReadS [DescribeExportImageTasksResponse]
readsPrec :: Int -> ReadS DescribeExportImageTasksResponse
$creadsPrec :: Int -> ReadS DescribeExportImageTasksResponse
Prelude.Read, Int -> DescribeExportImageTasksResponse -> ShowS
[DescribeExportImageTasksResponse] -> ShowS
DescribeExportImageTasksResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeExportImageTasksResponse] -> ShowS
$cshowList :: [DescribeExportImageTasksResponse] -> ShowS
show :: DescribeExportImageTasksResponse -> String
$cshow :: DescribeExportImageTasksResponse -> String
showsPrec :: Int -> DescribeExportImageTasksResponse -> ShowS
$cshowsPrec :: Int -> DescribeExportImageTasksResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeExportImageTasksResponse x
-> DescribeExportImageTasksResponse
forall x.
DescribeExportImageTasksResponse
-> Rep DescribeExportImageTasksResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeExportImageTasksResponse x
-> DescribeExportImageTasksResponse
$cfrom :: forall x.
DescribeExportImageTasksResponse
-> Rep DescribeExportImageTasksResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeExportImageTasksResponse' 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:
--
-- 'exportImageTasks', 'describeExportImageTasksResponse_exportImageTasks' - Information about the export image tasks.
--
-- 'nextToken', 'describeExportImageTasksResponse_nextToken' - The token to use to get the next page of results. This value is @null@
-- when there are no more results to return.
--
-- 'httpStatus', 'describeExportImageTasksResponse_httpStatus' - The response's http status code.
newDescribeExportImageTasksResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeExportImageTasksResponse
newDescribeExportImageTasksResponse :: Int -> DescribeExportImageTasksResponse
newDescribeExportImageTasksResponse Int
pHttpStatus_ =
  DescribeExportImageTasksResponse'
    { $sel:exportImageTasks:DescribeExportImageTasksResponse' :: Maybe [ExportImageTask]
exportImageTasks =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeExportImageTasksResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeExportImageTasksResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Information about the export image tasks.
describeExportImageTasksResponse_exportImageTasks :: Lens.Lens' DescribeExportImageTasksResponse (Prelude.Maybe [ExportImageTask])
describeExportImageTasksResponse_exportImageTasks :: Lens' DescribeExportImageTasksResponse (Maybe [ExportImageTask])
describeExportImageTasksResponse_exportImageTasks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportImageTasksResponse' {Maybe [ExportImageTask]
exportImageTasks :: Maybe [ExportImageTask]
$sel:exportImageTasks:DescribeExportImageTasksResponse' :: DescribeExportImageTasksResponse -> Maybe [ExportImageTask]
exportImageTasks} -> Maybe [ExportImageTask]
exportImageTasks) (\s :: DescribeExportImageTasksResponse
s@DescribeExportImageTasksResponse' {} Maybe [ExportImageTask]
a -> DescribeExportImageTasksResponse
s {$sel:exportImageTasks:DescribeExportImageTasksResponse' :: Maybe [ExportImageTask]
exportImageTasks = Maybe [ExportImageTask]
a} :: DescribeExportImageTasksResponse) 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 token to use to get the next page of results. This value is @null@
-- when there are no more results to return.
describeExportImageTasksResponse_nextToken :: Lens.Lens' DescribeExportImageTasksResponse (Prelude.Maybe Prelude.Text)
describeExportImageTasksResponse_nextToken :: Lens' DescribeExportImageTasksResponse (Maybe Text)
describeExportImageTasksResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportImageTasksResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeExportImageTasksResponse' :: DescribeExportImageTasksResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeExportImageTasksResponse
s@DescribeExportImageTasksResponse' {} Maybe Text
a -> DescribeExportImageTasksResponse
s {$sel:nextToken:DescribeExportImageTasksResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeExportImageTasksResponse)

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

instance
  Prelude.NFData
    DescribeExportImageTasksResponse
  where
  rnf :: DescribeExportImageTasksResponse -> ()
rnf DescribeExportImageTasksResponse' {Int
Maybe [ExportImageTask]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
exportImageTasks :: Maybe [ExportImageTask]
$sel:httpStatus:DescribeExportImageTasksResponse' :: DescribeExportImageTasksResponse -> Int
$sel:nextToken:DescribeExportImageTasksResponse' :: DescribeExportImageTasksResponse -> Maybe Text
$sel:exportImageTasks:DescribeExportImageTasksResponse' :: DescribeExportImageTasksResponse -> Maybe [ExportImageTask]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [ExportImageTask]
exportImageTasks
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus