/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents a usage plan used to specify who can assess associated API stages.
* Optionally, target request rate and quota limits can be set. In some cases
* clients can exceed the targets that you set. Don’t rely on usage plans to
* control costs. Consider using Amazon
* Web Services Budgets to monitor costs and WAF
* to manage API requests.See Also:
AWS
* API Reference
The identifier of a UsagePlan resource.
*/ inline const Aws::String& GetId() const{ return m_id; } inline bool IdHasBeenSet() const { return m_idHasBeenSet; } inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } inline UsagePlan& WithId(const Aws::String& value) { SetId(value); return *this;} inline UsagePlan& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} inline UsagePlan& WithId(const char* value) { SetId(value); return *this;} ///@} ///@{ /** *The name of a usage plan.
*/ inline const Aws::String& GetName() const{ return m_name; } inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } inline UsagePlan& WithName(const Aws::String& value) { SetName(value); return *this;} inline UsagePlan& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} inline UsagePlan& WithName(const char* value) { SetName(value); return *this;} ///@} ///@{ /** *The description of a usage plan.
*/ inline const Aws::String& GetDescription() const{ return m_description; } inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } inline UsagePlan& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} inline UsagePlan& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} inline UsagePlan& WithDescription(const char* value) { SetDescription(value); return *this;} ///@} ///@{ /** *The associated API stages of a usage plan.
*/ inline const Aws::VectorA map containing method level throttling information for API stage in a usage * plan.
*/ inline const ThrottleSettings& GetThrottle() const{ return m_throttle; } inline bool ThrottleHasBeenSet() const { return m_throttleHasBeenSet; } inline void SetThrottle(const ThrottleSettings& value) { m_throttleHasBeenSet = true; m_throttle = value; } inline void SetThrottle(ThrottleSettings&& value) { m_throttleHasBeenSet = true; m_throttle = std::move(value); } inline UsagePlan& WithThrottle(const ThrottleSettings& value) { SetThrottle(value); return *this;} inline UsagePlan& WithThrottle(ThrottleSettings&& value) { SetThrottle(std::move(value)); return *this;} ///@} ///@{ /** *The target maximum number of permitted requests per a given unit time * interval.
*/ inline const QuotaSettings& GetQuota() const{ return m_quota; } inline bool QuotaHasBeenSet() const { return m_quotaHasBeenSet; } inline void SetQuota(const QuotaSettings& value) { m_quotaHasBeenSet = true; m_quota = value; } inline void SetQuota(QuotaSettings&& value) { m_quotaHasBeenSet = true; m_quota = std::move(value); } inline UsagePlan& WithQuota(const QuotaSettings& value) { SetQuota(value); return *this;} inline UsagePlan& WithQuota(QuotaSettings&& value) { SetQuota(std::move(value)); return *this;} ///@} ///@{ /** *The Amazon Web Services Marketplace product identifier to associate with the * usage plan as a SaaS product on the Amazon Web Services Marketplace.
*/ inline const Aws::String& GetProductCode() const{ return m_productCode; } inline bool ProductCodeHasBeenSet() const { return m_productCodeHasBeenSet; } inline void SetProductCode(const Aws::String& value) { m_productCodeHasBeenSet = true; m_productCode = value; } inline void SetProductCode(Aws::String&& value) { m_productCodeHasBeenSet = true; m_productCode = std::move(value); } inline void SetProductCode(const char* value) { m_productCodeHasBeenSet = true; m_productCode.assign(value); } inline UsagePlan& WithProductCode(const Aws::String& value) { SetProductCode(value); return *this;} inline UsagePlan& WithProductCode(Aws::String&& value) { SetProductCode(std::move(value)); return *this;} inline UsagePlan& WithProductCode(const char* value) { SetProductCode(value); return *this;} ///@} ///@{ /** *The collection of tags. Each tag element is associated with a given * resource.
*/ inline const Aws::Map