diff --git a/VERSION b/VERSION index 188f5ebf4cc..c624785cc27 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.199 \ No newline at end of file +1.11.200 \ No newline at end of file diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerClient.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerClient.h index 4326134c851..c0ce520b019 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerClient.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerClient.h @@ -18,11 +18,12 @@ namespace ControlTower /** *

These interfaces allow you to apply the AWS library of pre-defined * controls to your organizational units, programmatically. In AWS Control - * Tower, the terms "control" and "guardrail" are synonyms. .

To call these + * Tower, the terms "control" and "guardrail" are synonyms.

To call these * APIs, you'll need to know:

To get the + * targetIdentifier.

  • the ARN associated with a + * resource that you wish to tag or untag.

  • To get the * controlIdentifier for your AWS Control Tower control:

    *

    The controlIdentifier is an ARN that is specified for each * control. You can view the controlIdentifier in the console on the @@ -35,7 +36,7 @@ namespace ControlTower * quick-reference list of control identifers for the AWS Control Tower legacy * Strongly recommended and Elective controls is given in Resource - * identifiers for APIs and guardrails in the in the Controls * reference guide section of the AWS Control Tower User Guide. Remember * that Mandatory controls cannot be added or removed.

    ARN @@ -170,7 +171,7 @@ namespace ControlTower * contains. The resources created will vary according to the control that you * specify. For usage examples, see - * the AWS Control Tower User Guide

    See Also:

    the AWS Control Tower User Guide .

    See Also:

    AWS * API Reference

    */ @@ -199,7 +200,7 @@ namespace ControlTower * DisableControl operation. Displays a message in case of error. * Details for an operation are available for 90 days. For usage examples, see - * the AWS Control Tower User Guide

    See Also:

    the AWS Control Tower User Guide .

    See Also:

    AWS * API Reference

    */ @@ -224,14 +225,9 @@ namespace ControlTower } /** - *

    Provides details about the enabled control. For usage examples, see Retrieves details about an enabled control. For usage examples, see - * the AWS Control Tower User Guide .

    Returned - * values

    See Also:

    the AWS Control Tower User Guide .

    See Also:

    AWS * API Reference

    */ @@ -259,7 +255,7 @@ namespace ControlTower *

    Lists the controls enabled by AWS Control Tower on the specified * organizational unit and the accounts it contains. For usage examples, see - * the AWS Control Tower User Guide

    See Also:

    the AWS Control Tower User Guide .

    See Also:

    AWS * API Reference

    */ @@ -283,6 +279,88 @@ namespace ControlTower return SubmitAsync(&ControlTowerClient::ListEnabledControls, request, handler, context); } + /** + *

    Returns a list of tags associated with the resource. For usage examples, see + * + * the AWS Control Tower User Guide .

    See Also:

    AWS + * API Reference

    + */ + virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; + + /** + * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const + { + return SubmitCallable(&ControlTowerClient::ListTagsForResource, request); + } + + /** + * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&ControlTowerClient::ListTagsForResource, request, handler, context); + } + + /** + *

    Applies tags to a resource. For usage examples, see + * the AWS Control Tower User Guide .

    See Also:

    AWS + * API Reference

    + */ + virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; + + /** + * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const + { + return SubmitCallable(&ControlTowerClient::TagResource, request); + } + + /** + * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&ControlTowerClient::TagResource, request, handler, context); + } + + /** + *

    Removes tags from a resource. For usage examples, see + * the AWS Control Tower User Guide .

    See Also:

    AWS + * API Reference

    + */ + virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; + + /** + * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const + { + return SubmitCallable(&ControlTowerClient::UntagResource, request); + } + + /** + * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&ControlTowerClient::UntagResource, request, handler, context); + } + void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerServiceClientModel.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerServiceClientModel.h index fe9bf6c4fc4..882d73a05cd 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerServiceClientModel.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/ControlTowerServiceClientModel.h @@ -23,6 +23,9 @@ #include #include #include +#include +#include +#include /* End of service model headers required in ControlTowerClient header */ namespace Aws @@ -68,6 +71,9 @@ namespace Aws class GetControlOperationRequest; class GetEnabledControlRequest; class ListEnabledControlsRequest; + class ListTagsForResourceRequest; + class TagResourceRequest; + class UntagResourceRequest; /* End of service model forward declarations required in ControlTowerClient header */ /* Service model Outcome class definitions */ @@ -76,6 +82,9 @@ namespace Aws typedef Aws::Utils::Outcome GetControlOperationOutcome; typedef Aws::Utils::Outcome GetEnabledControlOutcome; typedef Aws::Utils::Outcome ListEnabledControlsOutcome; + typedef Aws::Utils::Outcome ListTagsForResourceOutcome; + typedef Aws::Utils::Outcome TagResourceOutcome; + typedef Aws::Utils::Outcome UntagResourceOutcome; /* End of service model Outcome class definitions */ /* Service model Outcome callable definitions */ @@ -84,6 +93,9 @@ namespace Aws typedef std::future GetControlOperationOutcomeCallable; typedef std::future GetEnabledControlOutcomeCallable; typedef std::future ListEnabledControlsOutcomeCallable; + typedef std::future ListTagsForResourceOutcomeCallable; + typedef std::future TagResourceOutcomeCallable; + typedef std::future UntagResourceOutcomeCallable; /* End of service model Outcome callable definitions */ } // namespace Model @@ -95,6 +107,9 @@ namespace Aws typedef std::function&) > GetControlOperationResponseReceivedHandler; typedef std::function&) > GetEnabledControlResponseReceivedHandler; typedef std::function&) > ListEnabledControlsResponseReceivedHandler; + typedef std::function&) > ListTagsForResourceResponseReceivedHandler; + typedef std::function&) > TagResourceResponseReceivedHandler; + typedef std::function&) > UntagResourceResponseReceivedHandler; /* End of service model async handlers definitions */ } // namespace ControlTower } // namespace Aws diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlRequest.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlRequest.h index d3793a8aa82..be4db175335 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlRequest.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlRequest.h @@ -7,6 +7,7 @@ #include #include #include +#include #include namespace Aws @@ -105,6 +106,72 @@ namespace Model inline EnableControlRequest& WithControlIdentifier(const char* value) { SetControlIdentifier(value); return *this;} + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline const Aws::Map& GetTags() const{ return m_tags; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& WithTags(const Aws::Map& value) { SetTags(value); return *this;} + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } + + /** + *

    Tags to be applied to the EnabledControl resource.

    + */ + inline EnableControlRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } + + /** *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see m_tags; + bool m_tagsHasBeenSet = false; + Aws::String m_targetIdentifier; bool m_targetIdentifierHasBeenSet = false; }; diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlResult.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlResult.h index 680c8f482bb..109566d5f20 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlResult.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnableControlResult.h @@ -32,6 +32,42 @@ namespace Model AWS_CONTROLTOWER_API EnableControlResult& operator=(const Aws::AmazonWebServiceResult& result); + /** + *

    The ARN of the EnabledControl resource.

    + */ + inline const Aws::String& GetArn() const{ return m_arn; } + + /** + *

    The ARN of the EnabledControl resource.

    + */ + inline void SetArn(const Aws::String& value) { m_arn = value; } + + /** + *

    The ARN of the EnabledControl resource.

    + */ + inline void SetArn(Aws::String&& value) { m_arn = std::move(value); } + + /** + *

    The ARN of the EnabledControl resource.

    + */ + inline void SetArn(const char* value) { m_arn.assign(value); } + + /** + *

    The ARN of the EnabledControl resource.

    + */ + inline EnableControlResult& WithArn(const Aws::String& value) { SetArn(value); return *this;} + + /** + *

    The ARN of the EnabledControl resource.

    + */ + inline EnableControlResult& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + + /** + *

    The ARN of the EnabledControl resource.

    + */ + inline EnableControlResult& WithArn(const char* value) { SetArn(value); return *this;} + + /** *

    The ID of the asynchronous operation, which is used to track status. The * operation is available for 90 days.

    @@ -98,6 +134,8 @@ namespace Model private: + Aws::String m_arn; + Aws::String m_operationIdentifier; Aws::String m_requestId; diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlDetails.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlDetails.h index 25e7f6861dc..7e00d87bd5c 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlDetails.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlDetails.h @@ -28,7 +28,7 @@ namespace Model { /** - *

    Information about the enabled control.

    See Also:

    Information about the enabled control.

    See Also:

    AWS * API Reference

    */ @@ -42,275 +42,275 @@ namespace Model /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline const Aws::String& GetArn() const{ return m_arn; } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline EnabledControlDetails& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline EnabledControlDetails& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline EnabledControlDetails& WithArn(const char* value) { SetArn(value); return *this;} /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline const Aws::String& GetControlIdentifier() const{ return m_controlIdentifier; } /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline bool ControlIdentifierHasBeenSet() const { return m_controlIdentifierHasBeenSet; } /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline void SetControlIdentifier(const Aws::String& value) { m_controlIdentifierHasBeenSet = true; m_controlIdentifier = value; } /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline void SetControlIdentifier(Aws::String&& value) { m_controlIdentifierHasBeenSet = true; m_controlIdentifier = std::move(value); } /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline void SetControlIdentifier(const char* value) { m_controlIdentifierHasBeenSet = true; m_controlIdentifier.assign(value); } /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline EnabledControlDetails& WithControlIdentifier(const Aws::String& value) { SetControlIdentifier(value); return *this;} /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline EnabledControlDetails& WithControlIdentifier(Aws::String&& value) { SetControlIdentifier(std::move(value)); return *this;} /** - *

    The control identifier of the enabled control. For information on how to - * find the controlIdentifier, see The control identifier of the enabled control. For information on how to find + * the controlIdentifier, see the - * overview page.

    + * overview page.

    */ inline EnabledControlDetails& WithControlIdentifier(const char* value) { SetControlIdentifier(value); return *this;} /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline const DriftStatusSummary& GetDriftStatusSummary() const{ return m_driftStatusSummary; } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline bool DriftStatusSummaryHasBeenSet() const { return m_driftStatusSummaryHasBeenSet; } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline void SetDriftStatusSummary(const DriftStatusSummary& value) { m_driftStatusSummaryHasBeenSet = true; m_driftStatusSummary = value; } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline void SetDriftStatusSummary(DriftStatusSummary&& value) { m_driftStatusSummaryHasBeenSet = true; m_driftStatusSummary = std::move(value); } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline EnabledControlDetails& WithDriftStatusSummary(const DriftStatusSummary& value) { SetDriftStatusSummary(value); return *this;} /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline EnabledControlDetails& WithDriftStatusSummary(DriftStatusSummary&& value) { SetDriftStatusSummary(std::move(value)); return *this;} /** - *

    The deployment summary of the enabled control.

    + *

    The deployment summary of the enabled control.

    */ inline const EnablementStatusSummary& GetStatusSummary() const{ return m_statusSummary; } /** - *

    The deployment summary of the enabled control.

    + *

    The deployment summary of the enabled control.

    */ inline bool StatusSummaryHasBeenSet() const { return m_statusSummaryHasBeenSet; } /** - *

    The deployment summary of the enabled control.

    + *

    The deployment summary of the enabled control.

    */ inline void SetStatusSummary(const EnablementStatusSummary& value) { m_statusSummaryHasBeenSet = true; m_statusSummary = value; } /** - *

    The deployment summary of the enabled control.

    + *

    The deployment summary of the enabled control.

    */ inline void SetStatusSummary(EnablementStatusSummary&& value) { m_statusSummaryHasBeenSet = true; m_statusSummary = std::move(value); } /** - *

    The deployment summary of the enabled control.

    + *

    The deployment summary of the enabled control.

    */ inline EnabledControlDetails& WithStatusSummary(const EnablementStatusSummary& value) { SetStatusSummary(value); return *this;} /** - *

    The deployment summary of the enabled control.

    + *

    The deployment summary of the enabled control.

    */ inline EnabledControlDetails& WithStatusSummary(EnablementStatusSummary&& value) { SetStatusSummary(std::move(value)); return *this;} /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline const Aws::String& GetTargetIdentifier() const{ return m_targetIdentifier; } /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline bool TargetIdentifierHasBeenSet() const { return m_targetIdentifierHasBeenSet; } /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline void SetTargetIdentifier(const Aws::String& value) { m_targetIdentifierHasBeenSet = true; m_targetIdentifier = value; } /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline void SetTargetIdentifier(Aws::String&& value) { m_targetIdentifierHasBeenSet = true; m_targetIdentifier = std::move(value); } /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline void SetTargetIdentifier(const char* value) { m_targetIdentifierHasBeenSet = true; m_targetIdentifier.assign(value); } /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline EnabledControlDetails& WithTargetIdentifier(const Aws::String& value) { SetTargetIdentifier(value); return *this;} /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline EnabledControlDetails& WithTargetIdentifier(Aws::String&& value) { SetTargetIdentifier(std::move(value)); return *this;} /** - *

    The ARN of the organizational unit. For information on how to find the + *

    The ARN of the organizational unit. For information on how to find the * targetIdentifier, see the - * overview page.

    + * overview page.

    */ inline EnabledControlDetails& WithTargetIdentifier(const char* value) { SetTargetIdentifier(value); return *this;} /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline const Aws::Vector& GetTargetRegions() const{ return m_targetRegions; } /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline bool TargetRegionsHasBeenSet() const { return m_targetRegionsHasBeenSet; } /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline void SetTargetRegions(const Aws::Vector& value) { m_targetRegionsHasBeenSet = true; m_targetRegions = value; } /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline void SetTargetRegions(Aws::Vector&& value) { m_targetRegionsHasBeenSet = true; m_targetRegions = std::move(value); } /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline EnabledControlDetails& WithTargetRegions(const Aws::Vector& value) { SetTargetRegions(value); return *this;} /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline EnabledControlDetails& WithTargetRegions(Aws::Vector&& value) { SetTargetRegions(std::move(value)); return *this;} /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline EnabledControlDetails& AddTargetRegions(const Region& value) { m_targetRegionsHasBeenSet = true; m_targetRegions.push_back(value); return *this; } /** - *

    Target AWS Regions for the enabled control.

    + *

    Target AWS Regions for the enabled control.

    */ inline EnabledControlDetails& AddTargetRegions(Region&& value) { m_targetRegionsHasBeenSet = true; m_targetRegions.push_back(std::move(value)); return *this; } diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlSummary.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlSummary.h index c2af9bdbaf8..50a9f373d4b 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlSummary.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnabledControlSummary.h @@ -26,7 +26,8 @@ namespace Model { /** - *

    A summary of enabled controls.

    See Also:

    Returns a summary of information about an enabled control.

    See + * Also:

    AWS * API Reference

    */ @@ -40,177 +41,145 @@ namespace Model /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline const Aws::String& GetArn() const{ return m_arn; } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline EnabledControlSummary& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline EnabledControlSummary& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** - *

    The ARN of the enabled control.

    + *

    The ARN of the enabled control.

    */ inline EnabledControlSummary& WithArn(const char* value) { SetArn(value); return *this;} /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline const Aws::String& GetControlIdentifier() const{ return m_controlIdentifier; } /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline bool ControlIdentifierHasBeenSet() const { return m_controlIdentifierHasBeenSet; } /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline void SetControlIdentifier(const Aws::String& value) { m_controlIdentifierHasBeenSet = true; m_controlIdentifier = value; } /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline void SetControlIdentifier(Aws::String&& value) { m_controlIdentifierHasBeenSet = true; m_controlIdentifier = std::move(value); } /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline void SetControlIdentifier(const char* value) { m_controlIdentifierHasBeenSet = true; m_controlIdentifier.assign(value); } /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline EnabledControlSummary& WithControlIdentifier(const Aws::String& value) { SetControlIdentifier(value); return *this;} /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline EnabledControlSummary& WithControlIdentifier(Aws::String&& value) { SetControlIdentifier(std::move(value)); return *this;} /** - *

    The ARN of the control. Only Strongly recommended and Elective - * controls are permitted, with the exception of the Region deny control. - * For information on how to find the controlIdentifier, see the - * overview page.

    + *

    The controlIdentifier of the enabled control.

    */ inline EnabledControlSummary& WithControlIdentifier(const char* value) { SetControlIdentifier(value); return *this;} /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline const DriftStatusSummary& GetDriftStatusSummary() const{ return m_driftStatusSummary; } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline bool DriftStatusSummaryHasBeenSet() const { return m_driftStatusSummaryHasBeenSet; } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline void SetDriftStatusSummary(const DriftStatusSummary& value) { m_driftStatusSummaryHasBeenSet = true; m_driftStatusSummary = value; } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline void SetDriftStatusSummary(DriftStatusSummary&& value) { m_driftStatusSummaryHasBeenSet = true; m_driftStatusSummary = std::move(value); } /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline EnabledControlSummary& WithDriftStatusSummary(const DriftStatusSummary& value) { SetDriftStatusSummary(value); return *this;} /** - *

    The drift status of the enabled control.

    + *

    The drift status of the enabled control.

    */ inline EnabledControlSummary& WithDriftStatusSummary(DriftStatusSummary&& value) { SetDriftStatusSummary(std::move(value)); return *this;} /** - * + *

    A short description of the status of the enabled control.

    */ inline const EnablementStatusSummary& GetStatusSummary() const{ return m_statusSummary; } /** - * + *

    A short description of the status of the enabled control.

    */ inline bool StatusSummaryHasBeenSet() const { return m_statusSummaryHasBeenSet; } /** - * + *

    A short description of the status of the enabled control.

    */ inline void SetStatusSummary(const EnablementStatusSummary& value) { m_statusSummaryHasBeenSet = true; m_statusSummary = value; } /** - * + *

    A short description of the status of the enabled control.

    */ inline void SetStatusSummary(EnablementStatusSummary&& value) { m_statusSummaryHasBeenSet = true; m_statusSummary = std::move(value); } /** - * + *

    A short description of the status of the enabled control.

    */ inline EnabledControlSummary& WithStatusSummary(const EnablementStatusSummary& value) { SetStatusSummary(value); return *this;} /** - * + *

    A short description of the status of the enabled control.

    */ inline EnabledControlSummary& WithStatusSummary(EnablementStatusSummary&& value) { SetStatusSummary(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnablementStatusSummary.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnablementStatusSummary.h index 1fb3acda4a3..982a96eee26 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnablementStatusSummary.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/EnablementStatusSummary.h @@ -25,8 +25,7 @@ namespace Model { /** - *

    The deployment summary of the enabled control.

    See Also:

    - * The deployment summary of the enabled control.

    See Also:

    AWS * API Reference

    */ @@ -40,42 +39,42 @@ namespace Model /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline const Aws::String& GetLastOperationIdentifier() const{ return m_lastOperationIdentifier; } /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline bool LastOperationIdentifierHasBeenSet() const { return m_lastOperationIdentifierHasBeenSet; } /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline void SetLastOperationIdentifier(const Aws::String& value) { m_lastOperationIdentifierHasBeenSet = true; m_lastOperationIdentifier = value; } /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline void SetLastOperationIdentifier(Aws::String&& value) { m_lastOperationIdentifierHasBeenSet = true; m_lastOperationIdentifier = std::move(value); } /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline void SetLastOperationIdentifier(const char* value) { m_lastOperationIdentifierHasBeenSet = true; m_lastOperationIdentifier.assign(value); } /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline EnablementStatusSummary& WithLastOperationIdentifier(const Aws::String& value) { SetLastOperationIdentifier(value); return *this;} /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline EnablementStatusSummary& WithLastOperationIdentifier(Aws::String&& value) { SetLastOperationIdentifier(std::move(value)); return *this;} /** - *

    The last operation identifier for the enabled control.

    + *

    The last operation identifier for the enabled control.

    */ inline EnablementStatusSummary& WithLastOperationIdentifier(const char* value) { SetLastOperationIdentifier(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlRequest.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlRequest.h index 84c08c0fba9..57da958bd99 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlRequest.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlRequest.h @@ -33,42 +33,42 @@ namespace Model /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline const Aws::String& GetEnabledControlIdentifier() const{ return m_enabledControlIdentifier; } /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline bool EnabledControlIdentifierHasBeenSet() const { return m_enabledControlIdentifierHasBeenSet; } /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline void SetEnabledControlIdentifier(const Aws::String& value) { m_enabledControlIdentifierHasBeenSet = true; m_enabledControlIdentifier = value; } /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline void SetEnabledControlIdentifier(Aws::String&& value) { m_enabledControlIdentifierHasBeenSet = true; m_enabledControlIdentifier = std::move(value); } /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline void SetEnabledControlIdentifier(const char* value) { m_enabledControlIdentifierHasBeenSet = true; m_enabledControlIdentifier.assign(value); } /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline GetEnabledControlRequest& WithEnabledControlIdentifier(const Aws::String& value) { SetEnabledControlIdentifier(value); return *this;} /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline GetEnabledControlRequest& WithEnabledControlIdentifier(Aws::String&& value) { SetEnabledControlIdentifier(std::move(value)); return *this;} /** - *

    The ARN of the enabled control.

    + *

    The controlIdentifier of the enabled control.

    */ inline GetEnabledControlRequest& WithEnabledControlIdentifier(const char* value) { SetEnabledControlIdentifier(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlResult.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlResult.h index 7e196f5129d..d6416a6b090 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlResult.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/GetEnabledControlResult.h @@ -34,27 +34,27 @@ namespace Model /** - *

    Information about the enabled control.

    + *

    Information about the enabled control.

    */ inline const EnabledControlDetails& GetEnabledControlDetails() const{ return m_enabledControlDetails; } /** - *

    Information about the enabled control.

    + *

    Information about the enabled control.

    */ inline void SetEnabledControlDetails(const EnabledControlDetails& value) { m_enabledControlDetails = value; } /** - *

    Information about the enabled control.

    + *

    Information about the enabled control.

    */ inline void SetEnabledControlDetails(EnabledControlDetails&& value) { m_enabledControlDetails = std::move(value); } /** - *

    Information about the enabled control.

    + *

    Information about the enabled control.

    */ inline GetEnabledControlResult& WithEnabledControlDetails(const EnabledControlDetails& value) { SetEnabledControlDetails(value); return *this;} /** - *

    Information about the enabled control.

    + *

    Information about the enabled control.

    */ inline GetEnabledControlResult& WithEnabledControlDetails(EnabledControlDetails&& value) { SetEnabledControlDetails(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/ListTagsForResourceRequest.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/ListTagsForResourceRequest.h new file mode 100644 index 00000000000..a5869743523 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/ListTagsForResourceRequest.h @@ -0,0 +1,83 @@ +/** + * 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 ControlTower +{ +namespace Model +{ + + /** + */ + class ListTagsForResourceRequest : public ControlTowerRequest + { + public: + AWS_CONTROLTOWER_API ListTagsForResourceRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "ListTagsForResource"; } + + AWS_CONTROLTOWER_API Aws::String SerializePayload() const override; + + + /** + *

    The ARN of the resource.

    + */ + inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } + + /** + *

    The ARN of the resource.

    + */ + inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } + + /** + *

    The ARN of the resource.

    + */ + inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; } + + /** + *

    The ARN of the resource.

    + */ + inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); } + + /** + *

    The ARN of the resource.

    + */ + inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); } + + /** + *

    The ARN of the resource.

    + */ + inline ListTagsForResourceRequest& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;} + + /** + *

    The ARN of the resource.

    + */ + inline ListTagsForResourceRequest& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;} + + /** + *

    The ARN of the resource.

    + */ + inline ListTagsForResourceRequest& WithResourceArn(const char* value) { SetResourceArn(value); return *this;} + + private: + + Aws::String m_resourceArn; + bool m_resourceArnHasBeenSet = false; + }; + +} // namespace Model +} // namespace ControlTower +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/ListTagsForResourceResult.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/ListTagsForResourceResult.h new file mode 100644 index 00000000000..17a00198807 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/ListTagsForResourceResult.h @@ -0,0 +1,127 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ControlTower +{ +namespace Model +{ + class ListTagsForResourceResult + { + public: + AWS_CONTROLTOWER_API ListTagsForResourceResult(); + AWS_CONTROLTOWER_API ListTagsForResourceResult(const Aws::AmazonWebServiceResult& result); + AWS_CONTROLTOWER_API ListTagsForResourceResult& operator=(const Aws::AmazonWebServiceResult& result); + + + /** + *

    A list of tags, as key:value strings.

    + */ + inline const Aws::Map& GetTags() const{ return m_tags; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline void SetTags(const Aws::Map& value) { m_tags = value; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline void SetTags(Aws::Map&& value) { m_tags = std::move(value); } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& WithTags(const Aws::Map& value) { SetTags(value); return *this;} + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& AddTags(const Aws::String& key, const Aws::String& value) { m_tags.emplace(key, value); return *this; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& AddTags(Aws::String&& key, const Aws::String& value) { m_tags.emplace(std::move(key), value); return *this; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& AddTags(const Aws::String& key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& AddTags(Aws::String&& key, Aws::String&& value) { m_tags.emplace(std::move(key), std::move(value)); return *this; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& AddTags(const char* key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& AddTags(Aws::String&& key, const char* value) { m_tags.emplace(std::move(key), value); return *this; } + + /** + *

    A list of tags, as key:value strings.

    + */ + inline ListTagsForResourceResult& 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 ListTagsForResourceResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + + + inline ListTagsForResourceResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + + + inline ListTagsForResourceResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + + private: + + Aws::Map m_tags; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ControlTower +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/Region.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/Region.h index 5d57acdf480..fede02803a2 100644 --- a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/Region.h +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/Region.h @@ -43,42 +43,42 @@ namespace Model /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline const Aws::String& GetName() const{ return m_name; } /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline Region& WithName(const Aws::String& value) { SetName(value); return *this;} /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline Region& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** - *

    The AWS Region name.

    + *

    The AWS Region name.

    */ inline Region& WithName(const char* value) { SetName(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/TagResourceRequest.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/TagResourceRequest.h new file mode 100644 index 00000000000..89656e64cee --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/TagResourceRequest.h @@ -0,0 +1,153 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace ControlTower +{ +namespace Model +{ + + /** + */ + class TagResourceRequest : public ControlTowerRequest + { + public: + AWS_CONTROLTOWER_API TagResourceRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "TagResource"; } + + AWS_CONTROLTOWER_API Aws::String SerializePayload() const override; + + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; } + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); } + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); } + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline TagResourceRequest& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;} + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline TagResourceRequest& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;} + + /** + *

    The ARN of the resource to be tagged.

    + */ + inline TagResourceRequest& WithResourceArn(const char* value) { SetResourceArn(value); return *this;} + + + /** + *

    Tags to be applied to the resource.

    + */ + inline const Aws::Map& GetTags() const{ return m_tags; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& WithTags(const Aws::Map& value) { SetTags(value); return *this;} + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } + + /** + *

    Tags to be applied to the resource.

    + */ + inline TagResourceRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } + + private: + + Aws::String m_resourceArn; + bool m_resourceArnHasBeenSet = false; + + Aws::Map m_tags; + bool m_tagsHasBeenSet = false; + }; + +} // namespace Model +} // namespace ControlTower +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/TagResourceResult.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/TagResourceResult.h new file mode 100644 index 00000000000..f1aa14547b5 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/TagResourceResult.h @@ -0,0 +1,63 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ControlTower +{ +namespace Model +{ + class TagResourceResult + { + public: + AWS_CONTROLTOWER_API TagResourceResult(); + AWS_CONTROLTOWER_API TagResourceResult(const Aws::AmazonWebServiceResult& result); + AWS_CONTROLTOWER_API TagResourceResult& operator=(const Aws::AmazonWebServiceResult& result); + + + + 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 TagResourceResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + + + inline TagResourceResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + + + inline TagResourceResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + + private: + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ControlTower +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/UntagResourceRequest.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/UntagResourceRequest.h new file mode 100644 index 00000000000..7610221d30b --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/UntagResourceRequest.h @@ -0,0 +1,139 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace Http +{ + class URI; +} //namespace Http +namespace ControlTower +{ +namespace Model +{ + + /** + */ + class UntagResourceRequest : public ControlTowerRequest + { + public: + AWS_CONTROLTOWER_API UntagResourceRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "UntagResource"; } + + AWS_CONTROLTOWER_API Aws::String SerializePayload() const override; + + AWS_CONTROLTOWER_API void AddQueryStringParameters(Aws::Http::URI& uri) const override; + + + /** + *

    The ARN of the resource.

    + */ + inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } + + /** + *

    The ARN of the resource.

    + */ + inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } + + /** + *

    The ARN of the resource.

    + */ + inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; } + + /** + *

    The ARN of the resource.

    + */ + inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); } + + /** + *

    The ARN of the resource.

    + */ + inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); } + + /** + *

    The ARN of the resource.

    + */ + inline UntagResourceRequest& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;} + + /** + *

    The ARN of the resource.

    + */ + inline UntagResourceRequest& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;} + + /** + *

    The ARN of the resource.

    + */ + inline UntagResourceRequest& WithResourceArn(const char* value) { SetResourceArn(value); return *this;} + + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline const Aws::Vector& GetTagKeys() const{ return m_tagKeys; } + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline bool TagKeysHasBeenSet() const { return m_tagKeysHasBeenSet; } + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline void SetTagKeys(const Aws::Vector& value) { m_tagKeysHasBeenSet = true; m_tagKeys = value; } + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline void SetTagKeys(Aws::Vector&& value) { m_tagKeysHasBeenSet = true; m_tagKeys = std::move(value); } + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline UntagResourceRequest& WithTagKeys(const Aws::Vector& value) { SetTagKeys(value); return *this;} + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline UntagResourceRequest& WithTagKeys(Aws::Vector&& value) { SetTagKeys(std::move(value)); return *this;} + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline UntagResourceRequest& AddTagKeys(const Aws::String& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; } + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline UntagResourceRequest& AddTagKeys(Aws::String&& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(std::move(value)); return *this; } + + /** + *

    Tag keys to be removed from the resource.

    + */ + inline UntagResourceRequest& AddTagKeys(const char* value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; } + + private: + + Aws::String m_resourceArn; + bool m_resourceArnHasBeenSet = false; + + Aws::Vector m_tagKeys; + bool m_tagKeysHasBeenSet = false; + }; + +} // namespace Model +} // namespace ControlTower +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/UntagResourceResult.h b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/UntagResourceResult.h new file mode 100644 index 00000000000..1f0528378a8 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/include/aws/controltower/model/UntagResourceResult.h @@ -0,0 +1,63 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ControlTower +{ +namespace Model +{ + class UntagResourceResult + { + public: + AWS_CONTROLTOWER_API UntagResourceResult(); + AWS_CONTROLTOWER_API UntagResourceResult(const Aws::AmazonWebServiceResult& result); + AWS_CONTROLTOWER_API UntagResourceResult& operator=(const Aws::AmazonWebServiceResult& result); + + + + 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 UntagResourceResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + + + inline UntagResourceResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + + + inline UntagResourceResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + + private: + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ControlTower +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-controltower/source/ControlTowerClient.cpp b/generated/src/aws-cpp-sdk-controltower/source/ControlTowerClient.cpp index 5714fdd541b..449f63adb48 100644 --- a/generated/src/aws-cpp-sdk-controltower/source/ControlTowerClient.cpp +++ b/generated/src/aws-cpp-sdk-controltower/source/ControlTowerClient.cpp @@ -26,6 +26,9 @@ #include #include #include +#include +#include +#include #include @@ -294,3 +297,107 @@ ListEnabledControlsOutcome ControlTowerClient::ListEnabledControls(const ListEna {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); } +ListTagsForResourceOutcome ControlTowerClient::ListTagsForResource(const ListTagsForResourceRequest& request) const +{ + AWS_OPERATION_GUARD(ListTagsForResource); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListTagsForResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + if (!request.ResourceArnHasBeenSet()) + { + AWS_LOGSTREAM_ERROR("ListTagsForResource", "Required field: ResourceArn, is not set"); + return ListTagsForResourceOutcome(Aws::Client::AWSError(ControlTowerErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false)); + } + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, ListTagsForResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, ListTagsForResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".ListTagsForResource", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> ListTagsForResourceOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListTagsForResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/tags/"); + endpointResolutionOutcome.GetResult().AddPathSegment(request.GetResourceArn()); + return ListTagsForResourceOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +TagResourceOutcome ControlTowerClient::TagResource(const TagResourceRequest& request) const +{ + AWS_OPERATION_GUARD(TagResource); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, TagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + if (!request.ResourceArnHasBeenSet()) + { + AWS_LOGSTREAM_ERROR("TagResource", "Required field: ResourceArn, is not set"); + return TagResourceOutcome(Aws::Client::AWSError(ControlTowerErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false)); + } + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, TagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, TagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".TagResource", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> TagResourceOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, TagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/tags/"); + endpointResolutionOutcome.GetResult().AddPathSegment(request.GetResourceArn()); + return TagResourceOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +UntagResourceOutcome ControlTowerClient::UntagResource(const UntagResourceRequest& request) const +{ + AWS_OPERATION_GUARD(UntagResource); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, UntagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + if (!request.ResourceArnHasBeenSet()) + { + AWS_LOGSTREAM_ERROR("UntagResource", "Required field: ResourceArn, is not set"); + return UntagResourceOutcome(Aws::Client::AWSError(ControlTowerErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false)); + } + if (!request.TagKeysHasBeenSet()) + { + AWS_LOGSTREAM_ERROR("UntagResource", "Required field: TagKeys, is not set"); + return UntagResourceOutcome(Aws::Client::AWSError(ControlTowerErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [TagKeys]", false)); + } + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, UntagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, UntagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".UntagResource", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> UntagResourceOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, UntagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/tags/"); + endpointResolutionOutcome.GetResult().AddPathSegment(request.GetResourceArn()); + return UntagResourceOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + diff --git a/generated/src/aws-cpp-sdk-controltower/source/ControlTowerEndpointRules.cpp b/generated/src/aws-cpp-sdk-controltower/source/ControlTowerEndpointRules.cpp index f48ed8a979d..d8ed37c8419 100644 --- a/generated/src/aws-cpp-sdk-controltower/source/ControlTowerEndpointRules.cpp +++ b/generated/src/aws-cpp-sdk-controltower/source/ControlTowerEndpointRules.cpp @@ -51,107 +51,107 @@ static constexpr RulesBlobT RulesBlob = {{ ',','"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}','}',',','"','r','u','l','e','s', '"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', 'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n', -'d','p','o','i','n','t','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"', -',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', -'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r', -'u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o', -'n','f','i','g','u','r','a','t','i','o','n',':',' ','F','I','P','S',' ','a','n','d',' ','c','u','s', -'t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p', -'o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', -'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', -'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', -'e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a', -'t','i','o','n',':',' ','D','u','a','l','s','t','a','c','k',' ','a','n','d',' ','c','u','s','t','o', -'m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r', -'t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o', -'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', -'"','u','r','l','"',':','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',',', -'"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', -':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}', -',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', -'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', -'o','n','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', -'"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':', -'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g', -'n','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t', -'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'d','p','o','i','n','t','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', 'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n', 'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U', -'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o', -'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e', -'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}', -']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[', -'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', -'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',', -'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', -'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', -'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',',','{','"','f','n','"',':', -'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t', -'r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v', -'"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l', -'t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}', -']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"', -':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o', -'i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','c','o','n','t', -'r','o','l','t','o','w','e','r','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P', -'a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D', -'n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', -'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', -'n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"', -':','[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a', -'l','S','t','a','c','k',' ','a','r','e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t', -'h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u', -'p','p','o','r','t',' ','o','n','e',' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"', -':','"','e','r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"', -':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"', -'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',', -'t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', -'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':', -'[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s', -'u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',']', -',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{', -'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t', -'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','c','o','n','t','r','o','l', -'t','o','w','e','r','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t', -'i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"', -'p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':', -'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',', -'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':', -'"','F','I','P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s', -' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o', -'r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']', -'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b', -'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r', -'e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']', -'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':', -'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o', -'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e', -',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[', -'{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}', -',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}',']','}',']', -',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{', -'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t', -'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','c','o','n','t','r','o','l', -'t','o','w','e','r','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n', -'R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x', -'}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e', -'r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"', -'}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r', -'o','r','"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s',' ','e','n','a','b','l','e','d', -' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ', -'n','o','t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S','t','a','c','k','"',',','"','t', -'y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i', -'o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"', -':','"','h','t','t','p','s',':','/','/','c','o','n','t','r','o','l','t','o','w','e','r','.','{','R', -'e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d', -'n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', +'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':', +'"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','F', +'I','P','S',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a', +'r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', +'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"', +'}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i', +'d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','D','u','a','l','s','t','a','c', +'k',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e', +' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e', +'r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', +'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','{','"','r','e','f','"',':','"', +'E','n','d','p','o','i','n','t','"','}',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', '}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', -'n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n', +'n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}', +',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', +'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', +'o','n','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t', +'i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i', +'o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o', +'n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','"','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u', +'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F', +'I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e', +'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', +'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', +'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"', +'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v', +'"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"', +'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']', +'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"', +'a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t', +'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l', +'S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', +'"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','c','o','n','t','r','o','l','t','o','w', +'e','r','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i', +'o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f', +'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a', +'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n', +'t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n', +'d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S', +' ','a','n','d',' ','D','u','a','l','S','t','a','c','k',' ','a','r','e',' ','e','n','a','b','l','e', +'d',',',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e', +'s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','o','n','e',' ','o','r',' ','b','o','t','h', +'"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"', +':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', +'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u', +'e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n', +'s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"', +',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',', +'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n', +'R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}', +',','t','r','u','e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r', +'l','"',':','"','h','t','t','p','s',':','/','/','c','o','n','t','r','o','l','t','o','w','e','r','-', +'f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r', +'t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t', +'y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':', +'"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',', +'"','e','r','r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ', +'b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n', +'o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"', +'e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{', +'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l', +'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"', +':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',', +'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', +'v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',', +'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n', +'R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a', +'c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r', +'l','"',':','"','h','t','t','p','s',':','/','/','c','o','n','t','r','o','l','t','o','w','e','r','.', +'{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t', +'#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r', +'o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}', +'}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y', +'p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"', +':','[',']',',','"','e','r','r','o','r','"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s', +' ','e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i', +'o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S', +'t','a','c','k','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t', +'y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s', +'"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h', +'t','t','p','s',':','/','/','c','o','n','t','r','o','l','t','o','w','e','r','.','{','R','e','g','i', +'o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S', +'u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"', +'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p', +'o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',']',',','"', +'t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n', 's','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o', 'n','f','i','g','u','r','a','t','i','o','n',':',' ','M','i','s','s','i','n','g',' ','R','e','g','i', 'o','n','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}','\0' diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlRequest.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlRequest.cpp index bc018c77b5d..3ec902a3d8f 100644 --- a/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlRequest.cpp +++ b/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlRequest.cpp @@ -14,6 +14,7 @@ using namespace Aws::Utils; EnableControlRequest::EnableControlRequest() : m_controlIdentifierHasBeenSet(false), + m_tagsHasBeenSet(false), m_targetIdentifierHasBeenSet(false) { } @@ -28,6 +29,17 @@ Aws::String EnableControlRequest::SerializePayload() const } + if(m_tagsHasBeenSet) + { + JsonValue tagsJsonMap; + for(auto& tagsItem : m_tags) + { + tagsJsonMap.WithString(tagsItem.first, tagsItem.second); + } + payload.WithObject("tags", std::move(tagsJsonMap)); + + } + if(m_targetIdentifierHasBeenSet) { payload.WithString("targetIdentifier", m_targetIdentifier); diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlResult.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlResult.cpp index f0c42b40841..d705156be65 100644 --- a/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlResult.cpp +++ b/generated/src/aws-cpp-sdk-controltower/source/model/EnableControlResult.cpp @@ -29,6 +29,12 @@ EnableControlResult::EnableControlResult(const Aws::AmazonWebServiceResult& result) { JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("arn")) + { + m_arn = jsonValue.GetString("arn"); + + } + if(jsonValue.ValueExists("operationIdentifier")) { m_operationIdentifier = jsonValue.GetString("operationIdentifier"); diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/ListTagsForResourceRequest.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/ListTagsForResourceRequest.cpp new file mode 100644 index 00000000000..0ede6e5a1b9 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/source/model/ListTagsForResourceRequest.cpp @@ -0,0 +1,27 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ControlTower::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +ListTagsForResourceRequest::ListTagsForResourceRequest() : + m_resourceArnHasBeenSet(false) +{ +} + +Aws::String ListTagsForResourceRequest::SerializePayload() const +{ + return {}; +} + + + + diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/ListTagsForResourceResult.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/ListTagsForResourceResult.cpp new file mode 100644 index 00000000000..52fa477756c --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/source/model/ListTagsForResourceResult.cpp @@ -0,0 +1,51 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ControlTower::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +ListTagsForResourceResult::ListTagsForResourceResult() +{ +} + +ListTagsForResourceResult::ListTagsForResourceResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +ListTagsForResourceResult& ListTagsForResourceResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("tags")) + { + Aws::Map tagsJsonMap = jsonValue.GetObject("tags").GetAllObjects(); + for(auto& tagsItem : tagsJsonMap) + { + m_tags[tagsItem.first] = tagsItem.second.AsString(); + } + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/TagResourceRequest.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/TagResourceRequest.cpp new file mode 100644 index 00000000000..61597e56429 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/source/model/TagResourceRequest.cpp @@ -0,0 +1,41 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ControlTower::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +TagResourceRequest::TagResourceRequest() : + m_resourceArnHasBeenSet(false), + m_tagsHasBeenSet(false) +{ +} + +Aws::String TagResourceRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_tagsHasBeenSet) + { + JsonValue tagsJsonMap; + for(auto& tagsItem : m_tags) + { + tagsJsonMap.WithString(tagsItem.first, tagsItem.second); + } + payload.WithObject("tags", std::move(tagsJsonMap)); + + } + + return payload.View().WriteReadable(); +} + + + + diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/TagResourceResult.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/TagResourceResult.cpp new file mode 100644 index 00000000000..6ba03eecd05 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/source/model/TagResourceResult.cpp @@ -0,0 +1,42 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ControlTower::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +TagResourceResult::TagResourceResult() +{ +} + +TagResourceResult::TagResourceResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +TagResourceResult& TagResourceResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + AWS_UNREFERENCED_PARAM(result); + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/UntagResourceRequest.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/UntagResourceRequest.cpp new file mode 100644 index 00000000000..2854d411c32 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/source/model/UntagResourceRequest.cpp @@ -0,0 +1,45 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +#include + +using namespace Aws::ControlTower::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws::Http; + +UntagResourceRequest::UntagResourceRequest() : + m_resourceArnHasBeenSet(false), + m_tagKeysHasBeenSet(false) +{ +} + +Aws::String UntagResourceRequest::SerializePayload() const +{ + return {}; +} + +void UntagResourceRequest::AddQueryStringParameters(URI& uri) const +{ + Aws::StringStream ss; + if(m_tagKeysHasBeenSet) + { + for(const auto& item : m_tagKeys) + { + ss << item; + uri.AddQueryStringParameter("tagKeys", ss.str()); + ss.str(""); + } + } + +} + + + diff --git a/generated/src/aws-cpp-sdk-controltower/source/model/UntagResourceResult.cpp b/generated/src/aws-cpp-sdk-controltower/source/model/UntagResourceResult.cpp new file mode 100644 index 00000000000..dec19fa9852 --- /dev/null +++ b/generated/src/aws-cpp-sdk-controltower/source/model/UntagResourceResult.cpp @@ -0,0 +1,42 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ControlTower::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +UntagResourceResult::UntagResourceResult() +{ +} + +UntagResourceResult::UntagResourceResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +UntagResourceResult& UntagResourceResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + AWS_UNREFERENCED_PARAM(result); + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceClient.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceClient.h index 4800e31c77f..e292be02b35 100644 --- a/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceClient.h +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceClient.h @@ -16,14 +16,16 @@ namespace Aws namespace CostandUsageReportService { /** - *

    The AWS Cost and Usage Report API enables you to programmatically create, - * query, and delete AWS Cost and Usage report definitions.

    AWS Cost and - * Usage reports track the monthly AWS costs and usage associated with your AWS - * account. The report contains line items for each unique combination of AWS - * product, usage type, and operation that your AWS account uses. You can configure - * the AWS Cost and Usage report to show only the data that you want, using the AWS - * Cost and Usage API.

    Service Endpoint

    The AWS Cost and Usage Report - * API provides the following endpoint:

    • + *

      You can use the Amazon Web Services Cost and Usage Report API to + * programmatically create, query, and delete Amazon Web Services Cost and Usage + * Report definitions.

      Amazon Web Services Cost and Usage Report track the + * monthly Amazon Web Services costs and usage associated with your Amazon Web + * Services account. The report contains line items for each unique combination of + * Amazon Web Services product, usage type, and operation that your Amazon Web + * Services account uses. You can configure the Amazon Web Services Cost and Usage + * Report to show only the data that you want, using the Amazon Web Services Cost + * and Usage Report API.

      Service Endpoint

      The Amazon Web Services + * Cost and Usage Report API provides the following endpoint:

      • *

        cur.us-east-1.amazonaws.com

      */ class AWS_COSTANDUSAGEREPORTSERVICE_API CostandUsageReportServiceClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods @@ -85,7 +87,8 @@ namespace CostandUsageReportService virtual ~CostandUsageReportServiceClient(); /** - *

      Deletes the specified report.

      See Also:

      Deletes the specified report. Any tags associated with the report are also + * deleted.

      See Also:

      AWS * API Reference

      */ @@ -110,8 +113,8 @@ namespace CostandUsageReportService } /** - *

      Lists the AWS Cost and Usage reports available to this account.

      See - * Also:

      Lists the Amazon Web Services Cost and Usage Report available to this + * account.

      See Also:

      AWS * API Reference

      */ @@ -136,7 +139,33 @@ namespace CostandUsageReportService } /** - *

      Allows you to programatically update your report preferences.

      See + *

      Lists the tags associated with the specified report definition.

      See + * Also:

      AWS + * API Reference

      + */ + virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; + + /** + * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const + { + return SubmitCallable(&CostandUsageReportServiceClient::ListTagsForResource, request); + } + + /** + * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&CostandUsageReportServiceClient::ListTagsForResource, request, handler, context); + } + + /** + *

      Allows you to programmatically update your report preferences.

      See * Also:

      AWS * API Reference

      @@ -187,6 +216,57 @@ namespace CostandUsageReportService return SubmitAsync(&CostandUsageReportServiceClient::PutReportDefinition, request, handler, context); } + /** + *

      Associates a set of tags with a report definition.

      See Also:

      + * AWS + * API Reference

      + */ + virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; + + /** + * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const + { + return SubmitCallable(&CostandUsageReportServiceClient::TagResource, request); + } + + /** + * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&CostandUsageReportServiceClient::TagResource, request, handler, context); + } + + /** + *

      Disassociates a set of tags from a report definition.

      See + * Also:

      AWS + * API Reference

      + */ + virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; + + /** + * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const + { + return SubmitCallable(&CostandUsageReportServiceClient::UntagResource, request); + } + + /** + * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&CostandUsageReportServiceClient::UntagResource, request, handler, context); + } + void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceServiceClientModel.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceServiceClientModel.h index 7d51231ea02..8618f4c6094 100644 --- a/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceServiceClientModel.h +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/CostandUsageReportServiceServiceClientModel.h @@ -20,8 +20,11 @@ /* Service model headers required in CostandUsageReportServiceClient header */ #include #include +#include #include #include +#include +#include /* End of service model headers required in CostandUsageReportServiceClient header */ namespace Aws @@ -64,22 +67,31 @@ namespace Aws /* Service model forward declarations required in CostandUsageReportServiceClient header */ class DeleteReportDefinitionRequest; class DescribeReportDefinitionsRequest; + class ListTagsForResourceRequest; class ModifyReportDefinitionRequest; class PutReportDefinitionRequest; + class TagResourceRequest; + class UntagResourceRequest; /* End of service model forward declarations required in CostandUsageReportServiceClient header */ /* Service model Outcome class definitions */ typedef Aws::Utils::Outcome DeleteReportDefinitionOutcome; typedef Aws::Utils::Outcome DescribeReportDefinitionsOutcome; + typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome ModifyReportDefinitionOutcome; typedef Aws::Utils::Outcome PutReportDefinitionOutcome; + typedef Aws::Utils::Outcome TagResourceOutcome; + typedef Aws::Utils::Outcome UntagResourceOutcome; /* End of service model Outcome class definitions */ /* Service model Outcome callable definitions */ typedef std::future DeleteReportDefinitionOutcomeCallable; typedef std::future DescribeReportDefinitionsOutcomeCallable; + typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future ModifyReportDefinitionOutcomeCallable; typedef std::future PutReportDefinitionOutcomeCallable; + typedef std::future TagResourceOutcomeCallable; + typedef std::future UntagResourceOutcomeCallable; /* End of service model Outcome callable definitions */ } // namespace Model @@ -88,8 +100,11 @@ namespace Aws /* Service model async handlers definitions */ typedef std::function&) > DeleteReportDefinitionResponseReceivedHandler; typedef std::function&) > DescribeReportDefinitionsResponseReceivedHandler; + typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > ModifyReportDefinitionResponseReceivedHandler; typedef std::function&) > PutReportDefinitionResponseReceivedHandler; + typedef std::function&) > TagResourceResponseReceivedHandler; + typedef std::function&) > UntagResourceResponseReceivedHandler; /* End of service model async handlers definitions */ } // namespace CostandUsageReportService } // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsRequest.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsRequest.h index 587c5414ad9..b8ed47799a6 100644 --- a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsRequest.h +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsRequest.h @@ -17,7 +17,7 @@ namespace Model { /** - *

      Requests a list of AWS Cost and Usage reports owned by the + *

      Requests a Amazon Web Services Cost and Usage Report list owned by the * account.

      See Also:

      AWS * API Reference

      diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsResult.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsResult.h index 3277ee86c84..1193969d765 100644 --- a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsResult.h +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/DescribeReportDefinitionsResult.h @@ -41,37 +41,37 @@ namespace Model /** - *

      A list of AWS Cost and Usage reports owned by the account.

      + *

      An Amazon Web Services Cost and Usage Report list owned by the account.

      */ inline const Aws::Vector& GetReportDefinitions() const{ return m_reportDefinitions; } /** - *

      A list of AWS Cost and Usage reports owned by the account.

      + *

      An Amazon Web Services Cost and Usage Report list owned by the account.

      */ inline void SetReportDefinitions(const Aws::Vector& value) { m_reportDefinitions = value; } /** - *

      A list of AWS Cost and Usage reports owned by the account.

      + *

      An Amazon Web Services Cost and Usage Report list owned by the account.

      */ inline void SetReportDefinitions(Aws::Vector&& value) { m_reportDefinitions = std::move(value); } /** - *

      A list of AWS Cost and Usage reports owned by the account.

      + *

      An Amazon Web Services Cost and Usage Report list owned by the account.

      */ inline DescribeReportDefinitionsResult& WithReportDefinitions(const Aws::Vector& value) { SetReportDefinitions(value); return *this;} /** - *

      A list of AWS Cost and Usage reports owned by the account.

      + *

      An Amazon Web Services Cost and Usage Report list owned by the account.

      */ inline DescribeReportDefinitionsResult& WithReportDefinitions(Aws::Vector&& value) { SetReportDefinitions(std::move(value)); return *this;} /** - *

      A list of AWS Cost and Usage reports owned by the account.

      + *

      An Amazon Web Services Cost and Usage Report list owned by the account.

      */ inline DescribeReportDefinitionsResult& AddReportDefinitions(const ReportDefinition& value) { m_reportDefinitions.push_back(value); return *this; } /** - *

      A list of AWS Cost and Usage reports owned by the account.

      + *

      An Amazon Web Services Cost and Usage Report list owned by the account.

      */ inline DescribeReportDefinitionsResult& AddReportDefinitions(ReportDefinition&& value) { m_reportDefinitions.push_back(std::move(value)); return *this; } diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/LastStatus.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/LastStatus.h new file mode 100644 index 00000000000..382b5aaf9f8 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/LastStatus.h @@ -0,0 +1,32 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace CostandUsageReportService +{ +namespace Model +{ + enum class LastStatus + { + NOT_SET, + SUCCESS, + ERROR_PERMISSIONS, + ERROR_NO_BUCKET + }; + +namespace LastStatusMapper +{ +AWS_COSTANDUSAGEREPORTSERVICE_API LastStatus GetLastStatusForName(const Aws::String& name); + +AWS_COSTANDUSAGEREPORTSERVICE_API Aws::String GetNameForLastStatus(LastStatus value); +} // namespace LastStatusMapper +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ListTagsForResourceRequest.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ListTagsForResourceRequest.h new file mode 100644 index 00000000000..6e9267b0563 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ListTagsForResourceRequest.h @@ -0,0 +1,93 @@ +/** + * 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 CostandUsageReportService +{ +namespace Model +{ + + /** + */ + class ListTagsForResourceRequest : public CostandUsageReportServiceRequest + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API ListTagsForResourceRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "ListTagsForResource"; } + + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::String SerializePayload() const override; + + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline const Aws::String& GetReportName() const{ return m_reportName; } + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline bool ReportNameHasBeenSet() const { return m_reportNameHasBeenSet; } + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline void SetReportName(const Aws::String& value) { m_reportNameHasBeenSet = true; m_reportName = value; } + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline void SetReportName(Aws::String&& value) { m_reportNameHasBeenSet = true; m_reportName = std::move(value); } + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline void SetReportName(const char* value) { m_reportNameHasBeenSet = true; m_reportName.assign(value); } + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline ListTagsForResourceRequest& WithReportName(const Aws::String& value) { SetReportName(value); return *this;} + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline ListTagsForResourceRequest& WithReportName(Aws::String&& value) { SetReportName(std::move(value)); return *this;} + + /** + *

      The report name of the report definition that tags are to be returned + * for.

      + */ + inline ListTagsForResourceRequest& WithReportName(const char* value) { SetReportName(value); return *this;} + + private: + + Aws::String m_reportName; + bool m_reportNameHasBeenSet = false; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ListTagsForResourceResult.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ListTagsForResourceResult.h new file mode 100644 index 00000000000..c3468086c2c --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ListTagsForResourceResult.h @@ -0,0 +1,103 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace CostandUsageReportService +{ +namespace Model +{ + class ListTagsForResourceResult + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API ListTagsForResourceResult(); + AWS_COSTANDUSAGEREPORTSERVICE_API ListTagsForResourceResult(const Aws::AmazonWebServiceResult& result); + AWS_COSTANDUSAGEREPORTSERVICE_API ListTagsForResourceResult& operator=(const Aws::AmazonWebServiceResult& result); + + + /** + *

      The tags assigned to the report definition resource.

      + */ + inline const Aws::Vector& GetTags() const{ return m_tags; } + + /** + *

      The tags assigned to the report definition resource.

      + */ + inline void SetTags(const Aws::Vector& value) { m_tags = value; } + + /** + *

      The tags assigned to the report definition resource.

      + */ + inline void SetTags(Aws::Vector&& value) { m_tags = std::move(value); } + + /** + *

      The tags assigned to the report definition resource.

      + */ + inline ListTagsForResourceResult& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} + + /** + *

      The tags assigned to the report definition resource.

      + */ + inline ListTagsForResourceResult& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} + + /** + *

      The tags assigned to the report definition resource.

      + */ + inline ListTagsForResourceResult& AddTags(const Tag& value) { m_tags.push_back(value); return *this; } + + /** + *

      The tags assigned to the report definition resource.

      + */ + inline ListTagsForResourceResult& AddTags(Tag&& value) { m_tags.push_back(std::move(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 ListTagsForResourceResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + + + inline ListTagsForResourceResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + + + inline ListTagsForResourceResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + + private: + + Aws::Vector m_tags; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/PutReportDefinitionRequest.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/PutReportDefinitionRequest.h index 7dc1527a2f3..848910f8b46 100644 --- a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/PutReportDefinitionRequest.h +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/PutReportDefinitionRequest.h @@ -7,6 +7,8 @@ #include #include #include +#include +#include #include namespace Aws @@ -73,10 +75,54 @@ namespace Model */ inline PutReportDefinitionRequest& WithReportDefinition(ReportDefinition&& value) { SetReportDefinition(std::move(value)); return *this;} + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline const Aws::Vector& GetTags() const{ return m_tags; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline PutReportDefinitionRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline PutReportDefinitionRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline PutReportDefinitionRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline PutReportDefinitionRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } + private: ReportDefinition m_reportDefinition; bool m_reportDefinitionHasBeenSet = false; + + Aws::Vector m_tags; + bool m_tagsHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ReportDefinition.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ReportDefinition.h index 68b99210cec..445debfc038 100644 --- a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ReportDefinition.h +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ReportDefinition.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -32,9 +33,10 @@ namespace Model { /** - *

      The definition of AWS Cost and Usage Report. You can specify the report name, - * time unit, report format, compression format, S3 bucket, additional artifacts, - * and schema elements in the definition.

      See Also:

      The definition of Amazon Web Services Cost and Usage Report. You can specify + * the report name, time unit, report format, compression format, S3 bucket, + * additional artifacts, and schema elements in the definition.

      See + * Also:

      AWS * API Reference

      */ @@ -363,53 +365,124 @@ namespace Model /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline const Aws::String& GetBillingViewArn() const{ return m_billingViewArn; } /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline bool BillingViewArnHasBeenSet() const { return m_billingViewArnHasBeenSet; } /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline void SetBillingViewArn(const Aws::String& value) { m_billingViewArnHasBeenSet = true; m_billingViewArn = value; } /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline void SetBillingViewArn(Aws::String&& value) { m_billingViewArnHasBeenSet = true; m_billingViewArn = std::move(value); } /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline void SetBillingViewArn(const char* value) { m_billingViewArnHasBeenSet = true; m_billingViewArn.assign(value); } /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline ReportDefinition& WithBillingViewArn(const Aws::String& value) { SetBillingViewArn(value); return *this;} /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline ReportDefinition& WithBillingViewArn(Aws::String&& value) { SetBillingViewArn(std::move(value)); return *this;} /** - *

      The Amazon resource name of the billing view. You can get this value by - * using the billing view service public APIs.

      + *

      The Amazon resource name of the billing view. The + * BillingViewArn is needed to create Amazon Web Services Cost and + * Usage Report for each billing group maintained in the Amazon Web Services + * Billing Conductor service. The BillingViewArn for a billing group + * can be constructed as: + * arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id + *

      */ inline ReportDefinition& WithBillingViewArn(const char* value) { SetBillingViewArn(value); return *this;} + + /** + *

      The status of the report.

      + */ + inline const ReportStatus& GetReportStatus() const{ return m_reportStatus; } + + /** + *

      The status of the report.

      + */ + inline bool ReportStatusHasBeenSet() const { return m_reportStatusHasBeenSet; } + + /** + *

      The status of the report.

      + */ + inline void SetReportStatus(const ReportStatus& value) { m_reportStatusHasBeenSet = true; m_reportStatus = value; } + + /** + *

      The status of the report.

      + */ + inline void SetReportStatus(ReportStatus&& value) { m_reportStatusHasBeenSet = true; m_reportStatus = std::move(value); } + + /** + *

      The status of the report.

      + */ + inline ReportDefinition& WithReportStatus(const ReportStatus& value) { SetReportStatus(value); return *this;} + + /** + *

      The status of the report.

      + */ + inline ReportDefinition& WithReportStatus(ReportStatus&& value) { SetReportStatus(std::move(value)); return *this;} + private: Aws::String m_reportName; @@ -447,6 +520,9 @@ namespace Model Aws::String m_billingViewArn; bool m_billingViewArnHasBeenSet = false; + + ReportStatus m_reportStatus; + bool m_reportStatusHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ReportStatus.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ReportStatus.h new file mode 100644 index 00000000000..eaa0df32dc0 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/ReportStatus.h @@ -0,0 +1,126 @@ +/** + * 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 CostandUsageReportService +{ +namespace Model +{ + + /** + *

      A two element dictionary with a lastDelivery and + * lastStatus key whose values describe the date and status of the + * last delivered report for a particular report definition.

      See + * Also:

      AWS + * API Reference

      + */ + class ReportStatus + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API ReportStatus(); + AWS_COSTANDUSAGEREPORTSERVICE_API ReportStatus(Aws::Utils::Json::JsonView jsonValue); + AWS_COSTANDUSAGEREPORTSERVICE_API ReportStatus& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline const Aws::String& GetLastDelivery() const{ return m_lastDelivery; } + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline bool LastDeliveryHasBeenSet() const { return m_lastDeliveryHasBeenSet; } + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline void SetLastDelivery(const Aws::String& value) { m_lastDeliveryHasBeenSet = true; m_lastDelivery = value; } + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline void SetLastDelivery(Aws::String&& value) { m_lastDeliveryHasBeenSet = true; m_lastDelivery = std::move(value); } + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline void SetLastDelivery(const char* value) { m_lastDeliveryHasBeenSet = true; m_lastDelivery.assign(value); } + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline ReportStatus& WithLastDelivery(const Aws::String& value) { SetLastDelivery(value); return *this;} + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline ReportStatus& WithLastDelivery(Aws::String&& value) { SetLastDelivery(std::move(value)); return *this;} + + /** + *

      A timestamp that gives the date of a report delivery.

      + */ + inline ReportStatus& WithLastDelivery(const char* value) { SetLastDelivery(value); return *this;} + + + /** + *

      An enum that gives the status of a report delivery.

      + */ + inline const LastStatus& GetLastStatus() const{ return m_lastStatus; } + + /** + *

      An enum that gives the status of a report delivery.

      + */ + inline bool LastStatusHasBeenSet() const { return m_lastStatusHasBeenSet; } + + /** + *

      An enum that gives the status of a report delivery.

      + */ + inline void SetLastStatus(const LastStatus& value) { m_lastStatusHasBeenSet = true; m_lastStatus = value; } + + /** + *

      An enum that gives the status of a report delivery.

      + */ + inline void SetLastStatus(LastStatus&& value) { m_lastStatusHasBeenSet = true; m_lastStatus = std::move(value); } + + /** + *

      An enum that gives the status of a report delivery.

      + */ + inline ReportStatus& WithLastStatus(const LastStatus& value) { SetLastStatus(value); return *this;} + + /** + *

      An enum that gives the status of a report delivery.

      + */ + inline ReportStatus& WithLastStatus(LastStatus&& value) { SetLastStatus(std::move(value)); return *this;} + + private: + + Aws::String m_lastDelivery; + bool m_lastDeliveryHasBeenSet = false; + + LastStatus m_lastStatus; + bool m_lastStatusHasBeenSet = false; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/SchemaElement.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/SchemaElement.h index d90c12c8376..bffe543baa4 100644 --- a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/SchemaElement.h +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/SchemaElement.h @@ -17,7 +17,8 @@ namespace Model { NOT_SET, RESOURCES, - SPLIT_COST_ALLOCATION_DATA + SPLIT_COST_ALLOCATION_DATA, + MANUAL_DISCOUNT_COMPATIBILITY }; namespace SchemaElementMapper diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/Tag.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/Tag.h new file mode 100644 index 00000000000..1cca2920868 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/Tag.h @@ -0,0 +1,157 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace CostandUsageReportService +{ +namespace Model +{ + + /** + *

      Describes a tag. A tag is a key-value pair. You can add up to 50 tags to a + * report definition.

      See Also:

      AWS API + * Reference

      + */ + class Tag + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API Tag(); + AWS_COSTANDUSAGEREPORTSERVICE_API Tag(Aws::Utils::Json::JsonView jsonValue); + AWS_COSTANDUSAGEREPORTSERVICE_API Tag& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline const Aws::String& GetKey() const{ return m_key; } + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; } + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; } + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); } + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); } + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline Tag& WithKey(const Aws::String& value) { SetKey(value); return *this;} + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline Tag& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;} + + /** + *

      The key of the tag. Tag keys are case sensitive. Each report definition can + * only have up to one tag with the same key. If you try to add an existing tag + * with the same key, the existing tag value will be updated to the new value.

      + */ + inline Tag& WithKey(const char* value) { SetKey(value); return *this;} + + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline const Aws::String& GetValue() const{ return m_value; } + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; } + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); } + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline Tag& WithValue(const Aws::String& value) { SetValue(value); return *this;} + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline Tag& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;} + + /** + *

      The value of the tag. Tag values are case-sensitive. This can be an empty + * string.

      + */ + inline Tag& WithValue(const char* value) { SetValue(value); return *this;} + + private: + + Aws::String m_key; + bool m_keyHasBeenSet = false; + + Aws::String m_value; + bool m_valueHasBeenSet = false; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/TagResourceRequest.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/TagResourceRequest.h new file mode 100644 index 00000000000..41716b4c73a --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/TagResourceRequest.h @@ -0,0 +1,139 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace CostandUsageReportService +{ +namespace Model +{ + + /** + */ + class TagResourceRequest : public CostandUsageReportServiceRequest + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API TagResourceRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "TagResource"; } + + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::String SerializePayload() const override; + + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline const Aws::String& GetReportName() const{ return m_reportName; } + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline bool ReportNameHasBeenSet() const { return m_reportNameHasBeenSet; } + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline void SetReportName(const Aws::String& value) { m_reportNameHasBeenSet = true; m_reportName = value; } + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline void SetReportName(Aws::String&& value) { m_reportNameHasBeenSet = true; m_reportName = std::move(value); } + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline void SetReportName(const char* value) { m_reportNameHasBeenSet = true; m_reportName.assign(value); } + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline TagResourceRequest& WithReportName(const Aws::String& value) { SetReportName(value); return *this;} + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline TagResourceRequest& WithReportName(Aws::String&& value) { SetReportName(std::move(value)); return *this;} + + /** + *

      The report name of the report definition that tags are to be associated + * with.

      + */ + inline TagResourceRequest& WithReportName(const char* value) { SetReportName(value); return *this;} + + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline const Aws::Vector& GetTags() const{ return m_tags; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline TagResourceRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline TagResourceRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline TagResourceRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } + + /** + *

      The tags to be assigned to the report definition resource.

      + */ + inline TagResourceRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } + + private: + + Aws::String m_reportName; + bool m_reportNameHasBeenSet = false; + + Aws::Vector m_tags; + bool m_tagsHasBeenSet = false; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/TagResourceResult.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/TagResourceResult.h new file mode 100644 index 00000000000..8dd309da639 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/TagResourceResult.h @@ -0,0 +1,63 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace CostandUsageReportService +{ +namespace Model +{ + class TagResourceResult + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API TagResourceResult(); + AWS_COSTANDUSAGEREPORTSERVICE_API TagResourceResult(const Aws::AmazonWebServiceResult& result); + AWS_COSTANDUSAGEREPORTSERVICE_API TagResourceResult& operator=(const Aws::AmazonWebServiceResult& result); + + + + 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 TagResourceResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + + + inline TagResourceResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + + + inline TagResourceResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + + private: + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/UntagResourceRequest.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/UntagResourceRequest.h new file mode 100644 index 00000000000..0df11a9af0d --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/UntagResourceRequest.h @@ -0,0 +1,143 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace CostandUsageReportService +{ +namespace Model +{ + + /** + */ + class UntagResourceRequest : public CostandUsageReportServiceRequest + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API UntagResourceRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "UntagResource"; } + + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::String SerializePayload() const override; + + AWS_COSTANDUSAGEREPORTSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline const Aws::String& GetReportName() const{ return m_reportName; } + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline bool ReportNameHasBeenSet() const { return m_reportNameHasBeenSet; } + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline void SetReportName(const Aws::String& value) { m_reportNameHasBeenSet = true; m_reportName = value; } + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline void SetReportName(Aws::String&& value) { m_reportNameHasBeenSet = true; m_reportName = std::move(value); } + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline void SetReportName(const char* value) { m_reportNameHasBeenSet = true; m_reportName.assign(value); } + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline UntagResourceRequest& WithReportName(const Aws::String& value) { SetReportName(value); return *this;} + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline UntagResourceRequest& WithReportName(Aws::String&& value) { SetReportName(std::move(value)); return *this;} + + /** + *

      The report name of the report definition that tags are to be disassociated + * from.

      + */ + inline UntagResourceRequest& WithReportName(const char* value) { SetReportName(value); return *this;} + + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline const Aws::Vector& GetTagKeys() const{ return m_tagKeys; } + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline bool TagKeysHasBeenSet() const { return m_tagKeysHasBeenSet; } + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline void SetTagKeys(const Aws::Vector& value) { m_tagKeysHasBeenSet = true; m_tagKeys = value; } + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline void SetTagKeys(Aws::Vector&& value) { m_tagKeysHasBeenSet = true; m_tagKeys = std::move(value); } + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline UntagResourceRequest& WithTagKeys(const Aws::Vector& value) { SetTagKeys(value); return *this;} + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline UntagResourceRequest& WithTagKeys(Aws::Vector&& value) { SetTagKeys(std::move(value)); return *this;} + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline UntagResourceRequest& AddTagKeys(const Aws::String& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; } + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline UntagResourceRequest& AddTagKeys(Aws::String&& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(std::move(value)); return *this; } + + /** + *

      The tags to be disassociated from the report definition resource.

      + */ + inline UntagResourceRequest& AddTagKeys(const char* value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; } + + private: + + Aws::String m_reportName; + bool m_reportNameHasBeenSet = false; + + Aws::Vector m_tagKeys; + bool m_tagKeysHasBeenSet = false; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/UntagResourceResult.h b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/UntagResourceResult.h new file mode 100644 index 00000000000..b87be28bc0f --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/include/aws/cur/model/UntagResourceResult.h @@ -0,0 +1,63 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace CostandUsageReportService +{ +namespace Model +{ + class UntagResourceResult + { + public: + AWS_COSTANDUSAGEREPORTSERVICE_API UntagResourceResult(); + AWS_COSTANDUSAGEREPORTSERVICE_API UntagResourceResult(const Aws::AmazonWebServiceResult& result); + AWS_COSTANDUSAGEREPORTSERVICE_API UntagResourceResult& operator=(const Aws::AmazonWebServiceResult& result); + + + + 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 UntagResourceResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + + + inline UntagResourceResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + + + inline UntagResourceResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + + private: + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceClient.cpp b/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceClient.cpp index 0a354a8cc1a..a819f4abb7b 100644 --- a/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceClient.cpp +++ b/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceClient.cpp @@ -23,8 +23,11 @@ #include #include #include +#include #include #include +#include +#include #include @@ -210,6 +213,32 @@ DescribeReportDefinitionsOutcome CostandUsageReportServiceClient::DescribeReport {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); } +ListTagsForResourceOutcome CostandUsageReportServiceClient::ListTagsForResource(const ListTagsForResourceRequest& request) const +{ + AWS_OPERATION_GUARD(ListTagsForResource); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListTagsForResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, ListTagsForResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, ListTagsForResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".ListTagsForResource", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> ListTagsForResourceOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListTagsForResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return ListTagsForResourceOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + ModifyReportDefinitionOutcome CostandUsageReportServiceClient::ModifyReportDefinition(const ModifyReportDefinitionRequest& request) const { AWS_OPERATION_GUARD(ModifyReportDefinition); @@ -262,3 +291,55 @@ PutReportDefinitionOutcome CostandUsageReportServiceClient::PutReportDefinition( {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); } +TagResourceOutcome CostandUsageReportServiceClient::TagResource(const TagResourceRequest& request) const +{ + AWS_OPERATION_GUARD(TagResource); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, TagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, TagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, TagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".TagResource", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> TagResourceOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, TagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return TagResourceOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +UntagResourceOutcome CostandUsageReportServiceClient::UntagResource(const UntagResourceRequest& request) const +{ + AWS_OPERATION_GUARD(UntagResource); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, UntagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, UntagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, UntagResource, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".UntagResource", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> UntagResourceOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, UntagResource, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return UntagResourceOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + diff --git a/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceEndpointRules.cpp b/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceEndpointRules.cpp index a3a18b27d23..067b71e71ec 100644 --- a/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceEndpointRules.cpp +++ b/generated/src/aws-cpp-sdk-cur/source/CostandUsageReportServiceEndpointRules.cpp @@ -51,106 +51,106 @@ static constexpr RulesBlobT RulesBlob = {{ ',','"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}','}',',','"','r','u','l','e','s', '"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', 'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n', -'d','p','o','i','n','t','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"', -',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', -'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r', -'u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o', -'n','f','i','g','u','r','a','t','i','o','n',':',' ','F','I','P','S',' ','a','n','d',' ','c','u','s', -'t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p', -'o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', -'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', -'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', -'e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a', -'t','i','o','n',':',' ','D','u','a','l','s','t','a','c','k',' ','a','n','d',' ','c','u','s','t','o', -'m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r', -'t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o', -'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', -'"','u','r','l','"',':','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',',', -'"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', -':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}', -',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', -'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', -'o','n','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', -'"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':', -'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g', -'n','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t', -'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'d','p','o','i','n','t','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', 'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n', 'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U', -'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o', -'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e', -'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}', -']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[', -'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', -'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',', -'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', -'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', -'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',',','{','"','f','n','"',':', -'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t', -'r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v', -'"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l', -'t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}', -']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"', -':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o', -'i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','c','u','r','-', -'f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R', -'e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}', -'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r', -'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}', -']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o', -'r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a','l','S','t','a','c','k',' ','a','r', -'e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i', -'t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','o','n','e', -' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}', -']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', -'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"', -'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"', -'t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c', -'o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a', -'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"','f', -'n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e', -'f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s','u', -'p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"', -'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o', -'n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':', -'"','h','t','t','p','s',':','/','/','c','u','r','-','f','i','p','s','.','{','R','e','g','i','o','n', -'}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f', -'f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e', -'a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i', -'n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', -'e','r','r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ','b', -'u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o', -'t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"','e', -'r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':', +'"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','F', +'I','P','S',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a', +'r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', '"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', 'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"', -'}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"', +'}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i', +'d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','D','u','a','l','s','t','a','c', +'k',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e', +' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e', +'r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', +'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','{','"','r','e','f','"',':','"', +'E','n','d','p','o','i','n','t','"','}',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', +'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', +'n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}', +',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', +'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', +'o','n','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t', +'i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i', +'o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o', +'n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','"','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u', +'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F', +'I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e', +'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', +'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', 'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"', 'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v', '"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"', 'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R', -'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c', -'k','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e', -'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/', -'c','u','r','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e', -'s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"', -',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s', -'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']', -'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r', -'"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s',' ','e','n','a','b','l','e','d',' ','b', -'u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o', -'t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S','t','a','c','k','"',',','"','t','y','p', -'e','"',':','"','e','r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n', -'s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"', -'h','t','t','p','s',':','/','/','c','u','r','.','{','R','e','g','i','o','n','}','.','{','P','a','r', +'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']', +'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"', +'a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t', +'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l', +'S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', +'"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','c','u','r','-','f','i','p','s','.','{', +'R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#', +'d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o', +'p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}', +',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p', +'e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':', +'[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a','l', +'S','t','a','c','k',' ','a','r','e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t','h', +'i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p', +'p','o','r','t',' ','o','n','e',' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', +'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f', +'"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','r','u','l', +'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"', +':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[', +'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', +'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', +'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',',','t','r','u','e',']','}',']',',', +'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']', +',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s', +':','/','/','c','u','r','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r', 't','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',', '"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', -':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}', -']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o', +':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',', +'"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o', +'n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e', +'n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n', +' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"', +'t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t', +'r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', +'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':', +'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t', +'r','u','e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i', +'o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l', +'s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e', +'t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a', +'r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s', +'D','u','a','l','S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n', +'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','c','u','r','.','{','R', +'e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d', +'u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p', +'e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',', +'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e', +'"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', +']',',','"','e','r','r','o','r','"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s',' ','e', +'n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n', +' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S','t','a', +'c','k','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t','y','p', +'e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':', +'[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t', +'p','s',':','/','/','c','u','r','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r', +'o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}', +'}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y', +'p','e','"',':','"','t','r','e','e','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e', +'"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o', 'r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n', ':',' ','M','i','s','s','i','n','g',' ','R','e','g','i','o','n','"',',','"','t','y','p','e','"',':', '"','e','r','r','o','r','"','}',']','}','\0' diff --git a/generated/src/aws-cpp-sdk-cur/source/model/LastStatus.cpp b/generated/src/aws-cpp-sdk-cur/source/model/LastStatus.cpp new file mode 100644 index 00000000000..f3a9107713f --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/LastStatus.cpp @@ -0,0 +1,79 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace CostandUsageReportService + { + namespace Model + { + namespace LastStatusMapper + { + + static const int SUCCESS_HASH = HashingUtils::HashString("SUCCESS"); + static const int ERROR_PERMISSIONS_HASH = HashingUtils::HashString("ERROR_PERMISSIONS"); + static const int ERROR_NO_BUCKET_HASH = HashingUtils::HashString("ERROR_NO_BUCKET"); + + + LastStatus GetLastStatusForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == SUCCESS_HASH) + { + return LastStatus::SUCCESS; + } + else if (hashCode == ERROR_PERMISSIONS_HASH) + { + return LastStatus::ERROR_PERMISSIONS; + } + else if (hashCode == ERROR_NO_BUCKET_HASH) + { + return LastStatus::ERROR_NO_BUCKET; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return LastStatus::NOT_SET; + } + + Aws::String GetNameForLastStatus(LastStatus enumValue) + { + switch(enumValue) + { + case LastStatus::NOT_SET: + return {}; + case LastStatus::SUCCESS: + return "SUCCESS"; + case LastStatus::ERROR_PERMISSIONS: + return "ERROR_PERMISSIONS"; + case LastStatus::ERROR_NO_BUCKET: + return "ERROR_NO_BUCKET"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace LastStatusMapper + } // namespace Model + } // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/source/model/ListTagsForResourceRequest.cpp b/generated/src/aws-cpp-sdk-cur/source/model/ListTagsForResourceRequest.cpp new file mode 100644 index 00000000000..6a5cc976521 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/ListTagsForResourceRequest.cpp @@ -0,0 +1,43 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::CostandUsageReportService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +ListTagsForResourceRequest::ListTagsForResourceRequest() : + m_reportNameHasBeenSet(false) +{ +} + +Aws::String ListTagsForResourceRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_reportNameHasBeenSet) + { + payload.WithString("ReportName", m_reportName); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection ListTagsForResourceRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "AWSOrigamiServiceGatewayService.ListTagsForResource")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-cur/source/model/ListTagsForResourceResult.cpp b/generated/src/aws-cpp-sdk-cur/source/model/ListTagsForResourceResult.cpp new file mode 100644 index 00000000000..60d17e72b50 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/ListTagsForResourceResult.cpp @@ -0,0 +1,51 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::CostandUsageReportService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +ListTagsForResourceResult::ListTagsForResourceResult() +{ +} + +ListTagsForResourceResult::ListTagsForResourceResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +ListTagsForResourceResult& ListTagsForResourceResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("Tags")) + { + Aws::Utils::Array tagsJsonList = jsonValue.GetArray("Tags"); + for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex) + { + m_tags.push_back(tagsJsonList[tagsIndex].AsObject()); + } + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-cur/source/model/PutReportDefinitionRequest.cpp b/generated/src/aws-cpp-sdk-cur/source/model/PutReportDefinitionRequest.cpp index 63822a04276..86b6b1a220d 100644 --- a/generated/src/aws-cpp-sdk-cur/source/model/PutReportDefinitionRequest.cpp +++ b/generated/src/aws-cpp-sdk-cur/source/model/PutReportDefinitionRequest.cpp @@ -13,7 +13,8 @@ using namespace Aws::Utils::Json; using namespace Aws::Utils; PutReportDefinitionRequest::PutReportDefinitionRequest() : - m_reportDefinitionHasBeenSet(false) + m_reportDefinitionHasBeenSet(false), + m_tagsHasBeenSet(false) { } @@ -27,6 +28,17 @@ Aws::String PutReportDefinitionRequest::SerializePayload() const } + if(m_tagsHasBeenSet) + { + Aws::Utils::Array tagsJsonList(m_tags.size()); + for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex) + { + tagsJsonList[tagsIndex].AsObject(m_tags[tagsIndex].Jsonize()); + } + payload.WithArray("Tags", std::move(tagsJsonList)); + + } + return payload.View().WriteReadable(); } diff --git a/generated/src/aws-cpp-sdk-cur/source/model/ReportDefinition.cpp b/generated/src/aws-cpp-sdk-cur/source/model/ReportDefinition.cpp index 01c5fafc270..92f5be35b19 100644 --- a/generated/src/aws-cpp-sdk-cur/source/model/ReportDefinition.cpp +++ b/generated/src/aws-cpp-sdk-cur/source/model/ReportDefinition.cpp @@ -36,7 +36,8 @@ ReportDefinition::ReportDefinition() : m_refreshClosedReportsHasBeenSet(false), m_reportVersioning(ReportVersioning::NOT_SET), m_reportVersioningHasBeenSet(false), - m_billingViewArnHasBeenSet(false) + m_billingViewArnHasBeenSet(false), + m_reportStatusHasBeenSet(false) { } @@ -58,7 +59,8 @@ ReportDefinition::ReportDefinition(JsonView jsonValue) : m_refreshClosedReportsHasBeenSet(false), m_reportVersioning(ReportVersioning::NOT_SET), m_reportVersioningHasBeenSet(false), - m_billingViewArnHasBeenSet(false) + m_billingViewArnHasBeenSet(false), + m_reportStatusHasBeenSet(false) { *this = jsonValue; } @@ -155,6 +157,13 @@ ReportDefinition& ReportDefinition::operator =(JsonView jsonValue) m_billingViewArnHasBeenSet = true; } + if(jsonValue.ValueExists("ReportStatus")) + { + m_reportStatus = jsonValue.GetObject("ReportStatus"); + + m_reportStatusHasBeenSet = true; + } + return *this; } @@ -239,6 +248,12 @@ JsonValue ReportDefinition::Jsonize() const } + if(m_reportStatusHasBeenSet) + { + payload.WithObject("ReportStatus", m_reportStatus.Jsonize()); + + } + return payload; } diff --git a/generated/src/aws-cpp-sdk-cur/source/model/ReportStatus.cpp b/generated/src/aws-cpp-sdk-cur/source/model/ReportStatus.cpp new file mode 100644 index 00000000000..97ebd596948 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/ReportStatus.cpp @@ -0,0 +1,75 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace CostandUsageReportService +{ +namespace Model +{ + +ReportStatus::ReportStatus() : + m_lastDeliveryHasBeenSet(false), + m_lastStatus(LastStatus::NOT_SET), + m_lastStatusHasBeenSet(false) +{ +} + +ReportStatus::ReportStatus(JsonView jsonValue) : + m_lastDeliveryHasBeenSet(false), + m_lastStatus(LastStatus::NOT_SET), + m_lastStatusHasBeenSet(false) +{ + *this = jsonValue; +} + +ReportStatus& ReportStatus::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("lastDelivery")) + { + m_lastDelivery = jsonValue.GetString("lastDelivery"); + + m_lastDeliveryHasBeenSet = true; + } + + if(jsonValue.ValueExists("lastStatus")) + { + m_lastStatus = LastStatusMapper::GetLastStatusForName(jsonValue.GetString("lastStatus")); + + m_lastStatusHasBeenSet = true; + } + + return *this; +} + +JsonValue ReportStatus::Jsonize() const +{ + JsonValue payload; + + if(m_lastDeliveryHasBeenSet) + { + payload.WithString("lastDelivery", m_lastDelivery); + + } + + if(m_lastStatusHasBeenSet) + { + payload.WithString("lastStatus", LastStatusMapper::GetNameForLastStatus(m_lastStatus)); + } + + return payload; +} + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/source/model/SchemaElement.cpp b/generated/src/aws-cpp-sdk-cur/source/model/SchemaElement.cpp index 0d278426ec4..5231e0c5b9e 100644 --- a/generated/src/aws-cpp-sdk-cur/source/model/SchemaElement.cpp +++ b/generated/src/aws-cpp-sdk-cur/source/model/SchemaElement.cpp @@ -22,6 +22,7 @@ namespace Aws static const int RESOURCES_HASH = HashingUtils::HashString("RESOURCES"); static const int SPLIT_COST_ALLOCATION_DATA_HASH = HashingUtils::HashString("SPLIT_COST_ALLOCATION_DATA"); + static const int MANUAL_DISCOUNT_COMPATIBILITY_HASH = HashingUtils::HashString("MANUAL_DISCOUNT_COMPATIBILITY"); SchemaElement GetSchemaElementForName(const Aws::String& name) @@ -35,6 +36,10 @@ namespace Aws { return SchemaElement::SPLIT_COST_ALLOCATION_DATA; } + else if (hashCode == MANUAL_DISCOUNT_COMPATIBILITY_HASH) + { + return SchemaElement::MANUAL_DISCOUNT_COMPATIBILITY; + } EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); if(overflowContainer) { @@ -55,6 +60,8 @@ namespace Aws return "RESOURCES"; case SchemaElement::SPLIT_COST_ALLOCATION_DATA: return "SPLIT_COST_ALLOCATION_DATA"; + case SchemaElement::MANUAL_DISCOUNT_COMPATIBILITY: + return "MANUAL_DISCOUNT_COMPATIBILITY"; default: EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); if(overflowContainer) diff --git a/generated/src/aws-cpp-sdk-cur/source/model/Tag.cpp b/generated/src/aws-cpp-sdk-cur/source/model/Tag.cpp new file mode 100644 index 00000000000..afde4cf30c5 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/Tag.cpp @@ -0,0 +1,74 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace CostandUsageReportService +{ +namespace Model +{ + +Tag::Tag() : + m_keyHasBeenSet(false), + m_valueHasBeenSet(false) +{ +} + +Tag::Tag(JsonView jsonValue) : + m_keyHasBeenSet(false), + m_valueHasBeenSet(false) +{ + *this = jsonValue; +} + +Tag& Tag::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("Key")) + { + m_key = jsonValue.GetString("Key"); + + m_keyHasBeenSet = true; + } + + if(jsonValue.ValueExists("Value")) + { + m_value = jsonValue.GetString("Value"); + + m_valueHasBeenSet = true; + } + + return *this; +} + +JsonValue Tag::Jsonize() const +{ + JsonValue payload; + + if(m_keyHasBeenSet) + { + payload.WithString("Key", m_key); + + } + + if(m_valueHasBeenSet) + { + payload.WithString("Value", m_value); + + } + + return payload; +} + +} // namespace Model +} // namespace CostandUsageReportService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-cur/source/model/TagResourceRequest.cpp b/generated/src/aws-cpp-sdk-cur/source/model/TagResourceRequest.cpp new file mode 100644 index 00000000000..0f4231102f5 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/TagResourceRequest.cpp @@ -0,0 +1,55 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::CostandUsageReportService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +TagResourceRequest::TagResourceRequest() : + m_reportNameHasBeenSet(false), + m_tagsHasBeenSet(false) +{ +} + +Aws::String TagResourceRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_reportNameHasBeenSet) + { + payload.WithString("ReportName", m_reportName); + + } + + if(m_tagsHasBeenSet) + { + Aws::Utils::Array tagsJsonList(m_tags.size()); + for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex) + { + tagsJsonList[tagsIndex].AsObject(m_tags[tagsIndex].Jsonize()); + } + payload.WithArray("Tags", std::move(tagsJsonList)); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection TagResourceRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "AWSOrigamiServiceGatewayService.TagResource")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-cur/source/model/TagResourceResult.cpp b/generated/src/aws-cpp-sdk-cur/source/model/TagResourceResult.cpp new file mode 100644 index 00000000000..27d0472deb8 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/TagResourceResult.cpp @@ -0,0 +1,42 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::CostandUsageReportService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +TagResourceResult::TagResourceResult() +{ +} + +TagResourceResult::TagResourceResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +TagResourceResult& TagResourceResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + AWS_UNREFERENCED_PARAM(result); + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-cur/source/model/UntagResourceRequest.cpp b/generated/src/aws-cpp-sdk-cur/source/model/UntagResourceRequest.cpp new file mode 100644 index 00000000000..cda2227eb8a --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/UntagResourceRequest.cpp @@ -0,0 +1,55 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::CostandUsageReportService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +UntagResourceRequest::UntagResourceRequest() : + m_reportNameHasBeenSet(false), + m_tagKeysHasBeenSet(false) +{ +} + +Aws::String UntagResourceRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_reportNameHasBeenSet) + { + payload.WithString("ReportName", m_reportName); + + } + + if(m_tagKeysHasBeenSet) + { + Aws::Utils::Array tagKeysJsonList(m_tagKeys.size()); + for(unsigned tagKeysIndex = 0; tagKeysIndex < tagKeysJsonList.GetLength(); ++tagKeysIndex) + { + tagKeysJsonList[tagKeysIndex].AsString(m_tagKeys[tagKeysIndex]); + } + payload.WithArray("TagKeys", std::move(tagKeysJsonList)); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection UntagResourceRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "AWSOrigamiServiceGatewayService.UntagResource")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-cur/source/model/UntagResourceResult.cpp b/generated/src/aws-cpp-sdk-cur/source/model/UntagResourceResult.cpp new file mode 100644 index 00000000000..c8aea88c0f4 --- /dev/null +++ b/generated/src/aws-cpp-sdk-cur/source/model/UntagResourceResult.cpp @@ -0,0 +1,42 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::CostandUsageReportService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +UntagResourceResult::UntagResourceResult() +{ +} + +UntagResourceResult::UntagResourceResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +UntagResourceResult& UntagResourceResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + AWS_UNREFERENCED_PARAM(result); + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdSpecification.h index 4066bebbfe0..c8ef3930544 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdSpecification.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdSpecification.h @@ -24,8 +24,17 @@ namespace Model { /** - *

      Describes the ENA Express configuration for the network interface that's - * attached to the instance.

      See Also:

      ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) + * technology to increase the maximum bandwidth used per stream and minimize tail + * latency of network traffic between EC2 instances. With ENA Express, you can + * communicate between two EC2 instances in the same subnet within the same + * account, or in different accounts. Both sending and receiving instances must + * have ENA Express enabled.

      To improve the reliability of network packet + * delivery, ENA Express reorders network packets on the receiving end by default. + * However, some UDP-based applications are designed to handle network packets that + * are out of order to reduce the overhead for packet delivery at the network + * layer. When ENA Express is enabled, you can specify whether UDP network traffic + * uses it.

      See Also:

      AWS * API Reference

      */ @@ -41,57 +50,53 @@ namespace Model /** - *

      Indicates whether ENA Express is enabled for the network interface that's - * attached to the instance.

      + *

      Indicates whether ENA Express is enabled for the network interface.

      */ inline bool GetEnaSrdEnabled() const{ return m_enaSrdEnabled; } /** - *

      Indicates whether ENA Express is enabled for the network interface that's - * attached to the instance.

      + *

      Indicates whether ENA Express is enabled for the network interface.

      */ inline bool EnaSrdEnabledHasBeenSet() const { return m_enaSrdEnabledHasBeenSet; } /** - *

      Indicates whether ENA Express is enabled for the network interface that's - * attached to the instance.

      + *

      Indicates whether ENA Express is enabled for the network interface.

      */ inline void SetEnaSrdEnabled(bool value) { m_enaSrdEnabledHasBeenSet = true; m_enaSrdEnabled = value; } /** - *

      Indicates whether ENA Express is enabled for the network interface that's - * attached to the instance.

      + *

      Indicates whether ENA Express is enabled for the network interface.

      */ inline AttachmentEnaSrdSpecification& WithEnaSrdEnabled(bool value) { SetEnaSrdEnabled(value); return *this;} /** - *

      ENA Express configuration for UDP network traffic.

      + *

      Configures ENA Express for UDP network traffic.

      */ inline const AttachmentEnaSrdUdpSpecification& GetEnaSrdUdpSpecification() const{ return m_enaSrdUdpSpecification; } /** - *

      ENA Express configuration for UDP network traffic.

      + *

      Configures ENA Express for UDP network traffic.

      */ inline bool EnaSrdUdpSpecificationHasBeenSet() const { return m_enaSrdUdpSpecificationHasBeenSet; } /** - *

      ENA Express configuration for UDP network traffic.

      + *

      Configures ENA Express for UDP network traffic.

      */ inline void SetEnaSrdUdpSpecification(const AttachmentEnaSrdUdpSpecification& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = value; } /** - *

      ENA Express configuration for UDP network traffic.

      + *

      Configures ENA Express for UDP network traffic.

      */ inline void SetEnaSrdUdpSpecification(AttachmentEnaSrdUdpSpecification&& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = std::move(value); } /** - *

      ENA Express configuration for UDP network traffic.

      + *

      Configures ENA Express for UDP network traffic.

      */ inline AttachmentEnaSrdSpecification& WithEnaSrdUdpSpecification(const AttachmentEnaSrdUdpSpecification& value) { SetEnaSrdUdpSpecification(value); return *this;} /** - *

      ENA Express configuration for UDP network traffic.

      + *

      Configures ENA Express for UDP network traffic.

      */ inline AttachmentEnaSrdSpecification& WithEnaSrdUdpSpecification(AttachmentEnaSrdUdpSpecification&& value) { SetEnaSrdUdpSpecification(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdUdpSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdUdpSpecification.h index 621b95515f8..37219a6b656 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdUdpSpecification.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/AttachmentEnaSrdUdpSpecification.h @@ -22,8 +22,13 @@ namespace Model { /** - *

      Describes the ENA Express configuration for UDP traffic on the network - * interface that's attached to the instance.

      See Also:

      ENA Express is compatible with both TCP and UDP transport protocols. When + * it's enabled, TCP traffic automatically uses it. However, some UDP-based + * applications are designed to handle network packets that are out of order, + * without a need for retransmission, such as live video broadcasting or other + * near-real-time applications. For UDP traffic, you can specify whether to use ENA + * Express, based on your application environment needs.

      See Also:

      + *
      AWS * API Reference

      */ diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/DescribeInstancesRequest.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/DescribeInstancesRequest.h index e17f25e772f..f518979efab 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/DescribeInstancesRequest.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/DescribeInstancesRequest.h @@ -92,9 +92,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 @@ -385,9 +386,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 @@ -678,9 +680,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 @@ -971,9 +974,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 @@ -1264,9 +1268,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 @@ -1557,9 +1562,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 @@ -1850,9 +1856,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 @@ -2143,9 +2150,10 @@ namespace Model * the instance. Specified as an name.

    • image-id - * The ID of the image used to launch the instance.

    • * instance-id - The ID of the instance.

    • - * instance-lifecycle - Indicates whether this is a Spot Instance or a - * Scheduled Instance (spot | scheduled).

    • - *

      instance-state-code - The state of the instance, as a 16-bit + * instance-lifecycle - Indicates whether this is a Spot Instance, a + * Scheduled Instance, or a Capacity Block (spot | + * scheduled | capacity-block).

    • + * instance-state-code - The state of the instance, as a 16-bit * unsigned integer. The high byte is used for internal purposes and should be * ignored. The low byte is set based on the state represented. The valid values * are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdSpecificationRequest.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdSpecificationRequest.h new file mode 100644 index 00000000000..c42452c813b --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdSpecificationRequest.h @@ -0,0 +1,115 @@ +/** + * 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 Xml +{ + class XmlNode; +} // namespace Xml +} // namespace Utils +namespace EC2 +{ +namespace Model +{ + + /** + *

      Launch instances with ENA Express settings configured from your launch + * template.

      See Also:

      AWS + * API Reference

      + */ + class EnaSrdSpecificationRequest + { + public: + AWS_EC2_API EnaSrdSpecificationRequest(); + AWS_EC2_API EnaSrdSpecificationRequest(const Aws::Utils::Xml::XmlNode& xmlNode); + AWS_EC2_API EnaSrdSpecificationRequest& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); + + AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; + AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; + + + /** + *

      Specifies whether ENA Express is enabled for the network interface when you + * launch an instance from your launch template.

      + */ + inline bool GetEnaSrdEnabled() const{ return m_enaSrdEnabled; } + + /** + *

      Specifies whether ENA Express is enabled for the network interface when you + * launch an instance from your launch template.

      + */ + inline bool EnaSrdEnabledHasBeenSet() const { return m_enaSrdEnabledHasBeenSet; } + + /** + *

      Specifies whether ENA Express is enabled for the network interface when you + * launch an instance from your launch template.

      + */ + inline void SetEnaSrdEnabled(bool value) { m_enaSrdEnabledHasBeenSet = true; m_enaSrdEnabled = value; } + + /** + *

      Specifies whether ENA Express is enabled for the network interface when you + * launch an instance from your launch template.

      + */ + inline EnaSrdSpecificationRequest& WithEnaSrdEnabled(bool value) { SetEnaSrdEnabled(value); return *this;} + + + /** + *

      Contains ENA Express settings for UDP network traffic in your launch + * template.

      + */ + inline const EnaSrdUdpSpecificationRequest& GetEnaSrdUdpSpecification() const{ return m_enaSrdUdpSpecification; } + + /** + *

      Contains ENA Express settings for UDP network traffic in your launch + * template.

      + */ + inline bool EnaSrdUdpSpecificationHasBeenSet() const { return m_enaSrdUdpSpecificationHasBeenSet; } + + /** + *

      Contains ENA Express settings for UDP network traffic in your launch + * template.

      + */ + inline void SetEnaSrdUdpSpecification(const EnaSrdUdpSpecificationRequest& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = value; } + + /** + *

      Contains ENA Express settings for UDP network traffic in your launch + * template.

      + */ + inline void SetEnaSrdUdpSpecification(EnaSrdUdpSpecificationRequest&& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = std::move(value); } + + /** + *

      Contains ENA Express settings for UDP network traffic in your launch + * template.

      + */ + inline EnaSrdSpecificationRequest& WithEnaSrdUdpSpecification(const EnaSrdUdpSpecificationRequest& value) { SetEnaSrdUdpSpecification(value); return *this;} + + /** + *

      Contains ENA Express settings for UDP network traffic in your launch + * template.

      + */ + inline EnaSrdSpecificationRequest& WithEnaSrdUdpSpecification(EnaSrdUdpSpecificationRequest&& value) { SetEnaSrdUdpSpecification(std::move(value)); return *this;} + + private: + + bool m_enaSrdEnabled; + bool m_enaSrdEnabledHasBeenSet = false; + + EnaSrdUdpSpecificationRequest m_enaSrdUdpSpecification; + bool m_enaSrdUdpSpecificationHasBeenSet = false; + }; + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdUdpSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdUdpSpecification.h index 253b6e6b2a9..0a9f501c79a 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdUdpSpecification.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdUdpSpecification.h @@ -23,7 +23,7 @@ namespace Model /** *

      ENA Express is compatible with both TCP and UDP transport protocols. When - * it’s enabled, TCP traffic automatically uses it. However, some UDP-based + * it's enabled, TCP traffic automatically uses it. However, some UDP-based * applications are designed to handle network packets that are out of order, * without a need for retransmission, such as live video broadcasting or other * near-real-time applications. For UDP traffic, you can specify whether to use ENA @@ -44,26 +44,26 @@ namespace Model /** - *

      Indicates whether UDP traffic uses ENA Express. To specify this setting, you - * must first enable ENA Express.

      + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      */ inline bool GetEnaSrdUdpEnabled() const{ return m_enaSrdUdpEnabled; } /** - *

      Indicates whether UDP traffic uses ENA Express. To specify this setting, you - * must first enable ENA Express.

      + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      */ inline bool EnaSrdUdpEnabledHasBeenSet() const { return m_enaSrdUdpEnabledHasBeenSet; } /** - *

      Indicates whether UDP traffic uses ENA Express. To specify this setting, you - * must first enable ENA Express.

      + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      */ inline void SetEnaSrdUdpEnabled(bool value) { m_enaSrdUdpEnabledHasBeenSet = true; m_enaSrdUdpEnabled = value; } /** - *

      Indicates whether UDP traffic uses ENA Express. To specify this setting, you - * must first enable ENA Express.

      + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      */ inline EnaSrdUdpSpecification& WithEnaSrdUdpEnabled(bool value) { SetEnaSrdUdpEnabled(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdUdpSpecificationRequest.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdUdpSpecificationRequest.h new file mode 100644 index 00000000000..39166b4b6c3 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/EnaSrdUdpSpecificationRequest.h @@ -0,0 +1,81 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Xml +{ + class XmlNode; +} // namespace Xml +} // namespace Utils +namespace EC2 +{ +namespace Model +{ + + /** + *

      Configures ENA Express for UDP network traffic from your launch + * template.

      See Also:

      AWS + * API Reference

      + */ + class EnaSrdUdpSpecificationRequest + { + public: + AWS_EC2_API EnaSrdUdpSpecificationRequest(); + AWS_EC2_API EnaSrdUdpSpecificationRequest(const Aws::Utils::Xml::XmlNode& xmlNode); + AWS_EC2_API EnaSrdUdpSpecificationRequest& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); + + AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; + AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; + + + /** + *

      Indicates whether UDP traffic uses ENA Express for your instance. To ensure + * that UDP traffic can use ENA Express when you launch an instance, you must also + * set EnaSrdEnabled in the EnaSrdSpecificationRequest to + * true in your launch template.

      + */ + inline bool GetEnaSrdUdpEnabled() const{ return m_enaSrdUdpEnabled; } + + /** + *

      Indicates whether UDP traffic uses ENA Express for your instance. To ensure + * that UDP traffic can use ENA Express when you launch an instance, you must also + * set EnaSrdEnabled in the EnaSrdSpecificationRequest to + * true in your launch template.

      + */ + inline bool EnaSrdUdpEnabledHasBeenSet() const { return m_enaSrdUdpEnabledHasBeenSet; } + + /** + *

      Indicates whether UDP traffic uses ENA Express for your instance. To ensure + * that UDP traffic can use ENA Express when you launch an instance, you must also + * set EnaSrdEnabled in the EnaSrdSpecificationRequest to + * true in your launch template.

      + */ + inline void SetEnaSrdUdpEnabled(bool value) { m_enaSrdUdpEnabledHasBeenSet = true; m_enaSrdUdpEnabled = value; } + + /** + *

      Indicates whether UDP traffic uses ENA Express for your instance. To ensure + * that UDP traffic can use ENA Express when you launch an instance, you must also + * set EnaSrdEnabled in the EnaSrdSpecificationRequest to + * true in your launch template.

      + */ + inline EnaSrdUdpSpecificationRequest& WithEnaSrdUdpEnabled(bool value) { SetEnaSrdUdpEnabled(value); return *this;} + + private: + + bool m_enaSrdUdpEnabled; + bool m_enaSrdUdpEnabledHasBeenSet = false; + }; + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceAttachmentEnaSrdSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceAttachmentEnaSrdSpecification.h new file mode 100644 index 00000000000..46f6c289524 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceAttachmentEnaSrdSpecification.h @@ -0,0 +1,114 @@ +/** + * 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 Xml +{ + class XmlNode; +} // namespace Xml +} // namespace Utils +namespace EC2 +{ +namespace Model +{ + + /** + *

      ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) + * technology to increase the maximum bandwidth used per stream and minimize tail + * latency of network traffic between EC2 instances. With ENA Express, you can + * communicate between two EC2 instances in the same subnet within the same + * account, or in different accounts. Both sending and receiving instances must + * have ENA Express enabled.

      To improve the reliability of network packet + * delivery, ENA Express reorders network packets on the receiving end by default. + * However, some UDP-based applications are designed to handle network packets that + * are out of order to reduce the overhead for packet delivery at the network + * layer. When ENA Express is enabled, you can specify whether UDP network traffic + * uses it.

      See Also:

      AWS + * API Reference

      + */ + class InstanceAttachmentEnaSrdSpecification + { + public: + AWS_EC2_API InstanceAttachmentEnaSrdSpecification(); + AWS_EC2_API InstanceAttachmentEnaSrdSpecification(const Aws::Utils::Xml::XmlNode& xmlNode); + AWS_EC2_API InstanceAttachmentEnaSrdSpecification& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); + + AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; + AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; + + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline bool GetEnaSrdEnabled() const{ return m_enaSrdEnabled; } + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline bool EnaSrdEnabledHasBeenSet() const { return m_enaSrdEnabledHasBeenSet; } + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline void SetEnaSrdEnabled(bool value) { m_enaSrdEnabledHasBeenSet = true; m_enaSrdEnabled = value; } + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline InstanceAttachmentEnaSrdSpecification& WithEnaSrdEnabled(bool value) { SetEnaSrdEnabled(value); return *this;} + + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline const InstanceAttachmentEnaSrdUdpSpecification& GetEnaSrdUdpSpecification() const{ return m_enaSrdUdpSpecification; } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline bool EnaSrdUdpSpecificationHasBeenSet() const { return m_enaSrdUdpSpecificationHasBeenSet; } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline void SetEnaSrdUdpSpecification(const InstanceAttachmentEnaSrdUdpSpecification& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = value; } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline void SetEnaSrdUdpSpecification(InstanceAttachmentEnaSrdUdpSpecification&& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = std::move(value); } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline InstanceAttachmentEnaSrdSpecification& WithEnaSrdUdpSpecification(const InstanceAttachmentEnaSrdUdpSpecification& value) { SetEnaSrdUdpSpecification(value); return *this;} + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline InstanceAttachmentEnaSrdSpecification& WithEnaSrdUdpSpecification(InstanceAttachmentEnaSrdUdpSpecification&& value) { SetEnaSrdUdpSpecification(std::move(value)); return *this;} + + private: + + bool m_enaSrdEnabled; + bool m_enaSrdEnabledHasBeenSet = false; + + InstanceAttachmentEnaSrdUdpSpecification m_enaSrdUdpSpecification; + bool m_enaSrdUdpSpecificationHasBeenSet = false; + }; + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceAttachmentEnaSrdUdpSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceAttachmentEnaSrdUdpSpecification.h new file mode 100644 index 00000000000..5f34861a503 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceAttachmentEnaSrdUdpSpecification.h @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Xml +{ + class XmlNode; +} // namespace Xml +} // namespace Utils +namespace EC2 +{ +namespace Model +{ + + /** + *

      ENA Express is compatible with both TCP and UDP transport protocols. When + * it's enabled, TCP traffic automatically uses it. However, some UDP-based + * applications are designed to handle network packets that are out of order, + * without a need for retransmission, such as live video broadcasting or other + * near-real-time applications. For UDP traffic, you can specify whether to use ENA + * Express, based on your application environment needs.

      See Also:

      + * AWS + * API Reference

      + */ + class InstanceAttachmentEnaSrdUdpSpecification + { + public: + AWS_EC2_API InstanceAttachmentEnaSrdUdpSpecification(); + AWS_EC2_API InstanceAttachmentEnaSrdUdpSpecification(const Aws::Utils::Xml::XmlNode& xmlNode); + AWS_EC2_API InstanceAttachmentEnaSrdUdpSpecification& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); + + AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; + AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; + + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline bool GetEnaSrdUdpEnabled() const{ return m_enaSrdUdpEnabled; } + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline bool EnaSrdUdpEnabledHasBeenSet() const { return m_enaSrdUdpEnabledHasBeenSet; } + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline void SetEnaSrdUdpEnabled(bool value) { m_enaSrdUdpEnabledHasBeenSet = true; m_enaSrdUdpEnabled = value; } + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline InstanceAttachmentEnaSrdUdpSpecification& WithEnaSrdUdpEnabled(bool value) { SetEnaSrdUdpEnabled(value); return *this;} + + private: + + bool m_enaSrdUdpEnabled; + bool m_enaSrdUdpEnabledHasBeenSet = false; + }; + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceAttachment.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceAttachment.h index 4df7e87db95..4ce6a592321 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceAttachment.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceAttachment.h @@ -9,6 +9,7 @@ #include #include #include +#include #include namespace Aws @@ -214,6 +215,43 @@ namespace Model */ inline InstanceNetworkInterfaceAttachment& WithNetworkCardIndex(int value) { SetNetworkCardIndex(value); return *this;} + + /** + *

      Contains the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline const InstanceAttachmentEnaSrdSpecification& GetEnaSrdSpecification() const{ return m_enaSrdSpecification; } + + /** + *

      Contains the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline bool EnaSrdSpecificationHasBeenSet() const { return m_enaSrdSpecificationHasBeenSet; } + + /** + *

      Contains the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline void SetEnaSrdSpecification(const InstanceAttachmentEnaSrdSpecification& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = value; } + + /** + *

      Contains the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline void SetEnaSrdSpecification(InstanceAttachmentEnaSrdSpecification&& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = std::move(value); } + + /** + *

      Contains the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline InstanceNetworkInterfaceAttachment& WithEnaSrdSpecification(const InstanceAttachmentEnaSrdSpecification& value) { SetEnaSrdSpecification(value); return *this;} + + /** + *

      Contains the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline InstanceNetworkInterfaceAttachment& WithEnaSrdSpecification(InstanceAttachmentEnaSrdSpecification&& value) { SetEnaSrdSpecification(std::move(value)); return *this;} + private: Aws::Utils::DateTime m_attachTime; @@ -233,6 +271,9 @@ namespace Model int m_networkCardIndex; bool m_networkCardIndexHasBeenSet = false; + + InstanceAttachmentEnaSrdSpecification m_enaSrdSpecification; + bool m_enaSrdSpecificationHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceSpecification.h index 35b81ad7ba8..5cbd111a87f 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceSpecification.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/InstanceNetworkInterfaceSpecification.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -969,6 +970,43 @@ namespace Model */ inline InstanceNetworkInterfaceSpecification& WithPrimaryIpv6(bool value) { SetPrimaryIpv6(value); return *this;} + + /** + *

      Specifies the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline const EnaSrdSpecificationRequest& GetEnaSrdSpecification() const{ return m_enaSrdSpecification; } + + /** + *

      Specifies the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline bool EnaSrdSpecificationHasBeenSet() const { return m_enaSrdSpecificationHasBeenSet; } + + /** + *

      Specifies the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline void SetEnaSrdSpecification(const EnaSrdSpecificationRequest& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = value; } + + /** + *

      Specifies the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline void SetEnaSrdSpecification(EnaSrdSpecificationRequest&& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = std::move(value); } + + /** + *

      Specifies the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline InstanceNetworkInterfaceSpecification& WithEnaSrdSpecification(const EnaSrdSpecificationRequest& value) { SetEnaSrdSpecification(value); return *this;} + + /** + *

      Specifies the ENA Express settings for the network interface that's attached + * to the instance.

      + */ + inline InstanceNetworkInterfaceSpecification& WithEnaSrdSpecification(EnaSrdSpecificationRequest&& value) { SetEnaSrdSpecification(std::move(value)); return *this;} + private: bool m_associatePublicIpAddress; @@ -1030,6 +1068,9 @@ namespace Model bool m_primaryIpv6; bool m_primaryIpv6HasBeenSet = false; + + EnaSrdSpecificationRequest m_enaSrdSpecification; + bool m_enaSrdSpecificationHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateEnaSrdSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateEnaSrdSpecification.h new file mode 100644 index 00000000000..88f725d2df3 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateEnaSrdSpecification.h @@ -0,0 +1,114 @@ +/** + * 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 Xml +{ + class XmlNode; +} // namespace Xml +} // namespace Utils +namespace EC2 +{ +namespace Model +{ + + /** + *

      ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) + * technology to increase the maximum bandwidth used per stream and minimize tail + * latency of network traffic between EC2 instances. With ENA Express, you can + * communicate between two EC2 instances in the same subnet within the same + * account, or in different accounts. Both sending and receiving instances must + * have ENA Express enabled.

      To improve the reliability of network packet + * delivery, ENA Express reorders network packets on the receiving end by default. + * However, some UDP-based applications are designed to handle network packets that + * are out of order to reduce the overhead for packet delivery at the network + * layer. When ENA Express is enabled, you can specify whether UDP network traffic + * uses it.

      See Also:

      AWS + * API Reference

      + */ + class LaunchTemplateEnaSrdSpecification + { + public: + AWS_EC2_API LaunchTemplateEnaSrdSpecification(); + AWS_EC2_API LaunchTemplateEnaSrdSpecification(const Aws::Utils::Xml::XmlNode& xmlNode); + AWS_EC2_API LaunchTemplateEnaSrdSpecification& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); + + AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; + AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; + + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline bool GetEnaSrdEnabled() const{ return m_enaSrdEnabled; } + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline bool EnaSrdEnabledHasBeenSet() const { return m_enaSrdEnabledHasBeenSet; } + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline void SetEnaSrdEnabled(bool value) { m_enaSrdEnabledHasBeenSet = true; m_enaSrdEnabled = value; } + + /** + *

      Indicates whether ENA Express is enabled for the network interface.

      + */ + inline LaunchTemplateEnaSrdSpecification& WithEnaSrdEnabled(bool value) { SetEnaSrdEnabled(value); return *this;} + + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline const LaunchTemplateEnaSrdUdpSpecification& GetEnaSrdUdpSpecification() const{ return m_enaSrdUdpSpecification; } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline bool EnaSrdUdpSpecificationHasBeenSet() const { return m_enaSrdUdpSpecificationHasBeenSet; } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline void SetEnaSrdUdpSpecification(const LaunchTemplateEnaSrdUdpSpecification& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = value; } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline void SetEnaSrdUdpSpecification(LaunchTemplateEnaSrdUdpSpecification&& value) { m_enaSrdUdpSpecificationHasBeenSet = true; m_enaSrdUdpSpecification = std::move(value); } + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline LaunchTemplateEnaSrdSpecification& WithEnaSrdUdpSpecification(const LaunchTemplateEnaSrdUdpSpecification& value) { SetEnaSrdUdpSpecification(value); return *this;} + + /** + *

      Configures ENA Express for UDP network traffic.

      + */ + inline LaunchTemplateEnaSrdSpecification& WithEnaSrdUdpSpecification(LaunchTemplateEnaSrdUdpSpecification&& value) { SetEnaSrdUdpSpecification(std::move(value)); return *this;} + + private: + + bool m_enaSrdEnabled; + bool m_enaSrdEnabledHasBeenSet = false; + + LaunchTemplateEnaSrdUdpSpecification m_enaSrdUdpSpecification; + bool m_enaSrdUdpSpecificationHasBeenSet = false; + }; + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateEnaSrdUdpSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateEnaSrdUdpSpecification.h new file mode 100644 index 00000000000..6e560c0dfa8 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateEnaSrdUdpSpecification.h @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Xml +{ + class XmlNode; +} // namespace Xml +} // namespace Utils +namespace EC2 +{ +namespace Model +{ + + /** + *

      ENA Express is compatible with both TCP and UDP transport protocols. When + * it's enabled, TCP traffic automatically uses it. However, some UDP-based + * applications are designed to handle network packets that are out of order, + * without a need for retransmission, such as live video broadcasting or other + * near-real-time applications. For UDP traffic, you can specify whether to use ENA + * Express, based on your application environment needs.

      See Also:

      + * AWS + * API Reference

      + */ + class LaunchTemplateEnaSrdUdpSpecification + { + public: + AWS_EC2_API LaunchTemplateEnaSrdUdpSpecification(); + AWS_EC2_API LaunchTemplateEnaSrdUdpSpecification(const Aws::Utils::Xml::XmlNode& xmlNode); + AWS_EC2_API LaunchTemplateEnaSrdUdpSpecification& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); + + AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; + AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; + + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline bool GetEnaSrdUdpEnabled() const{ return m_enaSrdUdpEnabled; } + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline bool EnaSrdUdpEnabledHasBeenSet() const { return m_enaSrdUdpEnabledHasBeenSet; } + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline void SetEnaSrdUdpEnabled(bool value) { m_enaSrdUdpEnabledHasBeenSet = true; m_enaSrdUdpEnabled = value; } + + /** + *

      Indicates whether UDP traffic to and from the instance uses ENA Express. To + * specify this setting, you must first enable ENA Express.

      + */ + inline LaunchTemplateEnaSrdUdpSpecification& WithEnaSrdUdpEnabled(bool value) { SetEnaSrdUdpEnabled(value); return *this;} + + private: + + bool m_enaSrdUdpEnabled; + bool m_enaSrdUdpEnabledHasBeenSet = false; + }; + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecification.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecification.h index 5dd5e5ded11..6e25552cb8f 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecification.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecification.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -720,6 +721,43 @@ namespace Model */ inline LaunchTemplateInstanceNetworkInterfaceSpecification& WithPrimaryIpv6(bool value) { SetPrimaryIpv6(value); return *this;} + + /** + *

      Contains the ENA Express settings for instances launched from your launch + * template.

      + */ + inline const LaunchTemplateEnaSrdSpecification& GetEnaSrdSpecification() const{ return m_enaSrdSpecification; } + + /** + *

      Contains the ENA Express settings for instances launched from your launch + * template.

      + */ + inline bool EnaSrdSpecificationHasBeenSet() const { return m_enaSrdSpecificationHasBeenSet; } + + /** + *

      Contains the ENA Express settings for instances launched from your launch + * template.

      + */ + inline void SetEnaSrdSpecification(const LaunchTemplateEnaSrdSpecification& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = value; } + + /** + *

      Contains the ENA Express settings for instances launched from your launch + * template.

      + */ + inline void SetEnaSrdSpecification(LaunchTemplateEnaSrdSpecification&& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = std::move(value); } + + /** + *

      Contains the ENA Express settings for instances launched from your launch + * template.

      + */ + inline LaunchTemplateInstanceNetworkInterfaceSpecification& WithEnaSrdSpecification(const LaunchTemplateEnaSrdSpecification& value) { SetEnaSrdSpecification(value); return *this;} + + /** + *

      Contains the ENA Express settings for instances launched from your launch + * template.

      + */ + inline LaunchTemplateInstanceNetworkInterfaceSpecification& WithEnaSrdSpecification(LaunchTemplateEnaSrdSpecification&& value) { SetEnaSrdSpecification(std::move(value)); return *this;} + private: bool m_associateCarrierIpAddress; @@ -781,6 +819,9 @@ namespace Model bool m_primaryIpv6; bool m_primaryIpv6HasBeenSet = false; + + LaunchTemplateEnaSrdSpecification m_enaSrdSpecification; + bool m_enaSrdSpecificationHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.h index 1c68109c809..6efc123ec33 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -816,6 +817,37 @@ namespace Model */ inline LaunchTemplateInstanceNetworkInterfaceSpecificationRequest& WithPrimaryIpv6(bool value) { SetPrimaryIpv6(value); return *this;} + + /** + *

      Configure ENA Express settings for your launch template.

      + */ + inline const EnaSrdSpecificationRequest& GetEnaSrdSpecification() const{ return m_enaSrdSpecification; } + + /** + *

      Configure ENA Express settings for your launch template.

      + */ + inline bool EnaSrdSpecificationHasBeenSet() const { return m_enaSrdSpecificationHasBeenSet; } + + /** + *

      Configure ENA Express settings for your launch template.

      + */ + inline void SetEnaSrdSpecification(const EnaSrdSpecificationRequest& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = value; } + + /** + *

      Configure ENA Express settings for your launch template.

      + */ + inline void SetEnaSrdSpecification(EnaSrdSpecificationRequest&& value) { m_enaSrdSpecificationHasBeenSet = true; m_enaSrdSpecification = std::move(value); } + + /** + *

      Configure ENA Express settings for your launch template.

      + */ + inline LaunchTemplateInstanceNetworkInterfaceSpecificationRequest& WithEnaSrdSpecification(const EnaSrdSpecificationRequest& value) { SetEnaSrdSpecification(value); return *this;} + + /** + *

      Configure ENA Express settings for your launch template.

      + */ + inline LaunchTemplateInstanceNetworkInterfaceSpecificationRequest& WithEnaSrdSpecification(EnaSrdSpecificationRequest&& value) { SetEnaSrdSpecification(std::move(value)); return *this;} + private: bool m_associateCarrierIpAddress; @@ -877,6 +909,9 @@ namespace Model bool m_primaryIpv6; bool m_primaryIpv6HasBeenSet = false; + + EnaSrdSpecificationRequest m_enaSrdSpecification; + bool m_enaSrdSpecificationHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateTagSpecificationRequest.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateTagSpecificationRequest.h index 3ca688378cb..761e385a944 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateTagSpecificationRequest.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/LaunchTemplateTagSpecificationRequest.h @@ -47,10 +47,10 @@ namespace Model * Amazon EC2 that can be tagged. When you create a launch template, you can * specify tags for the following resource types only: instance | * volume | elastic-gpu | network-interface - * | spot-instances-request. If the instance does include the resource - * type that you specify, the instance launch fails. For example, not all instance - * types include an Elastic GPU.

      To tag a resource after it has been - * created, see spot-instances-request. If the instance does not include the + * resource type that you specify, the instance launch fails. For example, not all + * instance types include an Elastic GPU.

      To tag a resource after it has + * been created, see CreateTags.

      */ inline const ResourceType& GetResourceType() const{ return m_resourceType; } @@ -60,10 +60,10 @@ namespace Model * Amazon EC2 that can be tagged. When you create a launch template, you can * specify tags for the following resource types only: instance | * volume | elastic-gpu | network-interface - * | spot-instances-request. If the instance does include the resource - * type that you specify, the instance launch fails. For example, not all instance - * types include an Elastic GPU.

      To tag a resource after it has been - * created, see spot-instances-request. If the instance does not include the + * resource type that you specify, the instance launch fails. For example, not all + * instance types include an Elastic GPU.

      To tag a resource after it has + * been created, see CreateTags.

      */ inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } @@ -73,10 +73,10 @@ namespace Model * Amazon EC2 that can be tagged. When you create a launch template, you can * specify tags for the following resource types only: instance | * volume | elastic-gpu | network-interface - * | spot-instances-request. If the instance does include the resource - * type that you specify, the instance launch fails. For example, not all instance - * types include an Elastic GPU.

      To tag a resource after it has been - * created, see spot-instances-request. If the instance does not include the + * resource type that you specify, the instance launch fails. For example, not all + * instance types include an Elastic GPU.

      To tag a resource after it has + * been created, see CreateTags.

      */ inline void SetResourceType(const ResourceType& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } @@ -86,10 +86,10 @@ namespace Model * Amazon EC2 that can be tagged. When you create a launch template, you can * specify tags for the following resource types only: instance | * volume | elastic-gpu | network-interface - * | spot-instances-request. If the instance does include the resource - * type that you specify, the instance launch fails. For example, not all instance - * types include an Elastic GPU.

      To tag a resource after it has been - * created, see spot-instances-request. If the instance does not include the + * resource type that you specify, the instance launch fails. For example, not all + * instance types include an Elastic GPU.

      To tag a resource after it has + * been created, see CreateTags.

      */ inline void SetResourceType(ResourceType&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } @@ -99,10 +99,10 @@ namespace Model * Amazon EC2 that can be tagged. When you create a launch template, you can * specify tags for the following resource types only: instance | * volume | elastic-gpu | network-interface - * | spot-instances-request. If the instance does include the resource - * type that you specify, the instance launch fails. For example, not all instance - * types include an Elastic GPU.

      To tag a resource after it has been - * created, see spot-instances-request. If the instance does not include the + * resource type that you specify, the instance launch fails. For example, not all + * instance types include an Elastic GPU.

      To tag a resource after it has + * been created, see CreateTags.

      */ inline LaunchTemplateTagSpecificationRequest& WithResourceType(const ResourceType& value) { SetResourceType(value); return *this;} @@ -112,10 +112,10 @@ namespace Model * Amazon EC2 that can be tagged. When you create a launch template, you can * specify tags for the following resource types only: instance | * volume | elastic-gpu | network-interface - * | spot-instances-request. If the instance does include the resource - * type that you specify, the instance launch fails. For example, not all instance - * types include an Elastic GPU.

      To tag a resource after it has been - * created, see spot-instances-request. If the instance does not include the + * resource type that you specify, the instance launch fails. For example, not all + * instance types include an Elastic GPU.

      To tag a resource after it has + * been created, see CreateTags.

      */ inline LaunchTemplateTagSpecificationRequest& WithResourceType(ResourceType&& value) { SetResourceType(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/RequestLaunchTemplateData.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/RequestLaunchTemplateData.h index f5c60ad7501..2ab0f0cc47a 100644 --- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/RequestLaunchTemplateData.h +++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/RequestLaunchTemplateData.h @@ -1212,137 +1212,110 @@ namespace Model /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline const Aws::Vector& GetSecurityGroupIds() const{ return m_securityGroupIds; } /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline void SetSecurityGroupIds(const Aws::Vector& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline void SetSecurityGroupIds(Aws::Vector&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline RequestLaunchTemplateData& WithSecurityGroupIds(const Aws::Vector& value) { SetSecurityGroupIds(value); return *this;} /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline RequestLaunchTemplateData& WithSecurityGroupIds(Aws::Vector&& value) { SetSecurityGroupIds(std::move(value)); return *this;} /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline RequestLaunchTemplateData& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline RequestLaunchTemplateData& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } /** *

      One or more security group IDs. You can create a security group using CreateSecurityGroup. - * You cannot specify both a security group ID and security name in the same - * request.

      + * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup.

      */ inline RequestLaunchTemplateData& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline const Aws::Vector& GetSecurityGroups() const{ return m_securityGroups; } /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; } /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline void SetSecurityGroups(const Aws::Vector& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; } /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline void SetSecurityGroups(Aws::Vector&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); } /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline RequestLaunchTemplateData& WithSecurityGroups(const Aws::Vector& value) { SetSecurityGroups(value); return *this;} /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline RequestLaunchTemplateData& WithSecurityGroups(Aws::Vector&& value) { SetSecurityGroups(std::move(value)); return *this;} /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline RequestLaunchTemplateData& AddSecurityGroups(const Aws::String& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline RequestLaunchTemplateData& AddSecurityGroups(Aws::String&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } /** *

      One or more security group names. For a nondefault VPC, you must use security - * group IDs instead. You cannot specify both a security group ID and security name - * in the same request.

      + * group IDs instead.

      */ inline RequestLaunchTemplateData& AddSecurityGroups(const char* value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/EnaSrdSpecificationRequest.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/EnaSrdSpecificationRequest.cpp new file mode 100644 index 00000000000..602ff557321 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/source/model/EnaSrdSpecificationRequest.cpp @@ -0,0 +1,93 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +#include + +using namespace Aws::Utils::Xml; +using namespace Aws::Utils; + +namespace Aws +{ +namespace EC2 +{ +namespace Model +{ + +EnaSrdSpecificationRequest::EnaSrdSpecificationRequest() : + m_enaSrdEnabled(false), + m_enaSrdEnabledHasBeenSet(false), + m_enaSrdUdpSpecificationHasBeenSet(false) +{ +} + +EnaSrdSpecificationRequest::EnaSrdSpecificationRequest(const XmlNode& xmlNode) : + m_enaSrdEnabled(false), + m_enaSrdEnabledHasBeenSet(false), + m_enaSrdUdpSpecificationHasBeenSet(false) +{ + *this = xmlNode; +} + +EnaSrdSpecificationRequest& EnaSrdSpecificationRequest::operator =(const XmlNode& xmlNode) +{ + XmlNode resultNode = xmlNode; + + if(!resultNode.IsNull()) + { + XmlNode enaSrdEnabledNode = resultNode.FirstChild("EnaSrdEnabled"); + if(!enaSrdEnabledNode.IsNull()) + { + m_enaSrdEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(enaSrdEnabledNode.GetText()).c_str()).c_str()); + m_enaSrdEnabledHasBeenSet = true; + } + XmlNode enaSrdUdpSpecificationNode = resultNode.FirstChild("EnaSrdUdpSpecification"); + if(!enaSrdUdpSpecificationNode.IsNull()) + { + m_enaSrdUdpSpecification = enaSrdUdpSpecificationNode; + m_enaSrdUdpSpecificationHasBeenSet = true; + } + } + + return *this; +} + +void EnaSrdSpecificationRequest::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const +{ + if(m_enaSrdEnabledHasBeenSet) + { + oStream << location << index << locationValue << ".EnaSrdEnabled=" << std::boolalpha << m_enaSrdEnabled << "&"; + } + + if(m_enaSrdUdpSpecificationHasBeenSet) + { + Aws::StringStream enaSrdUdpSpecificationLocationAndMemberSs; + enaSrdUdpSpecificationLocationAndMemberSs << location << index << locationValue << ".EnaSrdUdpSpecification"; + m_enaSrdUdpSpecification.OutputToStream(oStream, enaSrdUdpSpecificationLocationAndMemberSs.str().c_str()); + } + +} + +void EnaSrdSpecificationRequest::OutputToStream(Aws::OStream& oStream, const char* location) const +{ + if(m_enaSrdEnabledHasBeenSet) + { + oStream << location << ".EnaSrdEnabled=" << std::boolalpha << m_enaSrdEnabled << "&"; + } + if(m_enaSrdUdpSpecificationHasBeenSet) + { + Aws::String enaSrdUdpSpecificationLocationAndMember(location); + enaSrdUdpSpecificationLocationAndMember += ".EnaSrdUdpSpecification"; + m_enaSrdUdpSpecification.OutputToStream(oStream, enaSrdUdpSpecificationLocationAndMember.c_str()); + } +} + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/EnaSrdUdpSpecificationRequest.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/EnaSrdUdpSpecificationRequest.cpp new file mode 100644 index 00000000000..6cdcdd89c1f --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/source/model/EnaSrdUdpSpecificationRequest.cpp @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +#include + +using namespace Aws::Utils::Xml; +using namespace Aws::Utils; + +namespace Aws +{ +namespace EC2 +{ +namespace Model +{ + +EnaSrdUdpSpecificationRequest::EnaSrdUdpSpecificationRequest() : + m_enaSrdUdpEnabled(false), + m_enaSrdUdpEnabledHasBeenSet(false) +{ +} + +EnaSrdUdpSpecificationRequest::EnaSrdUdpSpecificationRequest(const XmlNode& xmlNode) : + m_enaSrdUdpEnabled(false), + m_enaSrdUdpEnabledHasBeenSet(false) +{ + *this = xmlNode; +} + +EnaSrdUdpSpecificationRequest& EnaSrdUdpSpecificationRequest::operator =(const XmlNode& xmlNode) +{ + XmlNode resultNode = xmlNode; + + if(!resultNode.IsNull()) + { + XmlNode enaSrdUdpEnabledNode = resultNode.FirstChild("EnaSrdUdpEnabled"); + if(!enaSrdUdpEnabledNode.IsNull()) + { + m_enaSrdUdpEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(enaSrdUdpEnabledNode.GetText()).c_str()).c_str()); + m_enaSrdUdpEnabledHasBeenSet = true; + } + } + + return *this; +} + +void EnaSrdUdpSpecificationRequest::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const +{ + if(m_enaSrdUdpEnabledHasBeenSet) + { + oStream << location << index << locationValue << ".EnaSrdUdpEnabled=" << std::boolalpha << m_enaSrdUdpEnabled << "&"; + } + +} + +void EnaSrdUdpSpecificationRequest::OutputToStream(Aws::OStream& oStream, const char* location) const +{ + if(m_enaSrdUdpEnabledHasBeenSet) + { + oStream << location << ".EnaSrdUdpEnabled=" << std::boolalpha << m_enaSrdUdpEnabled << "&"; + } +} + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/InstanceAttachmentEnaSrdSpecification.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceAttachmentEnaSrdSpecification.cpp new file mode 100644 index 00000000000..525af6e8b94 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceAttachmentEnaSrdSpecification.cpp @@ -0,0 +1,93 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +#include + +using namespace Aws::Utils::Xml; +using namespace Aws::Utils; + +namespace Aws +{ +namespace EC2 +{ +namespace Model +{ + +InstanceAttachmentEnaSrdSpecification::InstanceAttachmentEnaSrdSpecification() : + m_enaSrdEnabled(false), + m_enaSrdEnabledHasBeenSet(false), + m_enaSrdUdpSpecificationHasBeenSet(false) +{ +} + +InstanceAttachmentEnaSrdSpecification::InstanceAttachmentEnaSrdSpecification(const XmlNode& xmlNode) : + m_enaSrdEnabled(false), + m_enaSrdEnabledHasBeenSet(false), + m_enaSrdUdpSpecificationHasBeenSet(false) +{ + *this = xmlNode; +} + +InstanceAttachmentEnaSrdSpecification& InstanceAttachmentEnaSrdSpecification::operator =(const XmlNode& xmlNode) +{ + XmlNode resultNode = xmlNode; + + if(!resultNode.IsNull()) + { + XmlNode enaSrdEnabledNode = resultNode.FirstChild("enaSrdEnabled"); + if(!enaSrdEnabledNode.IsNull()) + { + m_enaSrdEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(enaSrdEnabledNode.GetText()).c_str()).c_str()); + m_enaSrdEnabledHasBeenSet = true; + } + XmlNode enaSrdUdpSpecificationNode = resultNode.FirstChild("enaSrdUdpSpecification"); + if(!enaSrdUdpSpecificationNode.IsNull()) + { + m_enaSrdUdpSpecification = enaSrdUdpSpecificationNode; + m_enaSrdUdpSpecificationHasBeenSet = true; + } + } + + return *this; +} + +void InstanceAttachmentEnaSrdSpecification::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const +{ + if(m_enaSrdEnabledHasBeenSet) + { + oStream << location << index << locationValue << ".EnaSrdEnabled=" << std::boolalpha << m_enaSrdEnabled << "&"; + } + + if(m_enaSrdUdpSpecificationHasBeenSet) + { + Aws::StringStream enaSrdUdpSpecificationLocationAndMemberSs; + enaSrdUdpSpecificationLocationAndMemberSs << location << index << locationValue << ".EnaSrdUdpSpecification"; + m_enaSrdUdpSpecification.OutputToStream(oStream, enaSrdUdpSpecificationLocationAndMemberSs.str().c_str()); + } + +} + +void InstanceAttachmentEnaSrdSpecification::OutputToStream(Aws::OStream& oStream, const char* location) const +{ + if(m_enaSrdEnabledHasBeenSet) + { + oStream << location << ".EnaSrdEnabled=" << std::boolalpha << m_enaSrdEnabled << "&"; + } + if(m_enaSrdUdpSpecificationHasBeenSet) + { + Aws::String enaSrdUdpSpecificationLocationAndMember(location); + enaSrdUdpSpecificationLocationAndMember += ".EnaSrdUdpSpecification"; + m_enaSrdUdpSpecification.OutputToStream(oStream, enaSrdUdpSpecificationLocationAndMember.c_str()); + } +} + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/InstanceAttachmentEnaSrdUdpSpecification.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceAttachmentEnaSrdUdpSpecification.cpp new file mode 100644 index 00000000000..078114a841f --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceAttachmentEnaSrdUdpSpecification.cpp @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +#include + +using namespace Aws::Utils::Xml; +using namespace Aws::Utils; + +namespace Aws +{ +namespace EC2 +{ +namespace Model +{ + +InstanceAttachmentEnaSrdUdpSpecification::InstanceAttachmentEnaSrdUdpSpecification() : + m_enaSrdUdpEnabled(false), + m_enaSrdUdpEnabledHasBeenSet(false) +{ +} + +InstanceAttachmentEnaSrdUdpSpecification::InstanceAttachmentEnaSrdUdpSpecification(const XmlNode& xmlNode) : + m_enaSrdUdpEnabled(false), + m_enaSrdUdpEnabledHasBeenSet(false) +{ + *this = xmlNode; +} + +InstanceAttachmentEnaSrdUdpSpecification& InstanceAttachmentEnaSrdUdpSpecification::operator =(const XmlNode& xmlNode) +{ + XmlNode resultNode = xmlNode; + + if(!resultNode.IsNull()) + { + XmlNode enaSrdUdpEnabledNode = resultNode.FirstChild("enaSrdUdpEnabled"); + if(!enaSrdUdpEnabledNode.IsNull()) + { + m_enaSrdUdpEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(enaSrdUdpEnabledNode.GetText()).c_str()).c_str()); + m_enaSrdUdpEnabledHasBeenSet = true; + } + } + + return *this; +} + +void InstanceAttachmentEnaSrdUdpSpecification::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const +{ + if(m_enaSrdUdpEnabledHasBeenSet) + { + oStream << location << index << locationValue << ".EnaSrdUdpEnabled=" << std::boolalpha << m_enaSrdUdpEnabled << "&"; + } + +} + +void InstanceAttachmentEnaSrdUdpSpecification::OutputToStream(Aws::OStream& oStream, const char* location) const +{ + if(m_enaSrdUdpEnabledHasBeenSet) + { + oStream << location << ".EnaSrdUdpEnabled=" << std::boolalpha << m_enaSrdUdpEnabled << "&"; + } +} + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceAttachment.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceAttachment.cpp index 4d93d7786d1..1f991a95f0c 100644 --- a/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceAttachment.cpp +++ b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceAttachment.cpp @@ -30,7 +30,8 @@ InstanceNetworkInterfaceAttachment::InstanceNetworkInterfaceAttachment() : m_status(AttachmentStatus::NOT_SET), m_statusHasBeenSet(false), m_networkCardIndex(0), - m_networkCardIndexHasBeenSet(false) + m_networkCardIndexHasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { } @@ -44,7 +45,8 @@ InstanceNetworkInterfaceAttachment::InstanceNetworkInterfaceAttachment(const Xml m_status(AttachmentStatus::NOT_SET), m_statusHasBeenSet(false), m_networkCardIndex(0), - m_networkCardIndexHasBeenSet(false) + m_networkCardIndexHasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { *this = xmlNode; } @@ -91,6 +93,12 @@ InstanceNetworkInterfaceAttachment& InstanceNetworkInterfaceAttachment::operator m_networkCardIndex = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(networkCardIndexNode.GetText()).c_str()).c_str()); m_networkCardIndexHasBeenSet = true; } + XmlNode enaSrdSpecificationNode = resultNode.FirstChild("enaSrdSpecification"); + if(!enaSrdSpecificationNode.IsNull()) + { + m_enaSrdSpecification = enaSrdSpecificationNode; + m_enaSrdSpecificationHasBeenSet = true; + } } return *this; @@ -128,6 +136,13 @@ void InstanceNetworkInterfaceAttachment::OutputToStream(Aws::OStream& oStream, c oStream << location << index << locationValue << ".NetworkCardIndex=" << m_networkCardIndex << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::StringStream enaSrdSpecificationLocationAndMemberSs; + enaSrdSpecificationLocationAndMemberSs << location << index << locationValue << ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMemberSs.str().c_str()); + } + } void InstanceNetworkInterfaceAttachment::OutputToStream(Aws::OStream& oStream, const char* location) const @@ -156,6 +171,12 @@ void InstanceNetworkInterfaceAttachment::OutputToStream(Aws::OStream& oStream, c { oStream << location << ".NetworkCardIndex=" << m_networkCardIndex << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::String enaSrdSpecificationLocationAndMember(location); + enaSrdSpecificationLocationAndMember += ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMember.c_str()); + } } } // namespace Model diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceSpecification.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceSpecification.cpp index 02370e15e08..81a0b9f6104 100644 --- a/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceSpecification.cpp +++ b/generated/src/aws-cpp-sdk-ec2/source/model/InstanceNetworkInterfaceSpecification.cpp @@ -50,7 +50,8 @@ InstanceNetworkInterfaceSpecification::InstanceNetworkInterfaceSpecification() : m_ipv6PrefixCount(0), m_ipv6PrefixCountHasBeenSet(false), m_primaryIpv6(false), - m_primaryIpv6HasBeenSet(false) + m_primaryIpv6HasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { } @@ -84,7 +85,8 @@ InstanceNetworkInterfaceSpecification::InstanceNetworkInterfaceSpecification(con m_ipv6PrefixCount(0), m_ipv6PrefixCountHasBeenSet(false), m_primaryIpv6(false), - m_primaryIpv6HasBeenSet(false) + m_primaryIpv6HasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { *this = xmlNode; } @@ -245,6 +247,12 @@ InstanceNetworkInterfaceSpecification& InstanceNetworkInterfaceSpecification::op m_primaryIpv6 = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(primaryIpv6Node.GetText()).c_str()).c_str()); m_primaryIpv6HasBeenSet = true; } + XmlNode enaSrdSpecificationNode = resultNode.FirstChild("EnaSrdSpecification"); + if(!enaSrdSpecificationNode.IsNull()) + { + m_enaSrdSpecification = enaSrdSpecificationNode; + m_enaSrdSpecificationHasBeenSet = true; + } } return *this; @@ -380,6 +388,13 @@ void InstanceNetworkInterfaceSpecification::OutputToStream(Aws::OStream& oStream oStream << location << index << locationValue << ".PrimaryIpv6=" << std::boolalpha << m_primaryIpv6 << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::StringStream enaSrdSpecificationLocationAndMemberSs; + enaSrdSpecificationLocationAndMemberSs << location << index << locationValue << ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMemberSs.str().c_str()); + } + } void InstanceNetworkInterfaceSpecification::OutputToStream(Aws::OStream& oStream, const char* location) const @@ -492,6 +507,12 @@ void InstanceNetworkInterfaceSpecification::OutputToStream(Aws::OStream& oStream { oStream << location << ".PrimaryIpv6=" << std::boolalpha << m_primaryIpv6 << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::String enaSrdSpecificationLocationAndMember(location); + enaSrdSpecificationLocationAndMember += ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMember.c_str()); + } } } // namespace Model diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateEnaSrdSpecification.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateEnaSrdSpecification.cpp new file mode 100644 index 00000000000..8be9e6ec508 --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateEnaSrdSpecification.cpp @@ -0,0 +1,93 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +#include + +using namespace Aws::Utils::Xml; +using namespace Aws::Utils; + +namespace Aws +{ +namespace EC2 +{ +namespace Model +{ + +LaunchTemplateEnaSrdSpecification::LaunchTemplateEnaSrdSpecification() : + m_enaSrdEnabled(false), + m_enaSrdEnabledHasBeenSet(false), + m_enaSrdUdpSpecificationHasBeenSet(false) +{ +} + +LaunchTemplateEnaSrdSpecification::LaunchTemplateEnaSrdSpecification(const XmlNode& xmlNode) : + m_enaSrdEnabled(false), + m_enaSrdEnabledHasBeenSet(false), + m_enaSrdUdpSpecificationHasBeenSet(false) +{ + *this = xmlNode; +} + +LaunchTemplateEnaSrdSpecification& LaunchTemplateEnaSrdSpecification::operator =(const XmlNode& xmlNode) +{ + XmlNode resultNode = xmlNode; + + if(!resultNode.IsNull()) + { + XmlNode enaSrdEnabledNode = resultNode.FirstChild("enaSrdEnabled"); + if(!enaSrdEnabledNode.IsNull()) + { + m_enaSrdEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(enaSrdEnabledNode.GetText()).c_str()).c_str()); + m_enaSrdEnabledHasBeenSet = true; + } + XmlNode enaSrdUdpSpecificationNode = resultNode.FirstChild("enaSrdUdpSpecification"); + if(!enaSrdUdpSpecificationNode.IsNull()) + { + m_enaSrdUdpSpecification = enaSrdUdpSpecificationNode; + m_enaSrdUdpSpecificationHasBeenSet = true; + } + } + + return *this; +} + +void LaunchTemplateEnaSrdSpecification::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const +{ + if(m_enaSrdEnabledHasBeenSet) + { + oStream << location << index << locationValue << ".EnaSrdEnabled=" << std::boolalpha << m_enaSrdEnabled << "&"; + } + + if(m_enaSrdUdpSpecificationHasBeenSet) + { + Aws::StringStream enaSrdUdpSpecificationLocationAndMemberSs; + enaSrdUdpSpecificationLocationAndMemberSs << location << index << locationValue << ".EnaSrdUdpSpecification"; + m_enaSrdUdpSpecification.OutputToStream(oStream, enaSrdUdpSpecificationLocationAndMemberSs.str().c_str()); + } + +} + +void LaunchTemplateEnaSrdSpecification::OutputToStream(Aws::OStream& oStream, const char* location) const +{ + if(m_enaSrdEnabledHasBeenSet) + { + oStream << location << ".EnaSrdEnabled=" << std::boolalpha << m_enaSrdEnabled << "&"; + } + if(m_enaSrdUdpSpecificationHasBeenSet) + { + Aws::String enaSrdUdpSpecificationLocationAndMember(location); + enaSrdUdpSpecificationLocationAndMember += ".EnaSrdUdpSpecification"; + m_enaSrdUdpSpecification.OutputToStream(oStream, enaSrdUdpSpecificationLocationAndMember.c_str()); + } +} + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateEnaSrdUdpSpecification.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateEnaSrdUdpSpecification.cpp new file mode 100644 index 00000000000..879691e721e --- /dev/null +++ b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateEnaSrdUdpSpecification.cpp @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +#include + +using namespace Aws::Utils::Xml; +using namespace Aws::Utils; + +namespace Aws +{ +namespace EC2 +{ +namespace Model +{ + +LaunchTemplateEnaSrdUdpSpecification::LaunchTemplateEnaSrdUdpSpecification() : + m_enaSrdUdpEnabled(false), + m_enaSrdUdpEnabledHasBeenSet(false) +{ +} + +LaunchTemplateEnaSrdUdpSpecification::LaunchTemplateEnaSrdUdpSpecification(const XmlNode& xmlNode) : + m_enaSrdUdpEnabled(false), + m_enaSrdUdpEnabledHasBeenSet(false) +{ + *this = xmlNode; +} + +LaunchTemplateEnaSrdUdpSpecification& LaunchTemplateEnaSrdUdpSpecification::operator =(const XmlNode& xmlNode) +{ + XmlNode resultNode = xmlNode; + + if(!resultNode.IsNull()) + { + XmlNode enaSrdUdpEnabledNode = resultNode.FirstChild("enaSrdUdpEnabled"); + if(!enaSrdUdpEnabledNode.IsNull()) + { + m_enaSrdUdpEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(enaSrdUdpEnabledNode.GetText()).c_str()).c_str()); + m_enaSrdUdpEnabledHasBeenSet = true; + } + } + + return *this; +} + +void LaunchTemplateEnaSrdUdpSpecification::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const +{ + if(m_enaSrdUdpEnabledHasBeenSet) + { + oStream << location << index << locationValue << ".EnaSrdUdpEnabled=" << std::boolalpha << m_enaSrdUdpEnabled << "&"; + } + +} + +void LaunchTemplateEnaSrdUdpSpecification::OutputToStream(Aws::OStream& oStream, const char* location) const +{ + if(m_enaSrdUdpEnabledHasBeenSet) + { + oStream << location << ".EnaSrdUdpEnabled=" << std::boolalpha << m_enaSrdUdpEnabled << "&"; + } +} + +} // namespace Model +} // namespace EC2 +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecification.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecification.cpp index c286cd39f6e..2628df4fb56 100644 --- a/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecification.cpp +++ b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecification.cpp @@ -50,7 +50,8 @@ LaunchTemplateInstanceNetworkInterfaceSpecification::LaunchTemplateInstanceNetwo m_ipv6PrefixCount(0), m_ipv6PrefixCountHasBeenSet(false), m_primaryIpv6(false), - m_primaryIpv6HasBeenSet(false) + m_primaryIpv6HasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { } @@ -84,7 +85,8 @@ LaunchTemplateInstanceNetworkInterfaceSpecification::LaunchTemplateInstanceNetwo m_ipv6PrefixCount(0), m_ipv6PrefixCountHasBeenSet(false), m_primaryIpv6(false), - m_primaryIpv6HasBeenSet(false) + m_primaryIpv6HasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { *this = xmlNode; } @@ -245,6 +247,12 @@ LaunchTemplateInstanceNetworkInterfaceSpecification& LaunchTemplateInstanceNetwo m_primaryIpv6 = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(primaryIpv6Node.GetText()).c_str()).c_str()); m_primaryIpv6HasBeenSet = true; } + XmlNode enaSrdSpecificationNode = resultNode.FirstChild("enaSrdSpecification"); + if(!enaSrdSpecificationNode.IsNull()) + { + m_enaSrdSpecification = enaSrdSpecificationNode; + m_enaSrdSpecificationHasBeenSet = true; + } } return *this; @@ -380,6 +388,13 @@ void LaunchTemplateInstanceNetworkInterfaceSpecification::OutputToStream(Aws::OS oStream << location << index << locationValue << ".PrimaryIpv6=" << std::boolalpha << m_primaryIpv6 << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::StringStream enaSrdSpecificationLocationAndMemberSs; + enaSrdSpecificationLocationAndMemberSs << location << index << locationValue << ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMemberSs.str().c_str()); + } + } void LaunchTemplateInstanceNetworkInterfaceSpecification::OutputToStream(Aws::OStream& oStream, const char* location) const @@ -492,6 +507,12 @@ void LaunchTemplateInstanceNetworkInterfaceSpecification::OutputToStream(Aws::OS { oStream << location << ".PrimaryIpv6=" << std::boolalpha << m_primaryIpv6 << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::String enaSrdSpecificationLocationAndMember(location); + enaSrdSpecificationLocationAndMember += ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMember.c_str()); + } } } // namespace Model diff --git a/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.cpp b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.cpp index fe82bb886d5..9b565face49 100644 --- a/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.cpp +++ b/generated/src/aws-cpp-sdk-ec2/source/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.cpp @@ -50,7 +50,8 @@ LaunchTemplateInstanceNetworkInterfaceSpecificationRequest::LaunchTemplateInstan m_ipv6PrefixCount(0), m_ipv6PrefixCountHasBeenSet(false), m_primaryIpv6(false), - m_primaryIpv6HasBeenSet(false) + m_primaryIpv6HasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { } @@ -84,7 +85,8 @@ LaunchTemplateInstanceNetworkInterfaceSpecificationRequest::LaunchTemplateInstan m_ipv6PrefixCount(0), m_ipv6PrefixCountHasBeenSet(false), m_primaryIpv6(false), - m_primaryIpv6HasBeenSet(false) + m_primaryIpv6HasBeenSet(false), + m_enaSrdSpecificationHasBeenSet(false) { *this = xmlNode; } @@ -245,6 +247,12 @@ LaunchTemplateInstanceNetworkInterfaceSpecificationRequest& LaunchTemplateInstan m_primaryIpv6 = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(primaryIpv6Node.GetText()).c_str()).c_str()); m_primaryIpv6HasBeenSet = true; } + XmlNode enaSrdSpecificationNode = resultNode.FirstChild("EnaSrdSpecification"); + if(!enaSrdSpecificationNode.IsNull()) + { + m_enaSrdSpecification = enaSrdSpecificationNode; + m_enaSrdSpecificationHasBeenSet = true; + } } return *this; @@ -380,6 +388,13 @@ void LaunchTemplateInstanceNetworkInterfaceSpecificationRequest::OutputToStream( oStream << location << index << locationValue << ".PrimaryIpv6=" << std::boolalpha << m_primaryIpv6 << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::StringStream enaSrdSpecificationLocationAndMemberSs; + enaSrdSpecificationLocationAndMemberSs << location << index << locationValue << ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMemberSs.str().c_str()); + } + } void LaunchTemplateInstanceNetworkInterfaceSpecificationRequest::OutputToStream(Aws::OStream& oStream, const char* location) const @@ -492,6 +507,12 @@ void LaunchTemplateInstanceNetworkInterfaceSpecificationRequest::OutputToStream( { oStream << location << ".PrimaryIpv6=" << std::boolalpha << m_primaryIpv6 << "&"; } + if(m_enaSrdSpecificationHasBeenSet) + { + Aws::String enaSrdSpecificationLocationAndMember(location); + enaSrdSpecificationLocationAndMember += ".EnaSrdSpecification"; + m_enaSrdSpecification.OutputToStream(oStream, enaSrdSpecificationLocationAndMember.c_str()); + } } } // namespace Model diff --git a/generated/src/aws-cpp-sdk-fms/include/aws/fms/FMSClient.h b/generated/src/aws-cpp-sdk-fms/include/aws/fms/FMSClient.h index 047d2ca4a9c..45baa7f6668 100644 --- a/generated/src/aws-cpp-sdk-fms/include/aws/fms/FMSClient.h +++ b/generated/src/aws-cpp-sdk-fms/include/aws/fms/FMSClient.h @@ -1105,24 +1105,35 @@ namespace FMS } /** - *

      Creates an Firewall Manager policy.

      Firewall Manager provides the - * following types of policies:

      • An WAF policy (type WAFV2), which - * defines rule groups to run first in the corresponding WAF web ACL and rule - * groups to run last in the web ACL.

      • An WAF Classic policy (type - * WAF), which defines a rule group.

      • A Shield Advanced policy, - * which applies Shield Advanced protection to specified accounts and - * resources.

      • A security group policy, which manages VPC security - * groups across your Amazon Web Services organization.

      • An - * Network Firewall policy, which provides firewall rules to filter network traffic - * in specified Amazon VPCs.

      • A DNS Firewall policy, which - * provides Route 53 Resolver DNS Firewall rules to filter DNS queries for - * specified VPCs.

      Each policy is specific to one of the types. - * If you want to enforce more than one policy type across accounts, create - * multiple policies. You can create multiple policies for each type.

      You - * must be subscribed to Shield Advanced to create a Shield Advanced policy. For - * more information about subscribing to Shield Advanced, see CreateSubscription.

      See - * Also:

      Creates an Firewall Manager policy.

      A Firewall Manager policy is + * specific to the individual policy type. If you want to enforce multiple policy + * types across accounts, you can create multiple policies. You can create more + * than one policy for each type.

      If you add a new account to an + * organization that you created with Organizations, Firewall Manager automatically + * applies the policy to the resources in that account that are within scope of the + * policy.

      Firewall Manager provides the following types of policies:

      + *

      See Also:

      AWS API * Reference

      */ diff --git a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/DeletePolicyRequest.h b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/DeletePolicyRequest.h index 504bea52c94..e7c34e101e4 100644 --- a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/DeletePolicyRequest.h +++ b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/DeletePolicyRequest.h @@ -93,14 +93,17 @@ namespace Model * policy:

      • Disassociates the security group from in-scope * resources

      • Deletes the security group if it was created * through Firewall Manager and if it's no longer associated with any resources - * through another policy

      After the cleanup, in-scope resources - * are no longer protected by web ACLs in this policy. Protection of out-of-scope - * resources remains unchanged. Scope is determined by tags that you create and - * accounts that you associate with the policy. When creating the policy, if you - * specify that only resources in specific accounts or with specific tags are in - * scope of the policy, those accounts and resources are handled by the policy. All - * others are out of scope. If you don't specify tags or accounts, all resources - * are in scope.

      + * through another policy

    For security group common + * policies, even if set to False, Firewall Manager deletes all + * security groups created by Firewall Manager that aren't associated with any + * other resources through another policy.

    After the cleanup, + * in-scope resources are no longer protected by web ACLs in this policy. + * Protection of out-of-scope resources remains unchanged. Scope is determined by + * tags that you create and accounts that you associate with the policy. When + * creating the policy, if you specify that only resources in specific accounts or + * with specific tags are in scope of the policy, those accounts and resources are + * handled by the policy. All others are out of scope. If you don't specify tags or + * accounts, all resources are in scope.

    */ inline bool GetDeleteAllPolicyResources() const{ return m_deleteAllPolicyResources; } @@ -114,14 +117,17 @@ namespace Model * policy:

    • Disassociates the security group from in-scope * resources

    • Deletes the security group if it was created * through Firewall Manager and if it's no longer associated with any resources - * through another policy

    After the cleanup, in-scope resources - * are no longer protected by web ACLs in this policy. Protection of out-of-scope - * resources remains unchanged. Scope is determined by tags that you create and - * accounts that you associate with the policy. When creating the policy, if you - * specify that only resources in specific accounts or with specific tags are in - * scope of the policy, those accounts and resources are handled by the policy. All - * others are out of scope. If you don't specify tags or accounts, all resources - * are in scope.

    + * through another policy

    For security group common + * policies, even if set to False, Firewall Manager deletes all + * security groups created by Firewall Manager that aren't associated with any + * other resources through another policy.

    After the cleanup, + * in-scope resources are no longer protected by web ACLs in this policy. + * Protection of out-of-scope resources remains unchanged. Scope is determined by + * tags that you create and accounts that you associate with the policy. When + * creating the policy, if you specify that only resources in specific accounts or + * with specific tags are in scope of the policy, those accounts and resources are + * handled by the policy. All others are out of scope. If you don't specify tags or + * accounts, all resources are in scope.

    */ inline bool DeleteAllPolicyResourcesHasBeenSet() const { return m_deleteAllPolicyResourcesHasBeenSet; } @@ -135,14 +141,17 @@ namespace Model * policy:

    • Disassociates the security group from in-scope * resources

    • Deletes the security group if it was created * through Firewall Manager and if it's no longer associated with any resources - * through another policy

    After the cleanup, in-scope resources - * are no longer protected by web ACLs in this policy. Protection of out-of-scope - * resources remains unchanged. Scope is determined by tags that you create and - * accounts that you associate with the policy. When creating the policy, if you - * specify that only resources in specific accounts or with specific tags are in - * scope of the policy, those accounts and resources are handled by the policy. All - * others are out of scope. If you don't specify tags or accounts, all resources - * are in scope.

    + * through another policy

    For security group common + * policies, even if set to False, Firewall Manager deletes all + * security groups created by Firewall Manager that aren't associated with any + * other resources through another policy.

    After the cleanup, + * in-scope resources are no longer protected by web ACLs in this policy. + * Protection of out-of-scope resources remains unchanged. Scope is determined by + * tags that you create and accounts that you associate with the policy. When + * creating the policy, if you specify that only resources in specific accounts or + * with specific tags are in scope of the policy, those accounts and resources are + * handled by the policy. All others are out of scope. If you don't specify tags or + * accounts, all resources are in scope.

    */ inline void SetDeleteAllPolicyResources(bool value) { m_deleteAllPolicyResourcesHasBeenSet = true; m_deleteAllPolicyResources = value; } @@ -156,14 +165,17 @@ namespace Model * policy:

    • Disassociates the security group from in-scope * resources

    • Deletes the security group if it was created * through Firewall Manager and if it's no longer associated with any resources - * through another policy

    After the cleanup, in-scope resources - * are no longer protected by web ACLs in this policy. Protection of out-of-scope - * resources remains unchanged. Scope is determined by tags that you create and - * accounts that you associate with the policy. When creating the policy, if you - * specify that only resources in specific accounts or with specific tags are in - * scope of the policy, those accounts and resources are handled by the policy. All - * others are out of scope. If you don't specify tags or accounts, all resources - * are in scope.

    + * through another policy

    For security group common + * policies, even if set to False, Firewall Manager deletes all + * security groups created by Firewall Manager that aren't associated with any + * other resources through another policy.

    After the cleanup, + * in-scope resources are no longer protected by web ACLs in this policy. + * Protection of out-of-scope resources remains unchanged. Scope is determined by + * tags that you create and accounts that you associate with the policy. When + * creating the policy, if you specify that only resources in specific accounts or + * with specific tags are in scope of the policy, those accounts and resources are + * handled by the policy. All others are out of scope. If you don't specify tags or + * accounts, all resources are in scope.

    */ inline DeletePolicyRequest& WithDeleteAllPolicyResources(bool value) { SetDeleteAllPolicyResources(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/GetViolationDetailsRequest.h b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/GetViolationDetailsRequest.h index c417094d557..d9f380c6082 100644 --- a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/GetViolationDetailsRequest.h +++ b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/GetViolationDetailsRequest.h @@ -35,50 +35,74 @@ namespace Model /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline const Aws::String& GetPolicyId() const{ return m_policyId; } /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline bool PolicyIdHasBeenSet() const { return m_policyIdHasBeenSet; } /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline void SetPolicyId(const Aws::String& value) { m_policyIdHasBeenSet = true; m_policyId = value; } /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline void SetPolicyId(Aws::String&& value) { m_policyIdHasBeenSet = true; m_policyId = std::move(value); } /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline void SetPolicyId(const char* value) { m_policyIdHasBeenSet = true; m_policyId.assign(value); } /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline GetViolationDetailsRequest& WithPolicyId(const Aws::String& value) { SetPolicyId(value); return *this;} /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline GetViolationDetailsRequest& WithPolicyId(Aws::String&& value) { SetPolicyId(std::move(value)); return *this;} /** - *

    The ID of the Firewall Manager policy that you want the details for. This - * currently only supports security group content audit policies.

    + *

    The ID of the Firewall Manager policy that you want the details for. You can + * get violation details for the following policy types:

    • DNS + * Firewall

    • Imported Network Firewall

    • Network + * Firewall

    • Security group content audit

    • + *

      Third-party firewall

    */ inline GetViolationDetailsRequest& WithPolicyId(const char* value) { SetPolicyId(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/Policy.h b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/Policy.h index 7dc2d76be05..535f6fd03cd 100644 --- a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/Policy.h +++ b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/Policy.h @@ -241,18 +241,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline const Aws::String& GetResourceType() const{ return m_resourceType; } @@ -262,18 +267,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } @@ -283,18 +293,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline void SetResourceType(const Aws::String& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } @@ -304,18 +319,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline void SetResourceType(Aws::String&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } @@ -325,18 +345,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline void SetResourceType(const char* value) { m_resourceTypeHasBeenSet = true; m_resourceType.assign(value); } @@ -346,18 +371,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline Policy& WithResourceType(const Aws::String& value) { SetResourceType(value); return *this;} @@ -367,18 +397,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline Policy& WithResourceType(Aws::String&& value) { SetResourceType(std::move(value)); return *this;} @@ -388,18 +423,23 @@ namespace Model * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon * Web Services Resource Types Reference. To apply this policy to multiple * resource types, specify a resource type of ResourceTypeList and - * then specify the resource types in a ResourceTypeList.

    For - * WAF and Shield Advanced, resource types include + * then specify the resource types in a ResourceTypeList.

    The + * following are valid resource types for each Firewall Manager policy type:

    + *
    • Amazon Web Services WAF Classic - + * AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + * and AWS::ElasticLoadBalancingV2::LoadBalancer.

    • + *

      WAF - AWS::ApiGateway::Stage, + * AWS::ElasticLoadBalancingV2::LoadBalancer, and + * AWS::CloudFront::Distribution.

    • DNS Firewall, + * Network Firewall, and third-party firewall - AWS::EC2::VPC.

      + *
    • Shield Advanced - * AWS::ElasticLoadBalancingV2::LoadBalancer, * AWS::ElasticLoadBalancing::LoadBalancer, - * AWS::EC2::EIP, and AWS::CloudFront::Distribution. For - * a security group common policy, valid values are - * AWS::EC2::NetworkInterface and AWS::EC2::Instance. For - * a security group content audit policy, valid values are + * AWS::EC2::EIP, and AWS::CloudFront::Distribution.

      + *
    • Security group content audit - * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, - * and AWS::EC2::Instance. For a security group usage audit policy, - * the value is AWS::EC2::SecurityGroup. For an Network Firewall - * policy or DNS Firewall policy, the value is AWS::EC2::VPC.

      + * and AWS::EC2::Instance.

    • Security group usage + * audit - AWS::EC2::SecurityGroup.

    */ inline Policy& WithResourceType(const char* value) { SetResourceType(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/SecurityServicePolicyData.h b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/SecurityServicePolicyData.h index 7735021c865..dbfed21b6d8 100644 --- a/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/SecurityServicePolicyData.h +++ b/generated/src/aws-cpp-sdk-fms/include/aws/fms/model/SecurityServicePolicyData.h @@ -108,6 +108,7 @@ namespace Model *

    Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

  • Example: IMPORT_NETWORK_FIREWALL + *

    * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

    * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -156,16 +157,7 @@ namespace Model *

    To use the distributed deployment model, you must set PolicyOption * to NULL.

  • Example: - * THIRD_PARTY_FIREWALL

    "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

  • Example: SECURITY_GROUPS_COMMON - *

    + * SECURITY_GROUPS_COMMON

    * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

  • Example: @@ -194,12 +186,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

    *
  • Example: SECURITY_GROUPS_USAGE_AUDIT

    * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

  • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

    + *

  • Example: SHIELD_ADVANCED with web ACL + * management

    + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

    If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

    Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

    If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

  • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

    * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

    For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

    For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

    The default value for @@ -209,38 +220,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

    *

    For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

  • - *
  • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

    - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

    • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

    • Example: THIRD_PARTY_FIREWALL

      Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

      "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

    • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

      + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

    • Example: * WAFV2 - CAPTCHA and Challenge configs *

      - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

      If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

      • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

      • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

        + * in the WAF API Reference.

      • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

    • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

      * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

      To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, @@ -289,6 +336,7 @@ namespace Model *

      Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

    • Example: IMPORT_NETWORK_FIREWALL + *

      * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

      * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -337,16 +385,7 @@ namespace Model *

      To use the distributed deployment model, you must set PolicyOption * to NULL.

    • Example: - * THIRD_PARTY_FIREWALL

      "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

    • Example: SECURITY_GROUPS_COMMON - *

      + * SECURITY_GROUPS_COMMON

      * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

    • Example: @@ -375,12 +414,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

      *
    • Example: SECURITY_GROUPS_USAGE_AUDIT

      * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

    • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

      + *

    • Example: SHIELD_ADVANCED with web ACL + * management

      + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

      If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

      Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

      If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

    • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

      * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

      For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

      For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

      The default value for @@ -390,38 +448,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

      *

      For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

    • - *
    • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

      - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

      • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

      • Example: THIRD_PARTY_FIREWALL

        Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

        "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

      • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

        + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

      • Example: * WAFV2 - CAPTCHA and Challenge configs *

        - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

        If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

        • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

        • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

          + * in the WAF API Reference.

        • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

      • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

        * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

        To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, @@ -470,6 +564,7 @@ namespace Model *

        Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

      • Example: IMPORT_NETWORK_FIREWALL + *

        * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

        * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -518,16 +613,7 @@ namespace Model *

        To use the distributed deployment model, you must set PolicyOption * to NULL.

      • Example: - * THIRD_PARTY_FIREWALL

        "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

      • Example: SECURITY_GROUPS_COMMON - *

        + * SECURITY_GROUPS_COMMON

        * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

      • Example: @@ -556,12 +642,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

        *
      • Example: SECURITY_GROUPS_USAGE_AUDIT

        * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

      • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

        + *

      • Example: SHIELD_ADVANCED with web ACL + * management

        + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

        If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

        Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

        If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

      • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

        * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

        For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

        For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

        The default value for @@ -571,38 +676,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

        *

        For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

      • - *
      • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

        - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

        • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

        • Example: THIRD_PARTY_FIREWALL

          Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

          "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

        • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

          + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

        • Example: * WAFV2 - CAPTCHA and Challenge configs *

          - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

          If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

          • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

          • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

            + * in the WAF API Reference.

          • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

        • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

          * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

          To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, @@ -651,6 +792,7 @@ namespace Model *

          Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

        • Example: IMPORT_NETWORK_FIREWALL + *

          * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

          * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -699,16 +841,7 @@ namespace Model *

          To use the distributed deployment model, you must set PolicyOption * to NULL.

        • Example: - * THIRD_PARTY_FIREWALL

          "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

        • Example: SECURITY_GROUPS_COMMON - *

          + * SECURITY_GROUPS_COMMON

          * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

        • Example: @@ -737,12 +870,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

          *
        • Example: SECURITY_GROUPS_USAGE_AUDIT

          * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

        • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

          + *

        • Example: SHIELD_ADVANCED with web ACL + * management

          + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

          If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

          Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

          If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

        • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

          * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

          For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

          For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

          The default value for @@ -752,38 +904,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

          *

          For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

        • - *
        • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

          - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

          • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

          • Example: THIRD_PARTY_FIREWALL

            Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

            "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

          • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

            + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

          • Example: * WAFV2 - CAPTCHA and Challenge configs *

            - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

            If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

            • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

            • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

              + * in the WAF API Reference.

            • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

          • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

            * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

            To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, @@ -832,6 +1020,7 @@ namespace Model *

            Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

          • Example: IMPORT_NETWORK_FIREWALL + *

            * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

            * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -880,16 +1069,7 @@ namespace Model *

            To use the distributed deployment model, you must set PolicyOption * to NULL.

          • Example: - * THIRD_PARTY_FIREWALL

            "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

          • Example: SECURITY_GROUPS_COMMON - *

            + * SECURITY_GROUPS_COMMON

            * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

          • Example: @@ -918,12 +1098,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

            *
          • Example: SECURITY_GROUPS_USAGE_AUDIT

            * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

          • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

            + *

          • Example: SHIELD_ADVANCED with web ACL + * management

            + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

            If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

            Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

            If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

          • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

            * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

            For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

            For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

            The default value for @@ -933,38 +1132,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

            *

            For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

          • - *
          • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

            - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

            • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

            • Example: THIRD_PARTY_FIREWALL

              Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

              "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

            • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

              + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

            • Example: * WAFV2 - CAPTCHA and Challenge configs *

              - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

              If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

              • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

              • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

                + * in the WAF API Reference.

              • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

            • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

              * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

              To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, @@ -1013,6 +1248,7 @@ namespace Model *

              Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

            • Example: IMPORT_NETWORK_FIREWALL + *

              * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

              * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -1061,16 +1297,7 @@ namespace Model *

              To use the distributed deployment model, you must set PolicyOption * to NULL.

            • Example: - * THIRD_PARTY_FIREWALL

              "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

            • Example: SECURITY_GROUPS_COMMON - *

              + * SECURITY_GROUPS_COMMON

              * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

            • Example: @@ -1099,12 +1326,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

              *
            • Example: SECURITY_GROUPS_USAGE_AUDIT

              * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

            • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

              + *

            • Example: SHIELD_ADVANCED with web ACL + * management

              + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

              If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

              Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

              If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

            • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

              * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

              For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

              For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

              The default value for @@ -1114,38 +1360,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

              *

              For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

            • - *
            • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

              - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

              • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

              • Example: THIRD_PARTY_FIREWALL

                Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

                "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

              • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

                + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

              • Example: * WAFV2 - CAPTCHA and Challenge configs *

                - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

                If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

                • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

                • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

                  + * in the WAF API Reference.

                • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

              • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

                * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

                To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, @@ -1194,6 +1476,7 @@ namespace Model *

                Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

              • Example: IMPORT_NETWORK_FIREWALL + *

                * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

                * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -1242,16 +1525,7 @@ namespace Model *

                To use the distributed deployment model, you must set PolicyOption * to NULL.

              • Example: - * THIRD_PARTY_FIREWALL

                "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

              • Example: SECURITY_GROUPS_COMMON - *

                + * SECURITY_GROUPS_COMMON

                * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

              • Example: @@ -1280,12 +1554,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

                *
              • Example: SECURITY_GROUPS_USAGE_AUDIT

                * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

              • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

                + *

              • Example: SHIELD_ADVANCED with web ACL + * management

                + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

                If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

                Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

                If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

              • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

                * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

                For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

                For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

                The default value for @@ -1295,38 +1588,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

                *

                For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

              • - *
              • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

                - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

                • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

                • Example: THIRD_PARTY_FIREWALL

                  Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

                  "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

                • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

                  + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

                • Example: * WAFV2 - CAPTCHA and Challenge configs *

                  - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

                  If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

                  • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

                  • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

                    + * in the WAF API Reference.

                  • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

                • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

                  * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

                  To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, @@ -1375,6 +1704,7 @@ namespace Model *

                  Valid values for preProcessRuleGroups are between 1 * and 99. Valid values for postProcessRuleGroups are between 9901 and * 10000.

                • Example: IMPORT_NETWORK_FIREWALL + *

                  * "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" *

                  * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" @@ -1423,16 +1753,7 @@ namespace Model *

                  To use the distributed deployment model, you must set PolicyOption * to NULL.

                • Example: - * THIRD_PARTY_FIREWALL

                  "{ - * "type":"THIRD_PARTY_FIREWALL", - * "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - * "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, - * "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - * "endpointLocation":{ "availabilityZoneConfigList":[ { - * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] - * } } } }"

                • Example: SECURITY_GROUPS_COMMON - *

                  + * SECURITY_GROUPS_COMMON

                  * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" * sg-000e55995d61a06bd\"}]}"

                • Example: @@ -1461,12 +1782,31 @@ namespace Model * a range that matches a rule value or range in the policy security group.

                  *
                • Example: SECURITY_GROUPS_USAGE_AUDIT

                  * "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" - *

                • Specification for SHIELD_ADVANCED for Amazon - * CloudFront distributions

                  + *

                • Example: SHIELD_ADVANCED with web ACL + * management

                  + * "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + *

                  If you set optimizeUnassociatedWebACL to true, + * Firewall Manager creates web ACLs in accounts within the policy scope if the web + * ACLs will be used by at least one resource. Firewall Manager creates web ACLs in + * the accounts within policy scope only if the web ACLs will be used by at least + * one resource. If at any time an account comes into policy scope, Firewall + * Manager automatically creates a web ACL in the account if at least one resource + * will use the web ACL.

                  Upon enablement, Firewall Manager performs a + * one-time cleanup of unused web ACLs in your account. The cleanup process can + * take several hours. If a resource leaves policy scope after Firewall Manager + * creates a web ACL, Firewall Manager doesn't disassociate the resource from the + * web ACL. If you want Firewall Manager to clean up the web ACL, you must first + * manually disassociate the resources from the web ACL, and then enable the manage + * unused web ACLs option in your policy.

                  If you set + * optimizeUnassociatedWebACL to false, and Firewall + * Manager automatically creates an empty web ACL in each account that's within + * policy scope.

                • Specification for SHIELD_ADVANCED + * for Amazon CloudFront distributions

                  * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", * \"automaticResponseAction\":\"BLOCK|COUNT\"}, - * \"overrideCustomerWebaclClassic\":true|false}"

                  For example: + * \"overrideCustomerWebaclClassic\":true|false, + * \"optimizeUnassociatedWebACL\":true|false}"

                  For example: * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": * {\"automaticResponseStatus\":\"ENABLED\", * \"automaticResponseAction\":\"COUNT\"}}"

                  The default value for @@ -1476,38 +1816,74 @@ namespace Model * value for overrideCustomerWebaclClassic is false.

                  *

                  For other resource types that you can protect with a Shield Advanced policy, * this ManagedServiceData configuration is an empty string.

                • - *
                • Example: WAFV2 - Account takeover prevention and Bot - * Control managed rule groups, and rule action override

                  - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - *

                  • Fraud Control account takeover prevention (ATP) - For - * information about the properties available for + *

                  • Example: THIRD_PARTY_FIREWALL

                    Replace + * THIRD_PARTY_FIREWALL_NAME with the name of the third-party + * firewall.

                    "{ "type":"THIRD_PARTY_FIREWALL", + * "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + * "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + * "distributedFirewallDeploymentModel":{ + * "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ + * "endpointLocation":{ "availabilityZoneConfigList":[ { + * "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] + * } } } }"

                  • Example: WAFV2 - Account + * takeover prevention, Bot Control managed rule groups, optimize unassociated web + * ACL, and rule action override

                    + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + *

                  • Example: * WAFV2 - CAPTCHA and Challenge configs *

                    - * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - *

                    If you update the policy's values for captchaConfig, - * challengeConfig, or tokenDomains, Firewall Manager - * will overwrite your local web ACLs to contain the new value(s). However, if you - * don't update the policy's captchaConfig, + * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + *

                    • CAPTCHA and Challenge configs - If + * you update the policy's values for associationConfig, + * captchaConfig, challengeConfig, or + * tokenDomains, Firewall Manager will overwrite your local web ACLs + * to contain the new value(s). However, if you don't update the policy's + * associationConfig, captchaConfig, * challengeConfig, or tokenDomains values, the values in - * your local web ACLs will remain unchanged. For information about CAPTCHA and - * Challenge configs, see AssociationConfig. + * For information about CAPTCHA and Challenge configs, see CaptchaConfig * and ChallengeConfig - * in the WAF API Reference.

                    • Example: WAFV2 - - * Firewall Manager support for WAF managed rule group versioning

                      + * in the WAF API Reference.

                    • + * defaultSizeInspectionLimit - Specifies the maximum size of the web + * request body component that an associated Amazon CloudFront distribution should + * send to WAF for inspection. For more information, see DefaultSizeInspectionLimit + * in the WAF API Reference.

                  • Example: + * WAFV2 - Firewall Manager support for WAF managed rule group + * versioning

                    * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

                    To use a specific version of a WAF managed rule group in your Firewall * Manager policy, you must set versionEnabled to true, diff --git a/generated/src/aws-cpp-sdk-fms/source/FMSEndpointRules.cpp b/generated/src/aws-cpp-sdk-fms/source/FMSEndpointRules.cpp index e96a09b8468..b1355536183 100644 --- a/generated/src/aws-cpp-sdk-fms/source/FMSEndpointRules.cpp +++ b/generated/src/aws-cpp-sdk-fms/source/FMSEndpointRules.cpp @@ -51,106 +51,106 @@ static constexpr RulesBlobT RulesBlob = {{ ',','"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}','}',',','"','r','u','l','e','s', '"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', 'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n', -'d','p','o','i','n','t','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"', -',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', -'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r', -'u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o', -'n','f','i','g','u','r','a','t','i','o','n',':',' ','F','I','P','S',' ','a','n','d',' ','c','u','s', -'t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p', -'o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', -'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', -'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', -'e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a', -'t','i','o','n',':',' ','D','u','a','l','s','t','a','c','k',' ','a','n','d',' ','c','u','s','t','o', -'m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r', -'t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o', -'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', -'"','u','r','l','"',':','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',',', -'"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', -':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}', -',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', -'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', -'o','n','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', -'"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':', -'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g', -'n','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t', -'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'d','p','o','i','n','t','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', 'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n', 'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U', -'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o', -'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e', -'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}', -']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[', -'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', -'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',', -'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', -'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', -'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',',','{','"','f','n','"',':', -'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t', -'r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v', -'"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l', -'t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}', -']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"', -':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o', -'i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','f','m','s','-', -'f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R', -'e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}', -'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r', -'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}', -']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o', -'r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a','l','S','t','a','c','k',' ','a','r', -'e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i', -'t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','o','n','e', -' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}', -']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', -'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"', -'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"', -'t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c', -'o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a', -'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"','f', -'n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e', -'f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s','u', -'p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"', -'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o', -'n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':', -'"','h','t','t','p','s',':','/','/','f','m','s','-','f','i','p','s','.','{','R','e','g','i','o','n', -'}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f', -'f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e', -'a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i', -'n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', -'e','r','r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ','b', -'u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o', -'t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"','e', -'r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':', +'"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','F', +'I','P','S',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a', +'r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', '"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', 'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"', -'}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"', +'}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i', +'d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','D','u','a','l','s','t','a','c', +'k',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e', +' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e', +'r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', +'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','{','"','r','e','f','"',':','"', +'E','n','d','p','o','i','n','t','"','}',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', +'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', +'n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}', +',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', +'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', +'o','n','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t', +'i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i', +'o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o', +'n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','"','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u', +'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F', +'I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e', +'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', +'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', 'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"', 'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v', '"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"', 'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R', -'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c', -'k','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e', -'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/', -'f','m','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e', -'s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"', -',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s', -'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']', -'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r', -'"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s',' ','e','n','a','b','l','e','d',' ','b', -'u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o', -'t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S','t','a','c','k','"',',','"','t','y','p', -'e','"',':','"','e','r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n', -'s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"', -'h','t','t','p','s',':','/','/','f','m','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r', +'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']', +'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"', +'a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t', +'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l', +'S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', +'"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','f','m','s','-','f','i','p','s','.','{', +'R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#', +'d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o', +'p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}', +',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p', +'e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':', +'[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a','l', +'S','t','a','c','k',' ','a','r','e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t','h', +'i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p', +'p','o','r','t',' ','o','n','e',' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', +'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f', +'"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','r','u','l', +'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"', +':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[', +'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', +'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', +'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',',','t','r','u','e',']','}',']',',', +'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']', +',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s', +':','/','/','f','m','s','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r', 't','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',', '"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', -':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}', -']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o', +':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',', +'"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o', +'n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e', +'n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n', +' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"', +'t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t', +'r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', +'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':', +'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t', +'r','u','e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i', +'o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l', +'s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e', +'t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a', +'r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s', +'D','u','a','l','S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n', +'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','f','m','s','.','{','R', +'e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d', +'u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p', +'e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',', +'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e', +'"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', +']',',','"','e','r','r','o','r','"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s',' ','e', +'n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n', +' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S','t','a', +'c','k','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t','y','p', +'e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':', +'[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t', +'p','s',':','/','/','f','m','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r', +'o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}', +'}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y', +'p','e','"',':','"','t','r','e','e','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e', +'"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o', 'r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n', ':',' ','M','i','s','s','i','n','g',' ','R','e','g','i','o','n','"',',','"','t','y','p','e','"',':', '"','e','r','r','o','r','"','}',']','}','\0' diff --git a/generated/src/aws-cpp-sdk-marketplace-entitlement/source/MarketplaceEntitlementServiceEndpointRules.cpp b/generated/src/aws-cpp-sdk-marketplace-entitlement/source/MarketplaceEntitlementServiceEndpointRules.cpp index 3e0e0179049..909353ab234 100644 --- a/generated/src/aws-cpp-sdk-marketplace-entitlement/source/MarketplaceEntitlementServiceEndpointRules.cpp +++ b/generated/src/aws-cpp-sdk-marketplace-entitlement/source/MarketplaceEntitlementServiceEndpointRules.cpp @@ -51,118 +51,118 @@ static constexpr RulesBlobT RulesBlob = {{ ',','"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}','}',',','"','r','u','l','e','s', '"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', 'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n', -'d','p','o','i','n','t','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"', -',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', -'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r', -'u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o', -'n','f','i','g','u','r','a','t','i','o','n',':',' ','F','I','P','S',' ','a','n','d',' ','c','u','s', -'t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p', -'o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', -'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', -'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', -'e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a', -'t','i','o','n',':',' ','D','u','a','l','s','t','a','c','k',' ','a','n','d',' ','c','u','s','t','o', -'m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r', -'t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o', -'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', -'"','u','r','l','"',':','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',',', -'"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', -':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}', -',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', -'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', -'o','n','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', -'"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':', -'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g', -'n','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t', -'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'d','p','o','i','n','t','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', 'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n', 'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U', -'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o', -'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e', -'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}', -']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[', -'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', -'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',', -'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', -'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', -'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',',','{','"','f','n','"',':', -'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t', -'r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v', -'"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l', -'t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}', -']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"', -':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o', -'i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','e','n','t','i', -'t','l','e','m','e','n','t','.','m','a','r','k','e','t','p','l','a','c','e','-','f','i','p','s','.', -'{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t', -'#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r', -'o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}', -'}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F', -'I','P','S',' ','a','n','d',' ','D','u','a','l','S','t','a','c','k',' ','a','r','e',' ','e','n','a', -'b','l','e','d',',',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ', -'d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','o','n','e',' ','o','r',' ','b', -'o','t','h','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', +'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':', +'"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','F', +'I','P','S',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a', +'r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', +'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"', +'}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i', +'d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','D','u','a','l','s','t','a','c', +'k',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e', +' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e', +'r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', +'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','{','"','r','e','f','"',':','"', +'E','n','d','p','o','i','n','t','"','}',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', +'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', +'n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}', +',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', +'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', +'o','n','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t', +'i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i', +'o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o', +'n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','"','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u', +'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F', +'I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e', 'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', -'"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"', -':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t', -'i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a', -'l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g', -'e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P', -'a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t', -'s','F','I','P','S','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"', -',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', -']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p', -'s',':','/','/','e','n','t','i','t','l','e','m','e','n','t','.','m','a','r','k','e','t','p','l','a', -'c','e','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i', -'o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o', -'p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}', -',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c', -'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F','I', -'P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a', -'r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ', -'F','I','P','S','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',',','{', -'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l', -'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"', -':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',', -'"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', -'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"', -'f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r', -'e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s', -'u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}',']','}',']',',','"','t', -'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', +'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"', +'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v', +'"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"', +'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']', +'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"', +'a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t', +'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l', +'S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', 'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', '"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','e','n','t','i','t','l','e','m','e','n', -'t','.','m','a','r','k','e','t','p','l','a','c','e','.','{','R','e','g','i','o','n','}','.','{','P', -'a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D', -'n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', -'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', -'n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"', -':','[',']',',','"','e','r','r','o','r','"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s', -' ','e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i', -'o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S', -'t','a','c','k','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',',','{', -'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i', -'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','"','a','w','s','"',',','{', -'"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"', -'r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"', -'n','a','m','e','"',']','}',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u', -'r','l','"',':','"','h','t','t','p','s',':','/','/','e','n','t','i','t','l','e','m','e','n','t','.', -'m','a','r','k','e','t','p','l','a','c','e','.','{','R','e','g','i','o','n','}','.','a','m','a','z', -'o','n','a','w','s','.','c','o','m','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', -'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', -'n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', -']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p', -'s',':','/','/','e','n','t','i','t','l','e','m','e','n','t','.','m','a','r','k','e','t','p','l','a', -'c','e','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s', -'u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i', +'t','.','m','a','r','k','e','t','p','l','a','c','e','-','f','i','p','s','.','{','R','e','g','i','o', +'n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','u','a','l','S', +'t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i', 'e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p', -'e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','c','o','n','d', +'e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t', +'r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e', +'r','r','o','r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a','l','S','t','a','c','k', +' ','a','r','e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t','h','i','s',' ','p','a', +'r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ', +'o','n','e',' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"',':','"','e','r','r','o', +'r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n', +'d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E', +'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s', +'e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','r','u','l','e','s','"',':','[', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', +'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"', +':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"', +':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p', +'o','r','t','s','F','I','P','S','"',']','}',',','t','r','u','e',']','}',']',',','"','r','u','l','e', +'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d', +'p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','e','n', +'t','i','t','l','e','m','e','n','t','.','m','a','r','k','e','t','p','l','a','c','e','-','f','i','p', +'s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u', +'l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e', +'s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e', +'"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r', +'e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r', +'r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ','b','u','t', +' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ', +'s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"','e','r','r', +'o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o', +'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n', +'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U', +'s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"','r','u', +'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', +'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':', +'[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r', +'g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s', +'u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"', +']','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o', +'n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':', +'"','h','t','t','p','s',':','/','/','e','n','t','i','t','l','e','m','e','n','t','.','m','a','r','k', +'e','t','p','l','a','c','e','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i', +'o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f', +'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a', +'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n', +'t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n', +'d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','D','u','a','l', +'S','t','a','c','k',' ','i','s',' ','e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s', +' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o', +'r','t',' ','D','u','a','l','S','t','a','c','k','"',',','"','t','y','p','e','"',':','"','e','r','r', +'o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o', +'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E', +'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','"','a','w','s','"',',','{','"','f','n', +'"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f', +'"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','n','a','m', +'e','"',']','}',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"', +':','"','h','t','t','p','s',':','/','/','e','n','t','i','t','l','e','m','e','n','t','.','m','a','r', +'k','e','t','p','l','a','c','e','.','{','R','e','g','i','o','n','}','.','a','m','a','z','o','n','a', +'w','s','.','c','o','m','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"', +'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p', +'o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', +'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/', +'/','e','n','t','i','t','l','e','m','e','n','t','.','m','a','r','k','e','t','p','l','a','c','e','.', +'{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t', +'#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"', +':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':', +'"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e', +'"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d', 'i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l', 'i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','M','i','s','s','i','n','g', ' ','R','e','g','i','o','n','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']', diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AiffSettings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AiffSettings.h index 143e3294d17..ce2b4eeafd9 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AiffSettings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AiffSettings.h @@ -86,22 +86,22 @@ namespace Model /** - * Sample rate in hz. + * Sample rate in Hz. */ inline int GetSampleRate() const{ return m_sampleRate; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline bool SampleRateHasBeenSet() const { return m_sampleRateHasBeenSet; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline void SetSampleRate(int value) { m_sampleRateHasBeenSet = true; m_sampleRate = value; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline AiffSettings& WithSampleRate(int value) { SetSampleRate(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioChannelTaggingSettings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioChannelTaggingSettings.h index 7fc5e770332..fedc0dc21e0 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioChannelTaggingSettings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioChannelTaggingSettings.h @@ -6,6 +6,7 @@ #pragma once #include #include +#include #include namespace Aws @@ -24,14 +25,11 @@ namespace Model { /** - * When you mimic a multi-channel audio layout with multiple mono-channel tracks, - * you can tag each channel layout manually. For example, you would tag the tracks - * that contain your left, right, and center audio with Left (L), Right (R), and - * Center (C), respectively. When you don't specify a value, MediaConvert labels - * your track as Center (C) by default. To use audio layout tagging, your output - * must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or - * AIFF; and you must set up your audio track to have only one channel.

                    See - * Also:

                    See Also:

                    AWS * API Reference

                    */ @@ -45,51 +43,153 @@ namespace Model /** - * You can add a tag for this mono-channel audio track to mimic its placement in a - * multi-channel layout. For example, if this track is the left surround channel, - * choose Left surround (LS). + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. */ inline const AudioChannelTag& GetChannelTag() const{ return m_channelTag; } /** - * You can add a tag for this mono-channel audio track to mimic its placement in a - * multi-channel layout. For example, if this track is the left surround channel, - * choose Left surround (LS). + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. */ inline bool ChannelTagHasBeenSet() const { return m_channelTagHasBeenSet; } /** - * You can add a tag for this mono-channel audio track to mimic its placement in a - * multi-channel layout. For example, if this track is the left surround channel, - * choose Left surround (LS). + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. */ inline void SetChannelTag(const AudioChannelTag& value) { m_channelTagHasBeenSet = true; m_channelTag = value; } /** - * You can add a tag for this mono-channel audio track to mimic its placement in a - * multi-channel layout. For example, if this track is the left surround channel, - * choose Left surround (LS). + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. */ inline void SetChannelTag(AudioChannelTag&& value) { m_channelTagHasBeenSet = true; m_channelTag = std::move(value); } /** - * You can add a tag for this mono-channel audio track to mimic its placement in a - * multi-channel layout. For example, if this track is the left surround channel, - * choose Left surround (LS). + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. */ inline AudioChannelTaggingSettings& WithChannelTag(const AudioChannelTag& value) { SetChannelTag(value); return *this;} /** - * You can add a tag for this mono-channel audio track to mimic its placement in a - * multi-channel layout. For example, if this track is the left surround channel, - * choose Left surround (LS). + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. */ inline AudioChannelTaggingSettings& WithChannelTag(AudioChannelTag&& value) { SetChannelTag(std::move(value)); return *this;} + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline const Aws::Vector& GetChannelTags() const{ return m_channelTags; } + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline bool ChannelTagsHasBeenSet() const { return m_channelTagsHasBeenSet; } + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline void SetChannelTags(const Aws::Vector& value) { m_channelTagsHasBeenSet = true; m_channelTags = value; } + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline void SetChannelTags(Aws::Vector&& value) { m_channelTagsHasBeenSet = true; m_channelTags = std::move(value); } + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline AudioChannelTaggingSettings& WithChannelTags(const Aws::Vector& value) { SetChannelTags(value); return *this;} + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline AudioChannelTaggingSettings& WithChannelTags(Aws::Vector&& value) { SetChannelTags(std::move(value)); return *this;} + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline AudioChannelTaggingSettings& AddChannelTags(const AudioChannelTag& value) { m_channelTagsHasBeenSet = true; m_channelTags.push_back(value); return *this; } + + /** + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. Enter channel layout tags in the same order as your output's audio + * channel order. For example, if your output audio track has a left and a right + * channel, enter Left (L) for the first channel and Right (R) for the second. If + * your output has multiple single-channel audio tracks, enter a single channel + * layout tag for each track. + */ + inline AudioChannelTaggingSettings& AddChannelTags(AudioChannelTag&& value) { m_channelTagsHasBeenSet = true; m_channelTags.push_back(std::move(value)); return *this; } + private: AudioChannelTag m_channelTag; bool m_channelTagHasBeenSet = false; + + Aws::Vector m_channelTags; + bool m_channelTagsHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioDescription.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioDescription.h index b47f725e992..557d5936e8a 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioDescription.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/AudioDescription.h @@ -50,68 +50,50 @@ namespace Model /** - * When you mimic a multi-channel audio layout with multiple mono-channel tracks, - * you can tag each channel layout manually. For example, you would tag the tracks - * that contain your left, right, and center audio with Left (L), Right (R), and - * Center (C), respectively. When you don't specify a value, MediaConvert labels - * your track as Center (C) by default. To use audio layout tagging, your output - * must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or - * AIFF; and you must set up your audio track to have only one channel. + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. When you don't specify a value, MediaConvert labels your track as + * Center (C) by default. To use Audio layout tagging, your output must be in a + * QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF. */ inline const AudioChannelTaggingSettings& GetAudioChannelTaggingSettings() const{ return m_audioChannelTaggingSettings; } /** - * When you mimic a multi-channel audio layout with multiple mono-channel tracks, - * you can tag each channel layout manually. For example, you would tag the tracks - * that contain your left, right, and center audio with Left (L), Right (R), and - * Center (C), respectively. When you don't specify a value, MediaConvert labels - * your track as Center (C) by default. To use audio layout tagging, your output - * must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or - * AIFF; and you must set up your audio track to have only one channel. + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. When you don't specify a value, MediaConvert labels your track as + * Center (C) by default. To use Audio layout tagging, your output must be in a + * QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF. */ inline bool AudioChannelTaggingSettingsHasBeenSet() const { return m_audioChannelTaggingSettingsHasBeenSet; } /** - * When you mimic a multi-channel audio layout with multiple mono-channel tracks, - * you can tag each channel layout manually. For example, you would tag the tracks - * that contain your left, right, and center audio with Left (L), Right (R), and - * Center (C), respectively. When you don't specify a value, MediaConvert labels - * your track as Center (C) by default. To use audio layout tagging, your output - * must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or - * AIFF; and you must set up your audio track to have only one channel. + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. When you don't specify a value, MediaConvert labels your track as + * Center (C) by default. To use Audio layout tagging, your output must be in a + * QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF. */ inline void SetAudioChannelTaggingSettings(const AudioChannelTaggingSettings& value) { m_audioChannelTaggingSettingsHasBeenSet = true; m_audioChannelTaggingSettings = value; } /** - * When you mimic a multi-channel audio layout with multiple mono-channel tracks, - * you can tag each channel layout manually. For example, you would tag the tracks - * that contain your left, right, and center audio with Left (L), Right (R), and - * Center (C), respectively. When you don't specify a value, MediaConvert labels - * your track as Center (C) by default. To use audio layout tagging, your output - * must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or - * AIFF; and you must set up your audio track to have only one channel. + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. When you don't specify a value, MediaConvert labels your track as + * Center (C) by default. To use Audio layout tagging, your output must be in a + * QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF. */ inline void SetAudioChannelTaggingSettings(AudioChannelTaggingSettings&& value) { m_audioChannelTaggingSettingsHasBeenSet = true; m_audioChannelTaggingSettings = std::move(value); } /** - * When you mimic a multi-channel audio layout with multiple mono-channel tracks, - * you can tag each channel layout manually. For example, you would tag the tracks - * that contain your left, right, and center audio with Left (L), Right (R), and - * Center (C), respectively. When you don't specify a value, MediaConvert labels - * your track as Center (C) by default. To use audio layout tagging, your output - * must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or - * AIFF; and you must set up your audio track to have only one channel. + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. When you don't specify a value, MediaConvert labels your track as + * Center (C) by default. To use Audio layout tagging, your output must be in a + * QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF. */ inline AudioDescription& WithAudioChannelTaggingSettings(const AudioChannelTaggingSettings& value) { SetAudioChannelTaggingSettings(value); return *this;} /** - * When you mimic a multi-channel audio layout with multiple mono-channel tracks, - * you can tag each channel layout manually. For example, you would tag the tracks - * that contain your left, right, and center audio with Left (L), Right (R), and - * Center (C), respectively. When you don't specify a value, MediaConvert labels - * your track as Center (C) by default. To use audio layout tagging, your output - * must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or - * AIFF; and you must set up your audio track to have only one channel. + * Specify the QuickTime audio channel layout tags for the audio channels in this + * audio track. When you don't specify a value, MediaConvert labels your track as + * Center (C) by default. To use Audio layout tagging, your output must be in a + * QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF. */ inline AudioDescription& WithAudioChannelTaggingSettings(AudioChannelTaggingSettings&& value) { SetAudioChannelTaggingSettings(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/F4vSettings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/F4vSettings.h index b6c6dbae3fc..a4721b3c924 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/F4vSettings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/F4vSettings.h @@ -38,44 +38,44 @@ namespace Model /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline const F4vMoovPlacement& GetMoovPlacement() const{ return m_moovPlacement; } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline bool MoovPlacementHasBeenSet() const { return m_moovPlacementHasBeenSet; } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline void SetMoovPlacement(const F4vMoovPlacement& value) { m_moovPlacementHasBeenSet = true; m_moovPlacement = value; } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline void SetMoovPlacement(F4vMoovPlacement&& value) { m_moovPlacementHasBeenSet = true; m_moovPlacement = std::move(value); } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline F4vSettings& WithMoovPlacement(const F4vMoovPlacement& value) { SetMoovPlacement(value); return *this;} /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline F4vSettings& WithMoovPlacement(F4vMoovPlacement&& value) { SetMoovPlacement(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/FlacSettings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/FlacSettings.h index 8a596f1044d..32c6feeeec5 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/FlacSettings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/FlacSettings.h @@ -91,22 +91,22 @@ namespace Model /** - * Sample rate in hz. + * Sample rate in Hz. */ inline int GetSampleRate() const{ return m_sampleRate; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline bool SampleRateHasBeenSet() const { return m_sampleRateHasBeenSet; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline void SetSampleRate(int value) { m_sampleRateHasBeenSet = true; m_sampleRate = value; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline FlacSettings& WithSampleRate(int value) { SetSampleRate(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobSettings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobSettings.h index 92ac0e599c8..a5b125b9dae 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobSettings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobSettings.h @@ -203,6 +203,55 @@ namespace Model inline JobSettings& WithExtendedDataServices(ExtendedDataServices&& value) { SetExtendedDataServices(std::move(value)); return *this;} + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline int GetFollowSource() const{ return m_followSource; } + + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline bool FollowSourceHasBeenSet() const { return m_followSourceHasBeenSet; } + + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline void SetFollowSource(int value) { m_followSourceHasBeenSet = true; m_followSource = value; } + + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline JobSettings& WithFollowSource(int value) { SetFollowSource(value); return *this;} + + /** * Use Inputs to define source file used in the transcode job. There can be * multiple inputs add in a job. These inputs will be concantenated together to @@ -670,6 +719,9 @@ namespace Model ExtendedDataServices m_extendedDataServices; bool m_extendedDataServicesHasBeenSet = false; + int m_followSource; + bool m_followSourceHasBeenSet = false; + Aws::Vector m_inputs; bool m_inputsHasBeenSet = false; diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobTemplateSettings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobTemplateSettings.h index 2d947100383..488ca3d1207 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobTemplateSettings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/JobTemplateSettings.h @@ -203,6 +203,55 @@ namespace Model inline JobTemplateSettings& WithExtendedDataServices(ExtendedDataServices&& value) { SetExtendedDataServices(std::move(value)); return *this;} + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline int GetFollowSource() const{ return m_followSource; } + + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline bool FollowSourceHasBeenSet() const { return m_followSourceHasBeenSet; } + + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline void SetFollowSource(int value) { m_followSourceHasBeenSet = true; m_followSource = value; } + + /** + * Specify the input that MediaConvert references for your default output settings. + * MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + * for all outputs that you don't manually specify different output settings for. + * Enabling this setting will disable "Follow source" for all other inputs. If + * MediaConvert cannot follow your source, for example if you specify an audio-only + * input, MediaConvert uses the first followable input instead. In your JSON job + * specification, enter an integer from 1 to 150 corresponding to the order of + * your inputs. + */ + inline JobTemplateSettings& WithFollowSource(int value) { SetFollowSource(value); return *this;} + + /** * Use Inputs to define the source file used in the transcode job. There can only * be one input in a job template. Using the API, you can include multiple inputs @@ -670,6 +719,9 @@ namespace Model ExtendedDataServices m_extendedDataServices; bool m_extendedDataServicesHasBeenSet = false; + int m_followSource; + bool m_followSourceHasBeenSet = false; + Aws::Vector m_inputs; bool m_inputsHasBeenSet = false; diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp2Settings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp2Settings.h index d2d7a6e433d..ff5429f97f7 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp2Settings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp2Settings.h @@ -86,22 +86,22 @@ namespace Model /** - * Sample rate in hz. + * Sample rate in Hz. */ inline int GetSampleRate() const{ return m_sampleRate; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline bool SampleRateHasBeenSet() const { return m_sampleRateHasBeenSet; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline void SetSampleRate(int value) { m_sampleRateHasBeenSet = true; m_sampleRate = value; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline Mp2Settings& WithSampleRate(int value) { SetSampleRate(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp3Settings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp3Settings.h index cb16f6853cb..c2d07a0d444 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp3Settings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp3Settings.h @@ -126,22 +126,22 @@ namespace Model /** - * Sample rate in hz. + * Sample rate in Hz. */ inline int GetSampleRate() const{ return m_sampleRate; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline bool SampleRateHasBeenSet() const { return m_sampleRateHasBeenSet; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline void SetSampleRate(int value) { m_sampleRateHasBeenSet = true; m_sampleRate = value; } /** - * Sample rate in hz. + * Sample rate in Hz. */ inline Mp3Settings& WithSampleRate(int value) { SetSampleRate(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp4Settings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp4Settings.h index 623112fc478..2d76129dc7b 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp4Settings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/Mp4Settings.h @@ -263,44 +263,44 @@ namespace Model /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline const Mp4MoovPlacement& GetMoovPlacement() const{ return m_moovPlacement; } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline bool MoovPlacementHasBeenSet() const { return m_moovPlacementHasBeenSet; } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline void SetMoovPlacement(const Mp4MoovPlacement& value) { m_moovPlacementHasBeenSet = true; m_moovPlacement = value; } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline void SetMoovPlacement(Mp4MoovPlacement&& value) { m_moovPlacementHasBeenSet = true; m_moovPlacement = std::move(value); } /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline Mp4Settings& WithMoovPlacement(const Mp4MoovPlacement& value) { SetMoovPlacement(value); return *this;} /** - * If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of - * the archive as required for progressive downloading. Otherwise it is placed - * normally at the end. + * To place the MOOV atom at the beginning of your output, which is useful for + * progressive downloading: Leave blank or choose Progressive download. To place + * the MOOV at the end of your output: Choose Normal. */ inline Mp4Settings& WithMoovPlacement(Mp4MoovPlacement&& value) { SetMoovPlacement(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/OpusSettings.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/OpusSettings.h index 0bbb616d2d0..4c4d531b20e 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/OpusSettings.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/OpusSettings.h @@ -95,25 +95,25 @@ namespace Model /** - * Optional. Sample rate in hz. Valid values are 16000, 24000, and 48000. The + * Optional. Sample rate in Hz. Valid values are 16000, 24000, and 48000. The * default value is 48000. */ inline int GetSampleRate() const{ return m_sampleRate; } /** - * Optional. Sample rate in hz. Valid values are 16000, 24000, and 48000. The + * Optional. Sample rate in Hz. Valid values are 16000, 24000, and 48000. The * default value is 48000. */ inline bool SampleRateHasBeenSet() const { return m_sampleRateHasBeenSet; } /** - * Optional. Sample rate in hz. Valid values are 16000, 24000, and 48000. The + * Optional. Sample rate in Hz. Valid values are 16000, 24000, and 48000. The * default value is 48000. */ inline void SetSampleRate(int value) { m_sampleRateHasBeenSet = true; m_sampleRate = value; } /** - * Optional. Sample rate in hz. Valid values are 16000, 24000, and 48000. The + * Optional. Sample rate in Hz. Valid values are 16000, 24000, and 48000. The * default value is 48000. */ inline OpusSettings& WithSampleRate(int value) { SetSampleRate(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/ScalingBehavior.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/ScalingBehavior.h index 61d76d8d1fe..776fa1d5c84 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/ScalingBehavior.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/ScalingBehavior.h @@ -17,7 +17,10 @@ namespace Model { NOT_SET, DEFAULT, - STRETCH_TO_OUTPUT + STRETCH_TO_OUTPUT, + FIT, + FIT_NO_UPSCALE, + FILL }; namespace ScalingBehaviorMapper diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoDescription.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoDescription.h index 048b6075d45..d642fbb6d5c 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoDescription.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoDescription.h @@ -520,56 +520,44 @@ namespace Model /** - * Specify how the service handles outputs that have a different aspect ratio from - * the input aspect ratio. Choose Stretch to output to have the service stretch - * your video image to fit. Keep the setting Default to have the service letterbox - * your video instead. This setting overrides any value that you specify for the - * setting Selection placement in this output. + * Specify the video Scaling behavior when your output has a different resolution + * than your input. For more information, see + * https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html */ inline const ScalingBehavior& GetScalingBehavior() const{ return m_scalingBehavior; } /** - * Specify how the service handles outputs that have a different aspect ratio from - * the input aspect ratio. Choose Stretch to output to have the service stretch - * your video image to fit. Keep the setting Default to have the service letterbox - * your video instead. This setting overrides any value that you specify for the - * setting Selection placement in this output. + * Specify the video Scaling behavior when your output has a different resolution + * than your input. For more information, see + * https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html */ inline bool ScalingBehaviorHasBeenSet() const { return m_scalingBehaviorHasBeenSet; } /** - * Specify how the service handles outputs that have a different aspect ratio from - * the input aspect ratio. Choose Stretch to output to have the service stretch - * your video image to fit. Keep the setting Default to have the service letterbox - * your video instead. This setting overrides any value that you specify for the - * setting Selection placement in this output. + * Specify the video Scaling behavior when your output has a different resolution + * than your input. For more information, see + * https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html */ inline void SetScalingBehavior(const ScalingBehavior& value) { m_scalingBehaviorHasBeenSet = true; m_scalingBehavior = value; } /** - * Specify how the service handles outputs that have a different aspect ratio from - * the input aspect ratio. Choose Stretch to output to have the service stretch - * your video image to fit. Keep the setting Default to have the service letterbox - * your video instead. This setting overrides any value that you specify for the - * setting Selection placement in this output. + * Specify the video Scaling behavior when your output has a different resolution + * than your input. For more information, see + * https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html */ inline void SetScalingBehavior(ScalingBehavior&& value) { m_scalingBehaviorHasBeenSet = true; m_scalingBehavior = std::move(value); } /** - * Specify how the service handles outputs that have a different aspect ratio from - * the input aspect ratio. Choose Stretch to output to have the service stretch - * your video image to fit. Keep the setting Default to have the service letterbox - * your video instead. This setting overrides any value that you specify for the - * setting Selection placement in this output. + * Specify the video Scaling behavior when your output has a different resolution + * than your input. For more information, see + * https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html */ inline VideoDescription& WithScalingBehavior(const ScalingBehavior& value) { SetScalingBehavior(value); return *this;} /** - * Specify how the service handles outputs that have a different aspect ratio from - * the input aspect ratio. Choose Stretch to output to have the service stretch - * your video image to fit. Keep the setting Default to have the service letterbox - * your video instead. This setting overrides any value that you specify for the - * setting Selection placement in this output. + * Specify the video Scaling behavior when your output has a different resolution + * than your input. For more information, see + * https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html */ inline VideoDescription& WithScalingBehavior(ScalingBehavior&& value) { SetScalingBehavior(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlay.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlay.h index f16a746c694..4eabcabc8eb 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlay.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlay.h @@ -25,7 +25,9 @@ namespace Model { /** - * Overlay one or more videos on top of your input video.

                    See Also:

                    See + * Also:

                    AWS * API Reference

                    */ diff --git a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlayInput.h b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlayInput.h index 6de21fe116a..96b77b6a566 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlayInput.h +++ b/generated/src/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/VideoOverlayInput.h @@ -164,56 +164,56 @@ namespace Model /** - * Specify the starting timecode for your video overlay. To use the timecode - * present in your video overlay: Choose Embedded. To use a zerobased timecode: - * Choose Start at 0. To choose a timecode: Choose Specified start. When you do, - * enter the starting timecode in Start timecode. If you don't specify a value for - * Timecode source, MediaConvert uses Embedded by default. + * Specify the timecode source for your video overlay input clips. To use the + * timecode present in your video overlay: Choose Embedded. To use a zerobased + * timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When + * you do, enter the starting timecode in Start timecode. If you don't specify a + * value for Timecode source, MediaConvert uses Embedded by default. */ inline const InputTimecodeSource& GetTimecodeSource() const{ return m_timecodeSource; } /** - * Specify the starting timecode for your video overlay. To use the timecode - * present in your video overlay: Choose Embedded. To use a zerobased timecode: - * Choose Start at 0. To choose a timecode: Choose Specified start. When you do, - * enter the starting timecode in Start timecode. If you don't specify a value for - * Timecode source, MediaConvert uses Embedded by default. + * Specify the timecode source for your video overlay input clips. To use the + * timecode present in your video overlay: Choose Embedded. To use a zerobased + * timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When + * you do, enter the starting timecode in Start timecode. If you don't specify a + * value for Timecode source, MediaConvert uses Embedded by default. */ inline bool TimecodeSourceHasBeenSet() const { return m_timecodeSourceHasBeenSet; } /** - * Specify the starting timecode for your video overlay. To use the timecode - * present in your video overlay: Choose Embedded. To use a zerobased timecode: - * Choose Start at 0. To choose a timecode: Choose Specified start. When you do, - * enter the starting timecode in Start timecode. If you don't specify a value for - * Timecode source, MediaConvert uses Embedded by default. + * Specify the timecode source for your video overlay input clips. To use the + * timecode present in your video overlay: Choose Embedded. To use a zerobased + * timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When + * you do, enter the starting timecode in Start timecode. If you don't specify a + * value for Timecode source, MediaConvert uses Embedded by default. */ inline void SetTimecodeSource(const InputTimecodeSource& value) { m_timecodeSourceHasBeenSet = true; m_timecodeSource = value; } /** - * Specify the starting timecode for your video overlay. To use the timecode - * present in your video overlay: Choose Embedded. To use a zerobased timecode: - * Choose Start at 0. To choose a timecode: Choose Specified start. When you do, - * enter the starting timecode in Start timecode. If you don't specify a value for - * Timecode source, MediaConvert uses Embedded by default. + * Specify the timecode source for your video overlay input clips. To use the + * timecode present in your video overlay: Choose Embedded. To use a zerobased + * timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When + * you do, enter the starting timecode in Start timecode. If you don't specify a + * value for Timecode source, MediaConvert uses Embedded by default. */ inline void SetTimecodeSource(InputTimecodeSource&& value) { m_timecodeSourceHasBeenSet = true; m_timecodeSource = std::move(value); } /** - * Specify the starting timecode for your video overlay. To use the timecode - * present in your video overlay: Choose Embedded. To use a zerobased timecode: - * Choose Start at 0. To choose a timecode: Choose Specified start. When you do, - * enter the starting timecode in Start timecode. If you don't specify a value for - * Timecode source, MediaConvert uses Embedded by default. + * Specify the timecode source for your video overlay input clips. To use the + * timecode present in your video overlay: Choose Embedded. To use a zerobased + * timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When + * you do, enter the starting timecode in Start timecode. If you don't specify a + * value for Timecode source, MediaConvert uses Embedded by default. */ inline VideoOverlayInput& WithTimecodeSource(const InputTimecodeSource& value) { SetTimecodeSource(value); return *this;} /** - * Specify the starting timecode for your video overlay. To use the timecode - * present in your video overlay: Choose Embedded. To use a zerobased timecode: - * Choose Start at 0. To choose a timecode: Choose Specified start. When you do, - * enter the starting timecode in Start timecode. If you don't specify a value for - * Timecode source, MediaConvert uses Embedded by default. + * Specify the timecode source for your video overlay input clips. To use the + * timecode present in your video overlay: Choose Embedded. To use a zerobased + * timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When + * you do, enter the starting timecode in Start timecode. If you don't specify a + * value for Timecode source, MediaConvert uses Embedded by default. */ inline VideoOverlayInput& WithTimecodeSource(InputTimecodeSource&& value) { SetTimecodeSource(std::move(value)); return *this;} diff --git a/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertEndpointRules.cpp b/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertEndpointRules.cpp index 2b2cf60cd96..bb227e67cfb 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertEndpointRules.cpp +++ b/generated/src/aws-cpp-sdk-mediaconvert/source/MediaConvertEndpointRules.cpp @@ -51,125 +51,125 @@ static constexpr RulesBlobT RulesBlob = {{ ',','"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}','}',',','"','r','u','l','e','s', '"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', 'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n', -'d','p','o','i','n','t','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"', -',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', -'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r', -'u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o', -'n','f','i','g','u','r','a','t','i','o','n',':',' ','F','I','P','S',' ','a','n','d',' ','c','u','s', -'t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p', -'o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', -'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', -'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', -'e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a', -'t','i','o','n',':',' ','D','u','a','l','s','t','a','c','k',' ','a','n','d',' ','c','u','s','t','o', -'m',' ','e','n','d','p','o','i','n','t',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r', -'t','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o', -'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', -'"','u','r','l','"',':','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',',', -'"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', -':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}', -',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', -'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', -'o','n','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', -'"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':', -'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g', -'n','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t', -'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'d','p','o','i','n','t','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', 'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n', 'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U', -'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o', -'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e', -'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}', -']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[', -'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', -'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',', -'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', -'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', -'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',',','{','"','f','n','"',':', -'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t', -'r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v', -'"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l', -'t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}', -']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"', -':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o', -'i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','m','e','d','i', -'a','c','o','n','v','e','r','t','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P', -'a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D', -'n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', -'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', -'n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"', -':','[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a', -'l','S','t','a','c','k',' ','a','r','e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t', -'h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u', -'p','p','o','r','t',' ','o','n','e',' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"', -':','"','e','r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"', -':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"', -'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',', -'t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', -'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':', -'[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s', -'u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',']', -',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{', -'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i', -'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','"','a','w','s','-','u','s', -'-','g','o','v','"',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r', -'g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s', -'u','l','t','"','}',',','"','n','a','m','e','"',']','}',']','}',']',',','"','e','n','d','p','o','i', -'n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','m','e','d','i','a', -'c','o','n','v','e','r','t','.','{','R','e','g','i','o','n','}','.','a','m','a','z','o','n','a','w', -'s','.','c','o','m','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h', -'e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o', -'i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e', -'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/', -'m','e','d','i','a','c','o','n','v','e','r','t','-','f','i','p','s','.','{','R','e','g','i','o','n', -'}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f', -'f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e', -'a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i', -'n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', -'e','r','r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ','b', -'u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o', -'t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"','e', -'r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':', +'"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','F', +'I','P','S',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a', +'r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', '"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', 'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"', -'}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"', +'}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i', +'d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','D','u','a','l','s','t','a','c', +'k',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r','e', +' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':','"','e', +'r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', +'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','{','"','r','e','f','"',':','"', +'E','n','d','p','o','i','n','t','"','}',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{', +'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e', +'n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}', +',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s', +'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i', +'o','n','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t', +'i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i', +'o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o', +'n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','P','a','r','t','i','t','i','o','n','R', +'e','s','u','l','t','"','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u', +'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F', +'I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e', +'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':', +'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"', 'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"', 'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v', '"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"', 'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R', -'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c', -'k','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u', -'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e', -'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/', -'m','e','d','i','a','c','o','n','v','e','r','t','.','{','R','e','g','i','o','n','}','.','{','P','a', -'r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n', -'s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}', -',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n', -'d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':', -'[',']',',','"','e','r','r','o','r','"',':','"','D','u','a','l','S','t','a','c','k',' ','i','s',' ', -'e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o', -'n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','S','t', -'a','c','k','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',',','{','"', -'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n', -'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"', -'R','e','g','i','o','n','"','}',',','"','c','n','-','n','o','r','t','h','w','e','s','t','-','1','"', -']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t', -'t','p','s',':','/','/','s','u','b','s','c','r','i','b','e','.','m','e','d','i','a','c','o','n','v', -'e','r','t','.','c','n','-','n','o','r','t','h','w','e','s','t','-','1','.','a','m','a','z','o','n', -'a','w','s','.','c','o','m','.','c','n','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':', -'{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"', -'e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':', -'[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t', -'p','s',':','/','/','m','e','d','i','a','c','o','n','v','e','r','t','.','{','R','e','g','i','o','n', -'}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f', -'f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e', -'a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i', -'n','t','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']', +'e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']', +'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"', +'a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t', +'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l', +'S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{', +'"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','m','e','d','i','a','c','o','n','v','e', +'r','t','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i', +'o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f', +'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a', +'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n', +'t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n', +'d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S', +' ','a','n','d',' ','D','u','a','l','S','t','a','c','k',' ','a','r','e',' ','e','n','a','b','l','e', +'d',',',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e', +'s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','o','n','e',' ','o','r',' ','b','o','t','h', +'"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"', +':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{', +'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g', +'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u', +'e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n', +'s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"', +',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',', +'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n', +'R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}', +',','t','r','u','e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a', +'l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t', +'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t', +'i','o','n','R','e','s','u','l','t','"','}',',','"','n','a','m','e','"',']','}',',','"','a','w','s', +'-','u','s','-','g','o','v','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"', +'u','r','l','"',':','"','h','t','t','p','s',':','/','/','m','e','d','i','a','c','o','n','v','e','r', +'t','.','{','R','e','g','i','o','n','}','.','a','m','a','z','o','n','a','w','s','.','c','o','m','"', +',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s', +'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n', +'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','m','e','d','i','a','c', +'o','n','v','e','r','t','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r', +'t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',', +'"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"', +':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',', +'"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o', +'n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','i','s',' ','e', +'n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a','r','t','i','t','i','o','n', +' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"', +'t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t', +'r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n', +'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':', +'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t', +'r','u','e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i', +'o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l', +'s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"','f','n','"',':','"','g','e', +'t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','P','a', +'r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s','u','p','p','o','r','t','s', +'D','u','a','l','S','t','a','c','k','"',']','}',']','}',']',',','"','r','u','l','e','s','"',':','[', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n', +'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','m','e','d','i','a','c', +'o','n','v','e','r','t','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o', +'n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f','i', +'x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d', +'e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t', +'"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d', +'i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','D','u','a','l','S', +'t','a','c','k',' ','i','s',' ','e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ', +'p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r', +'t',' ','D','u','a','l','S','t','a','c','k','"',',','"','t','y','p','e','"',':','"','e','r','r','o', +'r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n', +'d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q', +'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g', +'i','o','n','"','}',',','"','c','n','-','n','o','r','t','h','w','e','s','t','-','1','"',']','}',']', +',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s', +':','/','/','s','u','b','s','c','r','i','b','e','.','m','e','d','i','a','c','o','n','v','e','r','t', +'.','c','n','-','n','o','r','t','h','w','e','s','t','-','1','.','a','m','a','z','o','n','a','w','s', +'.','c','o','m','.','c','n','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',', +'"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d', +'p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',', +'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':', +'/','/','m','e','d','i','a','c','o','n','v','e','r','t','.','{','R','e','g','i','o','n','}','.','{', +'P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x', +'}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e', +'r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"', +'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',']',',','"','t','y','p','e','"', +':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']', ',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u', 'r','a','t','i','o','n',':',' ','M','i','s','s','i','n','g',' ','R','e','g','i','o','n','"',',','"', 't','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}','\0' diff --git a/generated/src/aws-cpp-sdk-mediaconvert/source/model/AudioChannelTaggingSettings.cpp b/generated/src/aws-cpp-sdk-mediaconvert/source/model/AudioChannelTaggingSettings.cpp index 369ea609645..c3474aab4d8 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/source/model/AudioChannelTaggingSettings.cpp +++ b/generated/src/aws-cpp-sdk-mediaconvert/source/model/AudioChannelTaggingSettings.cpp @@ -20,13 +20,15 @@ namespace Model AudioChannelTaggingSettings::AudioChannelTaggingSettings() : m_channelTag(AudioChannelTag::NOT_SET), - m_channelTagHasBeenSet(false) + m_channelTagHasBeenSet(false), + m_channelTagsHasBeenSet(false) { } AudioChannelTaggingSettings::AudioChannelTaggingSettings(JsonView jsonValue) : m_channelTag(AudioChannelTag::NOT_SET), - m_channelTagHasBeenSet(false) + m_channelTagHasBeenSet(false), + m_channelTagsHasBeenSet(false) { *this = jsonValue; } @@ -40,6 +42,16 @@ AudioChannelTaggingSettings& AudioChannelTaggingSettings::operator =(JsonView js m_channelTagHasBeenSet = true; } + if(jsonValue.ValueExists("channelTags")) + { + Aws::Utils::Array channelTagsJsonList = jsonValue.GetArray("channelTags"); + for(unsigned channelTagsIndex = 0; channelTagsIndex < channelTagsJsonList.GetLength(); ++channelTagsIndex) + { + m_channelTags.push_back(AudioChannelTagMapper::GetAudioChannelTagForName(channelTagsJsonList[channelTagsIndex].AsString())); + } + m_channelTagsHasBeenSet = true; + } + return *this; } @@ -52,6 +64,17 @@ JsonValue AudioChannelTaggingSettings::Jsonize() const payload.WithString("channelTag", AudioChannelTagMapper::GetNameForAudioChannelTag(m_channelTag)); } + if(m_channelTagsHasBeenSet) + { + Aws::Utils::Array channelTagsJsonList(m_channelTags.size()); + for(unsigned channelTagsIndex = 0; channelTagsIndex < channelTagsJsonList.GetLength(); ++channelTagsIndex) + { + channelTagsJsonList[channelTagsIndex].AsString(AudioChannelTagMapper::GetNameForAudioChannelTag(m_channelTags[channelTagsIndex])); + } + payload.WithArray("channelTags", std::move(channelTagsJsonList)); + + } + return payload; } diff --git a/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobSettings.cpp b/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobSettings.cpp index d5459555563..6dfb4510230 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobSettings.cpp +++ b/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobSettings.cpp @@ -24,6 +24,8 @@ JobSettings::JobSettings() : m_availBlankingHasBeenSet(false), m_esamHasBeenSet(false), m_extendedDataServicesHasBeenSet(false), + m_followSource(0), + m_followSourceHasBeenSet(false), m_inputsHasBeenSet(false), m_kantarWatermarkHasBeenSet(false), m_motionImageInserterHasBeenSet(false), @@ -41,6 +43,8 @@ JobSettings::JobSettings(JsonView jsonValue) : m_availBlankingHasBeenSet(false), m_esamHasBeenSet(false), m_extendedDataServicesHasBeenSet(false), + m_followSource(0), + m_followSourceHasBeenSet(false), m_inputsHasBeenSet(false), m_kantarWatermarkHasBeenSet(false), m_motionImageInserterHasBeenSet(false), @@ -83,6 +87,13 @@ JobSettings& JobSettings::operator =(JsonView jsonValue) m_extendedDataServicesHasBeenSet = true; } + if(jsonValue.ValueExists("followSource")) + { + m_followSource = jsonValue.GetInteger("followSource"); + + m_followSourceHasBeenSet = true; + } + if(jsonValue.ValueExists("inputs")) { Aws::Utils::Array inputsJsonList = jsonValue.GetArray("inputs"); @@ -176,6 +187,12 @@ JsonValue JobSettings::Jsonize() const } + if(m_followSourceHasBeenSet) + { + payload.WithInteger("followSource", m_followSource); + + } + if(m_inputsHasBeenSet) { Aws::Utils::Array inputsJsonList(m_inputs.size()); diff --git a/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobTemplateSettings.cpp b/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobTemplateSettings.cpp index 95932edaebe..ab2aa7d6b62 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobTemplateSettings.cpp +++ b/generated/src/aws-cpp-sdk-mediaconvert/source/model/JobTemplateSettings.cpp @@ -24,6 +24,8 @@ JobTemplateSettings::JobTemplateSettings() : m_availBlankingHasBeenSet(false), m_esamHasBeenSet(false), m_extendedDataServicesHasBeenSet(false), + m_followSource(0), + m_followSourceHasBeenSet(false), m_inputsHasBeenSet(false), m_kantarWatermarkHasBeenSet(false), m_motionImageInserterHasBeenSet(false), @@ -41,6 +43,8 @@ JobTemplateSettings::JobTemplateSettings(JsonView jsonValue) : m_availBlankingHasBeenSet(false), m_esamHasBeenSet(false), m_extendedDataServicesHasBeenSet(false), + m_followSource(0), + m_followSourceHasBeenSet(false), m_inputsHasBeenSet(false), m_kantarWatermarkHasBeenSet(false), m_motionImageInserterHasBeenSet(false), @@ -83,6 +87,13 @@ JobTemplateSettings& JobTemplateSettings::operator =(JsonView jsonValue) m_extendedDataServicesHasBeenSet = true; } + if(jsonValue.ValueExists("followSource")) + { + m_followSource = jsonValue.GetInteger("followSource"); + + m_followSourceHasBeenSet = true; + } + if(jsonValue.ValueExists("inputs")) { Aws::Utils::Array inputsJsonList = jsonValue.GetArray("inputs"); @@ -176,6 +187,12 @@ JsonValue JobTemplateSettings::Jsonize() const } + if(m_followSourceHasBeenSet) + { + payload.WithInteger("followSource", m_followSource); + + } + if(m_inputsHasBeenSet) { Aws::Utils::Array inputsJsonList(m_inputs.size()); diff --git a/generated/src/aws-cpp-sdk-mediaconvert/source/model/ScalingBehavior.cpp b/generated/src/aws-cpp-sdk-mediaconvert/source/model/ScalingBehavior.cpp index 6804339bc6b..0b964301bb6 100644 --- a/generated/src/aws-cpp-sdk-mediaconvert/source/model/ScalingBehavior.cpp +++ b/generated/src/aws-cpp-sdk-mediaconvert/source/model/ScalingBehavior.cpp @@ -22,6 +22,9 @@ namespace Aws static const int DEFAULT_HASH = HashingUtils::HashString("DEFAULT"); static const int STRETCH_TO_OUTPUT_HASH = HashingUtils::HashString("STRETCH_TO_OUTPUT"); + static const int FIT_HASH = HashingUtils::HashString("FIT"); + static const int FIT_NO_UPSCALE_HASH = HashingUtils::HashString("FIT_NO_UPSCALE"); + static const int FILL_HASH = HashingUtils::HashString("FILL"); ScalingBehavior GetScalingBehaviorForName(const Aws::String& name) @@ -35,6 +38,18 @@ namespace Aws { return ScalingBehavior::STRETCH_TO_OUTPUT; } + else if (hashCode == FIT_HASH) + { + return ScalingBehavior::FIT; + } + else if (hashCode == FIT_NO_UPSCALE_HASH) + { + return ScalingBehavior::FIT_NO_UPSCALE; + } + else if (hashCode == FILL_HASH) + { + return ScalingBehavior::FILL; + } EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); if(overflowContainer) { @@ -55,6 +70,12 @@ namespace Aws return "DEFAULT"; case ScalingBehavior::STRETCH_TO_OUTPUT: return "STRETCH_TO_OUTPUT"; + case ScalingBehavior::FIT: + return "FIT"; + case ScalingBehavior::FIT_NO_UPSCALE: + return "FIT_NO_UPSCALE"; + case ScalingBehavior::FILL: + return "FILL"; default: EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); if(overflowContainer) diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/RDSClient.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/RDSClient.h index eee76c41cc0..99fd6027d5d 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/RDSClient.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/RDSClient.h @@ -1106,11 +1106,8 @@ namespace Aws } /** - *

                    Creates a zero-ETL integration with Amazon Redshift. For more information, - * see Working - * with Amazon Aurora zero-ETL integrations with Amazon Redshift in the - * Amazon Aurora User Guide.

                    See Also:

                    Creates a zero-ETL integration with Amazon Redshift.

                    See Also:

                    + *
                    AWS * API Reference

                    */ @@ -1711,11 +1708,8 @@ namespace Aws } /** - *

                    Deletes a zero-ETL integration with Amazon Redshift. For more information, - * see Deleting - * Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon - * Aurora User Guide

                    See Also:

                    Deletes a zero-ETL integration with Amazon Redshift.

                    See Also:

                    + *
                    AWS * API Reference

                    */ @@ -2796,11 +2790,8 @@ namespace Aws } /** - *

                    Describe one or more zero-ETL integration with Amazon Redshift. For more - * information, see Viewing - * and monitoring Amazon Aurora zero-ETL integrations with Amazon Redshift in - * the Amazon Aurora User Guide

                    See Also:

                    Describe one or more zero-ETL integrations with Amazon + * Redshift.

                    See Also:

                    AWS * API Reference

                    */ diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateCustomDBEngineVersionResult.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateCustomDBEngineVersionResult.h index a453db75635..1b70af321fd 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateCustomDBEngineVersionResult.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateCustomDBEngineVersionResult.h @@ -1324,20 +1324,20 @@ namespace Model /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline bool GetSupportsIntegrations() const{ return m_supportsIntegrations; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline void SetSupportsIntegrations(bool value) { m_supportsIntegrations = value; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline CreateCustomDBEngineVersionResult& WithSupportsIntegrations(bool value) { SetSupportsIntegrations(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationRequest.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationRequest.h index 4839f4826d8..338219bb770 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationRequest.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationRequest.h @@ -40,50 +40,50 @@ namespace Model public: /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline const Aws::String& GetSourceArn() const{ return m_sourceArn; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline bool SourceArnHasBeenSet() const { return m_sourceArnHasBeenSet; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline void SetSourceArn(const Aws::String& value) { m_sourceArnHasBeenSet = true; m_sourceArn = value; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline void SetSourceArn(Aws::String&& value) { m_sourceArnHasBeenSet = true; m_sourceArn = std::move(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline void SetSourceArn(const char* value) { m_sourceArnHasBeenSet = true; m_sourceArn.assign(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline CreateIntegrationRequest& WithSourceArn(const Aws::String& value) { SetSourceArn(value); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline CreateIntegrationRequest& WithSourceArn(Aws::String&& value) { SetSourceArn(std::move(value)); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database to use as the source for + * replication.

                    */ inline CreateIntegrationRequest& WithSourceArn(const char* value) { SetSourceArn(value); return *this;} @@ -181,56 +181,56 @@ namespace Model /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline const Aws::String& GetKMSKeyId() const{ return m_kMSKeyId; } /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline bool KMSKeyIdHasBeenSet() const { return m_kMSKeyIdHasBeenSet; } /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline void SetKMSKeyId(const Aws::String& value) { m_kMSKeyIdHasBeenSet = true; m_kMSKeyId = value; } /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline void SetKMSKeyId(Aws::String&& value) { m_kMSKeyIdHasBeenSet = true; m_kMSKeyId = std::move(value); } /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline void SetKMSKeyId(const char* value) { m_kMSKeyIdHasBeenSet = true; m_kMSKeyId.assign(value); } /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline CreateIntegrationRequest& WithKMSKeyId(const Aws::String& value) { SetKMSKeyId(value); return *this;} /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline CreateIntegrationRequest& WithKMSKeyId(Aws::String&& value) { SetKMSKeyId(std::move(value)); return *this;} /** *

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key * identifier for the key to use to encrypt the integration. If you don't specify - * an encryption key, Aurora uses a default Amazon Web Services owned key.

                    + * an encryption key, RDS uses a default Amazon Web Services owned key.

                    */ inline CreateIntegrationRequest& WithKMSKeyId(const char* value) { SetKMSKeyId(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationResult.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationResult.h index e2925e8a670..cb58473de48 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationResult.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/CreateIntegrationResult.h @@ -32,11 +32,7 @@ namespace RDS namespace Model { /** - *

                    An Aurora zero-ETL integration with Amazon Redshift. For more information, - * see Working - * with Amazon Aurora zero-ETL integrations with Amazon Redshift in the - * Amazon Aurora User Guide.

                    See Also:

                    A zero-ETL integration with Amazon Redshift.

                    See Also:

                    AWS API * Reference

                    */ @@ -49,44 +45,44 @@ namespace Model /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline const Aws::String& GetSourceArn() const{ return m_sourceArn; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(const Aws::String& value) { m_sourceArn = value; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(Aws::String&& value) { m_sourceArn = std::move(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(const char* value) { m_sourceArn.assign(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline CreateIntegrationResult& WithSourceArn(const Aws::String& value) { SetSourceArn(value); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline CreateIntegrationResult& WithSourceArn(Aws::String&& value) { SetSourceArn(std::move(value)); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline CreateIntegrationResult& WithSourceArn(const char* value) { SetSourceArn(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DBEngineVersion.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DBEngineVersion.h index 7a71e724798..3f072a4cca5 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DBEngineVersion.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DBEngineVersion.h @@ -1528,26 +1528,26 @@ namespace Model /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline bool GetSupportsIntegrations() const{ return m_supportsIntegrations; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline bool SupportsIntegrationsHasBeenSet() const { return m_supportsIntegrationsHasBeenSet; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline void SetSupportsIntegrations(bool value) { m_supportsIntegrationsHasBeenSet = true; m_supportsIntegrations = value; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline DBEngineVersion& WithSupportsIntegrations(bool value) { SetSupportsIntegrations(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteCustomDBEngineVersionResult.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteCustomDBEngineVersionResult.h index 6ede2257e4c..487c3421ec1 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteCustomDBEngineVersionResult.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteCustomDBEngineVersionResult.h @@ -1324,20 +1324,20 @@ namespace Model /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline bool GetSupportsIntegrations() const{ return m_supportsIntegrations; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline void SetSupportsIntegrations(bool value) { m_supportsIntegrations = value; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline DeleteCustomDBEngineVersionResult& WithSupportsIntegrations(bool value) { SetSupportsIntegrations(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteIntegrationResult.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteIntegrationResult.h index e8e210dce4e..6b0eb6d5140 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteIntegrationResult.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/DeleteIntegrationResult.h @@ -32,11 +32,7 @@ namespace RDS namespace Model { /** - *

                    An Aurora zero-ETL integration with Amazon Redshift. For more information, - * see Working - * with Amazon Aurora zero-ETL integrations with Amazon Redshift in the - * Amazon Aurora User Guide.

                    See Also:

                    A zero-ETL integration with Amazon Redshift.

                    See Also:

                    AWS API * Reference

                    */ @@ -49,44 +45,44 @@ namespace Model /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline const Aws::String& GetSourceArn() const{ return m_sourceArn; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(const Aws::String& value) { m_sourceArn = value; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(Aws::String&& value) { m_sourceArn = std::move(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(const char* value) { m_sourceArn.assign(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline DeleteIntegrationResult& WithSourceArn(const Aws::String& value) { SetSourceArn(value); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline DeleteIntegrationResult& WithSourceArn(Aws::String&& value) { SetSourceArn(std::move(value)); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline DeleteIntegrationResult& WithSourceArn(const char* value) { SetSourceArn(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/Integration.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/Integration.h index 9fb62073e22..c258044e32c 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/Integration.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/Integration.h @@ -31,11 +31,7 @@ namespace Model { /** - *

                    An Aurora zero-ETL integration with Amazon Redshift. For more information, - * see Working - * with Amazon Aurora zero-ETL integrations with Amazon Redshift in the - * Amazon Aurora User Guide.

                    See Also:

                    A zero-ETL integration with Amazon Redshift.

                    See Also:

                    AWS API * Reference

                    */ @@ -51,50 +47,50 @@ namespace Model /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline const Aws::String& GetSourceArn() const{ return m_sourceArn; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline bool SourceArnHasBeenSet() const { return m_sourceArnHasBeenSet; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(const Aws::String& value) { m_sourceArnHasBeenSet = true; m_sourceArn = value; } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(Aws::String&& value) { m_sourceArnHasBeenSet = true; m_sourceArn = std::move(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline void SetSourceArn(const char* value) { m_sourceArnHasBeenSet = true; m_sourceArn.assign(value); } /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline Integration& WithSourceArn(const Aws::String& value) { SetSourceArn(value); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline Integration& WithSourceArn(Aws::String&& value) { SetSourceArn(std::move(value)); return *this;} /** - *

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - * for replication.

                    + *

                    The Amazon Resource Name (ARN) of the database used as the source for + * replication.

                    */ inline Integration& WithSourceArn(const char* value) { SetSourceArn(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/ModifyCustomDBEngineVersionResult.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/ModifyCustomDBEngineVersionResult.h index 801e5e0fc1a..7eca579be9f 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/ModifyCustomDBEngineVersionResult.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/ModifyCustomDBEngineVersionResult.h @@ -1324,20 +1324,20 @@ namespace Model /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline bool GetSupportsIntegrations() const{ return m_supportsIntegrations; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline void SetSupportsIntegrations(bool value) { m_supportsIntegrations = value; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline ModifyCustomDBEngineVersionResult& WithSupportsIntegrations(bool value) { SetSupportsIntegrations(value); return *this;} diff --git a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/UpgradeTarget.h b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/UpgradeTarget.h index 744b659e6d2..5e5ba1b7fa0 100644 --- a/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/UpgradeTarget.h +++ b/generated/src/aws-cpp-sdk-rds/include/aws/rds/model/UpgradeTarget.h @@ -369,26 +369,26 @@ namespace Model /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline bool GetSupportsIntegrations() const{ return m_supportsIntegrations; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline bool SupportsIntegrationsHasBeenSet() const { return m_supportsIntegrationsHasBeenSet; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline void SetSupportsIntegrations(bool value) { m_supportsIntegrationsHasBeenSet = true; m_supportsIntegrations = value; } /** - *

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations - * with Amazon Redshift.

                    + *

                    Indicates whether the DB engine version supports zero-ETL integrations with + * Amazon Redshift.

                    */ inline UpgradeTarget& WithSupportsIntegrations(bool value) { SetSupportsIntegrations(value); return *this;} diff --git a/generated/tests/controltower-gen-tests/ControlTowerEndpointProviderTests.cpp b/generated/tests/controltower-gen-tests/ControlTowerEndpointProviderTests.cpp index 667b2ab0ac9..580cad8ea38 100644 --- a/generated/tests/controltower-gen-tests/ControlTowerEndpointProviderTests.cpp +++ b/generated/tests/controltower-gen-tests/ControlTowerEndpointProviderTests.cpp @@ -375,6 +375,12 @@ static const Aws::Vector TEST_CASE {}, // params {}, // tags {{/*No endpoint expected*/}, /*error*/"Invalid Configuration: Missing Region"} // expect + }, + /*TEST CASE 42*/ + {"Partition doesn't support DualStack", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-isob-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"DualStack is enabled but this partition does not support DualStack"} // expect } }; diff --git a/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h b/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h index d377876bc3c..6c36dc8d498 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h +++ b/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h @@ -4,7 +4,7 @@ */ #pragma once -#define AWS_SDK_VERSION_STRING "1.11.199" +#define AWS_SDK_VERSION_STRING "1.11.200" #define AWS_SDK_VERSION_MAJOR 1 #define AWS_SDK_VERSION_MINOR 11 -#define AWS_SDK_VERSION_PATCH 199 +#define AWS_SDK_VERSION_PATCH 200 diff --git a/tools/code-generation/api-descriptions/controltower-2018-05-10.normal.json b/tools/code-generation/api-descriptions/controltower-2018-05-10.normal.json index 74d112a080b..3dd532f97c3 100644 --- a/tools/code-generation/api-descriptions/controltower-2018-05-10.normal.json +++ b/tools/code-generation/api-descriptions/controltower-2018-05-10.normal.json @@ -50,7 +50,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

                    This API call activates a control. It starts an asynchronous operation that creates AWS resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify. For usage examples, see the AWS Control Tower User Guide

                    " + "documentation":"

                    This API call activates a control. It starts an asynchronous operation that creates AWS resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify. For usage examples, see the AWS Control Tower User Guide .

                    " }, "GetControlOperation":{ "name":"GetControlOperation", @@ -68,7 +68,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

                    Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days. For usage examples, see the AWS Control Tower User Guide

                    " + "documentation":"

                    Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days. For usage examples, see the AWS Control Tower User Guide .

                    " }, "GetEnabledControl":{ "name":"GetEnabledControl", @@ -86,7 +86,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

                    Provides details about the enabled control. For usage examples, see the AWS Control Tower User Guide .

                    Returned values

                    • TargetRegions: Shows target AWS Regions where the enabled control is available to be deployed.

                    • StatusSummary: Provides a detailed summary of the deployment status.

                    • DriftSummary: Provides a detailed summary of the drifted status.

                    " + "documentation":"

                    Retrieves details about an enabled control. For usage examples, see the AWS Control Tower User Guide .

                    " }, "ListEnabledControls":{ "name":"ListEnabledControls", @@ -104,7 +104,55 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

                    Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains. For usage examples, see the AWS Control Tower User Guide

                    " + "documentation":"

                    Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains. For usage examples, see the AWS Control Tower User Guide .

                    " + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

                    Returns a list of tags associated with the resource. For usage examples, see the AWS Control Tower User Guide .

                    " + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

                    Applies tags to a resource. For usage examples, see the AWS Control Tower User Guide .

                    " + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

                    Removes tags from a resource. For usage examples, see the AWS Control Tower User Guide .

                    " } }, "shapes":{ @@ -244,6 +292,10 @@ "shape":"ControlIdentifier", "documentation":"

                    The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the overview page.

                    " }, + "tags":{ + "shape":"TagMap", + "documentation":"

                    Tags to be applied to the EnabledControl resource.

                    " + }, "targetIdentifier":{ "shape":"TargetIdentifier", "documentation":"

                    The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

                    " @@ -254,6 +306,10 @@ "type":"structure", "required":["operationIdentifier"], "members":{ + "arn":{ + "shape":"Arn", + "documentation":"

                    The ARN of the EnabledControl resource.

                    " + }, "operationIdentifier":{ "shape":"OperationIdentifier", "documentation":"

                    The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

                    " @@ -265,56 +321,56 @@ "members":{ "arn":{ "shape":"Arn", - "documentation":"

                    The ARN of the enabled control.

                    " + "documentation":"

                    The ARN of the enabled control.

                    " }, "controlIdentifier":{ "shape":"ControlIdentifier", - "documentation":"

                    The control identifier of the enabled control. For information on how to find the controlIdentifier, see the overview page.

                    " + "documentation":"

                    The control identifier of the enabled control. For information on how to find the controlIdentifier, see the overview page.

                    " }, "driftStatusSummary":{ "shape":"DriftStatusSummary", - "documentation":"

                    The drift status of the enabled control.

                    " + "documentation":"

                    The drift status of the enabled control.

                    " }, "statusSummary":{ "shape":"EnablementStatusSummary", - "documentation":"

                    The deployment summary of the enabled control.

                    " + "documentation":"

                    The deployment summary of the enabled control.

                    " }, "targetIdentifier":{ "shape":"TargetIdentifier", - "documentation":"

                    The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

                    " + "documentation":"

                    The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

                    " }, "targetRegions":{ "shape":"TargetRegions", - "documentation":"

                    Target AWS Regions for the enabled control.

                    " + "documentation":"

                    Target AWS Regions for the enabled control.

                    " } }, - "documentation":"

                    Information about the enabled control.

                    " + "documentation":"

                    Information about the enabled control.

                    " }, "EnabledControlSummary":{ "type":"structure", "members":{ "arn":{ "shape":"Arn", - "documentation":"

                    The ARN of the enabled control.

                    " + "documentation":"

                    The ARN of the enabled control.

                    " }, "controlIdentifier":{ "shape":"ControlIdentifier", - "documentation":"

                    The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the overview page.

                    " + "documentation":"

                    The controlIdentifier of the enabled control.

                    " }, "driftStatusSummary":{ "shape":"DriftStatusSummary", - "documentation":"

                    The drift status of the enabled control.

                    " + "documentation":"

                    The drift status of the enabled control.

                    " }, "statusSummary":{ "shape":"EnablementStatusSummary", - "documentation":"" + "documentation":"

                    A short description of the status of the enabled control.

                    " }, "targetIdentifier":{ "shape":"TargetIdentifier", "documentation":"

                    The ARN of the organizational unit.

                    " } }, - "documentation":"

                    A summary of enabled controls.

                    " + "documentation":"

                    Returns a summary of information about an enabled control.

                    " }, "EnabledControls":{ "type":"list", @@ -333,14 +389,14 @@ "members":{ "lastOperationIdentifier":{ "shape":"OperationIdentifier", - "documentation":"

                    The last operation identifier for the enabled control.

                    " + "documentation":"

                    The last operation identifier for the enabled control.

                    " }, "status":{ "shape":"EnablementStatus", "documentation":"

                    The deployment status of the enabled control.

                    Valid values:

                    • SUCCEEDED: The enabledControl configuration was deployed successfully.

                    • UNDER_CHANGE: The enabledControl configuration is changing.

                    • FAILED: The enabledControl configuration failed to deploy.

                    " } }, - "documentation":"

                    The deployment summary of the enabled control.

                    " + "documentation":"

                    The deployment summary of the enabled control.

                    " }, "GetControlOperationInput":{ "type":"structure", @@ -368,7 +424,7 @@ "members":{ "enabledControlIdentifier":{ "shape":"Arn", - "documentation":"

                    The ARN of the enabled control.

                    " + "documentation":"

                    The controlIdentifier of the enabled control.

                    " } } }, @@ -378,7 +434,7 @@ "members":{ "enabledControlDetails":{ "shape":"EnabledControlDetails", - "documentation":"

                    Information about the enabled control.

                    " + "documentation":"

                    Information about the enabled control.

                    " } } }, @@ -430,6 +486,28 @@ } } }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

                    The ARN of the resource.

                    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

                    A list of tags, as key:value strings.

                    " + } + } + }, "MaxResults":{ "type":"integer", "box":true, @@ -447,7 +525,7 @@ "members":{ "name":{ "shape":"RegionName", - "documentation":"

                    The AWS Region name.

                    " + "documentation":"

                    The AWS Region name.

                    " } }, "documentation":"

                    An AWS Region in which AWS Control Tower expects to find the control deployed.

                    The expected Regions are based on the Regions that are governed by the landing zone. In certain cases, a control is not actually enabled in the Region as expected, such as during drift, or mixed governance.

                    " @@ -488,6 +566,53 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

                    The ARN of the resource to be tagged.

                    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

                    Tags to be applied to the resource.

                    " + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, "TargetIdentifier":{ "type":"string", "max":2048, @@ -526,6 +651,32 @@ "exception":true, "retryable":{"throttling":true} }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

                    The ARN of the resource.

                    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "documentation":"

                    Tag keys to be removed from the resource.

                    ", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, "ValidationException":{ "type":"structure", "required":["message"], @@ -540,5 +691,5 @@ "exception":true } }, - "documentation":"

                    These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In AWS Control Tower, the terms \"control\" and \"guardrail\" are synonyms. .

                    To call these APIs, you'll need to know:

                    • the controlIdentifier for the control--or guardrail--you are targeting.

                    • the ARN associated with the target organizational unit (OU), which we call the targetIdentifier.

                    To get the controlIdentifier for your AWS Control Tower control:

                    The controlIdentifier is an ARN that is specified for each control. You can view the controlIdentifier in the console on the Control details page, as well as in the documentation.

                    The controlIdentifier is unique in each AWS Region for each control. You can find the controlIdentifier for each Region and control in the Tables of control metadata in the AWS Control Tower User Guide.

                    A quick-reference list of control identifers for the AWS Control Tower legacy Strongly recommended and Elective controls is given in Resource identifiers for APIs and guardrails in the Controls reference guide section of the AWS Control Tower User Guide. Remember that Mandatory controls cannot be added or removed.

                    ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}

                    Example:

                    arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED

                    To get the targetIdentifier:

                    The targetIdentifier is the ARN for an OU.

                    In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.

                    OU ARN format:

                    arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}

                    Details and examples

                    To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower

                    Recording API Requests

                    AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its support for CloudTrail, see Logging AWS Control Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

                    " + "documentation":"

                    These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In AWS Control Tower, the terms \"control\" and \"guardrail\" are synonyms.

                    To call these APIs, you'll need to know:

                    • the controlIdentifier for the control--or guardrail--you are targeting.

                    • the ARN associated with the target organizational unit (OU), which we call the targetIdentifier.

                    • the ARN associated with a resource that you wish to tag or untag.

                    To get the controlIdentifier for your AWS Control Tower control:

                    The controlIdentifier is an ARN that is specified for each control. You can view the controlIdentifier in the console on the Control details page, as well as in the documentation.

                    The controlIdentifier is unique in each AWS Region for each control. You can find the controlIdentifier for each Region and control in the Tables of control metadata in the AWS Control Tower User Guide.

                    A quick-reference list of control identifers for the AWS Control Tower legacy Strongly recommended and Elective controls is given in Resource identifiers for APIs and controls in the Controls reference guide section of the AWS Control Tower User Guide. Remember that Mandatory controls cannot be added or removed.

                    ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}

                    Example:

                    arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED

                    To get the targetIdentifier:

                    The targetIdentifier is the ARN for an OU.

                    In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.

                    OU ARN format:

                    arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}

                    Details and examples

                    To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower

                    Recording API Requests

                    AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its support for CloudTrail, see Logging AWS Control Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

                    " } diff --git a/tools/code-generation/api-descriptions/cur-2017-01-06.normal.json b/tools/code-generation/api-descriptions/cur-2017-01-06.normal.json index 33a8b741beb..36235badd30 100644 --- a/tools/code-generation/api-descriptions/cur-2017-01-06.normal.json +++ b/tools/code-generation/api-descriptions/cur-2017-01-06.normal.json @@ -25,7 +25,7 @@ {"shape":"InternalErrorException"}, {"shape":"ValidationException"} ], - "documentation":"

                    Deletes the specified report.

                    " + "documentation":"

                    Deletes the specified report. Any tags associated with the report are also deleted.

                    " }, "DescribeReportDefinitions":{ "name":"DescribeReportDefinitions", @@ -38,7 +38,22 @@ "errors":[ {"shape":"InternalErrorException"} ], - "documentation":"

                    Lists the AWS Cost and Usage reports available to this account.

                    " + "documentation":"

                    Lists the Amazon Web Services Cost and Usage Report available to this account.

                    " + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, + {"shape":"ValidationException"} + ], + "documentation":"

                    Lists the tags associated with the specified report definition.

                    " }, "ModifyReportDefinition":{ "name":"ModifyReportDefinition", @@ -52,7 +67,7 @@ {"shape":"InternalErrorException"}, {"shape":"ValidationException"} ], - "documentation":"

                    Allows you to programatically update your report preferences.

                    " + "documentation":"

                    Allows you to programmatically update your report preferences.

                    " }, "PutReportDefinition":{ "name":"PutReportDefinition", @@ -66,15 +81,46 @@ {"shape":"DuplicateReportNameException"}, {"shape":"ReportLimitReachedException"}, {"shape":"InternalErrorException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

                    Creates a new report using the description that you provide.

                    " + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, + {"shape":"ValidationException"} + ], + "documentation":"

                    Associates a set of tags with a report definition.

                    " + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, + {"shape":"ValidationException"} + ], + "documentation":"

                    Disassociates a set of tags from a report definition.

                    " } }, "shapes":{ "AWSRegion":{ "type":"string", - "documentation":"

                    The region of the S3 bucket that AWS delivers the report into.

                    ", + "documentation":"

                    The region of the S3 bucket that Amazon Web Services delivers the report into.

                    ", "enum":[ "af-south-1", "ap-east-1", @@ -108,7 +154,7 @@ }, "AdditionalArtifact":{ "type":"string", - "documentation":"

                    The types of manifest that you want AWS to create for this report.

                    ", + "documentation":"

                    The types of manifest that you want Amazon Web Services to create for this report.

                    ", "enum":[ "REDSHIFT", "QUICKSIGHT", @@ -127,7 +173,7 @@ }, "CompressionFormat":{ "type":"string", - "documentation":"

                    The compression format that AWS uses for the report.

                    ", + "documentation":"

                    The compression format that Amazon Web Services uses for the report.

                    ", "enum":[ "ZIP", "GZIP", @@ -136,6 +182,7 @@ }, "DeleteReportDefinitionRequest":{ "type":"structure", + "required":["ReportName"], "members":{ "ReportName":{ "shape":"ReportName", @@ -161,14 +208,14 @@ "MaxResults":{"shape":"MaxResults"}, "NextToken":{"shape":"GenericString"} }, - "documentation":"

                    Requests a list of AWS Cost and Usage reports owned by the account.

                    " + "documentation":"

                    Requests a Amazon Web Services Cost and Usage Report list owned by the account.

                    " }, "DescribeReportDefinitionsResponse":{ "type":"structure", "members":{ "ReportDefinitions":{ "shape":"ReportDefinitionList", - "documentation":"

                    A list of AWS Cost and Usage reports owned by the account.

                    " + "documentation":"

                    An Amazon Web Services Cost and Usage Report list owned by the account.

                    " }, "NextToken":{"shape":"GenericString"} }, @@ -201,9 +248,42 @@ "exception":true, "fault":true }, + "LastDelivery":{ + "type":"string", + "max":20, + "min":16, + "pattern":"[0-9]{8}[T][0-9]{6}([Z]|[+-][0-9]{4})" + }, + "LastStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "ERROR_PERMISSIONS", + "ERROR_NO_BUCKET" + ] + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ReportName"], + "members":{ + "ReportName":{ + "shape":"ReportName", + "documentation":"

                    The report name of the report definition that tags are to be returned for.

                    " + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

                    The tags assigned to the report definition resource.

                    " + } + } + }, "MaxResults":{ "type":"integer", - "documentation":"

                    The maximum number of results that AWS returns for the operation.

                    ", + "documentation":"

                    The maximum number of results that Amazon Web Services returns for the operation.

                    ", "box":true, "max":5, "min":5 @@ -231,6 +311,10 @@ "ReportDefinition":{ "shape":"ReportDefinition", "documentation":"

                    Represents the output of the PutReportDefinition operation. The content consists of the detailed metadata and data file information.

                    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

                    The tags to be assigned to the report definition resource.

                    " } }, "documentation":"

                    Creates a Cost and Usage Report.

                    " @@ -283,10 +367,14 @@ }, "BillingViewArn":{ "shape":"BillingViewArn", - "documentation":"

                    The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.

                    " + "documentation":"

                    The Amazon resource name of the billing view. The BillingViewArn is needed to create Amazon Web Services Cost and Usage Report for each billing group maintained in the Amazon Web Services Billing Conductor service. The BillingViewArn for a billing group can be constructed as: arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id

                    " + }, + "ReportStatus":{ + "shape":"ReportStatus", + "documentation":"

                    The status of the report.

                    " } }, - "documentation":"

                    The definition of AWS Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition.

                    " + "documentation":"

                    The definition of Amazon Web Services Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition.

                    " }, "ReportDefinitionList":{ "type":"list", @@ -295,7 +383,7 @@ }, "ReportFormat":{ "type":"string", - "documentation":"

                    The format that AWS saves the report in.

                    ", + "documentation":"

                    The format that Amazon Web Services saves the report in.

                    ", "enum":[ "textORcsv", "Parquet" @@ -315,6 +403,20 @@ "max":256, "pattern":"[0-9A-Za-z!\\-_.*\\'()]+" }, + "ReportStatus":{ + "type":"structure", + "members":{ + "lastDelivery":{ + "shape":"LastDelivery", + "documentation":"

                    A timestamp that gives the date of a report delivery.

                    " + }, + "lastStatus":{ + "shape":"LastStatus", + "documentation":"

                    An enum that gives the status of a report delivery.

                    " + } + }, + "documentation":"

                    A two element dictionary with a lastDelivery and lastStatus key whose values describe the date and status of the last delivered report for a particular report definition.

                    " + }, "ReportVersioning":{ "type":"string", "enum":[ @@ -322,24 +424,33 @@ "OVERWRITE_REPORT" ] }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

                    The specified report (ReportName) in the request doesn't exist.

                    ", + "exception":true + }, "S3Bucket":{ "type":"string", - "documentation":"

                    The S3 bucket where AWS delivers the report.

                    ", + "documentation":"

                    The S3 bucket where Amazon Web Services delivers the report.

                    ", "max":256, "pattern":"[A-Za-z0-9_\\.\\-]+" }, "S3Prefix":{ "type":"string", - "documentation":"

                    The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.

                    ", + "documentation":"

                    The prefix that Amazon Web Services adds to the report name when Amazon Web Services delivers the report. Your prefix can't include spaces.

                    ", "max":256, "pattern":"[0-9A-Za-z!\\-_.*\\'()/]*" }, "SchemaElement":{ "type":"string", - "documentation":"

                    Whether or not AWS includes resource IDs in the report.

                    ", + "documentation":"

                    Whether or not Amazon Web Services includes resource IDs in the report.

                    ", "enum":[ "RESOURCES", - "SPLIT_COST_ALLOCATION_DATA" + "SPLIT_COST_ALLOCATION_DATA", + "MANUAL_DISCOUNT_COMPATIBILITY" ] }, "SchemaElementList":{ @@ -347,6 +458,70 @@ "member":{"shape":"SchemaElement"}, "documentation":"

                    A list of strings that indicate the content that is included in the report, such as service or usage type.

                    " }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

                    The key of the tag. Tag keys are case sensitive. Each report definition can only have up to one tag with the same key. If you try to add an existing tag with the same key, the existing tag value will be updated to the new value.

                    " + }, + "Value":{ + "shape":"TagValue", + "documentation":"

                    The value of the tag. Tag values are case-sensitive. This can be an empty string.

                    " + } + }, + "documentation":"

                    Describes a tag. A tag is a key-value pair. You can add up to 50 tags to a report definition.

                    " + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":".*" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ReportName", + "Tags" + ], + "members":{ + "ReportName":{ + "shape":"ReportName", + "documentation":"

                    The report name of the report definition that tags are to be associated with.

                    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

                    The tags to be assigned to the report definition resource.

                    " + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":".*" + }, "TimeUnit":{ "type":"string", "documentation":"

                    The length of time covered by the report.

                    ", @@ -356,14 +531,36 @@ "MONTHLY" ] }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ReportName", + "TagKeys" + ], + "members":{ + "ReportName":{ + "shape":"ReportName", + "documentation":"

                    The report name of the report definition that tags are to be disassociated from.

                    " + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

                    The tags to be disassociated from the report definition resource.

                    " + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "ValidationException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

                    The input fails to satisfy the constraints specified by an AWS service.

                    ", + "documentation":"

                    The input fails to satisfy the constraints specified by an Amazon Web Services service.

                    ", "exception":true } }, - "documentation":"

                    The AWS Cost and Usage Report API enables you to programmatically create, query, and delete AWS Cost and Usage report definitions.

                    AWS Cost and Usage reports track the monthly AWS costs and usage associated with your AWS account. The report contains line items for each unique combination of AWS product, usage type, and operation that your AWS account uses. You can configure the AWS Cost and Usage report to show only the data that you want, using the AWS Cost and Usage API.

                    Service Endpoint

                    The AWS Cost and Usage Report API provides the following endpoint:

                    • cur.us-east-1.amazonaws.com

                    " + "documentation":"

                    You can use the Amazon Web Services Cost and Usage Report API to programmatically create, query, and delete Amazon Web Services Cost and Usage Report definitions.

                    Amazon Web Services Cost and Usage Report track the monthly Amazon Web Services costs and usage associated with your Amazon Web Services account. The report contains line items for each unique combination of Amazon Web Services product, usage type, and operation that your Amazon Web Services account uses. You can configure the Amazon Web Services Cost and Usage Report to show only the data that you want, using the Amazon Web Services Cost and Usage Report API.

                    Service Endpoint

                    The Amazon Web Services Cost and Usage Report API provides the following endpoint:

                    • cur.us-east-1.amazonaws.com

                    " } diff --git a/tools/code-generation/api-descriptions/ec2-2016-11-15.normal.json b/tools/code-generation/api-descriptions/ec2-2016-11-15.normal.json index 45944b3700b..72160beaaf8 100644 --- a/tools/code-generation/api-descriptions/ec2-2016-11-15.normal.json +++ b/tools/code-generation/api-descriptions/ec2-2016-11-15.normal.json @@ -8614,16 +8614,16 @@ "members":{ "EnaSrdEnabled":{ "shape":"Boolean", - "documentation":"

                    Indicates whether ENA Express is enabled for the network interface that's attached to the instance.

                    ", + "documentation":"

                    Indicates whether ENA Express is enabled for the network interface.

                    ", "locationName":"enaSrdEnabled" }, "EnaSrdUdpSpecification":{ "shape":"AttachmentEnaSrdUdpSpecification", - "documentation":"

                    ENA Express configuration for UDP network traffic.

                    ", + "documentation":"

                    Configures ENA Express for UDP network traffic.

                    ", "locationName":"enaSrdUdpSpecification" } }, - "documentation":"

                    Describes the ENA Express configuration for the network interface that's attached to the instance.

                    " + "documentation":"

                    ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

                    To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

                    " }, "AttachmentEnaSrdUdpSpecification":{ "type":"structure", @@ -8634,7 +8634,7 @@ "locationName":"enaSrdUdpEnabled" } }, - "documentation":"

                    Describes the ENA Express configuration for UDP traffic on the network interface that's attached to the instance.

                    " + "documentation":"

                    ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

                    " }, "AttachmentStatus":{ "type":"string", @@ -20632,7 +20632,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

                    The filters.

                    • affinity - The affinity setting for an instance running on a Dedicated Host (default | host).

                    • architecture - The instance architecture (i386 | x86_64 | arm64).

                    • availability-zone - The Availability Zone of the instance.

                    • block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2022-09-15T17:15:20.000Z.

                    • block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.

                    • block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh).

                    • block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).

                    • block-device-mapping.volume-id - The volume ID of the EBS volume.

                    • boot-mode - The boot mode that was specified by the AMI (legacy-bios | uefi | uefi-preferred).

                    • capacity-reservation-id - The ID of the Capacity Reservation into which the instance was launched.

                    • capacity-reservation-specification.capacity-reservation-preference - The instance's Capacity Reservation preference (open | none).

                    • capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id - The ID of the targeted Capacity Reservation.

                    • capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn - The ARN of the targeted Capacity Reservation group.

                    • client-token - The idempotency token you provided when you launched the instance.

                    • current-instance-boot-mode - The boot mode that is used to launch the instance at launch or start (legacy-bios | uefi).

                    • dns-name - The public DNS name of the instance.

                    • ebs-optimized - A Boolean that indicates whether the instance is optimized for Amazon EBS I/O.

                    • ena-support - A Boolean that indicates whether the instance is enabled for enhanced networking with ENA.

                    • enclave-options.enabled - A Boolean that indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.

                    • hibernation-options.configured - A Boolean that indicates whether the instance is enabled for hibernation. A value of true means that the instance is enabled for hibernation.

                    • host-id - The ID of the Dedicated Host on which the instance is running, if applicable.

                    • hypervisor - The hypervisor type of the instance (ovm | xen). The value xen is used for both Xen and Nitro hypervisors.

                    • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

                    • iam-instance-profile.id - The instance profile associated with the instance. Specified as an ID.

                    • iam-instance-profile.name - The instance profile associated with the instance. Specified as an name.

                    • image-id - The ID of the image used to launch the instance.

                    • instance-id - The ID of the instance.

                    • instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled).

                    • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

                    • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

                    • instance-type - The type of instance (for example, t2.micro).

                    • instance.group-id - The ID of the security group for the instance.

                    • instance.group-name - The name of the security group for the instance.

                    • ip-address - The public IPv4 address of the instance.

                    • ipv6-address - The IPv6 address of the instance.

                    • kernel-id - The kernel ID.

                    • key-name - The name of the key pair used when the instance was launched.

                    • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

                    • launch-time - The time when the instance was launched, in the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example, 2021-09-29T11:04:43.305Z. You can use a wildcard (*), for example, 2021-09-29T*, which matches an entire day.

                    • maintenance-options.auto-recovery - The current automatic recovery behavior of the instance (disabled | default).

                    • metadata-options.http-endpoint - The status of access to the HTTP metadata endpoint on your instance (enabled | disabled)

                    • metadata-options.http-protocol-ipv4 - Indicates whether the IPv4 endpoint is enabled (disabled | enabled).

                    • metadata-options.http-protocol-ipv6 - Indicates whether the IPv6 endpoint is enabled (disabled | enabled).

                    • metadata-options.http-put-response-hop-limit - The HTTP metadata request put response hop limit (integer, possible values 1 to 64)

                    • metadata-options.http-tokens - The metadata request authorization state (optional | required)

                    • metadata-options.instance-metadata-tags - The status of access to instance tags from the instance metadata (enabled | disabled)

                    • metadata-options.state - The state of the metadata option changes (pending | applied).

                    • monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled).

                    • network-interface.addresses.association.allocation-id - The allocation ID.

                    • network-interface.addresses.association.association-id - The association ID.

                    • network-interface.addresses.association.carrier-ip - The carrier IP address.

                    • network-interface.addresses.association.customer-owned-ip - The customer-owned IP address.

                    • network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface.

                    • network-interface.addresses.association.public-dns-name - The public DNS name.

                    • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface.

                    • network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.

                    • network-interface.addresses.private-dns-name - The private DNS name.

                    • network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface.

                    • network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

                    • network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

                    • network-interface.association.carrier-ip - The customer-owned IP address.

                    • network-interface.association.customer-owned-ip - The customer-owned IP address.

                    • network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

                    • network-interface.association.public-dns-name - The public DNS name.

                    • network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

                    • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

                    • network-interface.attachment.attachment-id - The ID of the interface attachment.

                    • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

                    • network-interface.attachment.device-index - The device index to which the network interface is attached.

                    • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

                    • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

                    • network-interface.attachment.network-card-index - The index of the network card.

                    • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

                    • network-interface.availability-zone - The Availability Zone for the network interface.

                    • network-interface.deny-all-igw-traffic - A Boolean that indicates whether a network interface with an IPv6 address is unreachable from the public internet.

                    • network-interface.description - The description of the network interface.

                    • network-interface.group-id - The ID of a security group associated with the network interface.

                    • network-interface.group-name - The name of a security group associated with the network interface.

                    • network-interface.ipv4-prefixes.ipv4-prefix - The IPv4 prefixes that are assigned to the network interface.

                    • network-interface.ipv6-address - The IPv6 address associated with the network interface.

                    • network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface.

                    • network-interface.ipv6-addresses.is-primary-ipv6 - A Boolean that indicates whether this is the primary IPv6 address.

                    • network-interface.ipv6-native - A Boolean that indicates whether this is an IPv6 only network interface.

                    • network-interface.ipv6-prefixes.ipv6-prefix - The IPv6 prefix assigned to the network interface.

                    • network-interface.mac-address - The MAC address of the network interface.

                    • network-interface.network-interface-id - The ID of the network interface.

                    • network-interface.outpost-arn - The ARN of the Outpost.

                    • network-interface.owner-id - The ID of the owner of the network interface.

                    • network-interface.private-dns-name - The private DNS name of the network interface.

                    • network-interface.private-ip-address - The private IPv4 address.

                    • network-interface.public-dns-name - The public DNS name.

                    • network-interface.requester-id - The requester ID for the network interface.

                    • network-interface.requester-managed - Indicates whether the network interface is being managed by Amazon Web Services.

                    • network-interface.status - The status of the network interface (available) | in-use).

                    • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

                    • network-interface.subnet-id - The ID of the subnet for the network interface.

                    • network-interface.tag-key - The key of a tag assigned to the network interface.

                    • network-interface.tag-value - The value of a tag assigned to the network interface.

                    • network-interface.vpc-id - The ID of the VPC for the network interface.

                    • outpost-arn - The Amazon Resource Name (ARN) of the Outpost.

                    • owner-id - The Amazon Web Services account ID of the instance owner.

                    • placement-group-name - The name of the placement group for the instance.

                    • placement-partition-number - The partition in which the instance is located.

                    • platform - The platform. To list only Windows instances, use windows.

                    • platform-details - The platform (Linux/UNIX | Red Hat BYOL Linux | Red Hat Enterprise Linux | Red Hat Enterprise Linux with HA | Red Hat Enterprise Linux with SQL Server Standard and HA | Red Hat Enterprise Linux with SQL Server Enterprise and HA | Red Hat Enterprise Linux with SQL Server Standard | Red Hat Enterprise Linux with SQL Server Web | Red Hat Enterprise Linux with SQL Server Enterprise | SQL Server Enterprise | SQL Server Standard | SQL Server Web | SUSE Linux | Ubuntu Pro | Windows | Windows BYOL | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web).

                    • private-dns-name - The private IPv4 DNS name of the instance.

                    • private-dns-name-options.enable-resource-name-dns-a-record - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS A records.

                    • private-dns-name-options.enable-resource-name-dns-aaaa-record - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.

                    • private-dns-name-options.hostname-type - The type of hostname (ip-name | resource-name).

                    • private-ip-address - The private IPv4 address of the instance.

                    • product-code - The product code associated with the AMI used to launch the instance.

                    • product-code.type - The type of product code (devpay | marketplace).

                    • ramdisk-id - The RAM disk ID.

                    • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

                    • requester-id - The ID of the entity that launched the instance on your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

                    • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you get one reservation ID. If you launch ten instances using the same launch request, you also get one reservation ID.

                    • root-device-name - The device name of the root device volume (for example, /dev/sda1).

                    • root-device-type - The type of the root device volume (ebs | instance-store).

                    • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

                    • spot-instance-request-id - The ID of the Spot Instance request.

                    • state-reason-code - The reason code for the state change.

                    • state-reason-message - A message that describes the state change.

                    • subnet-id - The ID of the subnet for the instance.

                    • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

                    • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

                    • tenancy - The tenancy of an instance (dedicated | default | host).

                    • tpm-support - Indicates if the instance is configured for NitroTPM support (v2.0).

                    • usage-operation - The usage operation value for the instance (RunInstances | RunInstances:00g0 | RunInstances:0010 | RunInstances:1010 | RunInstances:1014 | RunInstances:1110 | RunInstances:0014 | RunInstances:0210 | RunInstances:0110 | RunInstances:0100 | RunInstances:0004 | RunInstances:0200 | RunInstances:000g | RunInstances:0g00 | RunInstances:0002 | RunInstances:0800 | RunInstances:0102 | RunInstances:0006 | RunInstances:0202).

                    • usage-operation-update-time - The time that the usage operation was last updated, for example, 2022-09-15T17:15:20.000Z.

                    • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

                    • vpc-id - The ID of the VPC that the instance is running in.

                    ", + "documentation":"

                    The filters.

                    • affinity - The affinity setting for an instance running on a Dedicated Host (default | host).

                    • architecture - The instance architecture (i386 | x86_64 | arm64).

                    • availability-zone - The Availability Zone of the instance.

                    • block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2022-09-15T17:15:20.000Z.

                    • block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.

                    • block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh).

                    • block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).

                    • block-device-mapping.volume-id - The volume ID of the EBS volume.

                    • boot-mode - The boot mode that was specified by the AMI (legacy-bios | uefi | uefi-preferred).

                    • capacity-reservation-id - The ID of the Capacity Reservation into which the instance was launched.

                    • capacity-reservation-specification.capacity-reservation-preference - The instance's Capacity Reservation preference (open | none).

                    • capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id - The ID of the targeted Capacity Reservation.

                    • capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn - The ARN of the targeted Capacity Reservation group.

                    • client-token - The idempotency token you provided when you launched the instance.

                    • current-instance-boot-mode - The boot mode that is used to launch the instance at launch or start (legacy-bios | uefi).

                    • dns-name - The public DNS name of the instance.

                    • ebs-optimized - A Boolean that indicates whether the instance is optimized for Amazon EBS I/O.

                    • ena-support - A Boolean that indicates whether the instance is enabled for enhanced networking with ENA.

                    • enclave-options.enabled - A Boolean that indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.

                    • hibernation-options.configured - A Boolean that indicates whether the instance is enabled for hibernation. A value of true means that the instance is enabled for hibernation.

                    • host-id - The ID of the Dedicated Host on which the instance is running, if applicable.

                    • hypervisor - The hypervisor type of the instance (ovm | xen). The value xen is used for both Xen and Nitro hypervisors.

                    • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

                    • iam-instance-profile.id - The instance profile associated with the instance. Specified as an ID.

                    • iam-instance-profile.name - The instance profile associated with the instance. Specified as an name.

                    • image-id - The ID of the image used to launch the instance.

                    • instance-id - The ID of the instance.

                    • instance-lifecycle - Indicates whether this is a Spot Instance, a Scheduled Instance, or a Capacity Block (spot | scheduled | capacity-block).

                    • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

                    • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

                    • instance-type - The type of instance (for example, t2.micro).

                    • instance.group-id - The ID of the security group for the instance.

                    • instance.group-name - The name of the security group for the instance.

                    • ip-address - The public IPv4 address of the instance.

                    • ipv6-address - The IPv6 address of the instance.

                    • kernel-id - The kernel ID.

                    • key-name - The name of the key pair used when the instance was launched.

                    • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

                    • launch-time - The time when the instance was launched, in the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example, 2021-09-29T11:04:43.305Z. You can use a wildcard (*), for example, 2021-09-29T*, which matches an entire day.

                    • maintenance-options.auto-recovery - The current automatic recovery behavior of the instance (disabled | default).

                    • metadata-options.http-endpoint - The status of access to the HTTP metadata endpoint on your instance (enabled | disabled)

                    • metadata-options.http-protocol-ipv4 - Indicates whether the IPv4 endpoint is enabled (disabled | enabled).

                    • metadata-options.http-protocol-ipv6 - Indicates whether the IPv6 endpoint is enabled (disabled | enabled).

                    • metadata-options.http-put-response-hop-limit - The HTTP metadata request put response hop limit (integer, possible values 1 to 64)

                    • metadata-options.http-tokens - The metadata request authorization state (optional | required)

                    • metadata-options.instance-metadata-tags - The status of access to instance tags from the instance metadata (enabled | disabled)

                    • metadata-options.state - The state of the metadata option changes (pending | applied).

                    • monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled).

                    • network-interface.addresses.association.allocation-id - The allocation ID.

                    • network-interface.addresses.association.association-id - The association ID.

                    • network-interface.addresses.association.carrier-ip - The carrier IP address.

                    • network-interface.addresses.association.customer-owned-ip - The customer-owned IP address.

                    • network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface.

                    • network-interface.addresses.association.public-dns-name - The public DNS name.

                    • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface.

                    • network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.

                    • network-interface.addresses.private-dns-name - The private DNS name.

                    • network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface.

                    • network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

                    • network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

                    • network-interface.association.carrier-ip - The customer-owned IP address.

                    • network-interface.association.customer-owned-ip - The customer-owned IP address.

                    • network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

                    • network-interface.association.public-dns-name - The public DNS name.

                    • network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

                    • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

                    • network-interface.attachment.attachment-id - The ID of the interface attachment.

                    • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

                    • network-interface.attachment.device-index - The device index to which the network interface is attached.

                    • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

                    • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

                    • network-interface.attachment.network-card-index - The index of the network card.

                    • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

                    • network-interface.availability-zone - The Availability Zone for the network interface.

                    • network-interface.deny-all-igw-traffic - A Boolean that indicates whether a network interface with an IPv6 address is unreachable from the public internet.

                    • network-interface.description - The description of the network interface.

                    • network-interface.group-id - The ID of a security group associated with the network interface.

                    • network-interface.group-name - The name of a security group associated with the network interface.

                    • network-interface.ipv4-prefixes.ipv4-prefix - The IPv4 prefixes that are assigned to the network interface.

                    • network-interface.ipv6-address - The IPv6 address associated with the network interface.

                    • network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface.

                    • network-interface.ipv6-addresses.is-primary-ipv6 - A Boolean that indicates whether this is the primary IPv6 address.

                    • network-interface.ipv6-native - A Boolean that indicates whether this is an IPv6 only network interface.

                    • network-interface.ipv6-prefixes.ipv6-prefix - The IPv6 prefix assigned to the network interface.

                    • network-interface.mac-address - The MAC address of the network interface.

                    • network-interface.network-interface-id - The ID of the network interface.

                    • network-interface.outpost-arn - The ARN of the Outpost.

                    • network-interface.owner-id - The ID of the owner of the network interface.

                    • network-interface.private-dns-name - The private DNS name of the network interface.

                    • network-interface.private-ip-address - The private IPv4 address.

                    • network-interface.public-dns-name - The public DNS name.

                    • network-interface.requester-id - The requester ID for the network interface.

                    • network-interface.requester-managed - Indicates whether the network interface is being managed by Amazon Web Services.

                    • network-interface.status - The status of the network interface (available) | in-use).

                    • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

                    • network-interface.subnet-id - The ID of the subnet for the network interface.

                    • network-interface.tag-key - The key of a tag assigned to the network interface.

                    • network-interface.tag-value - The value of a tag assigned to the network interface.

                    • network-interface.vpc-id - The ID of the VPC for the network interface.

                    • outpost-arn - The Amazon Resource Name (ARN) of the Outpost.

                    • owner-id - The Amazon Web Services account ID of the instance owner.

                    • placement-group-name - The name of the placement group for the instance.

                    • placement-partition-number - The partition in which the instance is located.

                    • platform - The platform. To list only Windows instances, use windows.

                    • platform-details - The platform (Linux/UNIX | Red Hat BYOL Linux | Red Hat Enterprise Linux | Red Hat Enterprise Linux with HA | Red Hat Enterprise Linux with SQL Server Standard and HA | Red Hat Enterprise Linux with SQL Server Enterprise and HA | Red Hat Enterprise Linux with SQL Server Standard | Red Hat Enterprise Linux with SQL Server Web | Red Hat Enterprise Linux with SQL Server Enterprise | SQL Server Enterprise | SQL Server Standard | SQL Server Web | SUSE Linux | Ubuntu Pro | Windows | Windows BYOL | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web).

                    • private-dns-name - The private IPv4 DNS name of the instance.

                    • private-dns-name-options.enable-resource-name-dns-a-record - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS A records.

                    • private-dns-name-options.enable-resource-name-dns-aaaa-record - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.

                    • private-dns-name-options.hostname-type - The type of hostname (ip-name | resource-name).

                    • private-ip-address - The private IPv4 address of the instance.

                    • product-code - The product code associated with the AMI used to launch the instance.

                    • product-code.type - The type of product code (devpay | marketplace).

                    • ramdisk-id - The RAM disk ID.

                    • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

                    • requester-id - The ID of the entity that launched the instance on your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

                    • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you get one reservation ID. If you launch ten instances using the same launch request, you also get one reservation ID.

                    • root-device-name - The device name of the root device volume (for example, /dev/sda1).

                    • root-device-type - The type of the root device volume (ebs | instance-store).

                    • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

                    • spot-instance-request-id - The ID of the Spot Instance request.

                    • state-reason-code - The reason code for the state change.

                    • state-reason-message - A message that describes the state change.

                    • subnet-id - The ID of the subnet for the instance.

                    • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

                    • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

                    • tenancy - The tenancy of an instance (dedicated | default | host).

                    • tpm-support - Indicates if the instance is configured for NitroTPM support (v2.0).

                    • usage-operation - The usage operation value for the instance (RunInstances | RunInstances:00g0 | RunInstances:0010 | RunInstances:1010 | RunInstances:1014 | RunInstances:1110 | RunInstances:0014 | RunInstances:0210 | RunInstances:0110 | RunInstances:0100 | RunInstances:0004 | RunInstances:0200 | RunInstances:000g | RunInstances:0g00 | RunInstances:0002 | RunInstances:0800 | RunInstances:0102 | RunInstances:0006 | RunInstances:0202).

                    • usage-operation-update-time - The time that the usage operation was last updated, for example, 2022-09-15T17:15:20.000Z.

                    • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

                    • vpc-id - The ID of the VPC that the instance is running in.

                    ", "locationName":"Filter" }, "InstanceIds":{ @@ -26865,16 +26865,40 @@ }, "documentation":"

                    ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

                    To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

                    " }, + "EnaSrdSpecificationRequest":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{ + "shape":"Boolean", + "documentation":"

                    Specifies whether ENA Express is enabled for the network interface when you launch an instance from your launch template.

                    " + }, + "EnaSrdUdpSpecification":{ + "shape":"EnaSrdUdpSpecificationRequest", + "documentation":"

                    Contains ENA Express settings for UDP network traffic in your launch template.

                    " + } + }, + "documentation":"

                    Launch instances with ENA Express settings configured from your launch template.

                    " + }, "EnaSrdSupported":{"type":"boolean"}, "EnaSrdUdpSpecification":{ "type":"structure", "members":{ "EnaSrdUdpEnabled":{ "shape":"Boolean", - "documentation":"

                    Indicates whether UDP traffic uses ENA Express. To specify this setting, you must first enable ENA Express.

                    " + "documentation":"

                    Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

                    " } }, - "documentation":"

                    ENA Express is compatible with both TCP and UDP transport protocols. When it’s enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

                    " + "documentation":"

                    ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

                    " + }, + "EnaSrdUdpSpecificationRequest":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{ + "shape":"Boolean", + "documentation":"

                    Indicates whether UDP traffic uses ENA Express for your instance. To ensure that UDP traffic can use ENA Express when you launch an instance, you must also set EnaSrdEnabled in the EnaSrdSpecificationRequest to true in your launch template.

                    " + } + }, + "documentation":"

                    Configures ENA Express for UDP network traffic from your launch template.

                    " }, "EnaSupport":{ "type":"string", @@ -33522,6 +33546,33 @@ }, "documentation":"

                    Describes an instance.

                    " }, + "InstanceAttachmentEnaSrdSpecification":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{ + "shape":"Boolean", + "documentation":"

                    Indicates whether ENA Express is enabled for the network interface.

                    ", + "locationName":"enaSrdEnabled" + }, + "EnaSrdUdpSpecification":{ + "shape":"InstanceAttachmentEnaSrdUdpSpecification", + "documentation":"

                    Configures ENA Express for UDP network traffic.

                    ", + "locationName":"enaSrdUdpSpecification" + } + }, + "documentation":"

                    ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

                    To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

                    " + }, + "InstanceAttachmentEnaSrdUdpSpecification":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{ + "shape":"Boolean", + "documentation":"

                    Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

                    ", + "locationName":"enaSrdUdpEnabled" + } + }, + "documentation":"

                    ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

                    " + }, "InstanceAttribute":{ "type":"structure", "members":{ @@ -34515,6 +34566,11 @@ "shape":"Integer", "documentation":"

                    The index of the network card.

                    ", "locationName":"networkCardIndex" + }, + "EnaSrdSpecification":{ + "shape":"InstanceAttachmentEnaSrdSpecification", + "documentation":"

                    Contains the ENA Express settings for the network interface that's attached to the instance.

                    ", + "locationName":"enaSrdSpecification" } }, "documentation":"

                    Describes a network interface attachment.

                    " @@ -34624,6 +34680,10 @@ "PrimaryIpv6":{ "shape":"Boolean", "documentation":"

                    The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see RunInstances.

                    " + }, + "EnaSrdSpecification":{ + "shape":"EnaSrdSpecificationRequest", + "documentation":"

                    Specifies the ENA Express settings for the network interface that's attached to the instance.

                    " } }, "documentation":"

                    Describes a network interface.

                    " @@ -38310,6 +38370,33 @@ "locationName":"item" } }, + "LaunchTemplateEnaSrdSpecification":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{ + "shape":"Boolean", + "documentation":"

                    Indicates whether ENA Express is enabled for the network interface.

                    ", + "locationName":"enaSrdEnabled" + }, + "EnaSrdUdpSpecification":{ + "shape":"LaunchTemplateEnaSrdUdpSpecification", + "documentation":"

                    Configures ENA Express for UDP network traffic.

                    ", + "locationName":"enaSrdUdpSpecification" + } + }, + "documentation":"

                    ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

                    To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

                    " + }, + "LaunchTemplateEnaSrdUdpSpecification":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{ + "shape":"Boolean", + "documentation":"

                    Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

                    ", + "locationName":"enaSrdUdpEnabled" + } + }, + "documentation":"

                    ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

                    " + }, "LaunchTemplateEnclaveOptions":{ "type":"structure", "members":{ @@ -38651,6 +38738,11 @@ "shape":"Boolean", "documentation":"

                    The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see RunInstances.

                    ", "locationName":"primaryIpv6" + }, + "EnaSrdSpecification":{ + "shape":"LaunchTemplateEnaSrdSpecification", + "documentation":"

                    Contains the ENA Express settings for instances launched from your launch template.

                    ", + "locationName":"enaSrdSpecification" } }, "documentation":"

                    Describes a network interface.

                    " @@ -38747,6 +38839,10 @@ "PrimaryIpv6":{ "shape":"Boolean", "documentation":"

                    The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see RunInstances.

                    " + }, + "EnaSrdSpecification":{ + "shape":"EnaSrdSpecificationRequest", + "documentation":"

                    Configure ENA Express settings for your launch template.

                    " } }, "documentation":"

                    The parameters for a network interface.

                    " @@ -39096,7 +39192,7 @@ "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

                    The type of resource to tag.

                    Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: instance | volume | elastic-gpu | network-interface | spot-instances-request. If the instance does include the resource type that you specify, the instance launch fails. For example, not all instance types include an Elastic GPU.

                    To tag a resource after it has been created, see CreateTags.

                    " + "documentation":"

                    The type of resource to tag.

                    Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: instance | volume | elastic-gpu | network-interface | spot-instances-request. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include an Elastic GPU.

                    To tag a resource after it has been created, see CreateTags.

                    " }, "Tags":{ "shape":"TagList", @@ -47713,12 +47809,12 @@ }, "SecurityGroupIds":{ "shape":"SecurityGroupIdStringList", - "documentation":"

                    One or more security group IDs. You can create a security group using CreateSecurityGroup. You cannot specify both a security group ID and security name in the same request.

                    ", + "documentation":"

                    One or more security group IDs. You can create a security group using CreateSecurityGroup.

                    ", "locationName":"SecurityGroupId" }, "SecurityGroups":{ "shape":"SecurityGroupStringList", - "documentation":"

                    One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.

                    ", + "documentation":"

                    One or more security group names. For a nondefault VPC, you must use security group IDs instead.

                    ", "locationName":"SecurityGroup" }, "InstanceMarketOptions":{ diff --git a/tools/code-generation/api-descriptions/entitlement.marketplace-2017-01-11.normal.json b/tools/code-generation/api-descriptions/entitlement.marketplace-2017-01-11.normal.json index acdee343058..71aa7036907 100644 --- a/tools/code-generation/api-descriptions/entitlement.marketplace-2017-01-11.normal.json +++ b/tools/code-generation/api-descriptions/entitlement.marketplace-2017-01-11.normal.json @@ -121,7 +121,7 @@ "documentation":"

                    For paginated calls to GetEntitlements, pass the NextToken from the previous GetEntitlementsResult.

                    " }, "MaxResults":{ - "shape":"Integer", + "shape":"PageSizeInteger", "documentation":"

                    The maximum number of items to retrieve from the GetEntitlements operation. For pagination, use the NextToken field in subsequent calls to GetEntitlements.

                    " } }, @@ -163,6 +163,11 @@ "type":"string", "pattern":"\\S+" }, + "PageSizeInteger":{ + "type":"integer", + "max":25, + "min":1 + }, "ProductCode":{ "type":"string", "max":255, diff --git a/tools/code-generation/api-descriptions/fms-2018-01-01.normal.json b/tools/code-generation/api-descriptions/fms-2018-01-01.normal.json index 4dfbe8d02aa..ee7d57c6175 100644 --- a/tools/code-generation/api-descriptions/fms-2018-01-01.normal.json +++ b/tools/code-generation/api-descriptions/fms-2018-01-01.normal.json @@ -598,7 +598,7 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidTypeException"} ], - "documentation":"

                    Creates an Firewall Manager policy.

                    Firewall Manager provides the following types of policies:

                    • An WAF policy (type WAFV2), which defines rule groups to run first in the corresponding WAF web ACL and rule groups to run last in the web ACL.

                    • An WAF Classic policy (type WAF), which defines a rule group.

                    • A Shield Advanced policy, which applies Shield Advanced protection to specified accounts and resources.

                    • A security group policy, which manages VPC security groups across your Amazon Web Services organization.

                    • An Network Firewall policy, which provides firewall rules to filter network traffic in specified Amazon VPCs.

                    • A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS queries for specified VPCs.

                    Each policy is specific to one of the types. If you want to enforce more than one policy type across accounts, create multiple policies. You can create multiple policies for each type.

                    You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more information about subscribing to Shield Advanced, see CreateSubscription.

                    " + "documentation":"

                    Creates an Firewall Manager policy.

                    A Firewall Manager policy is specific to the individual policy type. If you want to enforce multiple policy types across accounts, you can create multiple policies. You can create more than one policy for each type.

                    If you add a new account to an organization that you created with Organizations, Firewall Manager automatically applies the policy to the resources in that account that are within scope of the policy.

                    Firewall Manager provides the following types of policies:

                    • Shield Advanced policy - This policy applies Shield Advanced protection to specified accounts and resources.

                    • Security Groups policy - This type of policy gives you control over security groups that are in use throughout your organization in Organizations and lets you enforce a baseline set of rules across your organization.

                    • Network Firewall policy - This policy applies Network Firewall protection to your organization's VPCs.

                    • DNS Firewall policy - This policy applies Amazon Route 53 Resolver DNS Firewall protections to your organization's VPCs.

                    • Third-party firewall policy - This policy applies third-party firewall protections. Third-party firewalls are available by subscription through the Amazon Web Services Marketplace console at Amazon Web Services Marketplace.

                      • Palo Alto Networks Cloud NGFW policy - This policy applies Palo Alto Networks Cloud Next Generation Firewall (NGFW) protections and Palo Alto Networks Cloud NGFW rulestacks to your organization's VPCs.

                      • Fortigate CNF policy - This policy applies Fortigate Cloud Native Firewall (CNF) protections. Fortigate CNF is a cloud-centered solution that blocks Zero-Day threats and secures cloud infrastructures with industry-leading advanced threat prevention, smart web application firewalls (WAF), and API protection.

                    " }, "PutProtocolsList":{ "name":"PutProtocolsList", @@ -1125,7 +1125,7 @@ }, "DeleteAllPolicyResources":{ "shape":"Boolean", - "documentation":"

                    If True, the request performs cleanup according to the policy type.

                    For WAF and Shield Advanced policies, the cleanup does the following:

                    • Deletes rule groups created by Firewall Manager

                    • Removes web ACLs from in-scope resources

                    • Deletes web ACLs that contain no rules or rule groups

                    For security group policies, the cleanup does the following for each security group in the policy:

                    • Disassociates the security group from in-scope resources

                    • Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy

                    After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.

                    " + "documentation":"

                    If True, the request performs cleanup according to the policy type.

                    For WAF and Shield Advanced policies, the cleanup does the following:

                    • Deletes rule groups created by Firewall Manager

                    • Removes web ACLs from in-scope resources

                    • Deletes web ACLs that contain no rules or rule groups

                    For security group policies, the cleanup does the following for each security group in the policy:

                    • Disassociates the security group from in-scope resources

                    • Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy

                    For security group common policies, even if set to False, Firewall Manager deletes all security groups created by Firewall Manager that aren't associated with any other resources through another policy.

                    After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.

                    " } } }, @@ -1910,7 +1910,7 @@ "members":{ "PolicyId":{ "shape":"PolicyId", - "documentation":"

                    The ID of the Firewall Manager policy that you want the details for. This currently only supports security group content audit policies.

                    " + "documentation":"

                    The ID of the Firewall Manager policy that you want the details for. You can get violation details for the following policy types:

                    • DNS Firewall

                    • Imported Network Firewall

                    • Network Firewall

                    • Security group content audit

                    • Third-party firewall

                    " }, "MemberAccount":{ "shape":"AWSAccountId", @@ -2864,7 +2864,7 @@ }, "ResourceType":{ "shape":"ResourceType", - "documentation":"

                    The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

                    For WAF and Shield Advanced, resource types include AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution. For a security group common policy, valid values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, the value is AWS::EC2::VPC.

                    " + "documentation":"

                    The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

                    The following are valid resource types for each Firewall Manager policy type:

                    • Amazon Web Services WAF Classic - AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, and AWS::ElasticLoadBalancingV2::LoadBalancer.

                    • WAF - AWS::ApiGateway::Stage, AWS::ElasticLoadBalancingV2::LoadBalancer, and AWS::CloudFront::Distribution.

                    • DNS Firewall, Network Firewall, and third-party firewall - AWS::EC2::VPC.

                    • Shield Advanced - AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution.

                    • Security group content audit - AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance.

                    • Security group usage audit - AWS::EC2::SecurityGroup.

                    " }, "ResourceTypeList":{ "shape":"ResourceTypeList", @@ -3857,7 +3857,7 @@ }, "ManagedServiceData":{ "shape":"ManagedServiceData", - "documentation":"

                    Details about the service that are specific to the service type, in JSON format.

                    • Example: DNS_FIREWALL

                      \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"

                      Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

                    • Example: IMPORT_NETWORK_FIREWALL \"{\\\"type\\\":\\\"IMPORT_NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\\/rg1\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:drop\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:pass\\\"],\\\"networkFirewallStatelessCustomActions\\\":[],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\\/ThreatSignaturesEmergingEventsStrictOrder\\\",\\\"priority\\\":8}],\\\"networkFirewallStatefulEngineOptions\\\":{\\\"ruleOrder\\\":\\\"STRICT_ORDER\\\"},\\\"networkFirewallStatefulDefaultActions\\\":[\\\"aws:drop_strict\\\"]}}\"

                      \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"

                      Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

                    • Example: NETWORK_FIREWALL - Centralized deployment model

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}},\\\"firewallDeploymentModel\\\":{\\\"centralizedFirewallDeploymentModel\\\":{\\\"centralizedFirewallOrchestrationConfig\\\":{\\\"inspectionVpcIds\\\":[{\\\"resourceId\\\":\\\"vpc-1234\\\",\\\"accountId\\\":\\\"123456789011\\\"}],\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneId\\\":null,\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"allowedIPV4CidrList\\\":[]}}}}\"

                      To use the centralized deployment model, you must set PolicyOption to CENTRALIZED.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"OFF\\\"},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"

                      With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration and route management

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"]},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\": \\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"

                      To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\", \\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{ \\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\"]}]} },\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"OFF\\\",\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"

                      With custom Availability Zone configuration, you define which specific Availability Zones to create endpoints in by configuring firewallCreationConfig. To configure the Availability Zones in firewallCreationConfig, specify either the availabilityZoneName or availabilityZoneId parameter, not both parameters.

                      To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration and route management

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"],\\\"routeManagementConfig\\\":{\\\"allowCrossAZTrafficIfNoEndpoint\\\":true}},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"

                      To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: THIRD_PARTY_FIREWALL

                      \"{ \"type\":\"THIRD_PARTY_FIREWALL\", \"thirdPartyFirewall\":\"PALO_ALTO_NETWORKS_CLOUD_NGFW\", \"thirdPartyFirewallConfig\":{ \"thirdPartyFirewallPolicyList\":[\"global-1\"] }, \"firewallDeploymentModel\":{ \"distributedFirewallDeploymentModel\":{ \"distributedFirewallOrchestrationConfig\":{ \"firewallCreationConfig\":{ \"endpointLocation\":{ \"availabilityZoneConfigList\":[ { \"availabilityZoneName\":\"${AvailabilityZone}\" } ] } }, \"allowedIPV4CidrList\":[ ] } } } }\"

                    • Example: SECURITY_GROUPS_COMMON

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

                    • Example: SECURITY_GROUPS_COMMON - Security group tag distribution

                      \"\"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"revertManualSecurityGroupChanges\\\":true,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":false,\\\"enableTagDistribution\\\":true}\"\"

                      Firewall Manager automatically distributes tags from the primary group to the security groups created by this policy. To use security group tag distribution, you must also set revertManualSecurityGroupChanges to true, otherwise Firewall Manager won't be able to create the policy. When you enable revertManualSecurityGroupChanges, Firewall Manager identifies and reports when the security groups created by this policy become non-compliant.

                      Firewall Manager won't distrubute system tags added by Amazon Web Services services into the replica security groups. System tags begin with the aws: prefix.

                    • Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

                    • Example: SECURITY_GROUPS_CONTENT_AUDIT

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"

                      The security group action for content audit can be ALLOW or DENY. For ALLOW, all in-scope security group rules must be within the allowed range of the policy's security group rules. For DENY, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group.

                    • Example: SECURITY_GROUPS_USAGE_AUDIT

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"

                    • Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

                      \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\", \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"}, \\\"overrideCustomerWebaclClassic\\\":true|false}\"

                      For example: \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\", \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"

                      The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false.

                      For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string.

                    • Example: WAFV2 - Account takeover prevention and Bot Control managed rule groups, and rule action override

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesATPRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesATPRuleSet\\\":{\\\"loginPath\\\":\\\"/loginpath\\\",\\\"requestInspection\\\":{\\\"payloadType\\\":\\\"FORM_ENCODED|JSON\\\",\\\"usernameField\\\":{\\\"identifier\\\":\\\"/form/username\\\"},\\\"passwordField\\\":{\\\"identifier\\\":\\\"/form/password\\\"}}}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true},{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesBotControlRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesBotControlRuleSet\\\":{\\\"inspectionLevel\\\":\\\"TARGETED|COMMON\\\"}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true,\\\"ruleActionOverrides\\\":[{\\\"name\\\":\\\"Rule1\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}},{\\\"name\\\":\\\"Rule2\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true}\"

                      • Fraud Control account takeover prevention (ATP) - For information about the properties available for AWSManagedRulesATPRuleSet managed rule groups, see AWSManagedRulesATPRuleSet in the WAF API Reference.

                      • Bot Control - For information about AWSManagedRulesBotControlRuleSet managed rule groups, see AWSManagedRulesBotControlRuleSet in the WAF API Reference.

                      • Rule action overrides - Firewall Manager supports rule action overrides only for managed rule groups. To configure a RuleActionOverrides add the Name of the rule to override, and ActionToUse, which is the new action to use for the rule. For information about using rule action override, see RuleActionOverride in the WAF API Reference.

                    • Example: WAFV2 - CAPTCHA and Challenge configs

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true,\\\"captchaConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":500}},\\\"challengeConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":800}},\\\"tokenDomains\\\":[\\\"google.com\\\",\\\"amazon.com\\\"]}\"

                      If you update the policy's values for captchaConfig, challengeConfig, or tokenDomains, Firewall Manager will overwrite your local web ACLs to contain the new value(s). However, if you don't update the policy's captchaConfig, challengeConfig, or tokenDomains values, the values in your local web ACLs will remain unchanged. For information about CAPTCHA and Challenge configs, see CaptchaConfig and ChallengeConfig in the WAF API Reference.

                    • Example: WAFV2 - Firewall Manager support for WAF managed rule group versioning

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":true,\\\"version\\\":\\\"Version_2.0\\\",\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesCommonRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"

                      To use a specific version of a WAF managed rule group in your Firewall Manager policy, you must set versionEnabled to true, and set version to the version you'd like to use. If you don't set versionEnabled to true, or if you omit versionEnabled, then Firewall Manager uses the default version of the WAF managed rule group.

                    • Example: WAFV2 - Logging configurations

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null, \\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\": {\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\", \\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"} ,\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[], \\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[], \\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\" :null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\" :false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\": [\\\"arn:aws:s3:::aws-waf-logs-example-bucket\\\"] ,\\\"redactedFields\\\":[],\\\"loggingFilterConfigs\\\":{\\\"defaultBehavior\\\":\\\"KEEP\\\", \\\"filters\\\":[{\\\"behavior\\\":\\\"KEEP\\\",\\\"requirement\\\":\\\"MEETS_ALL\\\", \\\"conditions\\\":[{\\\"actionCondition\\\":\\\"CAPTCHA\\\"},{\\\"actionCondition\\\": \\\"CHALLENGE\\\"}, {\\\"actionCondition\\\":\\\"EXCLUDED_AS_COUNT\\\"}]}]}},\\\"sampledRequestsEnabledForDefaultActions\\\":true}\"

                      Firewall Manager supports Amazon Kinesis Data Firehose and Amazon S3 as the logDestinationConfigs in your loggingConfiguration. For information about WAF logging configurations, see LoggingConfiguration in the WAF API Reference

                      In the loggingConfiguration, you can specify one logDestinationConfigs. Optionally provide as many as 20 redactedFields. The RedactedFieldType must be one of URI, QUERY_STRING, HEADER, or METHOD.

                    • Example: WAF Classic

                      \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\": [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\": \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"

                    " + "documentation":"

                    Details about the service that are specific to the service type, in JSON format.

                    • Example: DNS_FIREWALL

                      \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"

                      Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

                    • Example: IMPORT_NETWORK_FIREWALL

                      \"{\\\"type\\\":\\\"IMPORT_NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\\/rg1\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:drop\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:pass\\\"],\\\"networkFirewallStatelessCustomActions\\\":[],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\\/ThreatSignaturesEmergingEventsStrictOrder\\\",\\\"priority\\\":8}],\\\"networkFirewallStatefulEngineOptions\\\":{\\\"ruleOrder\\\":\\\"STRICT_ORDER\\\"},\\\"networkFirewallStatefulDefaultActions\\\":[\\\"aws:drop_strict\\\"]}}\"

                      \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"

                      Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

                    • Example: NETWORK_FIREWALL - Centralized deployment model

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}},\\\"firewallDeploymentModel\\\":{\\\"centralizedFirewallDeploymentModel\\\":{\\\"centralizedFirewallOrchestrationConfig\\\":{\\\"inspectionVpcIds\\\":[{\\\"resourceId\\\":\\\"vpc-1234\\\",\\\"accountId\\\":\\\"123456789011\\\"}],\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneId\\\":null,\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"allowedIPV4CidrList\\\":[]}}}}\"

                      To use the centralized deployment model, you must set PolicyOption to CENTRALIZED.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"OFF\\\"},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"

                      With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration and route management

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"]},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\": \\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"

                      To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\", \\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{ \\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\"]}]} },\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"OFF\\\",\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"

                      With custom Availability Zone configuration, you define which specific Availability Zones to create endpoints in by configuring firewallCreationConfig. To configure the Availability Zones in firewallCreationConfig, specify either the availabilityZoneName or availabilityZoneId parameter, not both parameters.

                      To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration and route management

                      \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"],\\\"routeManagementConfig\\\":{\\\"allowCrossAZTrafficIfNoEndpoint\\\":true}},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"

                      To use the distributed deployment model, you must set PolicyOption to NULL.

                    • Example: SECURITY_GROUPS_COMMON

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

                    • Example: SECURITY_GROUPS_COMMON - Security group tag distribution

                      \"\"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"revertManualSecurityGroupChanges\\\":true,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":false,\\\"enableTagDistribution\\\":true}\"\"

                      Firewall Manager automatically distributes tags from the primary group to the security groups created by this policy. To use security group tag distribution, you must also set revertManualSecurityGroupChanges to true, otherwise Firewall Manager won't be able to create the policy. When you enable revertManualSecurityGroupChanges, Firewall Manager identifies and reports when the security groups created by this policy become non-compliant.

                      Firewall Manager won't distrubute system tags added by Amazon Web Services services into the replica security groups. System tags begin with the aws: prefix.

                    • Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

                    • Example: SECURITY_GROUPS_CONTENT_AUDIT

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"

                      The security group action for content audit can be ALLOW or DENY. For ALLOW, all in-scope security group rules must be within the allowed range of the policy's security group rules. For DENY, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group.

                    • Example: SECURITY_GROUPS_USAGE_AUDIT

                      \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"

                    • Example: SHIELD_ADVANCED with web ACL management

                      \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"optimizeUnassociatedWebACL\\\":true}\"

                      If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL.

                      Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager doesn't disassociate the resource from the web ACL. If you want Firewall Manager to clean up the web ACL, you must first manually disassociate the resources from the web ACL, and then enable the manage unused web ACLs option in your policy.

                      If you set optimizeUnassociatedWebACL to false, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope.

                    • Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

                      \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\", \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"}, \\\"overrideCustomerWebaclClassic\\\":true|false, \\\"optimizeUnassociatedWebACL\\\":true|false}\"

                      For example: \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\", \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"

                      The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false.

                      For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string.

                    • Example: THIRD_PARTY_FIREWALL

                      Replace THIRD_PARTY_FIREWALL_NAME with the name of the third-party firewall.

                      \"{ \"type\":\"THIRD_PARTY_FIREWALL\", \"thirdPartyFirewall\":\"THIRD_PARTY_FIREWALL_NAME\", \"thirdPartyFirewallConfig\":{ \"thirdPartyFirewallPolicyList\":[\"global-1\"] }, \"firewallDeploymentModel\":{ \"distributedFirewallDeploymentModel\":{ \"distributedFirewallOrchestrationConfig\":{ \"firewallCreationConfig\":{ \"endpointLocation\":{ \"availabilityZoneConfigList\":[ { \"availabilityZoneName\":\"${AvailabilityZone}\" } ] } }, \"allowedIPV4CidrList\":[ ] } } } }\"

                    • Example: WAFV2 - Account takeover prevention, Bot Control managed rule groups, optimize unassociated web ACL, and rule action override

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesATPRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesATPRuleSet\\\":{\\\"loginPath\\\":\\\"/loginpath\\\",\\\"requestInspection\\\":{\\\"payloadType\\\":\\\"FORM_ENCODED|JSON\\\",\\\"usernameField\\\":{\\\"identifier\\\":\\\"/form/username\\\"},\\\"passwordField\\\":{\\\"identifier\\\":\\\"/form/password\\\"}}}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true},{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesBotControlRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesBotControlRuleSet\\\":{\\\"inspectionLevel\\\":\\\"TARGETED|COMMON\\\"}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true,\\\"ruleActionOverrides\\\":[{\\\"name\\\":\\\"Rule1\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}},{\\\"name\\\":\\\"Rule2\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true,\\\"optimizeUnassociatedWebACL\\\":true}\"

                      • Bot Control - For information about AWSManagedRulesBotControlRuleSet managed rule groups, see AWSManagedRulesBotControlRuleSet in the WAF API Reference.

                      • Fraud Control account takeover prevention (ATP) - For information about the properties available for AWSManagedRulesATPRuleSet managed rule groups, see AWSManagedRulesATPRuleSet in the WAF API Reference.

                      • Optimize unassociated web ACL - If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL.

                        Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager disassociates the resource from the web ACL, but won't clean up the unused web ACL. Firewall Manager only cleans up unused web ACLs when you first enable management of unused web ACLs in a policy.

                        If you set optimizeUnassociatedWebACL to false Firewall Manager doesn't manage unused web ACLs, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope.

                      • Rule action overrides - Firewall Manager supports rule action overrides only for managed rule groups. To configure a RuleActionOverrides add the Name of the rule to override, and ActionToUse, which is the new action to use for the rule. For information about using rule action override, see RuleActionOverride in the WAF API Reference.

                    • Example: WAFV2 - CAPTCHA and Challenge configs

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true,\\\"captchaConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":500}},\\\"challengeConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":800}},\\\"tokenDomains\\\":[\\\"google.com\\\",\\\"amazon.com\\\"],\\\"associationConfig\\\":{\\\"requestBody\\\":{\\\"CLOUDFRONT\\\":{\\\"defaultSizeInspectionLimit\\\":\\\"KB_16\\\"}}}}\"

                      • CAPTCHA and Challenge configs - If you update the policy's values for associationConfig, captchaConfig, challengeConfig, or tokenDomains, Firewall Manager will overwrite your local web ACLs to contain the new value(s). However, if you don't update the policy's associationConfig, captchaConfig, challengeConfig, or tokenDomains values, the values in your local web ACLs will remain unchanged. For information about association configs, see AssociationConfig. For information about CAPTCHA and Challenge configs, see CaptchaConfig and ChallengeConfig in the WAF API Reference.

                      • defaultSizeInspectionLimit - Specifies the maximum size of the web request body component that an associated Amazon CloudFront distribution should send to WAF for inspection. For more information, see DefaultSizeInspectionLimit in the WAF API Reference.

                    • Example: WAFV2 - Firewall Manager support for WAF managed rule group versioning

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":true,\\\"version\\\":\\\"Version_2.0\\\",\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesCommonRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"

                      To use a specific version of a WAF managed rule group in your Firewall Manager policy, you must set versionEnabled to true, and set version to the version you'd like to use. If you don't set versionEnabled to true, or if you omit versionEnabled, then Firewall Manager uses the default version of the WAF managed rule group.

                    • Example: WAFV2 - Logging configurations

                      \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null, \\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\": {\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\", \\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"} ,\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[], \\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[], \\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\" :null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\" :false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\": [\\\"arn:aws:s3:::aws-waf-logs-example-bucket\\\"] ,\\\"redactedFields\\\":[],\\\"loggingFilterConfigs\\\":{\\\"defaultBehavior\\\":\\\"KEEP\\\", \\\"filters\\\":[{\\\"behavior\\\":\\\"KEEP\\\",\\\"requirement\\\":\\\"MEETS_ALL\\\", \\\"conditions\\\":[{\\\"actionCondition\\\":\\\"CAPTCHA\\\"},{\\\"actionCondition\\\": \\\"CHALLENGE\\\"}, {\\\"actionCondition\\\":\\\"EXCLUDED_AS_COUNT\\\"}]}]}},\\\"sampledRequestsEnabledForDefaultActions\\\":true}\"

                      Firewall Manager supports Amazon Kinesis Data Firehose and Amazon S3 as the logDestinationConfigs in your loggingConfiguration. For information about WAF logging configurations, see LoggingConfiguration in the WAF API Reference

                      In the loggingConfiguration, you can specify one logDestinationConfigs. Optionally provide as many as 20 redactedFields. The RedactedFieldType must be one of URI, QUERY_STRING, HEADER, or METHOD.

                    • Example: WAF Classic

                      \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\": [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\": \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"

                    " }, "PolicyOption":{ "shape":"PolicyOption", diff --git a/tools/code-generation/api-descriptions/mediaconvert-2017-08-29.normal.json b/tools/code-generation/api-descriptions/mediaconvert-2017-08-29.normal.json index e47e0d9c3d9..ad8347375ad 100644 --- a/tools/code-generation/api-descriptions/mediaconvert-2017-08-29.normal.json +++ b/tools/code-generation/api-descriptions/mediaconvert-2017-08-29.normal.json @@ -1502,7 +1502,7 @@ "SampleRate": { "shape": "__integerMin8000Max192000", "locationName": "sampleRate", - "documentation": "Sample rate in hz." + "documentation": "Sample rate in Hz." } }, "documentation": "Required when you set Codec to the value AIFF." @@ -1601,7 +1601,7 @@ }, "AudioChannelTag": { "type": "string", - "documentation": "You can add a tag for this mono-channel audio track to mimic its placement in a multi-channel layout. For example, if this track is the left surround channel, choose Left surround (LS).", + "documentation": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. Enter channel layout tags in the same order as your output's audio channel order. For example, if your output audio track has a left and a right channel, enter Left (L) for the first channel and Right (R) for the second. If your output has multiple single-channel audio tracks, enter a single channel layout tag for each track.", "enum": [ "L", "R", @@ -1639,10 +1639,15 @@ "ChannelTag": { "shape": "AudioChannelTag", "locationName": "channelTag", - "documentation": "You can add a tag for this mono-channel audio track to mimic its placement in a multi-channel layout. For example, if this track is the left surround channel, choose Left surround (LS)." + "documentation": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. Enter channel layout tags in the same order as your output's audio channel order. For example, if your output audio track has a left and a right channel, enter Left (L) for the first channel and Right (R) for the second. If your output has multiple single-channel audio tracks, enter a single channel layout tag for each track." + }, + "ChannelTags": { + "shape": "__listOfAudioChannelTag", + "locationName": "channelTags", + "documentation": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. Enter channel layout tags in the same order as your output's audio channel order. For example, if your output audio track has a left and a right channel, enter Left (L) for the first channel and Right (R) for the second. If your output has multiple single-channel audio tracks, enter a single channel layout tag for each track." } }, - "documentation": "When you mimic a multi-channel audio layout with multiple mono-channel tracks, you can tag each channel layout manually. For example, you would tag the tracks that contain your left, right, and center audio with Left (L), Right (R), and Center (C), respectively. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use audio layout tagging, your output must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or AIFF; and you must set up your audio track to have only one channel." + "documentation": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use Audio layout tagging, your output must be in a QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF." }, "AudioCodec": { "type": "string", @@ -1742,7 +1747,7 @@ "AudioChannelTaggingSettings": { "shape": "AudioChannelTaggingSettings", "locationName": "audioChannelTaggingSettings", - "documentation": "When you mimic a multi-channel audio layout with multiple mono-channel tracks, you can tag each channel layout manually. For example, you would tag the tracks that contain your left, right, and center audio with Left (L), Right (R), and Center (C), respectively. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use audio layout tagging, your output must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or AIFF; and you must set up your audio track to have only one channel." + "documentation": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use Audio layout tagging, your output must be in a QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF." }, "AudioNormalizationSettings": { "shape": "AudioNormalizationSettings", @@ -5358,7 +5363,7 @@ }, "F4vMoovPlacement": { "type": "string", - "documentation": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.", + "documentation": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal.", "enum": [ "PROGRESSIVE_DOWNLOAD", "NORMAL" @@ -5370,7 +5375,7 @@ "MoovPlacement": { "shape": "F4vMoovPlacement", "locationName": "moovPlacement", - "documentation": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end." + "documentation": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal." } }, "documentation": "Settings for F4v container" @@ -5459,7 +5464,7 @@ "SampleRate": { "shape": "__integerMin22050Max48000", "locationName": "sampleRate", - "documentation": "Sample rate in hz." + "documentation": "Sample rate in Hz." } }, "documentation": "Required when you set Codec, under AudioDescriptions>CodecSettings, to the value FLAC." @@ -7984,6 +7989,11 @@ "locationName": "extendedDataServices", "documentation": "If your source content has EIA-608 Line 21 Data Services, enable this feature to specify what MediaConvert does with the Extended Data Services (XDS) packets. You can choose to pass through XDS packets, or remove them from the output. For more information about XDS, see EIA-608 Line Data Services, section 9.5.1.5 05h Content Advisory." }, + "FollowSource": { + "shape": "__integerMin1Max150", + "locationName": "followSource", + "documentation": "Specify the input that MediaConvert references for your default output settings. MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify different output settings for. Enabling this setting will disable \"Follow source\" for all other inputs. If MediaConvert cannot follow your source, for example if you specify an audio-only input, MediaConvert uses the first followable input instead. In your JSON job specification, enter an integer from 1 to 150 corresponding to the order of your inputs." + }, "Inputs": { "shape": "__listOfInput", "locationName": "inputs", @@ -8145,6 +8155,11 @@ "locationName": "extendedDataServices", "documentation": "If your source content has EIA-608 Line 21 Data Services, enable this feature to specify what MediaConvert does with the Extended Data Services (XDS) packets. You can choose to pass through XDS packets, or remove them from the output. For more information about XDS, see EIA-608 Line Data Services, section 9.5.1.5 05h Content Advisory." }, + "FollowSource": { + "shape": "__integerMin1Max150", + "locationName": "followSource", + "documentation": "Specify the input that MediaConvert references for your default output settings. MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify different output settings for. Enabling this setting will disable \"Follow source\" for all other inputs. If MediaConvert cannot follow your source, for example if you specify an audio-only input, MediaConvert uses the first followable input instead. In your JSON job specification, enter an integer from 1 to 150 corresponding to the order of your inputs." + }, "Inputs": { "shape": "__listOfInputTemplate", "locationName": "inputs", @@ -9375,7 +9390,7 @@ "SampleRate": { "shape": "__integerMin32000Max48000", "locationName": "sampleRate", - "documentation": "Sample rate in hz." + "documentation": "Sample rate in Hz." } }, "documentation": "Required when you set Codec to the value MP2." @@ -9409,7 +9424,7 @@ "SampleRate": { "shape": "__integerMin22050Max48000", "locationName": "sampleRate", - "documentation": "Sample rate in hz." + "documentation": "Sample rate in Hz." }, "VbrQuality": { "shape": "__integerMin0Max9", @@ -9437,7 +9452,7 @@ }, "Mp4MoovPlacement": { "type": "string", - "documentation": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.", + "documentation": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal.", "enum": [ "PROGRESSIVE_DOWNLOAD", "NORMAL" @@ -9469,7 +9484,7 @@ "MoovPlacement": { "shape": "Mp4MoovPlacement", "locationName": "moovPlacement", - "documentation": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end." + "documentation": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal." }, "Mp4MajorBrand": { "shape": "__string", @@ -10388,7 +10403,7 @@ "SampleRate": { "shape": "__integerMin16000Max48000", "locationName": "sampleRate", - "documentation": "Optional. Sample rate in hz. Valid values are 16000, 24000, and 48000. The default value is 48000." + "documentation": "Optional. Sample rate in Hz. Valid values are 16000, 24000, and 48000. The default value is 48000." } }, "documentation": "Required when you set Codec, under AudioDescriptions>CodecSettings, to the value OPUS." @@ -11260,10 +11275,13 @@ }, "ScalingBehavior": { "type": "string", - "documentation": "Specify how the service handles outputs that have a different aspect ratio from the input aspect ratio. Choose Stretch to output to have the service stretch your video image to fit. Keep the setting Default to have the service letterbox your video instead. This setting overrides any value that you specify for the setting Selection placement in this output.", + "documentation": "Specify the video Scaling behavior when your output has a different resolution than your input. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html", "enum": [ "DEFAULT", - "STRETCH_TO_OUTPUT" + "STRETCH_TO_OUTPUT", + "FIT", + "FIT_NO_UPSCALE", + "FILL" ] }, "SccDestinationFramerate": { @@ -12074,7 +12092,7 @@ "ScalingBehavior": { "shape": "ScalingBehavior", "locationName": "scalingBehavior", - "documentation": "Specify how the service handles outputs that have a different aspect ratio from the input aspect ratio. Choose Stretch to output to have the service stretch your video image to fit. Keep the setting Default to have the service letterbox your video instead. This setting overrides any value that you specify for the setting Selection placement in this output." + "documentation": "Specify the video Scaling behavior when your output has a different resolution than your input. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html" }, "Sharpness": { "shape": "__integerMin0Max100", @@ -12134,7 +12152,7 @@ "documentation": "Enter the start timecode in the underlying input video for this overlay. Your overlay will be active starting with this frame. To display your video overlay starting at the beginning of the underlying video: Leave blank. Use the format HH:MM:SS:FF or HH:MM:SS;FF, where HH is the hour, MM is the minute, SS is the second, and FF is the frame number. When entering this value, take into account your choice for the underlying Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your overlay to begin five minutes into the video, enter 01:05:00:00." } }, - "documentation": "Overlay one or more videos on top of your input video." + "documentation": "Overlay one or more videos on top of your input video. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-overlays.html" }, "VideoOverlayInput": { "type": "structure", @@ -12152,7 +12170,7 @@ "TimecodeSource": { "shape": "InputTimecodeSource", "locationName": "timecodeSource", - "documentation": "Specify the starting timecode for your video overlay. To use the timecode present in your video overlay: Choose Embedded. To use a zerobased timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When you do, enter the starting timecode in Start timecode. If you don't specify a value for Timecode source, MediaConvert uses Embedded by default." + "documentation": "Specify the timecode source for your video overlay input clips. To use the timecode present in your video overlay: Choose Embedded. To use a zerobased timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When you do, enter the starting timecode in Start timecode. If you don't specify a value for Timecode source, MediaConvert uses Embedded by default." }, "TimecodeStart": { "shape": "__stringMin11Max11Pattern01D20305D205D", @@ -13322,6 +13340,11 @@ "min": 1, "max": 1001 }, + "__integerMin1Max150": { + "type": "integer", + "min": 1, + "max": 150 + }, "__integerMin1Max17895697": { "type": "integer", "min": 1, @@ -13583,6 +13606,12 @@ "shape": "AllowedRenditionSize" } }, + "__listOfAudioChannelTag": { + "type": "list", + "member": { + "shape": "AudioChannelTag" + } + }, "__listOfAudioDescription": { "type": "list", "member": { diff --git a/tools/code-generation/api-descriptions/rds-2014-10-31.normal.json b/tools/code-generation/api-descriptions/rds-2014-10-31.normal.json index 0e8bc27f8e4..5a0790779ad 100644 --- a/tools/code-generation/api-descriptions/rds-2014-10-31.normal.json +++ b/tools/code-generation/api-descriptions/rds-2014-10-31.normal.json @@ -630,7 +630,7 @@ {"shape":"KMSKeyNotAccessibleFault"}, {"shape":"IntegrationConflictOperationFault"} ], - "documentation":"

                    Creates a zero-ETL integration with Amazon Redshift. For more information, see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide.

                    " + "documentation":"

                    Creates a zero-ETL integration with Amazon Redshift.

                    " }, "CreateOptionGroup":{ "name":"CreateOptionGroup", @@ -967,7 +967,7 @@ {"shape":"IntegrationConflictOperationFault"}, {"shape":"InvalidIntegrationStateFault"} ], - "documentation":"

                    Deletes a zero-ETL integration with Amazon Redshift. For more information, see Deleting Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide

                    " + "documentation":"

                    Deletes a zero-ETL integration with Amazon Redshift.

                    " }, "DeleteOptionGroup":{ "name":"DeleteOptionGroup", @@ -1550,7 +1550,7 @@ "errors":[ {"shape":"IntegrationNotFoundFault"} ], - "documentation":"

                    Describe one or more zero-ETL integration with Amazon Redshift. For more information, see Viewing and monitoring Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide

                    " + "documentation":"

                    Describe one or more zero-ETL integrations with Amazon Redshift.

                    " }, "DescribeOptionGroupOptions":{ "name":"DescribeOptionGroupOptions", @@ -4942,7 +4942,7 @@ "members":{ "SourceArn":{ "shape":"SourceArn", - "documentation":"

                    The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication.

                    " + "documentation":"

                    The Amazon Resource Name (ARN) of the database to use as the source for replication.

                    " }, "TargetArn":{ "shape":"Arn", @@ -4954,7 +4954,7 @@ }, "KMSKeyId":{ "shape":"String", - "documentation":"

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, Aurora uses a default Amazon Web Services owned key.

                    " + "documentation":"

                    The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default Amazon Web Services owned key.

                    " }, "AdditionalEncryptionContext":{ "shape":"EncryptionContextMap", @@ -6333,7 +6333,7 @@ }, "SupportsIntegrations":{ "shape":"Boolean", - "documentation":"

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations with Amazon Redshift.

                    " + "documentation":"

                    Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

                    " } }, "documentation":"

                    This data type is used as a response element in the action DescribeDBEngineVersions.

                    " @@ -10666,7 +10666,7 @@ "members":{ "SourceArn":{ "shape":"SourceArn", - "documentation":"

                    The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source for replication.

                    " + "documentation":"

                    The Amazon Resource Name (ARN) of the database used as the source for replication.

                    " }, "TargetArn":{ "shape":"Arn", @@ -10702,7 +10702,7 @@ "documentation":"

                    Any errors associated with the integration.

                    " } }, - "documentation":"

                    An Aurora zero-ETL integration with Amazon Redshift. For more information, see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide.

                    " + "documentation":"

                    A zero-ETL integration with Amazon Redshift.

                    " }, "IntegrationAlreadyExistsFault":{ "type":"structure", @@ -15768,7 +15768,7 @@ }, "SupportsIntegrations":{ "shape":"BooleanOptional", - "documentation":"

                    Indicates whether the DB engine version supports Aurora zero-ETL integrations with Amazon Redshift.

                    " + "documentation":"

                    Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

                    " } }, "documentation":"

                    The version of the database engine that a DB instance can be upgraded to.

                    " diff --git a/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-rule-set.json b/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-rule-set.json index 88dcbe68ecd..78a42c1832e 100644 --- a/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-rule-set.json +++ b/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-tests.json b/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-tests.json index 592037b78a1..b5e526bdf11 100644 --- a/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-tests.json +++ b/tools/code-generation/endpoints/controltower-2018-05-10.endpoint-tests.json @@ -529,6 +529,17 @@ "expect": { "error": "Invalid Configuration: Missing Region" } + }, + { + "documentation": "Partition doesn't support DualStack", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } } ], "version": "1.0" diff --git a/tools/code-generation/endpoints/cur-2017-01-06.endpoint-rule-set.json b/tools/code-generation/endpoints/cur-2017-01-06.endpoint-rule-set.json index 1b81a458526..77ce4034ffe 100644 --- a/tools/code-generation/endpoints/cur-2017-01-06.endpoint-rule-set.json +++ b/tools/code-generation/endpoints/cur-2017-01-06.endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/tools/code-generation/endpoints/entitlement.marketplace-2017-01-11.endpoint-rule-set.json b/tools/code-generation/endpoints/entitlement.marketplace-2017-01-11.endpoint-rule-set.json index 4aa393031f0..e91f63bfb7c 100644 --- a/tools/code-generation/endpoints/entitlement.marketplace-2017-01-11.endpoint-rule-set.json +++ b/tools/code-generation/endpoints/entitlement.marketplace-2017-01-11.endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -326,9 +324,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/tools/code-generation/endpoints/fms-2018-01-01.endpoint-rule-set.json b/tools/code-generation/endpoints/fms-2018-01-01.endpoint-rule-set.json index 24da5eb6cec..f768dea6845 100644 --- a/tools/code-generation/endpoints/fms-2018-01-01.endpoint-rule-set.json +++ b/tools/code-generation/endpoints/fms-2018-01-01.endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/tools/code-generation/endpoints/mediaconvert-2017-08-29.endpoint-rule-set.json b/tools/code-generation/endpoints/mediaconvert-2017-08-29.endpoint-rule-set.json index b3cfd3d2ad8..52db3f79032 100644 --- a/tools/code-generation/endpoints/mediaconvert-2017-08-29.endpoint-rule-set.json +++ b/tools/code-generation/endpoints/mediaconvert-2017-08-29.endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,18 +212,17 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -236,7 +231,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -256,14 +252,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -277,7 +275,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -297,7 +294,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -308,14 +304,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -345,9 +343,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [],