This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-shield/include/aws/shield/model/Subscription.h

342 lines
15 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/shield/Shield_EXPORTS.h>
#include <aws/core/utils/DateTime.h>
#include <aws/shield/model/AutoRenew.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/shield/model/ProactiveEngagementStatus.h>
#include <aws/shield/model/Limit.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace Shield
{
namespace Model
{
/**
* <p>Information about the AWS Shield Advanced subscription for an
* account.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Subscription">AWS
* API Reference</a></p>
*/
class AWS_SHIELD_API Subscription
{
public:
Subscription();
Subscription(Aws::Utils::Json::JsonView jsonValue);
Subscription& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* <p>The start time of the subscription, in Unix time in seconds. For more
* information see <a
* href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.</p>
*/
inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; }
/**
* <p>The start time of the subscription, in Unix time in seconds. For more
* information see <a
* href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.</p>
*/
inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; }
/**
* <p>The start time of the subscription, in Unix time in seconds. For more
* information see <a
* href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.</p>
*/
inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; }
/**
* <p>The start time of the subscription, in Unix time in seconds. For more
* information see <a
* href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.</p>
*/
inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); }
/**
* <p>The start time of the subscription, in Unix time in seconds. For more
* information see <a
* href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.</p>
*/
inline Subscription& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;}
/**
* <p>The start time of the subscription, in Unix time in seconds. For more
* information see <a
* href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.</p>
*/
inline Subscription& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;}
/**
* <p>The date and time your subscription will end.</p>
*/
inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; }
/**
* <p>The date and time your subscription will end.</p>
*/
inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; }
/**
* <p>The date and time your subscription will end.</p>
*/
inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; }
/**
* <p>The date and time your subscription will end.</p>
*/
inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); }
/**
* <p>The date and time your subscription will end.</p>
*/
inline Subscription& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;}
/**
* <p>The date and time your subscription will end.</p>
*/
inline Subscription& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;}
/**
* <p>The length, in seconds, of the AWS Shield Advanced subscription for the
* account.</p>
*/
inline long long GetTimeCommitmentInSeconds() const{ return m_timeCommitmentInSeconds; }
/**
* <p>The length, in seconds, of the AWS Shield Advanced subscription for the
* account.</p>
*/
inline bool TimeCommitmentInSecondsHasBeenSet() const { return m_timeCommitmentInSecondsHasBeenSet; }
/**
* <p>The length, in seconds, of the AWS Shield Advanced subscription for the
* account.</p>
*/
inline void SetTimeCommitmentInSeconds(long long value) { m_timeCommitmentInSecondsHasBeenSet = true; m_timeCommitmentInSeconds = value; }
/**
* <p>The length, in seconds, of the AWS Shield Advanced subscription for the
* account.</p>
*/
inline Subscription& WithTimeCommitmentInSeconds(long long value) { SetTimeCommitmentInSeconds(value); return *this;}
/**
* <p>If <code>ENABLED</code>, the subscription will be automatically renewed at
* the end of the existing subscription period.</p> <p>When you initally create a
* subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. You can
* change this by submitting an <code>UpdateSubscription</code> request. If the
* <code>UpdateSubscription</code> request does not included a value for
* <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains
* unchanged.</p>
*/
inline const AutoRenew& GetAutoRenew() const{ return m_autoRenew; }
/**
* <p>If <code>ENABLED</code>, the subscription will be automatically renewed at
* the end of the existing subscription period.</p> <p>When you initally create a
* subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. You can
* change this by submitting an <code>UpdateSubscription</code> request. If the
* <code>UpdateSubscription</code> request does not included a value for
* <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains
* unchanged.</p>
*/
inline bool AutoRenewHasBeenSet() const { return m_autoRenewHasBeenSet; }
/**
* <p>If <code>ENABLED</code>, the subscription will be automatically renewed at
* the end of the existing subscription period.</p> <p>When you initally create a
* subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. You can
* change this by submitting an <code>UpdateSubscription</code> request. If the
* <code>UpdateSubscription</code> request does not included a value for
* <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains
* unchanged.</p>
*/
inline void SetAutoRenew(const AutoRenew& value) { m_autoRenewHasBeenSet = true; m_autoRenew = value; }
/**
* <p>If <code>ENABLED</code>, the subscription will be automatically renewed at
* the end of the existing subscription period.</p> <p>When you initally create a
* subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. You can
* change this by submitting an <code>UpdateSubscription</code> request. If the
* <code>UpdateSubscription</code> request does not included a value for
* <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains
* unchanged.</p>
*/
inline void SetAutoRenew(AutoRenew&& value) { m_autoRenewHasBeenSet = true; m_autoRenew = std::move(value); }
/**
* <p>If <code>ENABLED</code>, the subscription will be automatically renewed at
* the end of the existing subscription period.</p> <p>When you initally create a
* subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. You can
* change this by submitting an <code>UpdateSubscription</code> request. If the
* <code>UpdateSubscription</code> request does not included a value for
* <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains
* unchanged.</p>
*/
inline Subscription& WithAutoRenew(const AutoRenew& value) { SetAutoRenew(value); return *this;}
/**
* <p>If <code>ENABLED</code>, the subscription will be automatically renewed at
* the end of the existing subscription period.</p> <p>When you initally create a
* subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. You can
* change this by submitting an <code>UpdateSubscription</code> request. If the
* <code>UpdateSubscription</code> request does not included a value for
* <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains
* unchanged.</p>
*/
inline Subscription& WithAutoRenew(AutoRenew&& value) { SetAutoRenew(std::move(value)); return *this;}
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline const Aws::Vector<Limit>& GetLimits() const{ return m_limits; }
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline bool LimitsHasBeenSet() const { return m_limitsHasBeenSet; }
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline void SetLimits(const Aws::Vector<Limit>& value) { m_limitsHasBeenSet = true; m_limits = value; }
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline void SetLimits(Aws::Vector<Limit>&& value) { m_limitsHasBeenSet = true; m_limits = std::move(value); }
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline Subscription& WithLimits(const Aws::Vector<Limit>& value) { SetLimits(value); return *this;}
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline Subscription& WithLimits(Aws::Vector<Limit>&& value) { SetLimits(std::move(value)); return *this;}
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline Subscription& AddLimits(const Limit& value) { m_limitsHasBeenSet = true; m_limits.push_back(value); return *this; }
/**
* <p>Specifies how many protections of a given type you can create.</p>
*/
inline Subscription& AddLimits(Limit&& value) { m_limitsHasBeenSet = true; m_limits.push_back(std::move(value)); return *this; }
/**
* <p>If <code>ENABLED</code>, the DDoS Response Team (DRT) will use email and
* phone to notify contacts about escalations to the DRT and to initiate proactive
* customer support.</p> <p>If <code>PENDING</code>, you have requested proactive
* engagement and the request is pending. The status changes to
* <code>ENABLED</code> when your request is fully processed.</p> <p>If
* <code>DISABLED</code>, the DRT will not proactively notify contacts about
* escalations or to initiate proactive customer support. </p>
*/
inline const ProactiveEngagementStatus& GetProactiveEngagementStatus() const{ return m_proactiveEngagementStatus; }
/**
* <p>If <code>ENABLED</code>, the DDoS Response Team (DRT) will use email and
* phone to notify contacts about escalations to the DRT and to initiate proactive
* customer support.</p> <p>If <code>PENDING</code>, you have requested proactive
* engagement and the request is pending. The status changes to
* <code>ENABLED</code> when your request is fully processed.</p> <p>If
* <code>DISABLED</code>, the DRT will not proactively notify contacts about
* escalations or to initiate proactive customer support. </p>
*/
inline bool ProactiveEngagementStatusHasBeenSet() const { return m_proactiveEngagementStatusHasBeenSet; }
/**
* <p>If <code>ENABLED</code>, the DDoS Response Team (DRT) will use email and
* phone to notify contacts about escalations to the DRT and to initiate proactive
* customer support.</p> <p>If <code>PENDING</code>, you have requested proactive
* engagement and the request is pending. The status changes to
* <code>ENABLED</code> when your request is fully processed.</p> <p>If
* <code>DISABLED</code>, the DRT will not proactively notify contacts about
* escalations or to initiate proactive customer support. </p>
*/
inline void SetProactiveEngagementStatus(const ProactiveEngagementStatus& value) { m_proactiveEngagementStatusHasBeenSet = true; m_proactiveEngagementStatus = value; }
/**
* <p>If <code>ENABLED</code>, the DDoS Response Team (DRT) will use email and
* phone to notify contacts about escalations to the DRT and to initiate proactive
* customer support.</p> <p>If <code>PENDING</code>, you have requested proactive
* engagement and the request is pending. The status changes to
* <code>ENABLED</code> when your request is fully processed.</p> <p>If
* <code>DISABLED</code>, the DRT will not proactively notify contacts about
* escalations or to initiate proactive customer support. </p>
*/
inline void SetProactiveEngagementStatus(ProactiveEngagementStatus&& value) { m_proactiveEngagementStatusHasBeenSet = true; m_proactiveEngagementStatus = std::move(value); }
/**
* <p>If <code>ENABLED</code>, the DDoS Response Team (DRT) will use email and
* phone to notify contacts about escalations to the DRT and to initiate proactive
* customer support.</p> <p>If <code>PENDING</code>, you have requested proactive
* engagement and the request is pending. The status changes to
* <code>ENABLED</code> when your request is fully processed.</p> <p>If
* <code>DISABLED</code>, the DRT will not proactively notify contacts about
* escalations or to initiate proactive customer support. </p>
*/
inline Subscription& WithProactiveEngagementStatus(const ProactiveEngagementStatus& value) { SetProactiveEngagementStatus(value); return *this;}
/**
* <p>If <code>ENABLED</code>, the DDoS Response Team (DRT) will use email and
* phone to notify contacts about escalations to the DRT and to initiate proactive
* customer support.</p> <p>If <code>PENDING</code>, you have requested proactive
* engagement and the request is pending. The status changes to
* <code>ENABLED</code> when your request is fully processed.</p> <p>If
* <code>DISABLED</code>, the DRT will not proactively notify contacts about
* escalations or to initiate proactive customer support. </p>
*/
inline Subscription& WithProactiveEngagementStatus(ProactiveEngagementStatus&& value) { SetProactiveEngagementStatus(std::move(value)); return *this;}
private:
Aws::Utils::DateTime m_startTime;
bool m_startTimeHasBeenSet;
Aws::Utils::DateTime m_endTime;
bool m_endTimeHasBeenSet;
long long m_timeCommitmentInSeconds;
bool m_timeCommitmentInSecondsHasBeenSet;
AutoRenew m_autoRenew;
bool m_autoRenewHasBeenSet;
Aws::Vector<Limit> m_limits;
bool m_limitsHasBeenSet;
ProactiveEngagementStatus m_proactiveEngagementStatus;
bool m_proactiveEngagementStatusHasBeenSet;
};
} // namespace Model
} // namespace Shield
} // namespace Aws