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§

The Amazon Web Services account ID of the owner of the IPAM pool.

The ID of the IPAM pool.

The ID of the source IPAM pool. You can use this option to create an IPAM pool within an existing source pool.

The ARN of the IPAM pool.

The ARN of the scope of the IPAM pool.

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.

The ARN of the IPAM.

The Amazon Web Services Region of the IPAM pool.

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.

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.

The state of the IPAM pool.

A message related to the failed creation of an IPAM pool.

The description of the IPAM pool.

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.

Determines if a pool is publicly advertisable. This option is not available for pools with AddressFamily set to ipv4.

The address family of the pool.

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.

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.

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.

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.

Creates a new builder-style object to manufacture IpamPool.

Examples found in repository?
src/xml_deser.rs (line 27277)
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())
}

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more