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/codepipeline/CodePipeline_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace CodePipeline
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Details identifying the users with permissions to use the action
29    * type.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionTypePermissions">AWS
31    * API Reference</a></p>
32    */
33   class AWS_CODEPIPELINE_API ActionTypePermissions
34   {
35   public:
36     ActionTypePermissions();
37     ActionTypePermissions(Aws::Utils::Json::JsonView jsonValue);
38     ActionTypePermissions& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>A list of AWS account IDs with access to use the action type in their
44      * pipelines.</p>
45      */
GetAllowedAccounts()46     inline const Aws::Vector<Aws::String>& GetAllowedAccounts() const{ return m_allowedAccounts; }
47 
48     /**
49      * <p>A list of AWS account IDs with access to use the action type in their
50      * pipelines.</p>
51      */
AllowedAccountsHasBeenSet()52     inline bool AllowedAccountsHasBeenSet() const { return m_allowedAccountsHasBeenSet; }
53 
54     /**
55      * <p>A list of AWS account IDs with access to use the action type in their
56      * pipelines.</p>
57      */
SetAllowedAccounts(const Aws::Vector<Aws::String> & value)58     inline void SetAllowedAccounts(const Aws::Vector<Aws::String>& value) { m_allowedAccountsHasBeenSet = true; m_allowedAccounts = value; }
59 
60     /**
61      * <p>A list of AWS account IDs with access to use the action type in their
62      * pipelines.</p>
63      */
SetAllowedAccounts(Aws::Vector<Aws::String> && value)64     inline void SetAllowedAccounts(Aws::Vector<Aws::String>&& value) { m_allowedAccountsHasBeenSet = true; m_allowedAccounts = std::move(value); }
65 
66     /**
67      * <p>A list of AWS account IDs with access to use the action type in their
68      * pipelines.</p>
69      */
WithAllowedAccounts(const Aws::Vector<Aws::String> & value)70     inline ActionTypePermissions& WithAllowedAccounts(const Aws::Vector<Aws::String>& value) { SetAllowedAccounts(value); return *this;}
71 
72     /**
73      * <p>A list of AWS account IDs with access to use the action type in their
74      * pipelines.</p>
75      */
WithAllowedAccounts(Aws::Vector<Aws::String> && value)76     inline ActionTypePermissions& WithAllowedAccounts(Aws::Vector<Aws::String>&& value) { SetAllowedAccounts(std::move(value)); return *this;}
77 
78     /**
79      * <p>A list of AWS account IDs with access to use the action type in their
80      * pipelines.</p>
81      */
AddAllowedAccounts(const Aws::String & value)82     inline ActionTypePermissions& AddAllowedAccounts(const Aws::String& value) { m_allowedAccountsHasBeenSet = true; m_allowedAccounts.push_back(value); return *this; }
83 
84     /**
85      * <p>A list of AWS account IDs with access to use the action type in their
86      * pipelines.</p>
87      */
AddAllowedAccounts(Aws::String && value)88     inline ActionTypePermissions& AddAllowedAccounts(Aws::String&& value) { m_allowedAccountsHasBeenSet = true; m_allowedAccounts.push_back(std::move(value)); return *this; }
89 
90     /**
91      * <p>A list of AWS account IDs with access to use the action type in their
92      * pipelines.</p>
93      */
AddAllowedAccounts(const char * value)94     inline ActionTypePermissions& AddAllowedAccounts(const char* value) { m_allowedAccountsHasBeenSet = true; m_allowedAccounts.push_back(value); return *this; }
95 
96   private:
97 
98     Aws::Vector<Aws::String> m_allowedAccounts;
99     bool m_allowedAccountsHasBeenSet;
100   };
101 
102 } // namespace Model
103 } // namespace CodePipeline
104 } // namespace Aws
105