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 of the CreatePolicyVersion operation.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreatePolicyVersionOutput {
    /// <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>,
    /// <p>Specifies whether the policy version is the default.</p>
    pub is_default_version: bool,
    _request_id: Option<String>,
}
impl CreatePolicyVersionOutput {
    /// <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()
    }
    /// <p>Specifies whether the policy version is the default.</p>
    pub fn is_default_version(&self) -> bool {
        self.is_default_version
    }
}
impl ::aws_types::request_id::RequestId for CreatePolicyVersionOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl CreatePolicyVersionOutput {
    /// Creates a new builder-style object to manufacture [`CreatePolicyVersionOutput`](crate::operation::create_policy_version::CreatePolicyVersionOutput).
    pub fn builder() -> crate::operation::create_policy_version::builders::CreatePolicyVersionOutputBuilder {
        crate::operation::create_policy_version::builders::CreatePolicyVersionOutputBuilder::default()
    }
}

/// A builder for [`CreatePolicyVersionOutput`](crate::operation::create_policy_version::CreatePolicyVersionOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct CreatePolicyVersionOutputBuilder {
    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>,
    pub(crate) is_default_version: ::std::option::Option<bool>,
    _request_id: Option<String>,
}
impl CreatePolicyVersionOutputBuilder {
    /// <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
    }
    /// <p>Specifies whether the policy version is the default.</p>
    pub fn is_default_version(mut self, input: bool) -> Self {
        self.is_default_version = ::std::option::Option::Some(input);
        self
    }
    /// <p>Specifies whether the policy version is the default.</p>
    pub fn set_is_default_version(mut self, input: ::std::option::Option<bool>) -> Self {
        self.is_default_version = input;
        self
    }
    /// <p>Specifies whether the policy version is the default.</p>
    pub fn get_is_default_version(&self) -> &::std::option::Option<bool> {
        &self.is_default_version
    }
    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 [`CreatePolicyVersionOutput`](crate::operation::create_policy_version::CreatePolicyVersionOutput).
    pub fn build(self) -> crate::operation::create_policy_version::CreatePolicyVersionOutput {
        crate::operation::create_policy_version::CreatePolicyVersionOutput {
            policy_arn: self.policy_arn,
            policy_document: self.policy_document,
            policy_version_id: self.policy_version_id,
            is_default_version: self.is_default_version.unwrap_or_default(),
            _request_id: self._request_id,
        }
    }
}