{-# 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.BillingConductor.DeleteCustomLineItem -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes the custom line item identified by the given ARN in the current, -- or previous billing period. module Amazonka.BillingConductor.DeleteCustomLineItem ( -- * Creating a Request DeleteCustomLineItem (..), newDeleteCustomLineItem, -- * Request Lenses deleteCustomLineItem_billingPeriodRange, deleteCustomLineItem_arn, -- * Destructuring the Response DeleteCustomLineItemResponse (..), newDeleteCustomLineItemResponse, -- * Response Lenses deleteCustomLineItemResponse_arn, deleteCustomLineItemResponse_httpStatus, ) where import Amazonka.BillingConductor.Types import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDeleteCustomLineItem' smart constructor. data DeleteCustomLineItem = DeleteCustomLineItem' { billingPeriodRange :: Prelude.Maybe CustomLineItemBillingPeriodRange, -- | The ARN of the custom line item to be deleted. arn :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteCustomLineItem' 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: -- -- 'billingPeriodRange', 'deleteCustomLineItem_billingPeriodRange' - Undocumented member. -- -- 'arn', 'deleteCustomLineItem_arn' - The ARN of the custom line item to be deleted. newDeleteCustomLineItem :: -- | 'arn' Prelude.Text -> DeleteCustomLineItem newDeleteCustomLineItem pArn_ = DeleteCustomLineItem' { billingPeriodRange = Prelude.Nothing, arn = pArn_ } -- | Undocumented member. deleteCustomLineItem_billingPeriodRange :: Lens.Lens' DeleteCustomLineItem (Prelude.Maybe CustomLineItemBillingPeriodRange) deleteCustomLineItem_billingPeriodRange = Lens.lens (\DeleteCustomLineItem' {billingPeriodRange} -> billingPeriodRange) (\s@DeleteCustomLineItem' {} a -> s {billingPeriodRange = a} :: DeleteCustomLineItem) -- | The ARN of the custom line item to be deleted. deleteCustomLineItem_arn :: Lens.Lens' DeleteCustomLineItem Prelude.Text deleteCustomLineItem_arn = Lens.lens (\DeleteCustomLineItem' {arn} -> arn) (\s@DeleteCustomLineItem' {} a -> s {arn = a} :: DeleteCustomLineItem) instance Core.AWSRequest DeleteCustomLineItem where type AWSResponse DeleteCustomLineItem = DeleteCustomLineItemResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DeleteCustomLineItemResponse' Prelude.<$> (x Data..?> "Arn") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DeleteCustomLineItem where hashWithSalt _salt DeleteCustomLineItem' {..} = _salt `Prelude.hashWithSalt` billingPeriodRange `Prelude.hashWithSalt` arn instance Prelude.NFData DeleteCustomLineItem where rnf DeleteCustomLineItem' {..} = Prelude.rnf billingPeriodRange `Prelude.seq` Prelude.rnf arn instance Data.ToHeaders DeleteCustomLineItem where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DeleteCustomLineItem where toJSON DeleteCustomLineItem' {..} = Data.object ( Prelude.catMaybes [ ("BillingPeriodRange" Data..=) Prelude.<$> billingPeriodRange, Prelude.Just ("Arn" Data..= arn) ] ) instance Data.ToPath DeleteCustomLineItem where toPath = Prelude.const "/delete-custom-line-item" instance Data.ToQuery DeleteCustomLineItem where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeleteCustomLineItemResponse' smart constructor. data DeleteCustomLineItemResponse = DeleteCustomLineItemResponse' { -- | Then ARN of the deleted custom line item. arn :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteCustomLineItemResponse' 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: -- -- 'arn', 'deleteCustomLineItemResponse_arn' - Then ARN of the deleted custom line item. -- -- 'httpStatus', 'deleteCustomLineItemResponse_httpStatus' - The response's http status code. newDeleteCustomLineItemResponse :: -- | 'httpStatus' Prelude.Int -> DeleteCustomLineItemResponse newDeleteCustomLineItemResponse pHttpStatus_ = DeleteCustomLineItemResponse' { arn = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Then ARN of the deleted custom line item. deleteCustomLineItemResponse_arn :: Lens.Lens' DeleteCustomLineItemResponse (Prelude.Maybe Prelude.Text) deleteCustomLineItemResponse_arn = Lens.lens (\DeleteCustomLineItemResponse' {arn} -> arn) (\s@DeleteCustomLineItemResponse' {} a -> s {arn = a} :: DeleteCustomLineItemResponse) -- | The response's http status code. deleteCustomLineItemResponse_httpStatus :: Lens.Lens' DeleteCustomLineItemResponse Prelude.Int deleteCustomLineItemResponse_httpStatus = Lens.lens (\DeleteCustomLineItemResponse' {httpStatus} -> httpStatus) (\s@DeleteCustomLineItemResponse' {} a -> s {httpStatus = a} :: DeleteCustomLineItemResponse) instance Prelude.NFData DeleteCustomLineItemResponse where rnf DeleteCustomLineItemResponse' {..} = Prelude.rnf arn `Prelude.seq` Prelude.rnf httpStatus