1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>Contains details for a policy. Policies define what operations a team that define the permissions for team resources.</p>
/// <p>The protected operation for a service integration might require specific permissions. For more information, see <a href="https://docs.aws.amazon.com/mpa/latest/userguide/mpa-integrations.html">How other services work with Multi-party approval</a> in the <i>Multi-party approval User Guide</i>.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Policy {
/// <p>Amazon Resource Name (ARN) for the policy.</p>
pub arn: ::std::string::String,
/// <p>Determines if the specified policy is the default for the team.</p>
pub default_version: i32,
/// <p>The type of policy.</p>
pub policy_type: crate::types::PolicyType,
/// <p>Name of the policy.</p>
pub name: ::std::string::String,
}
impl Policy {
/// <p>Amazon Resource Name (ARN) for the policy.</p>
pub fn arn(&self) -> &str {
use std::ops::Deref;
self.arn.deref()
}
/// <p>Determines if the specified policy is the default for the team.</p>
pub fn default_version(&self) -> i32 {
self.default_version
}
/// <p>The type of policy.</p>
pub fn policy_type(&self) -> &crate::types::PolicyType {
&self.policy_type
}
/// <p>Name of the policy.</p>
pub fn name(&self) -> &str {
use std::ops::Deref;
self.name.deref()
}
}
impl Policy {
/// Creates a new builder-style object to manufacture [`Policy`](crate::types::Policy).
pub fn builder() -> crate::types::builders::PolicyBuilder {
crate::types::builders::PolicyBuilder::default()
}
}
/// A builder for [`Policy`](crate::types::Policy).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct PolicyBuilder {
pub(crate) arn: ::std::option::Option<::std::string::String>,
pub(crate) default_version: ::std::option::Option<i32>,
pub(crate) policy_type: ::std::option::Option<crate::types::PolicyType>,
pub(crate) name: ::std::option::Option<::std::string::String>,
}
impl PolicyBuilder {
/// <p>Amazon Resource Name (ARN) for the policy.</p>
/// This field is required.
pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.arn = ::std::option::Option::Some(input.into());
self
}
/// <p>Amazon Resource Name (ARN) for the policy.</p>
pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.arn = input;
self
}
/// <p>Amazon Resource Name (ARN) for the policy.</p>
pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.arn
}
/// <p>Determines if the specified policy is the default for the team.</p>
/// This field is required.
pub fn default_version(mut self, input: i32) -> Self {
self.default_version = ::std::option::Option::Some(input);
self
}
/// <p>Determines if the specified policy is the default for the team.</p>
pub fn set_default_version(mut self, input: ::std::option::Option<i32>) -> Self {
self.default_version = input;
self
}
/// <p>Determines if the specified policy is the default for the team.</p>
pub fn get_default_version(&self) -> &::std::option::Option<i32> {
&self.default_version
}
/// <p>The type of policy.</p>
/// This field is required.
pub fn policy_type(mut self, input: crate::types::PolicyType) -> Self {
self.policy_type = ::std::option::Option::Some(input);
self
}
/// <p>The type of policy.</p>
pub fn set_policy_type(mut self, input: ::std::option::Option<crate::types::PolicyType>) -> Self {
self.policy_type = input;
self
}
/// <p>The type of policy.</p>
pub fn get_policy_type(&self) -> &::std::option::Option<crate::types::PolicyType> {
&self.policy_type
}
/// <p>Name of the policy.</p>
/// This field is required.
pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.name = ::std::option::Option::Some(input.into());
self
}
/// <p>Name of the policy.</p>
pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.name = input;
self
}
/// <p>Name of the policy.</p>
pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
&self.name
}
/// Consumes the builder and constructs a [`Policy`](crate::types::Policy).
/// This method will fail if any of the following fields are not set:
/// - [`arn`](crate::types::builders::PolicyBuilder::arn)
/// - [`default_version`](crate::types::builders::PolicyBuilder::default_version)
/// - [`policy_type`](crate::types::builders::PolicyBuilder::policy_type)
/// - [`name`](crate::types::builders::PolicyBuilder::name)
pub fn build(self) -> ::std::result::Result<crate::types::Policy, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::types::Policy {
arn: self.arn.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"arn",
"arn was not specified but it is required when building Policy",
)
})?,
default_version: self.default_version.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"default_version",
"default_version was not specified but it is required when building Policy",
)
})?,
policy_type: self.policy_type.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"policy_type",
"policy_type was not specified but it is required when building Policy",
)
})?,
name: self.name.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"name",
"name was not specified but it is required when building Policy",
)
})?,
})
}
}