pub struct ParameterMap(pub BTreeMap<ParameterKey, ParameterValue>);Tuple Fields§
§0: BTreeMap<ParameterKey, ParameterValue>Implementations§
Source§impl ParameterMap
impl ParameterMap
pub fn new() -> Self
Sourcepub fn parse<'a>(
values: impl IntoIterator<Item = &'a Parameter>,
) -> Result<ParameterMap, String>
pub fn parse<'a>( values: impl IntoIterator<Item = &'a Parameter>, ) -> Result<ParameterMap, String>
Parse a parameter vector into a parameter map
§Examples
No duplicates
let parameters = vec![
Parameter {
key: ParameterKey("key-a".to_string()),
value: ParameterValue("value-a".to_string()),
},
Parameter {
key: ParameterKey("key-b".to_string()),
value: ParameterValue("value-b".to_string()),
},
];
assert_eq!(
Ok(ParameterMap(std::collections::BTreeMap::from([
(
ParameterKey(String::from("key-a")),
ParameterValue(String::from("value-a"))
),
(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b"))
),
]))),
ParameterMap::parse(¶meters)
);Present duplicate, errors on first duplicate
let parameters = vec![
Parameter {
key: ParameterKey("key-a".to_string()),
value: ParameterValue("value-a".to_string()),
},
Parameter {
key: ParameterKey("key-a".to_string()),
value: ParameterValue("value-a".to_string()),
},
Parameter {
key: ParameterKey("key-b".to_string()),
value: ParameterValue("value-b".to_string()),
},
Parameter {
key: ParameterKey("key-b".to_string()),
value: ParameterValue("value-b".to_string()),
},
];
assert_eq!(
Err(String::from(
"Parameter key: key-a is present multiple times"
)),
ParameterMap::parse(¶meters)
);Sourcepub fn merge(&self, other: &Self) -> Self
pub fn merge(&self, other: &Self) -> Self
Merge parameter map into receiver
§Examples
let original = ParameterMap(std::collections::BTreeMap::from([
(
ParameterKey(String::from("key-a")),
ParameterValue(String::from("value-a")),
),
(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b1")),
),
]));
let extra = ParameterMap(std::collections::BTreeMap::from([
(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b2")),
),
(
ParameterKey(String::from("key-c")),
ParameterValue(String::from("value-c")),
),
]));
assert_eq!(
ParameterMap(std::collections::BTreeMap::from([
(
ParameterKey(String::from("key-a")),
ParameterValue(String::from("value-a"))
),
(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b2"))
),
(
ParameterKey(String::from("key-c")),
ParameterValue(String::from("value-c"))
),
])),
original.merge(&extra)
)Sourcepub fn to_create_parameters(&self) -> Vec<Parameter>
pub fn to_create_parameters(&self) -> Vec<Parameter>
To create parameters
§Examples
assert_eq!(
vec![
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-a")
.parameter_value("value-a")
.build(),
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-b")
.parameter_value("value-b")
.build(),
],
ParameterMap(std::collections::BTreeMap::from([
(
ParameterKey(String::from("key-a")),
ParameterValue(String::from("value-a"))
),
(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b"))
),
]))
.to_create_parameters(),
)Sourcepub fn to_parameter_update_parameters(
&self,
existing_stack: &Stack,
) -> Vec<Parameter>
pub fn to_parameter_update_parameters( &self, existing_stack: &Stack, ) -> Vec<Parameter>
To parameter update parameters
§Examples
Some updates
let existing_stack = aws_sdk_cloudformation::types::Stack::builder()
.set_parameters(Some(vec![
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-a")
.parameter_value("value-a1")
.build(),
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-b")
.parameter_value("value-b1")
.build(),
]))
.build();
assert_eq!(
vec![
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-a")
.use_previous_value(true)
.build(),
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-b")
.parameter_value("value-b2")
.build(),
],
ParameterMap(std::collections::BTreeMap::from([(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b2"))
),]))
.to_parameter_update_parameters(&existing_stack),
)Sourcepub fn to_template_update_parameters(
&self,
template_parameter_keys: &ParameterKeys,
existing_stack_parameter_keys: &ParameterKeys,
) -> Vec<Parameter>
pub fn to_template_update_parameters( &self, template_parameter_keys: &ParameterKeys, existing_stack_parameter_keys: &ParameterKeys, ) -> Vec<Parameter>
To template update parameters
§Examples
One parameter unchanged key-a, one parameter changed key-b, one parameter
is probably new in the template key-c.
let template_parameter_keys = ParameterKeys::from([
ParameterKey(String::from("key-a")),
ParameterKey(String::from("key-b")),
ParameterKey(String::from("key-c")),
]);
let existing_stack_parameter_keys = ParameterKeys::from([ParameterKey(String::from("key-a"))]);
assert_eq!(
vec![
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-a")
.use_previous_value(true)
.build(),
aws_sdk_cloudformation::types::Parameter::builder()
.parameter_key("key-b")
.parameter_value("value-b")
.build(),
],
ParameterMap(std::collections::BTreeMap::from([(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b"))
),]))
.to_template_update_parameters(&template_parameter_keys, &existing_stack_parameter_keys),
)Sourcepub fn to_parameter_keys(&self) -> ParameterKeys
pub fn to_parameter_keys(&self) -> ParameterKeys
To parameter keys
§Examples
let template = Template::Plain {
name: "example".into(),
rendered: TemplateRendered {
body: "ununsed".into(),
format: TemplateFormat::JSON,
},
parameter_keys: ParameterKeys::from([ParameterKey(String::from("key-a"))]),
};
assert_eq!(
ParameterKeys::from([
ParameterKey(String::from("key-a")),
ParameterKey(String::from("key-b")),
]),
ParameterMap(std::collections::BTreeMap::from([
(
ParameterKey(String::from("key-a")),
ParameterValue(String::from("value-a"))
),
(
ParameterKey(String::from("key-b")),
ParameterValue(String::from("value-b"))
),
]))
.to_parameter_keys()
)Trait Implementations§
Source§impl Debug for ParameterMap
impl Debug for ParameterMap
Source§impl Default for ParameterMap
impl Default for ParameterMap
Source§impl PartialEq for ParameterMap
impl PartialEq for ParameterMap
impl StructuralPartialEq for ParameterMap
Auto Trait Implementations§
impl Freeze for ParameterMap
impl RefUnwindSafe for ParameterMap
impl Send for ParameterMap
impl Sync for ParameterMap
impl Unpin for ParameterMap
impl UnsafeUnpin for ParameterMap
impl UnwindSafe for ParameterMap
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.