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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct UpdateSecretVersionStageInput {
    /// <p>The ARN or the name of the secret with the version and staging labelsto modify.</p>
    /// <p>For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen">Finding a secret from a partial ARN</a>.</p>
    pub secret_id: ::std::option::Option<::std::string::String>,
    /// <p>The staging label to add to this version.</p>
    pub version_stage: ::std::option::Option<::std::string::String>,
    /// <p>The ID of the version that the staging label is to be removed from. If the staging label you are trying to attach to one version is already attached to a different version, then you must include this parameter and specify the version that the label is to be removed from. If the label is attached and you either do not specify this parameter, or the version ID does not match, then the operation fails.</p>
    pub remove_from_version_id: ::std::option::Option<::std::string::String>,
    /// <p>The ID of the version to add the staging label to. To remove a label from a version, then do not specify this parameter.</p>
    /// <p>If the staging label is already attached to a different version of the secret, then you must also specify the <code>RemoveFromVersionId</code> parameter.</p>
    pub move_to_version_id: ::std::option::Option<::std::string::String>,
}
impl UpdateSecretVersionStageInput {
    /// <p>The ARN or the name of the secret with the version and staging labelsto modify.</p>
    /// <p>For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen">Finding a secret from a partial ARN</a>.</p>
    pub fn secret_id(&self) -> ::std::option::Option<&str> {
        self.secret_id.as_deref()
    }
    /// <p>The staging label to add to this version.</p>
    pub fn version_stage(&self) -> ::std::option::Option<&str> {
        self.version_stage.as_deref()
    }
    /// <p>The ID of the version that the staging label is to be removed from. If the staging label you are trying to attach to one version is already attached to a different version, then you must include this parameter and specify the version that the label is to be removed from. If the label is attached and you either do not specify this parameter, or the version ID does not match, then the operation fails.</p>
    pub fn remove_from_version_id(&self) -> ::std::option::Option<&str> {
        self.remove_from_version_id.as_deref()
    }
    /// <p>The ID of the version to add the staging label to. To remove a label from a version, then do not specify this parameter.</p>
    /// <p>If the staging label is already attached to a different version of the secret, then you must also specify the <code>RemoveFromVersionId</code> parameter.</p>
    pub fn move_to_version_id(&self) -> ::std::option::Option<&str> {
        self.move_to_version_id.as_deref()
    }
}
impl UpdateSecretVersionStageInput {
    /// Creates a new builder-style object to manufacture [`UpdateSecretVersionStageInput`](crate::operation::update_secret_version_stage::UpdateSecretVersionStageInput).
    pub fn builder() -> crate::operation::update_secret_version_stage::builders::UpdateSecretVersionStageInputBuilder {
        crate::operation::update_secret_version_stage::builders::UpdateSecretVersionStageInputBuilder::default()
    }
}

/// A builder for [`UpdateSecretVersionStageInput`](crate::operation::update_secret_version_stage::UpdateSecretVersionStageInput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct UpdateSecretVersionStageInputBuilder {
    pub(crate) secret_id: ::std::option::Option<::std::string::String>,
    pub(crate) version_stage: ::std::option::Option<::std::string::String>,
    pub(crate) remove_from_version_id: ::std::option::Option<::std::string::String>,
    pub(crate) move_to_version_id: ::std::option::Option<::std::string::String>,
}
impl UpdateSecretVersionStageInputBuilder {
    /// <p>The ARN or the name of the secret with the version and staging labelsto modify.</p>
    /// <p>For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen">Finding a secret from a partial ARN</a>.</p>
    /// This field is required.
    pub fn secret_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.secret_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ARN or the name of the secret with the version and staging labelsto modify.</p>
    /// <p>For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen">Finding a secret from a partial ARN</a>.</p>
    pub fn set_secret_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.secret_id = input;
        self
    }
    /// <p>The ARN or the name of the secret with the version and staging labelsto modify.</p>
    /// <p>For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen">Finding a secret from a partial ARN</a>.</p>
    pub fn get_secret_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.secret_id
    }
    /// <p>The staging label to add to this version.</p>
    /// This field is required.
    pub fn version_stage(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.version_stage = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The staging label to add to this version.</p>
    pub fn set_version_stage(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.version_stage = input;
        self
    }
    /// <p>The staging label to add to this version.</p>
    pub fn get_version_stage(&self) -> &::std::option::Option<::std::string::String> {
        &self.version_stage
    }
    /// <p>The ID of the version that the staging label is to be removed from. If the staging label you are trying to attach to one version is already attached to a different version, then you must include this parameter and specify the version that the label is to be removed from. If the label is attached and you either do not specify this parameter, or the version ID does not match, then the operation fails.</p>
    pub fn remove_from_version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.remove_from_version_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ID of the version that the staging label is to be removed from. If the staging label you are trying to attach to one version is already attached to a different version, then you must include this parameter and specify the version that the label is to be removed from. If the label is attached and you either do not specify this parameter, or the version ID does not match, then the operation fails.</p>
    pub fn set_remove_from_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.remove_from_version_id = input;
        self
    }
    /// <p>The ID of the version that the staging label is to be removed from. If the staging label you are trying to attach to one version is already attached to a different version, then you must include this parameter and specify the version that the label is to be removed from. If the label is attached and you either do not specify this parameter, or the version ID does not match, then the operation fails.</p>
    pub fn get_remove_from_version_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.remove_from_version_id
    }
    /// <p>The ID of the version to add the staging label to. To remove a label from a version, then do not specify this parameter.</p>
    /// <p>If the staging label is already attached to a different version of the secret, then you must also specify the <code>RemoveFromVersionId</code> parameter.</p>
    pub fn move_to_version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.move_to_version_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ID of the version to add the staging label to. To remove a label from a version, then do not specify this parameter.</p>
    /// <p>If the staging label is already attached to a different version of the secret, then you must also specify the <code>RemoveFromVersionId</code> parameter.</p>
    pub fn set_move_to_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.move_to_version_id = input;
        self
    }
    /// <p>The ID of the version to add the staging label to. To remove a label from a version, then do not specify this parameter.</p>
    /// <p>If the staging label is already attached to a different version of the secret, then you must also specify the <code>RemoveFromVersionId</code> parameter.</p>
    pub fn get_move_to_version_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.move_to_version_id
    }
    /// Consumes the builder and constructs a [`UpdateSecretVersionStageInput`](crate::operation::update_secret_version_stage::UpdateSecretVersionStageInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<
        crate::operation::update_secret_version_stage::UpdateSecretVersionStageInput,
        ::aws_smithy_types::error::operation::BuildError,
    > {
        ::std::result::Result::Ok(crate::operation::update_secret_version_stage::UpdateSecretVersionStageInput {
            secret_id: self.secret_id,
            version_stage: self.version_stage,
            remove_from_version_id: self.remove_from_version_id,
            move_to_version_id: self.move_to_version_id,
        })
    }
}