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/servicecatalog/ServiceCatalog_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/servicecatalog/model/PrincipalType.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 ServiceCatalog 23 { 24 namespace Model 25 { 26 27 /** 28 * <p>Information about a principal.</p><p><h3>See Also:</h3> <a 29 * href="http://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/Principal">AWS 30 * API Reference</a></p> 31 */ 32 class AWS_SERVICECATALOG_API Principal 33 { 34 public: 35 Principal(); 36 Principal(Aws::Utils::Json::JsonView jsonValue); 37 Principal& operator=(Aws::Utils::Json::JsonView jsonValue); 38 Aws::Utils::Json::JsonValue Jsonize() const; 39 40 41 /** 42 * <p>The ARN of the principal (IAM user, role, or group).</p> 43 */ GetPrincipalARN()44 inline const Aws::String& GetPrincipalARN() const{ return m_principalARN; } 45 46 /** 47 * <p>The ARN of the principal (IAM user, role, or group).</p> 48 */ PrincipalARNHasBeenSet()49 inline bool PrincipalARNHasBeenSet() const { return m_principalARNHasBeenSet; } 50 51 /** 52 * <p>The ARN of the principal (IAM user, role, or group).</p> 53 */ SetPrincipalARN(const Aws::String & value)54 inline void SetPrincipalARN(const Aws::String& value) { m_principalARNHasBeenSet = true; m_principalARN = value; } 55 56 /** 57 * <p>The ARN of the principal (IAM user, role, or group).</p> 58 */ SetPrincipalARN(Aws::String && value)59 inline void SetPrincipalARN(Aws::String&& value) { m_principalARNHasBeenSet = true; m_principalARN = std::move(value); } 60 61 /** 62 * <p>The ARN of the principal (IAM user, role, or group).</p> 63 */ SetPrincipalARN(const char * value)64 inline void SetPrincipalARN(const char* value) { m_principalARNHasBeenSet = true; m_principalARN.assign(value); } 65 66 /** 67 * <p>The ARN of the principal (IAM user, role, or group).</p> 68 */ WithPrincipalARN(const Aws::String & value)69 inline Principal& WithPrincipalARN(const Aws::String& value) { SetPrincipalARN(value); return *this;} 70 71 /** 72 * <p>The ARN of the principal (IAM user, role, or group).</p> 73 */ WithPrincipalARN(Aws::String && value)74 inline Principal& WithPrincipalARN(Aws::String&& value) { SetPrincipalARN(std::move(value)); return *this;} 75 76 /** 77 * <p>The ARN of the principal (IAM user, role, or group).</p> 78 */ WithPrincipalARN(const char * value)79 inline Principal& WithPrincipalARN(const char* value) { SetPrincipalARN(value); return *this;} 80 81 82 /** 83 * <p>The principal type. The supported value is <code>IAM</code>.</p> 84 */ GetPrincipalType()85 inline const PrincipalType& GetPrincipalType() const{ return m_principalType; } 86 87 /** 88 * <p>The principal type. The supported value is <code>IAM</code>.</p> 89 */ PrincipalTypeHasBeenSet()90 inline bool PrincipalTypeHasBeenSet() const { return m_principalTypeHasBeenSet; } 91 92 /** 93 * <p>The principal type. The supported value is <code>IAM</code>.</p> 94 */ SetPrincipalType(const PrincipalType & value)95 inline void SetPrincipalType(const PrincipalType& value) { m_principalTypeHasBeenSet = true; m_principalType = value; } 96 97 /** 98 * <p>The principal type. The supported value is <code>IAM</code>.</p> 99 */ SetPrincipalType(PrincipalType && value)100 inline void SetPrincipalType(PrincipalType&& value) { m_principalTypeHasBeenSet = true; m_principalType = std::move(value); } 101 102 /** 103 * <p>The principal type. The supported value is <code>IAM</code>.</p> 104 */ WithPrincipalType(const PrincipalType & value)105 inline Principal& WithPrincipalType(const PrincipalType& value) { SetPrincipalType(value); return *this;} 106 107 /** 108 * <p>The principal type. The supported value is <code>IAM</code>.</p> 109 */ WithPrincipalType(PrincipalType && value)110 inline Principal& WithPrincipalType(PrincipalType&& value) { SetPrincipalType(std::move(value)); return *this;} 111 112 private: 113 114 Aws::String m_principalARN; 115 bool m_principalARNHasBeenSet; 116 117 PrincipalType m_principalType; 118 bool m_principalTypeHasBeenSet; 119 }; 120 121 } // namespace Model 122 } // namespace ServiceCatalog 123 } // namespace Aws 124