{-# 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 or 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 or 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