{-# 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.MarketplaceAnalytics.GenerateDataSet
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Given a data set type and data set publication date, asynchronously
-- publishes the requested data set to the specified S3 bucket and notifies
-- the specified SNS topic once the data is available. Returns a unique
-- request identifier that can be used to correlate requests with
-- notifications from the SNS topic. Data sets will be published in
-- comma-separated values (CSV) format with the file name
-- {data_set_type}_YYYY-MM-DD.csv. If a file with the same name already
-- exists (e.g. if the same data set is requested twice), the original file
-- will be overwritten by the new file. Requires a Role with an attached
-- permissions policy providing Allow permissions for the following
-- actions: s3:PutObject, s3:GetBucketLocation, sns:GetTopicAttributes,
-- sns:Publish, iam:GetRolePolicy.
module Amazonka.MarketplaceAnalytics.GenerateDataSet
  ( -- * Creating a Request
    GenerateDataSet (..),
    newGenerateDataSet,

    -- * Request Lenses
    generateDataSet_customerDefinedValues,
    generateDataSet_destinationS3Prefix,
    generateDataSet_dataSetType,
    generateDataSet_dataSetPublicationDate,
    generateDataSet_roleNameArn,
    generateDataSet_destinationS3BucketName,
    generateDataSet_snsTopicArn,

    -- * Destructuring the Response
    GenerateDataSetResponse (..),
    newGenerateDataSetResponse,

    -- * Response Lenses
    generateDataSetResponse_dataSetRequestId,
    generateDataSetResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import Amazonka.MarketplaceAnalytics.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Container for the parameters to the GenerateDataSet operation.
--
-- /See:/ 'newGenerateDataSet' smart constructor.
data GenerateDataSet = GenerateDataSet'
  { -- | (Optional) Key-value pairs which will be returned, unmodified, in the
    -- Amazon SNS notification message and the data set metadata file. These
    -- key-value pairs can be used to correlated responses with tracking
    -- information from other systems.
    GenerateDataSet -> Maybe (HashMap Text Text)
customerDefinedValues :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | (Optional) The desired S3 prefix for the published data set, similar to
    -- a directory path in standard file systems. For example, if given the
    -- bucket name \"mybucket\" and the prefix \"myprefix\/mydatasets\", the
    -- output file \"outputfile\" would be published to
    -- \"s3:\/\/mybucket\/myprefix\/mydatasets\/outputfile\". If the prefix
    -- directory structure does not exist, it will be created. If no prefix is
    -- provided, the data set will be published to the S3 bucket root.
    GenerateDataSet -> Maybe Text
destinationS3Prefix :: Prelude.Maybe Prelude.Text,
    -- | The desired data set type.
    --
    -- -   __customer_subscriber_hourly_monthly_subscriptions__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __customer_subscriber_annual_subscriptions__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __daily_business_usage_by_instance_type__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __daily_business_fees__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __daily_business_free_trial_conversions__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __daily_business_new_instances__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __daily_business_new_product_subscribers__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __daily_business_canceled_product_subscribers__
    --
    --     From 2017-09-15 to present: Available daily by 24:00 UTC.
    --
    -- -   __monthly_revenue_billing_and_revenue_data__
    --
    --     From 2017-09-15 to present: Available monthly on the 15th day of the
    --     month by 24:00 UTC. Data includes metered transactions (e.g. hourly)
    --     from one month prior.
    --
    -- -   __monthly_revenue_annual_subscriptions__
    --
    --     From 2017-09-15 to present: Available monthly on the 15th day of the
    --     month by 24:00 UTC. Data includes up-front software charges (e.g.
    --     annual) from one month prior.
    --
    -- -   __monthly_revenue_field_demonstration_usage__
    --
    --     From 2018-03-15 to present: Available monthly on the 15th day of the
    --     month by 24:00 UTC.
    --
    -- -   __monthly_revenue_flexible_payment_schedule__
    --
    --     From 2018-11-15 to present: Available monthly on the 15th day of the
    --     month by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_product__
    --
    --     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_instance_hours__
    --
    --     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_customer_geo__
    --
    --     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_age_of_uncollected_funds__
    --
    --     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_age_of_disbursed_funds__
    --
    --     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_age_of_past_due_funds__
    --
    --     From 2018-04-07 to present: Available every 30 days by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_uncollected_funds_breakdown__
    --
    --     From 2019-10-04 to present: Available every 30 days by 24:00 UTC.
    --
    -- -   __sales_compensation_billed_revenue__
    --
    --     From 2017-09-15 to present: Available monthly on the 15th day of the
    --     month by 24:00 UTC. Data includes metered transactions (e.g. hourly)
    --     from one month prior, and up-front software charges (e.g. annual)
    --     from one month prior.
    --
    -- -   __us_sales_and_use_tax_records__
    --
    --     From 2017-09-15 to present: Available monthly on the 15th day of the
    --     month by 24:00 UTC.
    --
    -- -   __disbursed_amount_by_product_with_uncollected_funds__
    --
    --     This data set is deprecated. Download related reports from AMMP
    --     instead!
    --
    -- -   __customer_profile_by_industry__
    --
    --     This data set is deprecated. Download related reports from AMMP
    --     instead!
    --
    -- -   __customer_profile_by_revenue__
    --
    --     This data set is deprecated. Download related reports from AMMP
    --     instead!
    --
    -- -   __customer_profile_by_geography__
    --
    --     This data set is deprecated. Download related reports from AMMP
    --     instead!
    GenerateDataSet -> DataSetType
dataSetType :: DataSetType,
    -- | The date a data set was published. For daily data sets, provide a date
    -- with day-level granularity for the desired day. For monthly data sets
    -- except those with prefix disbursed_amount, provide a date with
    -- month-level granularity for the desired month (the day value will be
    -- ignored). For data sets with prefix disbursed_amount, provide a date
    -- with day-level granularity for the desired day. For these data sets we
    -- will look backwards in time over the range of 31 days until the first
    -- data set is found (the latest one).
    GenerateDataSet -> POSIX
dataSetPublicationDate :: Core.POSIX,
    -- | The Amazon Resource Name (ARN) of the Role with an attached permissions
    -- policy to interact with the provided AWS services.
    GenerateDataSet -> Text
roleNameArn :: Prelude.Text,
    -- | The name (friendly name, not ARN) of the destination S3 bucket.
    GenerateDataSet -> Text
destinationS3BucketName :: Prelude.Text,
    -- | Amazon Resource Name (ARN) for the SNS Topic that will be notified when
    -- the data set has been published or if an error has occurred.
    GenerateDataSet -> Text
snsTopicArn :: Prelude.Text
  }
  deriving (GenerateDataSet -> GenerateDataSet -> Bool
(GenerateDataSet -> GenerateDataSet -> Bool)
-> (GenerateDataSet -> GenerateDataSet -> Bool)
-> Eq GenerateDataSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GenerateDataSet -> GenerateDataSet -> Bool
$c/= :: GenerateDataSet -> GenerateDataSet -> Bool
== :: GenerateDataSet -> GenerateDataSet -> Bool
$c== :: GenerateDataSet -> GenerateDataSet -> Bool
Prelude.Eq, ReadPrec [GenerateDataSet]
ReadPrec GenerateDataSet
Int -> ReadS GenerateDataSet
ReadS [GenerateDataSet]
(Int -> ReadS GenerateDataSet)
-> ReadS [GenerateDataSet]
-> ReadPrec GenerateDataSet
-> ReadPrec [GenerateDataSet]
-> Read GenerateDataSet
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GenerateDataSet]
$creadListPrec :: ReadPrec [GenerateDataSet]
readPrec :: ReadPrec GenerateDataSet
$creadPrec :: ReadPrec GenerateDataSet
readList :: ReadS [GenerateDataSet]
$creadList :: ReadS [GenerateDataSet]
readsPrec :: Int -> ReadS GenerateDataSet
$creadsPrec :: Int -> ReadS GenerateDataSet
Prelude.Read, Int -> GenerateDataSet -> ShowS
[GenerateDataSet] -> ShowS
GenerateDataSet -> String
(Int -> GenerateDataSet -> ShowS)
-> (GenerateDataSet -> String)
-> ([GenerateDataSet] -> ShowS)
-> Show GenerateDataSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenerateDataSet] -> ShowS
$cshowList :: [GenerateDataSet] -> ShowS
show :: GenerateDataSet -> String
$cshow :: GenerateDataSet -> String
showsPrec :: Int -> GenerateDataSet -> ShowS
$cshowsPrec :: Int -> GenerateDataSet -> ShowS
Prelude.Show, (forall x. GenerateDataSet -> Rep GenerateDataSet x)
-> (forall x. Rep GenerateDataSet x -> GenerateDataSet)
-> Generic GenerateDataSet
forall x. Rep GenerateDataSet x -> GenerateDataSet
forall x. GenerateDataSet -> Rep GenerateDataSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GenerateDataSet x -> GenerateDataSet
$cfrom :: forall x. GenerateDataSet -> Rep GenerateDataSet x
Prelude.Generic)

-- |
-- Create a value of 'GenerateDataSet' 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:
--
-- 'customerDefinedValues', 'generateDataSet_customerDefinedValues' - (Optional) Key-value pairs which will be returned, unmodified, in the
-- Amazon SNS notification message and the data set metadata file. These
-- key-value pairs can be used to correlated responses with tracking
-- information from other systems.
--
-- 'destinationS3Prefix', 'generateDataSet_destinationS3Prefix' - (Optional) The desired S3 prefix for the published data set, similar to
-- a directory path in standard file systems. For example, if given the
-- bucket name \"mybucket\" and the prefix \"myprefix\/mydatasets\", the
-- output file \"outputfile\" would be published to
-- \"s3:\/\/mybucket\/myprefix\/mydatasets\/outputfile\". If the prefix
-- directory structure does not exist, it will be created. If no prefix is
-- provided, the data set will be published to the S3 bucket root.
--
-- 'dataSetType', 'generateDataSet_dataSetType' - The desired data set type.
--
-- -   __customer_subscriber_hourly_monthly_subscriptions__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __customer_subscriber_annual_subscriptions__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_usage_by_instance_type__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_fees__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_free_trial_conversions__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_new_instances__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_new_product_subscribers__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_canceled_product_subscribers__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __monthly_revenue_billing_and_revenue_data__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC. Data includes metered transactions (e.g. hourly)
--     from one month prior.
--
-- -   __monthly_revenue_annual_subscriptions__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC. Data includes up-front software charges (e.g.
--     annual) from one month prior.
--
-- -   __monthly_revenue_field_demonstration_usage__
--
--     From 2018-03-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC.
--
-- -   __monthly_revenue_flexible_payment_schedule__
--
--     From 2018-11-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC.
--
-- -   __disbursed_amount_by_product__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_instance_hours__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_customer_geo__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_age_of_uncollected_funds__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_age_of_disbursed_funds__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_age_of_past_due_funds__
--
--     From 2018-04-07 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_uncollected_funds_breakdown__
--
--     From 2019-10-04 to present: Available every 30 days by 24:00 UTC.
--
-- -   __sales_compensation_billed_revenue__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC. Data includes metered transactions (e.g. hourly)
--     from one month prior, and up-front software charges (e.g. annual)
--     from one month prior.
--
-- -   __us_sales_and_use_tax_records__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC.
--
-- -   __disbursed_amount_by_product_with_uncollected_funds__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
--
-- -   __customer_profile_by_industry__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
--
-- -   __customer_profile_by_revenue__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
--
-- -   __customer_profile_by_geography__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
--
-- 'dataSetPublicationDate', 'generateDataSet_dataSetPublicationDate' - The date a data set was published. For daily data sets, provide a date
-- with day-level granularity for the desired day. For monthly data sets
-- except those with prefix disbursed_amount, provide a date with
-- month-level granularity for the desired month (the day value will be
-- ignored). For data sets with prefix disbursed_amount, provide a date
-- with day-level granularity for the desired day. For these data sets we
-- will look backwards in time over the range of 31 days until the first
-- data set is found (the latest one).
--
-- 'roleNameArn', 'generateDataSet_roleNameArn' - The Amazon Resource Name (ARN) of the Role with an attached permissions
-- policy to interact with the provided AWS services.
--
-- 'destinationS3BucketName', 'generateDataSet_destinationS3BucketName' - The name (friendly name, not ARN) of the destination S3 bucket.
--
-- 'snsTopicArn', 'generateDataSet_snsTopicArn' - Amazon Resource Name (ARN) for the SNS Topic that will be notified when
-- the data set has been published or if an error has occurred.
newGenerateDataSet ::
  -- | 'dataSetType'
  DataSetType ->
  -- | 'dataSetPublicationDate'
  Prelude.UTCTime ->
  -- | 'roleNameArn'
  Prelude.Text ->
  -- | 'destinationS3BucketName'
  Prelude.Text ->
  -- | 'snsTopicArn'
  Prelude.Text ->
  GenerateDataSet
newGenerateDataSet :: DataSetType -> UTCTime -> Text -> Text -> Text -> GenerateDataSet
newGenerateDataSet
  DataSetType
pDataSetType_
  UTCTime
pDataSetPublicationDate_
  Text
pRoleNameArn_
  Text
pDestinationS3BucketName_
  Text
pSnsTopicArn_ =
    GenerateDataSet' :: Maybe (HashMap Text Text)
-> Maybe Text
-> DataSetType
-> POSIX
-> Text
-> Text
-> Text
-> GenerateDataSet
GenerateDataSet'
      { $sel:customerDefinedValues:GenerateDataSet' :: Maybe (HashMap Text Text)
customerDefinedValues =
          Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:destinationS3Prefix:GenerateDataSet' :: Maybe Text
destinationS3Prefix = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:dataSetType:GenerateDataSet' :: DataSetType
dataSetType = DataSetType
pDataSetType_,
        $sel:dataSetPublicationDate:GenerateDataSet' :: POSIX
dataSetPublicationDate =
          Tagged UTCTime (Identity UTCTime) -> Tagged POSIX (Identity POSIX)
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time (Tagged UTCTime (Identity UTCTime)
 -> Tagged POSIX (Identity POSIX))
-> UTCTime -> POSIX
forall t b. AReview t b -> b -> t
Lens.# UTCTime
pDataSetPublicationDate_,
        $sel:roleNameArn:GenerateDataSet' :: Text
roleNameArn = Text
pRoleNameArn_,
        $sel:destinationS3BucketName:GenerateDataSet' :: Text
destinationS3BucketName = Text
pDestinationS3BucketName_,
        $sel:snsTopicArn:GenerateDataSet' :: Text
snsTopicArn = Text
pSnsTopicArn_
      }

-- | (Optional) Key-value pairs which will be returned, unmodified, in the
-- Amazon SNS notification message and the data set metadata file. These
-- key-value pairs can be used to correlated responses with tracking
-- information from other systems.
generateDataSet_customerDefinedValues :: Lens.Lens' GenerateDataSet (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
generateDataSet_customerDefinedValues :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> GenerateDataSet -> f GenerateDataSet
generateDataSet_customerDefinedValues = (GenerateDataSet -> Maybe (HashMap Text Text))
-> (GenerateDataSet
    -> Maybe (HashMap Text Text) -> GenerateDataSet)
-> Lens
     GenerateDataSet
     GenerateDataSet
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSet' {Maybe (HashMap Text Text)
customerDefinedValues :: Maybe (HashMap Text Text)
$sel:customerDefinedValues:GenerateDataSet' :: GenerateDataSet -> Maybe (HashMap Text Text)
customerDefinedValues} -> Maybe (HashMap Text Text)
customerDefinedValues) (\s :: GenerateDataSet
s@GenerateDataSet' {} Maybe (HashMap Text Text)
a -> GenerateDataSet
s {$sel:customerDefinedValues:GenerateDataSet' :: Maybe (HashMap Text Text)
customerDefinedValues = Maybe (HashMap Text Text)
a} :: GenerateDataSet) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> GenerateDataSet -> f GenerateDataSet)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> GenerateDataSet
-> f GenerateDataSet
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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 AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | (Optional) The desired S3 prefix for the published data set, similar to
-- a directory path in standard file systems. For example, if given the
-- bucket name \"mybucket\" and the prefix \"myprefix\/mydatasets\", the
-- output file \"outputfile\" would be published to
-- \"s3:\/\/mybucket\/myprefix\/mydatasets\/outputfile\". If the prefix
-- directory structure does not exist, it will be created. If no prefix is
-- provided, the data set will be published to the S3 bucket root.
generateDataSet_destinationS3Prefix :: Lens.Lens' GenerateDataSet (Prelude.Maybe Prelude.Text)
generateDataSet_destinationS3Prefix :: (Maybe Text -> f (Maybe Text))
-> GenerateDataSet -> f GenerateDataSet
generateDataSet_destinationS3Prefix = (GenerateDataSet -> Maybe Text)
-> (GenerateDataSet -> Maybe Text -> GenerateDataSet)
-> Lens GenerateDataSet GenerateDataSet (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSet' {Maybe Text
destinationS3Prefix :: Maybe Text
$sel:destinationS3Prefix:GenerateDataSet' :: GenerateDataSet -> Maybe Text
destinationS3Prefix} -> Maybe Text
destinationS3Prefix) (\s :: GenerateDataSet
s@GenerateDataSet' {} Maybe Text
a -> GenerateDataSet
s {$sel:destinationS3Prefix:GenerateDataSet' :: Maybe Text
destinationS3Prefix = Maybe Text
a} :: GenerateDataSet)

-- | The desired data set type.
--
-- -   __customer_subscriber_hourly_monthly_subscriptions__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __customer_subscriber_annual_subscriptions__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_usage_by_instance_type__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_fees__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_free_trial_conversions__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_new_instances__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_new_product_subscribers__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __daily_business_canceled_product_subscribers__
--
--     From 2017-09-15 to present: Available daily by 24:00 UTC.
--
-- -   __monthly_revenue_billing_and_revenue_data__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC. Data includes metered transactions (e.g. hourly)
--     from one month prior.
--
-- -   __monthly_revenue_annual_subscriptions__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC. Data includes up-front software charges (e.g.
--     annual) from one month prior.
--
-- -   __monthly_revenue_field_demonstration_usage__
--
--     From 2018-03-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC.
--
-- -   __monthly_revenue_flexible_payment_schedule__
--
--     From 2018-11-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC.
--
-- -   __disbursed_amount_by_product__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_instance_hours__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_customer_geo__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_age_of_uncollected_funds__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_age_of_disbursed_funds__
--
--     From 2017-09-15 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_age_of_past_due_funds__
--
--     From 2018-04-07 to present: Available every 30 days by 24:00 UTC.
--
-- -   __disbursed_amount_by_uncollected_funds_breakdown__
--
--     From 2019-10-04 to present: Available every 30 days by 24:00 UTC.
--
-- -   __sales_compensation_billed_revenue__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC. Data includes metered transactions (e.g. hourly)
--     from one month prior, and up-front software charges (e.g. annual)
--     from one month prior.
--
-- -   __us_sales_and_use_tax_records__
--
--     From 2017-09-15 to present: Available monthly on the 15th day of the
--     month by 24:00 UTC.
--
-- -   __disbursed_amount_by_product_with_uncollected_funds__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
--
-- -   __customer_profile_by_industry__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
--
-- -   __customer_profile_by_revenue__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
--
-- -   __customer_profile_by_geography__
--
--     This data set is deprecated. Download related reports from AMMP
--     instead!
generateDataSet_dataSetType :: Lens.Lens' GenerateDataSet DataSetType
generateDataSet_dataSetType :: (DataSetType -> f DataSetType)
-> GenerateDataSet -> f GenerateDataSet
generateDataSet_dataSetType = (GenerateDataSet -> DataSetType)
-> (GenerateDataSet -> DataSetType -> GenerateDataSet)
-> Lens GenerateDataSet GenerateDataSet DataSetType DataSetType
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSet' {DataSetType
dataSetType :: DataSetType
$sel:dataSetType:GenerateDataSet' :: GenerateDataSet -> DataSetType
dataSetType} -> DataSetType
dataSetType) (\s :: GenerateDataSet
s@GenerateDataSet' {} DataSetType
a -> GenerateDataSet
s {$sel:dataSetType:GenerateDataSet' :: DataSetType
dataSetType = DataSetType
a} :: GenerateDataSet)

-- | The date a data set was published. For daily data sets, provide a date
-- with day-level granularity for the desired day. For monthly data sets
-- except those with prefix disbursed_amount, provide a date with
-- month-level granularity for the desired month (the day value will be
-- ignored). For data sets with prefix disbursed_amount, provide a date
-- with day-level granularity for the desired day. For these data sets we
-- will look backwards in time over the range of 31 days until the first
-- data set is found (the latest one).
generateDataSet_dataSetPublicationDate :: Lens.Lens' GenerateDataSet Prelude.UTCTime
generateDataSet_dataSetPublicationDate :: (UTCTime -> f UTCTime) -> GenerateDataSet -> f GenerateDataSet
generateDataSet_dataSetPublicationDate = (GenerateDataSet -> POSIX)
-> (GenerateDataSet -> POSIX -> GenerateDataSet)
-> Lens GenerateDataSet GenerateDataSet POSIX POSIX
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSet' {POSIX
dataSetPublicationDate :: POSIX
$sel:dataSetPublicationDate:GenerateDataSet' :: GenerateDataSet -> POSIX
dataSetPublicationDate} -> POSIX
dataSetPublicationDate) (\s :: GenerateDataSet
s@GenerateDataSet' {} POSIX
a -> GenerateDataSet
s {$sel:dataSetPublicationDate:GenerateDataSet' :: POSIX
dataSetPublicationDate = POSIX
a} :: GenerateDataSet) ((POSIX -> f POSIX) -> GenerateDataSet -> f GenerateDataSet)
-> ((UTCTime -> f UTCTime) -> POSIX -> f POSIX)
-> (UTCTime -> f UTCTime)
-> GenerateDataSet
-> f GenerateDataSet
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (UTCTime -> f UTCTime) -> POSIX -> f POSIX
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The Amazon Resource Name (ARN) of the Role with an attached permissions
-- policy to interact with the provided AWS services.
generateDataSet_roleNameArn :: Lens.Lens' GenerateDataSet Prelude.Text
generateDataSet_roleNameArn :: (Text -> f Text) -> GenerateDataSet -> f GenerateDataSet
generateDataSet_roleNameArn = (GenerateDataSet -> Text)
-> (GenerateDataSet -> Text -> GenerateDataSet)
-> Lens GenerateDataSet GenerateDataSet Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSet' {Text
roleNameArn :: Text
$sel:roleNameArn:GenerateDataSet' :: GenerateDataSet -> Text
roleNameArn} -> Text
roleNameArn) (\s :: GenerateDataSet
s@GenerateDataSet' {} Text
a -> GenerateDataSet
s {$sel:roleNameArn:GenerateDataSet' :: Text
roleNameArn = Text
a} :: GenerateDataSet)

-- | The name (friendly name, not ARN) of the destination S3 bucket.
generateDataSet_destinationS3BucketName :: Lens.Lens' GenerateDataSet Prelude.Text
generateDataSet_destinationS3BucketName :: (Text -> f Text) -> GenerateDataSet -> f GenerateDataSet
generateDataSet_destinationS3BucketName = (GenerateDataSet -> Text)
-> (GenerateDataSet -> Text -> GenerateDataSet)
-> Lens GenerateDataSet GenerateDataSet Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSet' {Text
destinationS3BucketName :: Text
$sel:destinationS3BucketName:GenerateDataSet' :: GenerateDataSet -> Text
destinationS3BucketName} -> Text
destinationS3BucketName) (\s :: GenerateDataSet
s@GenerateDataSet' {} Text
a -> GenerateDataSet
s {$sel:destinationS3BucketName:GenerateDataSet' :: Text
destinationS3BucketName = Text
a} :: GenerateDataSet)

-- | Amazon Resource Name (ARN) for the SNS Topic that will be notified when
-- the data set has been published or if an error has occurred.
generateDataSet_snsTopicArn :: Lens.Lens' GenerateDataSet Prelude.Text
generateDataSet_snsTopicArn :: (Text -> f Text) -> GenerateDataSet -> f GenerateDataSet
generateDataSet_snsTopicArn = (GenerateDataSet -> Text)
-> (GenerateDataSet -> Text -> GenerateDataSet)
-> Lens GenerateDataSet GenerateDataSet Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSet' {Text
snsTopicArn :: Text
$sel:snsTopicArn:GenerateDataSet' :: GenerateDataSet -> Text
snsTopicArn} -> Text
snsTopicArn) (\s :: GenerateDataSet
s@GenerateDataSet' {} Text
a -> GenerateDataSet
s {$sel:snsTopicArn:GenerateDataSet' :: Text
snsTopicArn = Text
a} :: GenerateDataSet)

instance Core.AWSRequest GenerateDataSet where
  type
    AWSResponse GenerateDataSet =
      GenerateDataSetResponse
  request :: GenerateDataSet -> Request GenerateDataSet
request = Service -> GenerateDataSet -> Request GenerateDataSet
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy GenerateDataSet
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GenerateDataSet)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse GenerateDataSet))
-> Logger
-> Service
-> Proxy GenerateDataSet
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GenerateDataSet)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text -> Int -> GenerateDataSetResponse
GenerateDataSetResponse'
            (Maybe Text -> Int -> GenerateDataSetResponse)
-> Either String (Maybe Text)
-> Either String (Int -> GenerateDataSetResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"dataSetRequestId")
            Either String (Int -> GenerateDataSetResponse)
-> Either String Int -> Either String GenerateDataSetResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable GenerateDataSet

instance Prelude.NFData GenerateDataSet

instance Core.ToHeaders GenerateDataSet where
  toHeaders :: GenerateDataSet -> ResponseHeaders
toHeaders =
    ResponseHeaders -> GenerateDataSet -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"MarketplaceCommerceAnalytics20150701.GenerateDataSet" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON GenerateDataSet where
  toJSON :: GenerateDataSet -> Value
toJSON GenerateDataSet' {Maybe Text
Maybe (HashMap Text Text)
Text
POSIX
DataSetType
snsTopicArn :: Text
destinationS3BucketName :: Text
roleNameArn :: Text
dataSetPublicationDate :: POSIX
dataSetType :: DataSetType
destinationS3Prefix :: Maybe Text
customerDefinedValues :: Maybe (HashMap Text Text)
$sel:snsTopicArn:GenerateDataSet' :: GenerateDataSet -> Text
$sel:destinationS3BucketName:GenerateDataSet' :: GenerateDataSet -> Text
$sel:roleNameArn:GenerateDataSet' :: GenerateDataSet -> Text
$sel:dataSetPublicationDate:GenerateDataSet' :: GenerateDataSet -> POSIX
$sel:dataSetType:GenerateDataSet' :: GenerateDataSet -> DataSetType
$sel:destinationS3Prefix:GenerateDataSet' :: GenerateDataSet -> Maybe Text
$sel:customerDefinedValues:GenerateDataSet' :: GenerateDataSet -> Maybe (HashMap Text Text)
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"customerDefinedValues" Text -> HashMap Text Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HashMap Text Text -> Pair)
-> Maybe (HashMap Text Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
customerDefinedValues,
            (Text
"destinationS3Prefix" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
destinationS3Prefix,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"dataSetType" Text -> DataSetType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= DataSetType
dataSetType),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"dataSetPublicationDate"
                  Text -> POSIX -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= POSIX
dataSetPublicationDate
              ),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"roleNameArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
roleNameArn),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"destinationS3BucketName"
                  Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
destinationS3BucketName
              ),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"snsTopicArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
snsTopicArn)
          ]
      )

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

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

-- | Container for the result of the GenerateDataSet operation.
--
-- /See:/ 'newGenerateDataSetResponse' smart constructor.
data GenerateDataSetResponse = GenerateDataSetResponse'
  { -- | A unique identifier representing a specific request to the
    -- GenerateDataSet operation. This identifier can be used to correlate a
    -- request with notifications from the SNS topic.
    GenerateDataSetResponse -> Maybe Text
dataSetRequestId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GenerateDataSetResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GenerateDataSetResponse -> GenerateDataSetResponse -> Bool
(GenerateDataSetResponse -> GenerateDataSetResponse -> Bool)
-> (GenerateDataSetResponse -> GenerateDataSetResponse -> Bool)
-> Eq GenerateDataSetResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GenerateDataSetResponse -> GenerateDataSetResponse -> Bool
$c/= :: GenerateDataSetResponse -> GenerateDataSetResponse -> Bool
== :: GenerateDataSetResponse -> GenerateDataSetResponse -> Bool
$c== :: GenerateDataSetResponse -> GenerateDataSetResponse -> Bool
Prelude.Eq, ReadPrec [GenerateDataSetResponse]
ReadPrec GenerateDataSetResponse
Int -> ReadS GenerateDataSetResponse
ReadS [GenerateDataSetResponse]
(Int -> ReadS GenerateDataSetResponse)
-> ReadS [GenerateDataSetResponse]
-> ReadPrec GenerateDataSetResponse
-> ReadPrec [GenerateDataSetResponse]
-> Read GenerateDataSetResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GenerateDataSetResponse]
$creadListPrec :: ReadPrec [GenerateDataSetResponse]
readPrec :: ReadPrec GenerateDataSetResponse
$creadPrec :: ReadPrec GenerateDataSetResponse
readList :: ReadS [GenerateDataSetResponse]
$creadList :: ReadS [GenerateDataSetResponse]
readsPrec :: Int -> ReadS GenerateDataSetResponse
$creadsPrec :: Int -> ReadS GenerateDataSetResponse
Prelude.Read, Int -> GenerateDataSetResponse -> ShowS
[GenerateDataSetResponse] -> ShowS
GenerateDataSetResponse -> String
(Int -> GenerateDataSetResponse -> ShowS)
-> (GenerateDataSetResponse -> String)
-> ([GenerateDataSetResponse] -> ShowS)
-> Show GenerateDataSetResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenerateDataSetResponse] -> ShowS
$cshowList :: [GenerateDataSetResponse] -> ShowS
show :: GenerateDataSetResponse -> String
$cshow :: GenerateDataSetResponse -> String
showsPrec :: Int -> GenerateDataSetResponse -> ShowS
$cshowsPrec :: Int -> GenerateDataSetResponse -> ShowS
Prelude.Show, (forall x.
 GenerateDataSetResponse -> Rep GenerateDataSetResponse x)
-> (forall x.
    Rep GenerateDataSetResponse x -> GenerateDataSetResponse)
-> Generic GenerateDataSetResponse
forall x. Rep GenerateDataSetResponse x -> GenerateDataSetResponse
forall x. GenerateDataSetResponse -> Rep GenerateDataSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GenerateDataSetResponse x -> GenerateDataSetResponse
$cfrom :: forall x. GenerateDataSetResponse -> Rep GenerateDataSetResponse x
Prelude.Generic)

-- |
-- Create a value of 'GenerateDataSetResponse' 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:
--
-- 'dataSetRequestId', 'generateDataSetResponse_dataSetRequestId' - A unique identifier representing a specific request to the
-- GenerateDataSet operation. This identifier can be used to correlate a
-- request with notifications from the SNS topic.
--
-- 'httpStatus', 'generateDataSetResponse_httpStatus' - The response's http status code.
newGenerateDataSetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GenerateDataSetResponse
newGenerateDataSetResponse :: Int -> GenerateDataSetResponse
newGenerateDataSetResponse Int
pHttpStatus_ =
  GenerateDataSetResponse' :: Maybe Text -> Int -> GenerateDataSetResponse
GenerateDataSetResponse'
    { $sel:dataSetRequestId:GenerateDataSetResponse' :: Maybe Text
dataSetRequestId =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GenerateDataSetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A unique identifier representing a specific request to the
-- GenerateDataSet operation. This identifier can be used to correlate a
-- request with notifications from the SNS topic.
generateDataSetResponse_dataSetRequestId :: Lens.Lens' GenerateDataSetResponse (Prelude.Maybe Prelude.Text)
generateDataSetResponse_dataSetRequestId :: (Maybe Text -> f (Maybe Text))
-> GenerateDataSetResponse -> f GenerateDataSetResponse
generateDataSetResponse_dataSetRequestId = (GenerateDataSetResponse -> Maybe Text)
-> (GenerateDataSetResponse
    -> Maybe Text -> GenerateDataSetResponse)
-> Lens
     GenerateDataSetResponse
     GenerateDataSetResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateDataSetResponse' {Maybe Text
dataSetRequestId :: Maybe Text
$sel:dataSetRequestId:GenerateDataSetResponse' :: GenerateDataSetResponse -> Maybe Text
dataSetRequestId} -> Maybe Text
dataSetRequestId) (\s :: GenerateDataSetResponse
s@GenerateDataSetResponse' {} Maybe Text
a -> GenerateDataSetResponse
s {$sel:dataSetRequestId:GenerateDataSetResponse' :: Maybe Text
dataSetRequestId = Maybe Text
a} :: GenerateDataSetResponse)

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

instance Prelude.NFData GenerateDataSetResponse