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/iam/IAM_EXPORTS.h>
8 #include <aws/iam/IAMRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace IAM
15 {
16 namespace Model
17 {
18 
19   /**
20    */
21   class AWS_IAM_API DeleteGroupPolicyRequest : public IAMRequest
22   {
23   public:
24     DeleteGroupPolicyRequest();
25 
26     // Service request name is the Operation name which will send this request out,
27     // each operation should has unique request name, so that we can get operation's name from this request.
28     // Note: this is not true for response, multiple operations may have the same response name,
29     // so we can not get operation's name from response.
GetServiceRequestName()30     inline virtual const char* GetServiceRequestName() const override { return "DeleteGroupPolicy"; }
31 
32     Aws::String SerializePayload() const override;
33 
34   protected:
35     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
36 
37   public:
38 
39     /**
40      * <p>The name (friendly name, not ARN) identifying the group that the policy is
41      * embedded in.</p> <p>This parameter allows (through its <a
42      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
43      * consisting of upper and lowercase alphanumeric characters with no spaces. You
44      * can also include any of the following characters: _+=,.@-</p>
45      */
GetGroupName()46     inline const Aws::String& GetGroupName() const{ return m_groupName; }
47 
48     /**
49      * <p>The name (friendly name, not ARN) identifying the group that the policy is
50      * embedded in.</p> <p>This parameter allows (through its <a
51      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
52      * consisting of upper and lowercase alphanumeric characters with no spaces. You
53      * can also include any of the following characters: _+=,.@-</p>
54      */
GroupNameHasBeenSet()55     inline bool GroupNameHasBeenSet() const { return m_groupNameHasBeenSet; }
56 
57     /**
58      * <p>The name (friendly name, not ARN) identifying the group that the policy is
59      * embedded in.</p> <p>This parameter allows (through its <a
60      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
61      * consisting of upper and lowercase alphanumeric characters with no spaces. You
62      * can also include any of the following characters: _+=,.@-</p>
63      */
SetGroupName(const Aws::String & value)64     inline void SetGroupName(const Aws::String& value) { m_groupNameHasBeenSet = true; m_groupName = value; }
65 
66     /**
67      * <p>The name (friendly name, not ARN) identifying the group that the policy is
68      * embedded in.</p> <p>This parameter allows (through its <a
69      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
70      * consisting of upper and lowercase alphanumeric characters with no spaces. You
71      * can also include any of the following characters: _+=,.@-</p>
72      */
SetGroupName(Aws::String && value)73     inline void SetGroupName(Aws::String&& value) { m_groupNameHasBeenSet = true; m_groupName = std::move(value); }
74 
75     /**
76      * <p>The name (friendly name, not ARN) identifying the group that the policy is
77      * embedded in.</p> <p>This parameter allows (through its <a
78      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
79      * consisting of upper and lowercase alphanumeric characters with no spaces. You
80      * can also include any of the following characters: _+=,.@-</p>
81      */
SetGroupName(const char * value)82     inline void SetGroupName(const char* value) { m_groupNameHasBeenSet = true; m_groupName.assign(value); }
83 
84     /**
85      * <p>The name (friendly name, not ARN) identifying the group that the policy is
86      * embedded in.</p> <p>This parameter allows (through its <a
87      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
88      * consisting of upper and lowercase alphanumeric characters with no spaces. You
89      * can also include any of the following characters: _+=,.@-</p>
90      */
WithGroupName(const Aws::String & value)91     inline DeleteGroupPolicyRequest& WithGroupName(const Aws::String& value) { SetGroupName(value); return *this;}
92 
93     /**
94      * <p>The name (friendly name, not ARN) identifying the group that the policy is
95      * embedded in.</p> <p>This parameter allows (through its <a
96      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
97      * consisting of upper and lowercase alphanumeric characters with no spaces. You
98      * can also include any of the following characters: _+=,.@-</p>
99      */
WithGroupName(Aws::String && value)100     inline DeleteGroupPolicyRequest& WithGroupName(Aws::String&& value) { SetGroupName(std::move(value)); return *this;}
101 
102     /**
103      * <p>The name (friendly name, not ARN) identifying the group that the policy is
104      * embedded in.</p> <p>This parameter allows (through its <a
105      * href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters
106      * consisting of upper and lowercase alphanumeric characters with no spaces. You
107      * can also include any of the following characters: _+=,.@-</p>
108      */
WithGroupName(const char * value)109     inline DeleteGroupPolicyRequest& WithGroupName(const char* value) { SetGroupName(value); return *this;}
110 
111 
112     /**
113      * <p>The name identifying the policy document to delete.</p> <p>This parameter
114      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
115      * a string of characters consisting of upper and lowercase alphanumeric characters
116      * with no spaces. You can also include any of the following characters:
117      * _+=,.@-</p>
118      */
GetPolicyName()119     inline const Aws::String& GetPolicyName() const{ return m_policyName; }
120 
121     /**
122      * <p>The name identifying the policy document to delete.</p> <p>This parameter
123      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
124      * a string of characters consisting of upper and lowercase alphanumeric characters
125      * with no spaces. You can also include any of the following characters:
126      * _+=,.@-</p>
127      */
PolicyNameHasBeenSet()128     inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
129 
130     /**
131      * <p>The name identifying the policy document to delete.</p> <p>This parameter
132      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
133      * a string of characters consisting of upper and lowercase alphanumeric characters
134      * with no spaces. You can also include any of the following characters:
135      * _+=,.@-</p>
136      */
SetPolicyName(const Aws::String & value)137     inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
138 
139     /**
140      * <p>The name identifying the policy document to delete.</p> <p>This parameter
141      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
142      * a string of characters consisting of upper and lowercase alphanumeric characters
143      * with no spaces. You can also include any of the following characters:
144      * _+=,.@-</p>
145      */
SetPolicyName(Aws::String && value)146     inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
147 
148     /**
149      * <p>The name identifying the policy document to delete.</p> <p>This parameter
150      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
151      * a string of characters consisting of upper and lowercase alphanumeric characters
152      * with no spaces. You can also include any of the following characters:
153      * _+=,.@-</p>
154      */
SetPolicyName(const char * value)155     inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
156 
157     /**
158      * <p>The name identifying the policy document to delete.</p> <p>This parameter
159      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
160      * a string of characters consisting of upper and lowercase alphanumeric characters
161      * with no spaces. You can also include any of the following characters:
162      * _+=,.@-</p>
163      */
WithPolicyName(const Aws::String & value)164     inline DeleteGroupPolicyRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
165 
166     /**
167      * <p>The name identifying the policy document to delete.</p> <p>This parameter
168      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
169      * a string of characters consisting of upper and lowercase alphanumeric characters
170      * with no spaces. You can also include any of the following characters:
171      * _+=,.@-</p>
172      */
WithPolicyName(Aws::String && value)173     inline DeleteGroupPolicyRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
174 
175     /**
176      * <p>The name identifying the policy document to delete.</p> <p>This parameter
177      * allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>)
178      * a string of characters consisting of upper and lowercase alphanumeric characters
179      * with no spaces. You can also include any of the following characters:
180      * _+=,.@-</p>
181      */
WithPolicyName(const char * value)182     inline DeleteGroupPolicyRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
183 
184   private:
185 
186     Aws::String m_groupName;
187     bool m_groupNameHasBeenSet;
188 
189     Aws::String m_policyName;
190     bool m_policyNameHasBeenSet;
191   };
192 
193 } // namespace Model
194 } // namespace IAM
195 } // namespace Aws
196