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/fms/FMS_EXPORTS.h>
8 #include <aws/fms/FMSRequest.h>
9 #include <aws/fms/model/ProtocolsListData.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/fms/model/Tag.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace FMS
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_FMS_API PutProtocolsListRequest : public FMSRequest
24   {
25   public:
26     PutProtocolsListRequest();
27 
28     // Service request name is the Operation name which will send this request out,
29     // each operation should has unique request name, so that we can get operation's name from this request.
30     // Note: this is not true for response, multiple operations may have the same response name,
31     // so we can not get operation's name from response.
GetServiceRequestName()32     inline virtual const char* GetServiceRequestName() const override { return "PutProtocolsList"; }
33 
34     Aws::String SerializePayload() const override;
35 
36     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
37 
38 
39     /**
40      * <p>The details of the Firewall Manager protocols list to be created.</p>
41      */
GetProtocolsList()42     inline const ProtocolsListData& GetProtocolsList() const{ return m_protocolsList; }
43 
44     /**
45      * <p>The details of the Firewall Manager protocols list to be created.</p>
46      */
ProtocolsListHasBeenSet()47     inline bool ProtocolsListHasBeenSet() const { return m_protocolsListHasBeenSet; }
48 
49     /**
50      * <p>The details of the Firewall Manager protocols list to be created.</p>
51      */
SetProtocolsList(const ProtocolsListData & value)52     inline void SetProtocolsList(const ProtocolsListData& value) { m_protocolsListHasBeenSet = true; m_protocolsList = value; }
53 
54     /**
55      * <p>The details of the Firewall Manager protocols list to be created.</p>
56      */
SetProtocolsList(ProtocolsListData && value)57     inline void SetProtocolsList(ProtocolsListData&& value) { m_protocolsListHasBeenSet = true; m_protocolsList = std::move(value); }
58 
59     /**
60      * <p>The details of the Firewall Manager protocols list to be created.</p>
61      */
WithProtocolsList(const ProtocolsListData & value)62     inline PutProtocolsListRequest& WithProtocolsList(const ProtocolsListData& value) { SetProtocolsList(value); return *this;}
63 
64     /**
65      * <p>The details of the Firewall Manager protocols list to be created.</p>
66      */
WithProtocolsList(ProtocolsListData && value)67     inline PutProtocolsListRequest& WithProtocolsList(ProtocolsListData&& value) { SetProtocolsList(std::move(value)); return *this;}
68 
69 
70     /**
71      * <p>The tags associated with the resource.</p>
72      */
GetTagList()73     inline const Aws::Vector<Tag>& GetTagList() const{ return m_tagList; }
74 
75     /**
76      * <p>The tags associated with the resource.</p>
77      */
TagListHasBeenSet()78     inline bool TagListHasBeenSet() const { return m_tagListHasBeenSet; }
79 
80     /**
81      * <p>The tags associated with the resource.</p>
82      */
SetTagList(const Aws::Vector<Tag> & value)83     inline void SetTagList(const Aws::Vector<Tag>& value) { m_tagListHasBeenSet = true; m_tagList = value; }
84 
85     /**
86      * <p>The tags associated with the resource.</p>
87      */
SetTagList(Aws::Vector<Tag> && value)88     inline void SetTagList(Aws::Vector<Tag>&& value) { m_tagListHasBeenSet = true; m_tagList = std::move(value); }
89 
90     /**
91      * <p>The tags associated with the resource.</p>
92      */
WithTagList(const Aws::Vector<Tag> & value)93     inline PutProtocolsListRequest& WithTagList(const Aws::Vector<Tag>& value) { SetTagList(value); return *this;}
94 
95     /**
96      * <p>The tags associated with the resource.</p>
97      */
WithTagList(Aws::Vector<Tag> && value)98     inline PutProtocolsListRequest& WithTagList(Aws::Vector<Tag>&& value) { SetTagList(std::move(value)); return *this;}
99 
100     /**
101      * <p>The tags associated with the resource.</p>
102      */
AddTagList(const Tag & value)103     inline PutProtocolsListRequest& AddTagList(const Tag& value) { m_tagListHasBeenSet = true; m_tagList.push_back(value); return *this; }
104 
105     /**
106      * <p>The tags associated with the resource.</p>
107      */
AddTagList(Tag && value)108     inline PutProtocolsListRequest& AddTagList(Tag&& value) { m_tagListHasBeenSet = true; m_tagList.push_back(std::move(value)); return *this; }
109 
110   private:
111 
112     ProtocolsListData m_protocolsList;
113     bool m_protocolsListHasBeenSet;
114 
115     Aws::Vector<Tag> m_tagList;
116     bool m_tagListHasBeenSet;
117   };
118 
119 } // namespace Model
120 } // namespace FMS
121 } // namespace Aws
122