/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace BillingConductor
{
namespace Model
{
/**
* A representation of the new charge details of a custom line item. This
* should contain only one of Flat
or Percentage
.
*
See Also:
AWS
* API Reference
*/
class UpdateCustomLineItemChargeDetails
{
public:
AWS_BILLINGCONDUCTOR_API UpdateCustomLineItemChargeDetails();
AWS_BILLINGCONDUCTOR_API UpdateCustomLineItemChargeDetails(Aws::Utils::Json::JsonView jsonValue);
AWS_BILLINGCONDUCTOR_API UpdateCustomLineItemChargeDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
AWS_BILLINGCONDUCTOR_API Aws::Utils::Json::JsonValue Jsonize() const;
/**
* An UpdateCustomLineItemFlatChargeDetails
that describes the new
* charge details of a flat custom line item.
*/
inline const UpdateCustomLineItemFlatChargeDetails& GetFlat() const{ return m_flat; }
/**
* An UpdateCustomLineItemFlatChargeDetails
that describes the new
* charge details of a flat custom line item.
*/
inline bool FlatHasBeenSet() const { return m_flatHasBeenSet; }
/**
* An UpdateCustomLineItemFlatChargeDetails
that describes the new
* charge details of a flat custom line item.
*/
inline void SetFlat(const UpdateCustomLineItemFlatChargeDetails& value) { m_flatHasBeenSet = true; m_flat = value; }
/**
* An UpdateCustomLineItemFlatChargeDetails
that describes the new
* charge details of a flat custom line item.
*/
inline void SetFlat(UpdateCustomLineItemFlatChargeDetails&& value) { m_flatHasBeenSet = true; m_flat = std::move(value); }
/**
* An UpdateCustomLineItemFlatChargeDetails
that describes the new
* charge details of a flat custom line item.
*/
inline UpdateCustomLineItemChargeDetails& WithFlat(const UpdateCustomLineItemFlatChargeDetails& value) { SetFlat(value); return *this;}
/**
* An UpdateCustomLineItemFlatChargeDetails
that describes the new
* charge details of a flat custom line item.
*/
inline UpdateCustomLineItemChargeDetails& WithFlat(UpdateCustomLineItemFlatChargeDetails&& value) { SetFlat(std::move(value)); return *this;}
/**
* An UpdateCustomLineItemPercentageChargeDetails
that describes
* the new charge details of a percentage custom line item.
*/
inline const UpdateCustomLineItemPercentageChargeDetails& GetPercentage() const{ return m_percentage; }
/**
* An UpdateCustomLineItemPercentageChargeDetails
that describes
* the new charge details of a percentage custom line item.
*/
inline bool PercentageHasBeenSet() const { return m_percentageHasBeenSet; }
/**
* An UpdateCustomLineItemPercentageChargeDetails
that describes
* the new charge details of a percentage custom line item.
*/
inline void SetPercentage(const UpdateCustomLineItemPercentageChargeDetails& value) { m_percentageHasBeenSet = true; m_percentage = value; }
/**
* An UpdateCustomLineItemPercentageChargeDetails
that describes
* the new charge details of a percentage custom line item.
*/
inline void SetPercentage(UpdateCustomLineItemPercentageChargeDetails&& value) { m_percentageHasBeenSet = true; m_percentage = std::move(value); }
/**
* An UpdateCustomLineItemPercentageChargeDetails
that describes
* the new charge details of a percentage custom line item.
*/
inline UpdateCustomLineItemChargeDetails& WithPercentage(const UpdateCustomLineItemPercentageChargeDetails& value) { SetPercentage(value); return *this;}
/**
* An UpdateCustomLineItemPercentageChargeDetails
that describes
* the new charge details of a percentage custom line item.
*/
inline UpdateCustomLineItemChargeDetails& WithPercentage(UpdateCustomLineItemPercentageChargeDetails&& value) { SetPercentage(std::move(value)); return *this;}
private:
UpdateCustomLineItemFlatChargeDetails m_flat;
bool m_flatHasBeenSet = false;
UpdateCustomLineItemPercentageChargeDetails m_percentage;
bool m_percentageHasBeenSet = false;
};
} // namespace Model
} // namespace BillingConductor
} // namespace Aws