Struct aws_sdk_ec2::model::IpamPool
source · #[non_exhaustive]pub struct IpamPool { /* private fields */ }
Expand description
In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.
Implementations§
source§impl IpamPool
impl IpamPool
sourcepub fn owner_id(&self) -> Option<&str>
pub fn owner_id(&self) -> Option<&str>
The Amazon Web Services account ID of the owner of the IPAM pool.
sourcepub fn ipam_pool_id(&self) -> Option<&str>
pub fn ipam_pool_id(&self) -> Option<&str>
The ID of the IPAM pool.
sourcepub fn source_ipam_pool_id(&self) -> Option<&str>
pub fn source_ipam_pool_id(&self) -> Option<&str>
The ID of the source IPAM pool. You can use this option to create an IPAM pool within an existing source pool.
sourcepub fn ipam_pool_arn(&self) -> Option<&str>
pub fn ipam_pool_arn(&self) -> Option<&str>
The ARN of the IPAM pool.
sourcepub fn ipam_scope_arn(&self) -> Option<&str>
pub fn ipam_scope_arn(&self) -> Option<&str>
The ARN of the scope of the IPAM pool.
sourcepub fn ipam_scope_type(&self) -> Option<&IpamScopeType>
pub fn ipam_scope_type(&self) -> Option<&IpamScopeType>
In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.
sourcepub fn ipam_region(&self) -> Option<&str>
pub fn ipam_region(&self) -> Option<&str>
The Amazon Web Services Region of the IPAM pool.
sourcepub fn locale(&self) -> Option<&str>
pub fn locale(&self) -> Option<&str>
The locale of the IPAM pool. In IPAM, the locale is the Amazon Web Services Region where you want to make an IPAM pool available for allocations. Only resources in the same Region as the locale of the pool can get IP address allocations from the pool. You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC’s Region. Note that once you choose a Locale for a pool, you cannot modify it. If you choose an Amazon Web Services Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.
sourcepub fn pool_depth(&self) -> Option<i32>
pub fn pool_depth(&self) -> Option<i32>
The depth of pools in your IPAM pool. The pool depth quota is 10. For more information, see Quotas in IPAM in the Amazon VPC IPAM User Guide.
sourcepub fn state(&self) -> Option<&IpamPoolState>
pub fn state(&self) -> Option<&IpamPoolState>
The state of the IPAM pool.
sourcepub fn state_message(&self) -> Option<&str>
pub fn state_message(&self) -> Option<&str>
A message related to the failed creation of an IPAM pool.
sourcepub fn description(&self) -> Option<&str>
pub fn description(&self) -> Option<&str>
The description of the IPAM pool.
sourcepub fn auto_import(&self) -> Option<bool>
pub fn auto_import(&self) -> Option<bool>
If selected, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.
A locale must be set on the pool for this feature to work.
sourcepub fn publicly_advertisable(&self) -> Option<bool>
pub fn publicly_advertisable(&self) -> Option<bool>
Determines if a pool is publicly advertisable. This option is not available for pools with AddressFamily set to ipv4
.
sourcepub fn address_family(&self) -> Option<&AddressFamily>
pub fn address_family(&self) -> Option<&AddressFamily>
The address family of the pool.
sourcepub fn allocation_min_netmask_length(&self) -> Option<i32>
pub fn allocation_min_netmask_length(&self) -> Option<i32>
The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. The minimum netmask length must be less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
sourcepub fn allocation_max_netmask_length(&self) -> Option<i32>
pub fn allocation_max_netmask_length(&self) -> Option<i32>
The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. The maximum netmask length must be greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
sourcepub fn allocation_default_netmask_length(&self) -> Option<i32>
pub fn allocation_default_netmask_length(&self) -> Option<i32>
The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant.
The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner
and the value TeamA
, specify tag:Owner
for the filter name and TeamA
for the filter value.
sourcepub fn aws_service(&self) -> Option<&IpamPoolAwsService>
pub fn aws_service(&self) -> Option<&IpamPoolAwsService>
Limits which service in Amazon Web Services that the pool can be used in. "ec2", for example, allows users to use space for Elastic IP addresses and VPCs.
source§impl IpamPool
impl IpamPool
sourcepub fn builder() -> Builder
pub fn builder() -> Builder
Creates a new builder-style object to manufacture IpamPool
.
Examples found in repository?
27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27295 27296 27297 27298 27299 27300 27301 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27325 27326 27327 27328 27329 27330 27331 27332 27333 27334 27335 27336 27337 27338 27339 27340 27341 27342 27343 27344 27345 27346 27347 27348 27349 27350 27351 27352 27353 27354 27355 27356 27357 27358 27359 27360 27361 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 27397 27398 27399 27400 27401 27402 27403 27404 27405 27406 27407 27408 27409 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27433 27434 27435 27436 27437 27438 27439 27440 27441 27442 27443 27444 27445 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27469 27470 27471 27472 27473 27474 27475 27476 27477 27478 27479 27480 27481 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27505 27506 27507 27508 27509 27510 27511 27512 27513 27514 27515 27516 27517 27518 27519 27520 27521 27522 27523 27524 27525 27526 27527 27528 27529 27530 27531 27532 27533 27534 27535 27536 27537 27538 27539 27540 27541 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 27577 27578 27579 27580
pub fn deser_structure_crate_model_ipam_pool(
decoder: &mut aws_smithy_xml::decode::ScopedDecoder,
) -> Result<crate::model::IpamPool, aws_smithy_xml::decode::XmlDecodeError> {
#[allow(unused_mut)]
let mut builder = crate::model::IpamPool::builder();
while let Some(mut tag) = decoder.next_tag() {
match tag.start_el() {
s if s.matches("ownerId") /* OwnerId com.amazonaws.ec2#IpamPool$OwnerId */ => {
let var_1100 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_owner_id(var_1100);
}
,
s if s.matches("ipamPoolId") /* IpamPoolId com.amazonaws.ec2#IpamPool$IpamPoolId */ => {
let var_1101 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_ipam_pool_id(var_1101);
}
,
s if s.matches("sourceIpamPoolId") /* SourceIpamPoolId com.amazonaws.ec2#IpamPool$SourceIpamPoolId */ => {
let var_1102 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_source_ipam_pool_id(var_1102);
}
,
s if s.matches("ipamPoolArn") /* IpamPoolArn com.amazonaws.ec2#IpamPool$IpamPoolArn */ => {
let var_1103 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_ipam_pool_arn(var_1103);
}
,
s if s.matches("ipamScopeArn") /* IpamScopeArn com.amazonaws.ec2#IpamPool$IpamScopeArn */ => {
let var_1104 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_ipam_scope_arn(var_1104);
}
,
s if s.matches("ipamScopeType") /* IpamScopeType com.amazonaws.ec2#IpamPool$IpamScopeType */ => {
let var_1105 =
Some(
Result::<crate::model::IpamScopeType, aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::model::IpamScopeType::from(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_ipam_scope_type(var_1105);
}
,
s if s.matches("ipamArn") /* IpamArn com.amazonaws.ec2#IpamPool$IpamArn */ => {
let var_1106 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_ipam_arn(var_1106);
}
,
s if s.matches("ipamRegion") /* IpamRegion com.amazonaws.ec2#IpamPool$IpamRegion */ => {
let var_1107 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_ipam_region(var_1107);
}
,
s if s.matches("locale") /* Locale com.amazonaws.ec2#IpamPool$Locale */ => {
let var_1108 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_locale(var_1108);
}
,
s if s.matches("poolDepth") /* PoolDepth com.amazonaws.ec2#IpamPool$PoolDepth */ => {
let var_1109 =
Some(
{
<i32 as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
}
?
)
;
builder = builder.set_pool_depth(var_1109);
}
,
s if s.matches("state") /* State com.amazonaws.ec2#IpamPool$State */ => {
let var_1110 =
Some(
Result::<crate::model::IpamPoolState, aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::model::IpamPoolState::from(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_state(var_1110);
}
,
s if s.matches("stateMessage") /* StateMessage com.amazonaws.ec2#IpamPool$StateMessage */ => {
let var_1111 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_state_message(var_1111);
}
,
s if s.matches("description") /* Description com.amazonaws.ec2#IpamPool$Description */ => {
let var_1112 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_description(var_1112);
}
,
s if s.matches("autoImport") /* AutoImport com.amazonaws.ec2#IpamPool$AutoImport */ => {
let var_1113 =
Some(
{
<bool as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
}
?
)
;
builder = builder.set_auto_import(var_1113);
}
,
s if s.matches("publiclyAdvertisable") /* PubliclyAdvertisable com.amazonaws.ec2#IpamPool$PubliclyAdvertisable */ => {
let var_1114 =
Some(
{
<bool as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
}
?
)
;
builder = builder.set_publicly_advertisable(var_1114);
}
,
s if s.matches("addressFamily") /* AddressFamily com.amazonaws.ec2#IpamPool$AddressFamily */ => {
let var_1115 =
Some(
Result::<crate::model::AddressFamily, aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::model::AddressFamily::from(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_address_family(var_1115);
}
,
s if s.matches("allocationMinNetmaskLength") /* AllocationMinNetmaskLength com.amazonaws.ec2#IpamPool$AllocationMinNetmaskLength */ => {
let var_1116 =
Some(
{
<i32 as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#IpamNetmaskLength`)"))
}
?
)
;
builder = builder.set_allocation_min_netmask_length(var_1116);
}
,
s if s.matches("allocationMaxNetmaskLength") /* AllocationMaxNetmaskLength com.amazonaws.ec2#IpamPool$AllocationMaxNetmaskLength */ => {
let var_1117 =
Some(
{
<i32 as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#IpamNetmaskLength`)"))
}
?
)
;
builder = builder.set_allocation_max_netmask_length(var_1117);
}
,
s if s.matches("allocationDefaultNetmaskLength") /* AllocationDefaultNetmaskLength com.amazonaws.ec2#IpamPool$AllocationDefaultNetmaskLength */ => {
let var_1118 =
Some(
{
<i32 as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#IpamNetmaskLength`)"))
}
?
)
;
builder = builder.set_allocation_default_netmask_length(var_1118);
}
,
s if s.matches("allocationResourceTagSet") /* AllocationResourceTags com.amazonaws.ec2#IpamPool$AllocationResourceTags */ => {
let var_1119 =
Some(
crate::xml_deser::deser_list_com_amazonaws_ec2_ipam_resource_tag_list(&mut tag)
?
)
;
builder = builder.set_allocation_resource_tags(var_1119);
}
,
s if s.matches("tagSet") /* Tags com.amazonaws.ec2#IpamPool$Tags */ => {
let var_1120 =
Some(
crate::xml_deser::deser_list_com_amazonaws_ec2_tag_list(&mut tag)
?
)
;
builder = builder.set_tags(var_1120);
}
,
s if s.matches("awsService") /* AwsService com.amazonaws.ec2#IpamPool$AwsService */ => {
let var_1121 =
Some(
Result::<crate::model::IpamPoolAwsService, aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::model::IpamPoolAwsService::from(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_aws_service(var_1121);
}
,
_ => {}
}
}
Ok(builder.build())
}