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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>The output from the CreatePolicy operation.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreatePolicyOutput {
    /// <p>The policy name.</p>
    pub policy_name: ::std::option::Option<::std::string::String>,
    /// <p>The policy ARN.</p>
    pub policy_arn: ::std::option::Option<::std::string::String>,
    /// <p>The JSON document that describes the policy.</p>
    pub policy_document: ::std::option::Option<::std::string::String>,
    /// <p>The policy version ID.</p>
    pub policy_version_id: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl CreatePolicyOutput {
    /// <p>The policy name.</p>
    pub fn policy_name(&self) -> ::std::option::Option<&str> {
        self.policy_name.as_deref()
    }
    /// <p>The policy ARN.</p>
    pub fn policy_arn(&self) -> ::std::option::Option<&str> {
        self.policy_arn.as_deref()
    }
    /// <p>The JSON document that describes the policy.</p>
    pub fn policy_document(&self) -> ::std::option::Option<&str> {
        self.policy_document.as_deref()
    }
    /// <p>The policy version ID.</p>
    pub fn policy_version_id(&self) -> ::std::option::Option<&str> {
        self.policy_version_id.as_deref()
    }
}
impl ::aws_types::request_id::RequestId for CreatePolicyOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl CreatePolicyOutput {
    /// Creates a new builder-style object to manufacture [`CreatePolicyOutput`](crate::operation::create_policy::CreatePolicyOutput).
    pub fn builder() -> crate::operation::create_policy::builders::CreatePolicyOutputBuilder {
        crate::operation::create_policy::builders::CreatePolicyOutputBuilder::default()
    }
}

/// A builder for [`CreatePolicyOutput`](crate::operation::create_policy::CreatePolicyOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct CreatePolicyOutputBuilder {
    pub(crate) policy_name: ::std::option::Option<::std::string::String>,
    pub(crate) policy_arn: ::std::option::Option<::std::string::String>,
    pub(crate) policy_document: ::std::option::Option<::std::string::String>,
    pub(crate) policy_version_id: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl CreatePolicyOutputBuilder {
    /// <p>The policy name.</p>
    pub fn policy_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.policy_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The policy name.</p>
    pub fn set_policy_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.policy_name = input;
        self
    }
    /// <p>The policy name.</p>
    pub fn get_policy_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.policy_name
    }
    /// <p>The policy ARN.</p>
    pub fn policy_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.policy_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The policy ARN.</p>
    pub fn set_policy_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.policy_arn = input;
        self
    }
    /// <p>The policy ARN.</p>
    pub fn get_policy_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.policy_arn
    }
    /// <p>The JSON document that describes the policy.</p>
    pub fn policy_document(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.policy_document = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The JSON document that describes the policy.</p>
    pub fn set_policy_document(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.policy_document = input;
        self
    }
    /// <p>The JSON document that describes the policy.</p>
    pub fn get_policy_document(&self) -> &::std::option::Option<::std::string::String> {
        &self.policy_document
    }
    /// <p>The policy version ID.</p>
    pub fn policy_version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.policy_version_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The policy version ID.</p>
    pub fn set_policy_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.policy_version_id = input;
        self
    }
    /// <p>The policy version ID.</p>
    pub fn get_policy_version_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.policy_version_id
    }
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
        self._request_id = Some(request_id.into());
        self
    }

    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
        self._request_id = request_id;
        self
    }
    /// Consumes the builder and constructs a [`CreatePolicyOutput`](crate::operation::create_policy::CreatePolicyOutput).
    pub fn build(self) -> crate::operation::create_policy::CreatePolicyOutput {
        crate::operation::create_policy::CreatePolicyOutput {
            policy_name: self.policy_name,
            policy_arn: self.policy_arn,
            policy_document: self.policy_document,
            policy_version_id: self.policy_version_id,
            _request_id: self._request_id,
        }
    }
}