Files
2026-02-28 12:32:28 -05:00

195 lines
9.3 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/apigateway/APIGateway_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/apigateway/model/ThrottleSettings.h>
#include <aws/apigateway/model/QuotaSettings.h>
#include <aws/core/utils/memory/stl/AWSMap.h>
#include <aws/apigateway/model/ApiStage.h>
#include <utility>
namespace Aws
{
template<typename RESULT_TYPE>
class AmazonWebServiceResult;
namespace Utils
{
namespace Json
{
class JsonValue;
} // namespace Json
} // namespace Utils
namespace APIGateway
{
namespace Model
{
/**
* <p>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. Dont rely on usage plans to
* control costs. Consider using <a
* href="https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html">Amazon
* Web Services Budgets</a> to monitor costs and <a
* href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF</a>
* to manage API requests.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/apigateway-2015-07-09/UsagePlan">AWS
* API Reference</a></p>
*/
class UpdateUsagePlanResult
{
public:
AWS_APIGATEWAY_API UpdateUsagePlanResult();
AWS_APIGATEWAY_API UpdateUsagePlanResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
AWS_APIGATEWAY_API UpdateUsagePlanResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
///@{
/**
* <p>The identifier of a UsagePlan resource.</p>
*/
inline const Aws::String& GetId() const{ return m_id; }
inline void SetId(const Aws::String& value) { m_id = value; }
inline void SetId(Aws::String&& value) { m_id = std::move(value); }
inline void SetId(const char* value) { m_id.assign(value); }
inline UpdateUsagePlanResult& WithId(const Aws::String& value) { SetId(value); return *this;}
inline UpdateUsagePlanResult& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
inline UpdateUsagePlanResult& WithId(const char* value) { SetId(value); return *this;}
///@}
///@{
/**
* <p>The name of a usage plan.</p>
*/
inline const Aws::String& GetName() const{ return m_name; }
inline void SetName(const Aws::String& value) { m_name = value; }
inline void SetName(Aws::String&& value) { m_name = std::move(value); }
inline void SetName(const char* value) { m_name.assign(value); }
inline UpdateUsagePlanResult& WithName(const Aws::String& value) { SetName(value); return *this;}
inline UpdateUsagePlanResult& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
inline UpdateUsagePlanResult& WithName(const char* value) { SetName(value); return *this;}
///@}
///@{
/**
* <p>The description of a usage plan.</p>
*/
inline const Aws::String& GetDescription() const{ return m_description; }
inline void SetDescription(const Aws::String& value) { m_description = value; }
inline void SetDescription(Aws::String&& value) { m_description = std::move(value); }
inline void SetDescription(const char* value) { m_description.assign(value); }
inline UpdateUsagePlanResult& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
inline UpdateUsagePlanResult& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
inline UpdateUsagePlanResult& WithDescription(const char* value) { SetDescription(value); return *this;}
///@}
///@{
/**
* <p>The associated API stages of a usage plan.</p>
*/
inline const Aws::Vector<ApiStage>& GetApiStages() const{ return m_apiStages; }
inline void SetApiStages(const Aws::Vector<ApiStage>& value) { m_apiStages = value; }
inline void SetApiStages(Aws::Vector<ApiStage>&& value) { m_apiStages = std::move(value); }
inline UpdateUsagePlanResult& WithApiStages(const Aws::Vector<ApiStage>& value) { SetApiStages(value); return *this;}
inline UpdateUsagePlanResult& WithApiStages(Aws::Vector<ApiStage>&& value) { SetApiStages(std::move(value)); return *this;}
inline UpdateUsagePlanResult& AddApiStages(const ApiStage& value) { m_apiStages.push_back(value); return *this; }
inline UpdateUsagePlanResult& AddApiStages(ApiStage&& value) { m_apiStages.push_back(std::move(value)); return *this; }
///@}
///@{
/**
* <p>A map containing method level throttling information for API stage in a usage
* plan.</p>
*/
inline const ThrottleSettings& GetThrottle() const{ return m_throttle; }
inline void SetThrottle(const ThrottleSettings& value) { m_throttle = value; }
inline void SetThrottle(ThrottleSettings&& value) { m_throttle = std::move(value); }
inline UpdateUsagePlanResult& WithThrottle(const ThrottleSettings& value) { SetThrottle(value); return *this;}
inline UpdateUsagePlanResult& WithThrottle(ThrottleSettings&& value) { SetThrottle(std::move(value)); return *this;}
///@}
///@{
/**
* <p>The target maximum number of permitted requests per a given unit time
* interval.</p>
*/
inline const QuotaSettings& GetQuota() const{ return m_quota; }
inline void SetQuota(const QuotaSettings& value) { m_quota = value; }
inline void SetQuota(QuotaSettings&& value) { m_quota = std::move(value); }
inline UpdateUsagePlanResult& WithQuota(const QuotaSettings& value) { SetQuota(value); return *this;}
inline UpdateUsagePlanResult& WithQuota(QuotaSettings&& value) { SetQuota(std::move(value)); return *this;}
///@}
///@{
/**
* <p>The Amazon Web Services Marketplace product identifier to associate with the
* usage plan as a SaaS product on the Amazon Web Services Marketplace.</p>
*/
inline const Aws::String& GetProductCode() const{ return m_productCode; }
inline void SetProductCode(const Aws::String& value) { m_productCode = value; }
inline void SetProductCode(Aws::String&& value) { m_productCode = std::move(value); }
inline void SetProductCode(const char* value) { m_productCode.assign(value); }
inline UpdateUsagePlanResult& WithProductCode(const Aws::String& value) { SetProductCode(value); return *this;}
inline UpdateUsagePlanResult& WithProductCode(Aws::String&& value) { SetProductCode(std::move(value)); return *this;}
inline UpdateUsagePlanResult& WithProductCode(const char* value) { SetProductCode(value); return *this;}
///@}
///@{
/**
* <p>The collection of tags. Each tag element is associated with a given
* resource.</p>
*/
inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tags = value; }
inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tags = std::move(value); }
inline UpdateUsagePlanResult& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
inline UpdateUsagePlanResult& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
inline UpdateUsagePlanResult& AddTags(const Aws::String& key, const Aws::String& value) { m_tags.emplace(key, value); return *this; }
inline UpdateUsagePlanResult& AddTags(Aws::String&& key, const Aws::String& value) { m_tags.emplace(std::move(key), value); return *this; }
inline UpdateUsagePlanResult& AddTags(const Aws::String& key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
inline UpdateUsagePlanResult& AddTags(Aws::String&& key, Aws::String&& value) { m_tags.emplace(std::move(key), std::move(value)); return *this; }
inline UpdateUsagePlanResult& AddTags(const char* key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
inline UpdateUsagePlanResult& AddTags(Aws::String&& key, const char* value) { m_tags.emplace(std::move(key), value); return *this; }
inline UpdateUsagePlanResult& AddTags(const char* key, const char* value) { m_tags.emplace(key, value); return *this; }
///@}
///@{
inline const Aws::String& GetRequestId() const{ return m_requestId; }
inline void SetRequestId(const Aws::String& value) { m_requestId = value; }
inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); }
inline void SetRequestId(const char* value) { m_requestId.assign(value); }
inline UpdateUsagePlanResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;}
inline UpdateUsagePlanResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;}
inline UpdateUsagePlanResult& WithRequestId(const char* value) { SetRequestId(value); return *this;}
///@}
private:
Aws::String m_id;
Aws::String m_name;
Aws::String m_description;
Aws::Vector<ApiStage> m_apiStages;
ThrottleSettings m_throttle;
QuotaSettings m_quota;
Aws::String m_productCode;
Aws::Map<Aws::String, Aws::String> m_tags;
Aws::String m_requestId;
};
} // namespace Model
} // namespace APIGateway
} // namespace Aws