AWS SDK for C++

AWS SDK for C++ Version 1.11.748

Loading...
Searching...
No Matches
PolicyGrantPrincipal.h
1
6#pragma once
7#include <aws/datazone/DataZone_EXPORTS.h>
8#include <aws/datazone/model/DomainUnitPolicyGrantPrincipal.h>
9#include <aws/datazone/model/GroupPolicyGrantPrincipal.h>
10#include <aws/datazone/model/ProjectPolicyGrantPrincipal.h>
11#include <aws/datazone/model/UserPolicyGrantPrincipal.h>
12
13#include <utility>
14
15namespace Aws {
16namespace Utils {
17namespace Json {
18class JsonValue;
19class JsonView;
20} // namespace Json
21} // namespace Utils
22namespace DataZone {
23namespace Model {
24
31 public:
32 AWS_DATAZONE_API PolicyGrantPrincipal() = default;
35 AWS_DATAZONE_API Aws::Utils::Json::JsonValue Jsonize() const;
36
38
41 inline const UserPolicyGrantPrincipal& GetUser() const { return m_user; }
42 inline bool UserHasBeenSet() const { return m_userHasBeenSet; }
43 template <typename UserT = UserPolicyGrantPrincipal>
44 void SetUser(UserT&& value) {
45 m_userHasBeenSet = true;
46 m_user = std::forward<UserT>(value);
47 }
48 template <typename UserT = UserPolicyGrantPrincipal>
50 SetUser(std::forward<UserT>(value));
51 return *this;
52 }
54
56
59 inline const GroupPolicyGrantPrincipal& GetGroup() const { return m_group; }
60 inline bool GroupHasBeenSet() const { return m_groupHasBeenSet; }
61 template <typename GroupT = GroupPolicyGrantPrincipal>
62 void SetGroup(GroupT&& value) {
63 m_groupHasBeenSet = true;
64 m_group = std::forward<GroupT>(value);
65 }
66 template <typename GroupT = GroupPolicyGrantPrincipal>
68 SetGroup(std::forward<GroupT>(value));
69 return *this;
70 }
72
74
77 inline const ProjectPolicyGrantPrincipal& GetProject() const { return m_project; }
78 inline bool ProjectHasBeenSet() const { return m_projectHasBeenSet; }
79 template <typename ProjectT = ProjectPolicyGrantPrincipal>
80 void SetProject(ProjectT&& value) {
81 m_projectHasBeenSet = true;
82 m_project = std::forward<ProjectT>(value);
83 }
84 template <typename ProjectT = ProjectPolicyGrantPrincipal>
85 PolicyGrantPrincipal& WithProject(ProjectT&& value) {
86 SetProject(std::forward<ProjectT>(value));
87 return *this;
88 }
90
92
95 inline const DomainUnitPolicyGrantPrincipal& GetDomainUnit() const { return m_domainUnit; }
96 inline bool DomainUnitHasBeenSet() const { return m_domainUnitHasBeenSet; }
97 template <typename DomainUnitT = DomainUnitPolicyGrantPrincipal>
98 void SetDomainUnit(DomainUnitT&& value) {
99 m_domainUnitHasBeenSet = true;
100 m_domainUnit = std::forward<DomainUnitT>(value);
101 }
102 template <typename DomainUnitT = DomainUnitPolicyGrantPrincipal>
103 PolicyGrantPrincipal& WithDomainUnit(DomainUnitT&& value) {
104 SetDomainUnit(std::forward<DomainUnitT>(value));
105 return *this;
106 }
108 private:
110
112
114
116 bool m_userHasBeenSet = false;
117 bool m_groupHasBeenSet = false;
118 bool m_projectHasBeenSet = false;
119 bool m_domainUnitHasBeenSet = false;
120};
121
122} // namespace Model
123} // namespace DataZone
124} // namespace Aws
PolicyGrantPrincipal & WithDomainUnit(DomainUnitT &&value)
AWS_DATAZONE_API Aws::Utils::Json::JsonValue Jsonize() const
AWS_DATAZONE_API PolicyGrantPrincipal(Aws::Utils::Json::JsonView jsonValue)
const GroupPolicyGrantPrincipal & GetGroup() const
const ProjectPolicyGrantPrincipal & GetProject() const
AWS_DATAZONE_API PolicyGrantPrincipal & operator=(Aws::Utils::Json::JsonView jsonValue)
const DomainUnitPolicyGrantPrincipal & GetDomainUnit() const
PolicyGrantPrincipal & WithGroup(GroupT &&value)
const UserPolicyGrantPrincipal & GetUser() const
PolicyGrantPrincipal & WithUser(UserT &&value)
PolicyGrantPrincipal & WithProject(ProjectT &&value)
AWS_DATAZONE_API PolicyGrantPrincipal()=default
Aws::Utils::Json::JsonValue JsonValue