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/managedblockchain/ManagedBlockchain_EXPORTS.h>
8 #include <aws/managedblockchain/ManagedBlockchainRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/managedblockchain/model/Framework.h>
11 #include <aws/managedblockchain/model/NetworkFrameworkConfiguration.h>
12 #include <aws/managedblockchain/model/VotingPolicy.h>
13 #include <aws/managedblockchain/model/MemberConfiguration.h>
14 #include <aws/core/utils/memory/stl/AWSMap.h>
15 #include <utility>
16 #include <aws/core/utils/UUID.h>
17 
18 namespace Aws
19 {
20 namespace ManagedBlockchain
21 {
22 namespace Model
23 {
24 
25   /**
26    */
27   class AWS_MANAGEDBLOCKCHAIN_API CreateNetworkRequest : public ManagedBlockchainRequest
28   {
29   public:
30     CreateNetworkRequest();
31 
32     // Service request name is the Operation name which will send this request out,
33     // each operation should has unique request name, so that we can get operation's name from this request.
34     // Note: this is not true for response, multiple operations may have the same response name,
35     // so we can not get operation's name from response.
GetServiceRequestName()36     inline virtual const char* GetServiceRequestName() const override { return "CreateNetwork"; }
37 
38     Aws::String SerializePayload() const override;
39 
40 
41     /**
42      * <p>A unique, case-sensitive identifier that you provide to ensure the
43      * idempotency of the operation. An idempotent operation completes no more than one
44      * time. This identifier is required only if you make a service request directly
45      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
46      * AWS CLI.</p>
47      */
GetClientRequestToken()48     inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; }
49 
50     /**
51      * <p>A unique, case-sensitive identifier that you provide to ensure the
52      * idempotency of the operation. An idempotent operation completes no more than one
53      * time. This identifier is required only if you make a service request directly
54      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
55      * AWS CLI.</p>
56      */
ClientRequestTokenHasBeenSet()57     inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; }
58 
59     /**
60      * <p>A unique, case-sensitive identifier that you provide to ensure the
61      * idempotency of the operation. An idempotent operation completes no more than one
62      * time. This identifier is required only if you make a service request directly
63      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
64      * AWS CLI.</p>
65      */
SetClientRequestToken(const Aws::String & value)66     inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; }
67 
68     /**
69      * <p>A unique, case-sensitive identifier that you provide to ensure the
70      * idempotency of the operation. An idempotent operation completes no more than one
71      * time. This identifier is required only if you make a service request directly
72      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
73      * AWS CLI.</p>
74      */
SetClientRequestToken(Aws::String && value)75     inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); }
76 
77     /**
78      * <p>A unique, case-sensitive identifier that you provide to ensure the
79      * idempotency of the operation. An idempotent operation completes no more than one
80      * time. This identifier is required only if you make a service request directly
81      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
82      * AWS CLI.</p>
83      */
SetClientRequestToken(const char * value)84     inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); }
85 
86     /**
87      * <p>A unique, case-sensitive identifier that you provide to ensure the
88      * idempotency of the operation. An idempotent operation completes no more than one
89      * time. This identifier is required only if you make a service request directly
90      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
91      * AWS CLI.</p>
92      */
WithClientRequestToken(const Aws::String & value)93     inline CreateNetworkRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;}
94 
95     /**
96      * <p>A unique, case-sensitive identifier that you provide to ensure the
97      * idempotency of the operation. An idempotent operation completes no more than one
98      * time. This identifier is required only if you make a service request directly
99      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
100      * AWS CLI.</p>
101      */
WithClientRequestToken(Aws::String && value)102     inline CreateNetworkRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;}
103 
104     /**
105      * <p>A unique, case-sensitive identifier that you provide to ensure the
106      * idempotency of the operation. An idempotent operation completes no more than one
107      * time. This identifier is required only if you make a service request directly
108      * using an HTTP client. It is generated automatically if you use an AWS SDK or the
109      * AWS CLI.</p>
110      */
WithClientRequestToken(const char * value)111     inline CreateNetworkRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;}
112 
113 
114     /**
115      * <p>The name of the network.</p>
116      */
GetName()117     inline const Aws::String& GetName() const{ return m_name; }
118 
119     /**
120      * <p>The name of the network.</p>
121      */
NameHasBeenSet()122     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
123 
124     /**
125      * <p>The name of the network.</p>
126      */
SetName(const Aws::String & value)127     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
128 
129     /**
130      * <p>The name of the network.</p>
131      */
SetName(Aws::String && value)132     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
133 
134     /**
135      * <p>The name of the network.</p>
136      */
SetName(const char * value)137     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
138 
139     /**
140      * <p>The name of the network.</p>
141      */
WithName(const Aws::String & value)142     inline CreateNetworkRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
143 
144     /**
145      * <p>The name of the network.</p>
146      */
WithName(Aws::String && value)147     inline CreateNetworkRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
148 
149     /**
150      * <p>The name of the network.</p>
151      */
WithName(const char * value)152     inline CreateNetworkRequest& WithName(const char* value) { SetName(value); return *this;}
153 
154 
155     /**
156      * <p>An optional description for the network.</p>
157      */
GetDescription()158     inline const Aws::String& GetDescription() const{ return m_description; }
159 
160     /**
161      * <p>An optional description for the network.</p>
162      */
DescriptionHasBeenSet()163     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
164 
165     /**
166      * <p>An optional description for the network.</p>
167      */
SetDescription(const Aws::String & value)168     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
169 
170     /**
171      * <p>An optional description for the network.</p>
172      */
SetDescription(Aws::String && value)173     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
174 
175     /**
176      * <p>An optional description for the network.</p>
177      */
SetDescription(const char * value)178     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
179 
180     /**
181      * <p>An optional description for the network.</p>
182      */
WithDescription(const Aws::String & value)183     inline CreateNetworkRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
184 
185     /**
186      * <p>An optional description for the network.</p>
187      */
WithDescription(Aws::String && value)188     inline CreateNetworkRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
189 
190     /**
191      * <p>An optional description for the network.</p>
192      */
WithDescription(const char * value)193     inline CreateNetworkRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
194 
195 
196     /**
197      * <p>The blockchain framework that the network uses.</p>
198      */
GetFramework()199     inline const Framework& GetFramework() const{ return m_framework; }
200 
201     /**
202      * <p>The blockchain framework that the network uses.</p>
203      */
FrameworkHasBeenSet()204     inline bool FrameworkHasBeenSet() const { return m_frameworkHasBeenSet; }
205 
206     /**
207      * <p>The blockchain framework that the network uses.</p>
208      */
SetFramework(const Framework & value)209     inline void SetFramework(const Framework& value) { m_frameworkHasBeenSet = true; m_framework = value; }
210 
211     /**
212      * <p>The blockchain framework that the network uses.</p>
213      */
SetFramework(Framework && value)214     inline void SetFramework(Framework&& value) { m_frameworkHasBeenSet = true; m_framework = std::move(value); }
215 
216     /**
217      * <p>The blockchain framework that the network uses.</p>
218      */
WithFramework(const Framework & value)219     inline CreateNetworkRequest& WithFramework(const Framework& value) { SetFramework(value); return *this;}
220 
221     /**
222      * <p>The blockchain framework that the network uses.</p>
223      */
WithFramework(Framework && value)224     inline CreateNetworkRequest& WithFramework(Framework&& value) { SetFramework(std::move(value)); return *this;}
225 
226 
227     /**
228      * <p>The version of the blockchain framework that the network uses.</p>
229      */
GetFrameworkVersion()230     inline const Aws::String& GetFrameworkVersion() const{ return m_frameworkVersion; }
231 
232     /**
233      * <p>The version of the blockchain framework that the network uses.</p>
234      */
FrameworkVersionHasBeenSet()235     inline bool FrameworkVersionHasBeenSet() const { return m_frameworkVersionHasBeenSet; }
236 
237     /**
238      * <p>The version of the blockchain framework that the network uses.</p>
239      */
SetFrameworkVersion(const Aws::String & value)240     inline void SetFrameworkVersion(const Aws::String& value) { m_frameworkVersionHasBeenSet = true; m_frameworkVersion = value; }
241 
242     /**
243      * <p>The version of the blockchain framework that the network uses.</p>
244      */
SetFrameworkVersion(Aws::String && value)245     inline void SetFrameworkVersion(Aws::String&& value) { m_frameworkVersionHasBeenSet = true; m_frameworkVersion = std::move(value); }
246 
247     /**
248      * <p>The version of the blockchain framework that the network uses.</p>
249      */
SetFrameworkVersion(const char * value)250     inline void SetFrameworkVersion(const char* value) { m_frameworkVersionHasBeenSet = true; m_frameworkVersion.assign(value); }
251 
252     /**
253      * <p>The version of the blockchain framework that the network uses.</p>
254      */
WithFrameworkVersion(const Aws::String & value)255     inline CreateNetworkRequest& WithFrameworkVersion(const Aws::String& value) { SetFrameworkVersion(value); return *this;}
256 
257     /**
258      * <p>The version of the blockchain framework that the network uses.</p>
259      */
WithFrameworkVersion(Aws::String && value)260     inline CreateNetworkRequest& WithFrameworkVersion(Aws::String&& value) { SetFrameworkVersion(std::move(value)); return *this;}
261 
262     /**
263      * <p>The version of the blockchain framework that the network uses.</p>
264      */
WithFrameworkVersion(const char * value)265     inline CreateNetworkRequest& WithFrameworkVersion(const char* value) { SetFrameworkVersion(value); return *this;}
266 
267 
268     /**
269      * <p> Configuration properties of the blockchain framework relevant to the network
270      * configuration. </p>
271      */
GetFrameworkConfiguration()272     inline const NetworkFrameworkConfiguration& GetFrameworkConfiguration() const{ return m_frameworkConfiguration; }
273 
274     /**
275      * <p> Configuration properties of the blockchain framework relevant to the network
276      * configuration. </p>
277      */
FrameworkConfigurationHasBeenSet()278     inline bool FrameworkConfigurationHasBeenSet() const { return m_frameworkConfigurationHasBeenSet; }
279 
280     /**
281      * <p> Configuration properties of the blockchain framework relevant to the network
282      * configuration. </p>
283      */
SetFrameworkConfiguration(const NetworkFrameworkConfiguration & value)284     inline void SetFrameworkConfiguration(const NetworkFrameworkConfiguration& value) { m_frameworkConfigurationHasBeenSet = true; m_frameworkConfiguration = value; }
285 
286     /**
287      * <p> Configuration properties of the blockchain framework relevant to the network
288      * configuration. </p>
289      */
SetFrameworkConfiguration(NetworkFrameworkConfiguration && value)290     inline void SetFrameworkConfiguration(NetworkFrameworkConfiguration&& value) { m_frameworkConfigurationHasBeenSet = true; m_frameworkConfiguration = std::move(value); }
291 
292     /**
293      * <p> Configuration properties of the blockchain framework relevant to the network
294      * configuration. </p>
295      */
WithFrameworkConfiguration(const NetworkFrameworkConfiguration & value)296     inline CreateNetworkRequest& WithFrameworkConfiguration(const NetworkFrameworkConfiguration& value) { SetFrameworkConfiguration(value); return *this;}
297 
298     /**
299      * <p> Configuration properties of the blockchain framework relevant to the network
300      * configuration. </p>
301      */
WithFrameworkConfiguration(NetworkFrameworkConfiguration && value)302     inline CreateNetworkRequest& WithFrameworkConfiguration(NetworkFrameworkConfiguration&& value) { SetFrameworkConfiguration(std::move(value)); return *this;}
303 
304 
305     /**
306      * <p> The voting rules used by the network to determine if a proposal is approved.
307      * </p>
308      */
GetVotingPolicy()309     inline const VotingPolicy& GetVotingPolicy() const{ return m_votingPolicy; }
310 
311     /**
312      * <p> The voting rules used by the network to determine if a proposal is approved.
313      * </p>
314      */
VotingPolicyHasBeenSet()315     inline bool VotingPolicyHasBeenSet() const { return m_votingPolicyHasBeenSet; }
316 
317     /**
318      * <p> The voting rules used by the network to determine if a proposal is approved.
319      * </p>
320      */
SetVotingPolicy(const VotingPolicy & value)321     inline void SetVotingPolicy(const VotingPolicy& value) { m_votingPolicyHasBeenSet = true; m_votingPolicy = value; }
322 
323     /**
324      * <p> The voting rules used by the network to determine if a proposal is approved.
325      * </p>
326      */
SetVotingPolicy(VotingPolicy && value)327     inline void SetVotingPolicy(VotingPolicy&& value) { m_votingPolicyHasBeenSet = true; m_votingPolicy = std::move(value); }
328 
329     /**
330      * <p> The voting rules used by the network to determine if a proposal is approved.
331      * </p>
332      */
WithVotingPolicy(const VotingPolicy & value)333     inline CreateNetworkRequest& WithVotingPolicy(const VotingPolicy& value) { SetVotingPolicy(value); return *this;}
334 
335     /**
336      * <p> The voting rules used by the network to determine if a proposal is approved.
337      * </p>
338      */
WithVotingPolicy(VotingPolicy && value)339     inline CreateNetworkRequest& WithVotingPolicy(VotingPolicy&& value) { SetVotingPolicy(std::move(value)); return *this;}
340 
341 
342     /**
343      * <p>Configuration properties for the first member within the network.</p>
344      */
GetMemberConfiguration()345     inline const MemberConfiguration& GetMemberConfiguration() const{ return m_memberConfiguration; }
346 
347     /**
348      * <p>Configuration properties for the first member within the network.</p>
349      */
MemberConfigurationHasBeenSet()350     inline bool MemberConfigurationHasBeenSet() const { return m_memberConfigurationHasBeenSet; }
351 
352     /**
353      * <p>Configuration properties for the first member within the network.</p>
354      */
SetMemberConfiguration(const MemberConfiguration & value)355     inline void SetMemberConfiguration(const MemberConfiguration& value) { m_memberConfigurationHasBeenSet = true; m_memberConfiguration = value; }
356 
357     /**
358      * <p>Configuration properties for the first member within the network.</p>
359      */
SetMemberConfiguration(MemberConfiguration && value)360     inline void SetMemberConfiguration(MemberConfiguration&& value) { m_memberConfigurationHasBeenSet = true; m_memberConfiguration = std::move(value); }
361 
362     /**
363      * <p>Configuration properties for the first member within the network.</p>
364      */
WithMemberConfiguration(const MemberConfiguration & value)365     inline CreateNetworkRequest& WithMemberConfiguration(const MemberConfiguration& value) { SetMemberConfiguration(value); return *this;}
366 
367     /**
368      * <p>Configuration properties for the first member within the network.</p>
369      */
WithMemberConfiguration(MemberConfiguration && value)370     inline CreateNetworkRequest& WithMemberConfiguration(MemberConfiguration&& value) { SetMemberConfiguration(std::move(value)); return *this;}
371 
372 
373     /**
374      * <p>Tags to assign to the network. Each tag consists of a key and optional
375      * value.</p> <p>When specifying tags during creation, you can specify multiple
376      * key-value pairs in a single request, with an overall maximum of 50 tags added to
377      * each resource.</p> <p>For more information about tags, see <a
378      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
379      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
380      * or <a
381      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
382      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
383      * Guide</i>.</p>
384      */
GetTags()385     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
386 
387     /**
388      * <p>Tags to assign to the network. Each tag consists of a key and optional
389      * value.</p> <p>When specifying tags during creation, you can specify multiple
390      * key-value pairs in a single request, with an overall maximum of 50 tags added to
391      * each resource.</p> <p>For more information about tags, see <a
392      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
393      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
394      * or <a
395      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
396      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
397      * Guide</i>.</p>
398      */
TagsHasBeenSet()399     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
400 
401     /**
402      * <p>Tags to assign to the network. Each tag consists of a key and optional
403      * value.</p> <p>When specifying tags during creation, you can specify multiple
404      * key-value pairs in a single request, with an overall maximum of 50 tags added to
405      * each resource.</p> <p>For more information about tags, see <a
406      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
407      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
408      * or <a
409      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
410      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
411      * Guide</i>.</p>
412      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)413     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
414 
415     /**
416      * <p>Tags to assign to the network. Each tag consists of a key and optional
417      * value.</p> <p>When specifying tags during creation, you can specify multiple
418      * key-value pairs in a single request, with an overall maximum of 50 tags added to
419      * each resource.</p> <p>For more information about tags, see <a
420      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
421      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
422      * or <a
423      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
424      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
425      * Guide</i>.</p>
426      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)427     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
428 
429     /**
430      * <p>Tags to assign to the network. Each tag consists of a key and optional
431      * value.</p> <p>When specifying tags during creation, you can specify multiple
432      * key-value pairs in a single request, with an overall maximum of 50 tags added to
433      * each resource.</p> <p>For more information about tags, see <a
434      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
435      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
436      * or <a
437      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
438      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
439      * Guide</i>.</p>
440      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)441     inline CreateNetworkRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
442 
443     /**
444      * <p>Tags to assign to the network. Each tag consists of a key and optional
445      * value.</p> <p>When specifying tags during creation, you can specify multiple
446      * key-value pairs in a single request, with an overall maximum of 50 tags added to
447      * each resource.</p> <p>For more information about tags, see <a
448      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
449      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
450      * or <a
451      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
452      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
453      * Guide</i>.</p>
454      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)455     inline CreateNetworkRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
456 
457     /**
458      * <p>Tags to assign to the network. Each tag consists of a key and optional
459      * value.</p> <p>When specifying tags during creation, you can specify multiple
460      * key-value pairs in a single request, with an overall maximum of 50 tags added to
461      * each resource.</p> <p>For more information about tags, see <a
462      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
463      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
464      * or <a
465      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
466      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
467      * Guide</i>.</p>
468      */
AddTags(const Aws::String & key,const Aws::String & value)469     inline CreateNetworkRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
470 
471     /**
472      * <p>Tags to assign to the network. Each tag consists of a key and optional
473      * value.</p> <p>When specifying tags during creation, you can specify multiple
474      * key-value pairs in a single request, with an overall maximum of 50 tags added to
475      * each resource.</p> <p>For more information about tags, see <a
476      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
477      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
478      * or <a
479      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
480      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
481      * Guide</i>.</p>
482      */
AddTags(Aws::String && key,const Aws::String & value)483     inline CreateNetworkRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
484 
485     /**
486      * <p>Tags to assign to the network. Each tag consists of a key and optional
487      * value.</p> <p>When specifying tags during creation, you can specify multiple
488      * key-value pairs in a single request, with an overall maximum of 50 tags added to
489      * each resource.</p> <p>For more information about tags, see <a
490      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
491      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
492      * or <a
493      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
494      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
495      * Guide</i>.</p>
496      */
AddTags(const Aws::String & key,Aws::String && value)497     inline CreateNetworkRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
498 
499     /**
500      * <p>Tags to assign to the network. Each tag consists of a key and optional
501      * value.</p> <p>When specifying tags during creation, you can specify multiple
502      * key-value pairs in a single request, with an overall maximum of 50 tags added to
503      * each resource.</p> <p>For more information about tags, see <a
504      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
505      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
506      * or <a
507      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
508      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
509      * Guide</i>.</p>
510      */
AddTags(Aws::String && key,Aws::String && value)511     inline CreateNetworkRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
512 
513     /**
514      * <p>Tags to assign to the network. Each tag consists of a key and optional
515      * value.</p> <p>When specifying tags during creation, you can specify multiple
516      * key-value pairs in a single request, with an overall maximum of 50 tags added to
517      * each resource.</p> <p>For more information about tags, see <a
518      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
519      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
520      * or <a
521      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
522      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
523      * Guide</i>.</p>
524      */
AddTags(const char * key,Aws::String && value)525     inline CreateNetworkRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
526 
527     /**
528      * <p>Tags to assign to the network. Each tag consists of a key and optional
529      * value.</p> <p>When specifying tags during creation, you can specify multiple
530      * key-value pairs in a single request, with an overall maximum of 50 tags added to
531      * each resource.</p> <p>For more information about tags, see <a
532      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
533      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
534      * or <a
535      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
536      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
537      * Guide</i>.</p>
538      */
AddTags(Aws::String && key,const char * value)539     inline CreateNetworkRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
540 
541     /**
542      * <p>Tags to assign to the network. Each tag consists of a key and optional
543      * value.</p> <p>When specifying tags during creation, you can specify multiple
544      * key-value pairs in a single request, with an overall maximum of 50 tags added to
545      * each resource.</p> <p>For more information about tags, see <a
546      * href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging
547      * Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>,
548      * or <a
549      * href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging
550      * Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer
551      * Guide</i>.</p>
552      */
AddTags(const char * key,const char * value)553     inline CreateNetworkRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
554 
555   private:
556 
557     Aws::String m_clientRequestToken;
558     bool m_clientRequestTokenHasBeenSet;
559 
560     Aws::String m_name;
561     bool m_nameHasBeenSet;
562 
563     Aws::String m_description;
564     bool m_descriptionHasBeenSet;
565 
566     Framework m_framework;
567     bool m_frameworkHasBeenSet;
568 
569     Aws::String m_frameworkVersion;
570     bool m_frameworkVersionHasBeenSet;
571 
572     NetworkFrameworkConfiguration m_frameworkConfiguration;
573     bool m_frameworkConfigurationHasBeenSet;
574 
575     VotingPolicy m_votingPolicy;
576     bool m_votingPolicyHasBeenSet;
577 
578     MemberConfiguration m_memberConfiguration;
579     bool m_memberConfigurationHasBeenSet;
580 
581     Aws::Map<Aws::String, Aws::String> m_tags;
582     bool m_tagsHasBeenSet;
583   };
584 
585 } // namespace Model
586 } // namespace ManagedBlockchain
587 } // namespace Aws
588