1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/s3-crt/S3Crt_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSVector.h> 9 #include <aws/s3-crt/model/OwnershipControlsRule.h> 10 #include <utility> 11 12 namespace Aws 13 { 14 namespace Utils 15 { 16 namespace Xml 17 { 18 class XmlNode; 19 } // namespace Xml 20 } // namespace Utils 21 namespace S3Crt 22 { 23 namespace Model 24 { 25 26 /** 27 * <p>The container element for a bucket's ownership controls.</p><p><h3>See 28 * Also:</h3> <a 29 * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OwnershipControls">AWS 30 * API Reference</a></p> 31 */ 32 class AWS_S3CRT_API OwnershipControls 33 { 34 public: 35 OwnershipControls(); 36 OwnershipControls(const Aws::Utils::Xml::XmlNode& xmlNode); 37 OwnershipControls& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); 38 39 void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; 40 41 42 /** 43 * <p>The container element for an ownership control rule.</p> 44 */ GetRules()45 inline const Aws::Vector<OwnershipControlsRule>& GetRules() const{ return m_rules; } 46 47 /** 48 * <p>The container element for an ownership control rule.</p> 49 */ RulesHasBeenSet()50 inline bool RulesHasBeenSet() const { return m_rulesHasBeenSet; } 51 52 /** 53 * <p>The container element for an ownership control rule.</p> 54 */ SetRules(const Aws::Vector<OwnershipControlsRule> & value)55 inline void SetRules(const Aws::Vector<OwnershipControlsRule>& value) { m_rulesHasBeenSet = true; m_rules = value; } 56 57 /** 58 * <p>The container element for an ownership control rule.</p> 59 */ SetRules(Aws::Vector<OwnershipControlsRule> && value)60 inline void SetRules(Aws::Vector<OwnershipControlsRule>&& value) { m_rulesHasBeenSet = true; m_rules = std::move(value); } 61 62 /** 63 * <p>The container element for an ownership control rule.</p> 64 */ WithRules(const Aws::Vector<OwnershipControlsRule> & value)65 inline OwnershipControls& WithRules(const Aws::Vector<OwnershipControlsRule>& value) { SetRules(value); return *this;} 66 67 /** 68 * <p>The container element for an ownership control rule.</p> 69 */ WithRules(Aws::Vector<OwnershipControlsRule> && value)70 inline OwnershipControls& WithRules(Aws::Vector<OwnershipControlsRule>&& value) { SetRules(std::move(value)); return *this;} 71 72 /** 73 * <p>The container element for an ownership control rule.</p> 74 */ AddRules(const OwnershipControlsRule & value)75 inline OwnershipControls& AddRules(const OwnershipControlsRule& value) { m_rulesHasBeenSet = true; m_rules.push_back(value); return *this; } 76 77 /** 78 * <p>The container element for an ownership control rule.</p> 79 */ AddRules(OwnershipControlsRule && value)80 inline OwnershipControls& AddRules(OwnershipControlsRule&& value) { m_rulesHasBeenSet = true; m_rules.push_back(std::move(value)); return *this; } 81 82 private: 83 84 Aws::Vector<OwnershipControlsRule> m_rules; 85 bool m_rulesHasBeenSet; 86 }; 87 88 } // namespace Model 89 } // namespace S3Crt 90 } // namespace Aws 91