amazonka-devicefarm-2.0: gen/Amazonka/DeviceFarm/ListUploads.hs
{-# 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.DeviceFarm.ListUploads
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about uploads, given an AWS Device Farm project ARN.
--
-- This operation returns paginated results.
module Amazonka.DeviceFarm.ListUploads
( -- * Creating a Request
ListUploads (..),
newListUploads,
-- * Request Lenses
listUploads_nextToken,
listUploads_type,
listUploads_arn,
-- * Destructuring the Response
ListUploadsResponse (..),
newListUploadsResponse,
-- * Response Lenses
listUploadsResponse_nextToken,
listUploadsResponse_uploads,
listUploadsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DeviceFarm.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | Represents a request to the list uploads operation.
--
-- /See:/ 'newListUploads' smart constructor.
data ListUploads = ListUploads'
{ -- | An identifier that was returned from the previous call to this
-- operation, which can be used to return the next set of items in the
-- list.
nextToken :: Prelude.Maybe Prelude.Text,
-- | The type of upload.
--
-- Must be one of the following values:
--
-- - ANDROID_APP
--
-- - IOS_APP
--
-- - WEB_APP
--
-- - EXTERNAL_DATA
--
-- - APPIUM_JAVA_JUNIT_TEST_PACKAGE
--
-- - APPIUM_JAVA_TESTNG_TEST_PACKAGE
--
-- - APPIUM_PYTHON_TEST_PACKAGE
--
-- - APPIUM_NODE_TEST_PACKAGE
--
-- - APPIUM_RUBY_TEST_PACKAGE
--
-- - APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
--
-- - APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
--
-- - APPIUM_WEB_PYTHON_TEST_PACKAGE
--
-- - APPIUM_WEB_NODE_TEST_PACKAGE
--
-- - APPIUM_WEB_RUBY_TEST_PACKAGE
--
-- - CALABASH_TEST_PACKAGE
--
-- - INSTRUMENTATION_TEST_PACKAGE
--
-- - UIAUTOMATION_TEST_PACKAGE
--
-- - UIAUTOMATOR_TEST_PACKAGE
--
-- - XCTEST_TEST_PACKAGE
--
-- - XCTEST_UI_TEST_PACKAGE
--
-- - APPIUM_JAVA_JUNIT_TEST_SPEC
--
-- - APPIUM_JAVA_TESTNG_TEST_SPEC
--
-- - APPIUM_PYTHON_TEST_SPEC
--
-- - APPIUM_NODE_TEST_SPEC
--
-- - APPIUM_RUBY_TEST_SPEC
--
-- - APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
--
-- - APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
--
-- - APPIUM_WEB_PYTHON_TEST_SPEC
--
-- - APPIUM_WEB_NODE_TEST_SPEC
--
-- - APPIUM_WEB_RUBY_TEST_SPEC
--
-- - INSTRUMENTATION_TEST_SPEC
--
-- - XCTEST_UI_TEST_SPEC
type' :: Prelude.Maybe UploadType,
-- | The Amazon Resource Name (ARN) of the project for which you want to list
-- uploads.
arn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ListUploads' 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:
--
-- 'nextToken', 'listUploads_nextToken' - An identifier that was returned from the previous call to this
-- operation, which can be used to return the next set of items in the
-- list.
--
-- 'type'', 'listUploads_type' - The type of upload.
--
-- Must be one of the following values:
--
-- - ANDROID_APP
--
-- - IOS_APP
--
-- - WEB_APP
--
-- - EXTERNAL_DATA
--
-- - APPIUM_JAVA_JUNIT_TEST_PACKAGE
--
-- - APPIUM_JAVA_TESTNG_TEST_PACKAGE
--
-- - APPIUM_PYTHON_TEST_PACKAGE
--
-- - APPIUM_NODE_TEST_PACKAGE
--
-- - APPIUM_RUBY_TEST_PACKAGE
--
-- - APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
--
-- - APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
--
-- - APPIUM_WEB_PYTHON_TEST_PACKAGE
--
-- - APPIUM_WEB_NODE_TEST_PACKAGE
--
-- - APPIUM_WEB_RUBY_TEST_PACKAGE
--
-- - CALABASH_TEST_PACKAGE
--
-- - INSTRUMENTATION_TEST_PACKAGE
--
-- - UIAUTOMATION_TEST_PACKAGE
--
-- - UIAUTOMATOR_TEST_PACKAGE
--
-- - XCTEST_TEST_PACKAGE
--
-- - XCTEST_UI_TEST_PACKAGE
--
-- - APPIUM_JAVA_JUNIT_TEST_SPEC
--
-- - APPIUM_JAVA_TESTNG_TEST_SPEC
--
-- - APPIUM_PYTHON_TEST_SPEC
--
-- - APPIUM_NODE_TEST_SPEC
--
-- - APPIUM_RUBY_TEST_SPEC
--
-- - APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
--
-- - APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
--
-- - APPIUM_WEB_PYTHON_TEST_SPEC
--
-- - APPIUM_WEB_NODE_TEST_SPEC
--
-- - APPIUM_WEB_RUBY_TEST_SPEC
--
-- - INSTRUMENTATION_TEST_SPEC
--
-- - XCTEST_UI_TEST_SPEC
--
-- 'arn', 'listUploads_arn' - The Amazon Resource Name (ARN) of the project for which you want to list
-- uploads.
newListUploads ::
-- | 'arn'
Prelude.Text ->
ListUploads
newListUploads pArn_ =
ListUploads'
{ nextToken = Prelude.Nothing,
type' = Prelude.Nothing,
arn = pArn_
}
-- | An identifier that was returned from the previous call to this
-- operation, which can be used to return the next set of items in the
-- list.
listUploads_nextToken :: Lens.Lens' ListUploads (Prelude.Maybe Prelude.Text)
listUploads_nextToken = Lens.lens (\ListUploads' {nextToken} -> nextToken) (\s@ListUploads' {} a -> s {nextToken = a} :: ListUploads)
-- | The type of upload.
--
-- Must be one of the following values:
--
-- - ANDROID_APP
--
-- - IOS_APP
--
-- - WEB_APP
--
-- - EXTERNAL_DATA
--
-- - APPIUM_JAVA_JUNIT_TEST_PACKAGE
--
-- - APPIUM_JAVA_TESTNG_TEST_PACKAGE
--
-- - APPIUM_PYTHON_TEST_PACKAGE
--
-- - APPIUM_NODE_TEST_PACKAGE
--
-- - APPIUM_RUBY_TEST_PACKAGE
--
-- - APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
--
-- - APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
--
-- - APPIUM_WEB_PYTHON_TEST_PACKAGE
--
-- - APPIUM_WEB_NODE_TEST_PACKAGE
--
-- - APPIUM_WEB_RUBY_TEST_PACKAGE
--
-- - CALABASH_TEST_PACKAGE
--
-- - INSTRUMENTATION_TEST_PACKAGE
--
-- - UIAUTOMATION_TEST_PACKAGE
--
-- - UIAUTOMATOR_TEST_PACKAGE
--
-- - XCTEST_TEST_PACKAGE
--
-- - XCTEST_UI_TEST_PACKAGE
--
-- - APPIUM_JAVA_JUNIT_TEST_SPEC
--
-- - APPIUM_JAVA_TESTNG_TEST_SPEC
--
-- - APPIUM_PYTHON_TEST_SPEC
--
-- - APPIUM_NODE_TEST_SPEC
--
-- - APPIUM_RUBY_TEST_SPEC
--
-- - APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
--
-- - APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
--
-- - APPIUM_WEB_PYTHON_TEST_SPEC
--
-- - APPIUM_WEB_NODE_TEST_SPEC
--
-- - APPIUM_WEB_RUBY_TEST_SPEC
--
-- - INSTRUMENTATION_TEST_SPEC
--
-- - XCTEST_UI_TEST_SPEC
listUploads_type :: Lens.Lens' ListUploads (Prelude.Maybe UploadType)
listUploads_type = Lens.lens (\ListUploads' {type'} -> type') (\s@ListUploads' {} a -> s {type' = a} :: ListUploads)
-- | The Amazon Resource Name (ARN) of the project for which you want to list
-- uploads.
listUploads_arn :: Lens.Lens' ListUploads Prelude.Text
listUploads_arn = Lens.lens (\ListUploads' {arn} -> arn) (\s@ListUploads' {} a -> s {arn = a} :: ListUploads)
instance Core.AWSPager ListUploads where
page rq rs
| Core.stop
( rs
Lens.^? listUploadsResponse_nextToken
Prelude.. Lens._Just
) =
Prelude.Nothing
| Core.stop
( rs
Lens.^? listUploadsResponse_uploads
Prelude.. Lens._Just
) =
Prelude.Nothing
| Prelude.otherwise =
Prelude.Just
Prelude.$ rq
Prelude.& listUploads_nextToken
Lens..~ rs
Lens.^? listUploadsResponse_nextToken
Prelude.. Lens._Just
instance Core.AWSRequest ListUploads where
type AWSResponse ListUploads = ListUploadsResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
ListUploadsResponse'
Prelude.<$> (x Data..?> "nextToken")
Prelude.<*> (x Data..?> "uploads" Core..!@ Prelude.mempty)
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable ListUploads where
hashWithSalt _salt ListUploads' {..} =
_salt
`Prelude.hashWithSalt` nextToken
`Prelude.hashWithSalt` type'
`Prelude.hashWithSalt` arn
instance Prelude.NFData ListUploads where
rnf ListUploads' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf type'
`Prelude.seq` Prelude.rnf arn
instance Data.ToHeaders ListUploads where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "DeviceFarm_20150623.ListUploads" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON ListUploads where
toJSON ListUploads' {..} =
Data.object
( Prelude.catMaybes
[ ("nextToken" Data..=) Prelude.<$> nextToken,
("type" Data..=) Prelude.<$> type',
Prelude.Just ("arn" Data..= arn)
]
)
instance Data.ToPath ListUploads where
toPath = Prelude.const "/"
instance Data.ToQuery ListUploads where
toQuery = Prelude.const Prelude.mempty
-- | Represents the result of a list uploads request.
--
-- /See:/ 'newListUploadsResponse' smart constructor.
data ListUploadsResponse = ListUploadsResponse'
{ -- | If the number of items that are returned is significantly large, this is
-- an identifier that is also returned. It can be used in a subsequent call
-- to this operation to return the next set of items in the list.
nextToken :: Prelude.Maybe Prelude.Text,
-- | Information about the uploads.
uploads :: Prelude.Maybe [Upload],
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ListUploadsResponse' 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:
--
-- 'nextToken', 'listUploadsResponse_nextToken' - If the number of items that are returned is significantly large, this is
-- an identifier that is also returned. It can be used in a subsequent call
-- to this operation to return the next set of items in the list.
--
-- 'uploads', 'listUploadsResponse_uploads' - Information about the uploads.
--
-- 'httpStatus', 'listUploadsResponse_httpStatus' - The response's http status code.
newListUploadsResponse ::
-- | 'httpStatus'
Prelude.Int ->
ListUploadsResponse
newListUploadsResponse pHttpStatus_ =
ListUploadsResponse'
{ nextToken = Prelude.Nothing,
uploads = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | If the number of items that are returned is significantly large, this is
-- an identifier that is also returned. It can be used in a subsequent call
-- to this operation to return the next set of items in the list.
listUploadsResponse_nextToken :: Lens.Lens' ListUploadsResponse (Prelude.Maybe Prelude.Text)
listUploadsResponse_nextToken = Lens.lens (\ListUploadsResponse' {nextToken} -> nextToken) (\s@ListUploadsResponse' {} a -> s {nextToken = a} :: ListUploadsResponse)
-- | Information about the uploads.
listUploadsResponse_uploads :: Lens.Lens' ListUploadsResponse (Prelude.Maybe [Upload])
listUploadsResponse_uploads = Lens.lens (\ListUploadsResponse' {uploads} -> uploads) (\s@ListUploadsResponse' {} a -> s {uploads = a} :: ListUploadsResponse) Prelude.. Lens.mapping Lens.coerced
-- | The response's http status code.
listUploadsResponse_httpStatus :: Lens.Lens' ListUploadsResponse Prelude.Int
listUploadsResponse_httpStatus = Lens.lens (\ListUploadsResponse' {httpStatus} -> httpStatus) (\s@ListUploadsResponse' {} a -> s {httpStatus = a} :: ListUploadsResponse)
instance Prelude.NFData ListUploadsResponse where
rnf ListUploadsResponse' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf uploads
`Prelude.seq` Prelude.rnf httpStatus