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/medialive/MediaLive_EXPORTS.h>
8 #include <aws/medialive/MediaLiveRequest.h>
9 #include <aws/core/utils/memory/stl/AWSMap.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <aws/medialive/model/InputWhitelistRuleCidr.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace MediaLive
18 {
19 namespace Model
20 {
21 
22   /**
23    * The IPv4 CIDRs to whitelist for this Input Security Group<p><h3>See Also:</h3>
24    * <a
25    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/CreateInputSecurityGroupRequest">AWS
26    * API Reference</a></p>
27    */
28   class AWS_MEDIALIVE_API CreateInputSecurityGroupRequest : public MediaLiveRequest
29   {
30   public:
31     CreateInputSecurityGroupRequest();
32 
33     // Service request name is the Operation name which will send this request out,
34     // each operation should has unique request name, so that we can get operation's name from this request.
35     // Note: this is not true for response, multiple operations may have the same response name,
36     // so we can not get operation's name from response.
GetServiceRequestName()37     inline virtual const char* GetServiceRequestName() const override { return "CreateInputSecurityGroup"; }
38 
39     Aws::String SerializePayload() const override;
40 
41 
42     /**
43      * A collection of key-value pairs.
44      */
GetTags()45     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
46 
47     /**
48      * A collection of key-value pairs.
49      */
TagsHasBeenSet()50     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
51 
52     /**
53      * A collection of key-value pairs.
54      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)55     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
56 
57     /**
58      * A collection of key-value pairs.
59      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)60     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
61 
62     /**
63      * A collection of key-value pairs.
64      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)65     inline CreateInputSecurityGroupRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
66 
67     /**
68      * A collection of key-value pairs.
69      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)70     inline CreateInputSecurityGroupRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
71 
72     /**
73      * A collection of key-value pairs.
74      */
AddTags(const Aws::String & key,const Aws::String & value)75     inline CreateInputSecurityGroupRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
76 
77     /**
78      * A collection of key-value pairs.
79      */
AddTags(Aws::String && key,const Aws::String & value)80     inline CreateInputSecurityGroupRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
81 
82     /**
83      * A collection of key-value pairs.
84      */
AddTags(const Aws::String & key,Aws::String && value)85     inline CreateInputSecurityGroupRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
86 
87     /**
88      * A collection of key-value pairs.
89      */
AddTags(Aws::String && key,Aws::String && value)90     inline CreateInputSecurityGroupRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
91 
92     /**
93      * A collection of key-value pairs.
94      */
AddTags(const char * key,Aws::String && value)95     inline CreateInputSecurityGroupRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
96 
97     /**
98      * A collection of key-value pairs.
99      */
AddTags(Aws::String && key,const char * value)100     inline CreateInputSecurityGroupRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
101 
102     /**
103      * A collection of key-value pairs.
104      */
AddTags(const char * key,const char * value)105     inline CreateInputSecurityGroupRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
106 
107 
108     /**
109      * List of IPv4 CIDR addresses to whitelist
110      */
GetWhitelistRules()111     inline const Aws::Vector<InputWhitelistRuleCidr>& GetWhitelistRules() const{ return m_whitelistRules; }
112 
113     /**
114      * List of IPv4 CIDR addresses to whitelist
115      */
WhitelistRulesHasBeenSet()116     inline bool WhitelistRulesHasBeenSet() const { return m_whitelistRulesHasBeenSet; }
117 
118     /**
119      * List of IPv4 CIDR addresses to whitelist
120      */
SetWhitelistRules(const Aws::Vector<InputWhitelistRuleCidr> & value)121     inline void SetWhitelistRules(const Aws::Vector<InputWhitelistRuleCidr>& value) { m_whitelistRulesHasBeenSet = true; m_whitelistRules = value; }
122 
123     /**
124      * List of IPv4 CIDR addresses to whitelist
125      */
SetWhitelistRules(Aws::Vector<InputWhitelistRuleCidr> && value)126     inline void SetWhitelistRules(Aws::Vector<InputWhitelistRuleCidr>&& value) { m_whitelistRulesHasBeenSet = true; m_whitelistRules = std::move(value); }
127 
128     /**
129      * List of IPv4 CIDR addresses to whitelist
130      */
WithWhitelistRules(const Aws::Vector<InputWhitelistRuleCidr> & value)131     inline CreateInputSecurityGroupRequest& WithWhitelistRules(const Aws::Vector<InputWhitelistRuleCidr>& value) { SetWhitelistRules(value); return *this;}
132 
133     /**
134      * List of IPv4 CIDR addresses to whitelist
135      */
WithWhitelistRules(Aws::Vector<InputWhitelistRuleCidr> && value)136     inline CreateInputSecurityGroupRequest& WithWhitelistRules(Aws::Vector<InputWhitelistRuleCidr>&& value) { SetWhitelistRules(std::move(value)); return *this;}
137 
138     /**
139      * List of IPv4 CIDR addresses to whitelist
140      */
AddWhitelistRules(const InputWhitelistRuleCidr & value)141     inline CreateInputSecurityGroupRequest& AddWhitelistRules(const InputWhitelistRuleCidr& value) { m_whitelistRulesHasBeenSet = true; m_whitelistRules.push_back(value); return *this; }
142 
143     /**
144      * List of IPv4 CIDR addresses to whitelist
145      */
AddWhitelistRules(InputWhitelistRuleCidr && value)146     inline CreateInputSecurityGroupRequest& AddWhitelistRules(InputWhitelistRuleCidr&& value) { m_whitelistRulesHasBeenSet = true; m_whitelistRules.push_back(std::move(value)); return *this; }
147 
148   private:
149 
150     Aws::Map<Aws::String, Aws::String> m_tags;
151     bool m_tagsHasBeenSet;
152 
153     Aws::Vector<InputWhitelistRuleCidr> m_whitelistRules;
154     bool m_whitelistRulesHasBeenSet;
155   };
156 
157 } // namespace Model
158 } // namespace MediaLive
159 } // namespace Aws
160