Class List Method List File List

# Class: Com::Vmware::Vcenter::Ovf::IpAllocationParams

Inherits:
  VAPI::Bindings::VapiStruct
  - Object
  - VAPI::Bindings::VapiStruct
  - Com::Vmware::Vcenter::Ovf::IpAllocationParams
  show all
Defined in:
  /build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb

## Overview

The ``Com::Vmware::Vcenter::Ovf::IpAllocationParams`` class specifies how IP addresses are allocated to OVF properties. In particular, it informs the deployment platform whether the guest supports IPv4, IPv6, or both. It also specifies whether the IP addresses can be obtained through DHCP or through the properties provided in the OVF environment.

     Ovf Property elements are exposed to the guest software through the OVF environment. Each Property element exposed in the OVF environment shall be constructed from the value of the ovf:key attribute. A Property element contains a key/value pair, it may optionally specify type qualifiers using the ovf:qualifiers attribute with multiple qualifiers separated by commas.

     The settings in  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams``   class  are global to a deployment. Thus, if a virtual machine is part of a virtual appliance, then its settings are ignored and the settings for the virtual appliance is used.

     This information is based on the vmw:IpAssignmentSection in OVF package.

     See   :func:`Com::Vmware::Vcenter::Ovf::LibraryItem.deploy`   and   :func:`Com::Vmware::Vcenter::Ovf::LibraryItem.filter`  .

## Defined Under Namespace

Classes: IpAllocationPolicy, IpAllocationScheme, IpProtocol

## Instance Attribute Summary (collapse)

- - (Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy) ip_allocation_policy

  Specifies how IP allocation is done through an IP Pool.

- - (Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol) ip_protocol

  Specifies the chosen IP protocol for this deployment.

- - (Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme>) supported_allocation_scheme

  Specifies the IP allocation schemes supported by the guest software.

- - (Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy>) supported_ip_allocation_policy

  Specifies the IP allocation policies supported.

- - (Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol>) supported_ip_protocol

  Specifies the IP protocols supported by the guest.

- - (Object) type

  Returns the value of attribute type.

## Class Method Summary (collapse)

- + (VAPI::Bindings::StructType) binding_type

  Holds (gets or creates) the binding type metadata for this structure type.

## Instance Method Summary (collapse)

- - (IpAllocationParams) initialize(ruby_values = nil, struct_value = nil) constructor

  Constructs a new instance.

## Constructor Details

### - (`IpAllocationParams`) initialize(ruby_values = nil, struct_value = nil)

Constructs a new instance.

Parameters:

- ruby_values (`Hash`) (defaults to: `nil`) —

  a map of initial property values (optional)

- struct_value (`VAPI::Data::StructValue`) (defaults to: `nil`) —

  a raw StructValue from the wire (optional)

    1355
    1356
    1357
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1355

    def initialize(ruby_values=nil, struct_value=nil)
        super(self.class.binding_type, ruby_values, struct_value)
    end

## Instance Attribute Details

### - (`Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy`) ip_allocation_policy

Specifies how IP allocation is done through an IP Pool. This is typically specified by the deployer. This field is optional in the input parameters when deploying an OVF package. If nil there is no IP allocation policy. This field will always be present in the result when retrieving information about an OVF package.

Returns:

- (`Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy`)

    1322
    1323
    1324
    1325
    1326
    1327
    1328
    1329
    1330
    1331
    1332
    1333
    1334
    1335
    1336
    1337
    1338
    1339
    1340
    1341
    1342
    1343
    1344
    1345
    1346
    1347
    1348
    1349
    1350
    1351
    1352
    1353
    1354
    1355
    1356
    1357
    1358
    1359
    1360
    1361
    1362
    1363
    1364
    1365
    1366
    1367
    1368
    1369
    1370
    1371
    1372
    1373
    1374
    1375
    1376
    1377
    1378
    1379
    1380
    1381
    1382
    1383
    1384
    1385
    1386
    1387
    1388
    1389
    1390
    1391
    1392
    1393
    1394
    1395
    1396
    1397
    1398
    1399
    1400
    1401
    1402
    1403
    1404
    1405
    1406
    1407
    1408
    1409
    1410
    1411
    1412
    1413
    1414
    1415
    1416
    1417
    1418
    1419
    1420
    1421
    1422
    1423
    1424
    1425
    1426
    1427
    1428
    1429
    1430
    1431
    1432
    1433
    1434
    1435
    1436
    1437
    1438
    1439
    1440
    1441
    1442
    1443
    1444
    1445
    1446
    1447
    1448
    1449
    1450
    1451
    1452
    1453
    1454
    1455
    1456
    1457
    1458
    1459
    1460
    1461
    1462
    1463
    1464
    1465
    1466
    1467
    1468
    1469
    1470
    1471
    1472
    1473
    1474
    1475
    1476
    1477
    1478
    1479
    1480
    1481
    1482
    1483
    1484
    1485
    1486
    1487
    1488
    1489
    1490
    1491
    1492
    1493
    1494
    1495
    1496
    1497
    1498
    1499
    1500
    1501
    1502
    1503
    1504
    1505
    1506
    1507
    1508
    1509
    1510
    1511
    1512
    1513
    1514
    1515
    1516
    1517
    1518
    1519
    1520
    1521
    1522
    1523
    1524
    1525
    1526
    1527
    1528
    1529
    1530
    1531
    1532
    1533
    1534
    1535
    1536
    1537
    1538
    1539
    1540
    1541
    1542
    1543
    1544
    1545
    1546
    1547
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1322

    class IpAllocationParams < VAPI::Bindings::VapiStruct

        class << self
            # Holds (gets or creates) the binding type metadata for this structure type.
            # @scope class
            # @return [VAPI::Bindings::StructType] the binding type
            def binding_type
                @binding_type ||= VAPI::Bindings::StructType.new(
                    'com.vmware.vcenter.ovf.ip_allocation_params',
                    {
                        'supported_allocation_scheme' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme'))),
                        'supported_ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy'))),
                        'ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy')),
                        'supported_ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol'))),
                        'ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol')),
                        'type' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::StringType.instance),
                    },
                    IpAllocationParams,
                    false,
                    nil)
            end
        end

        attr_accessor :supported_allocation_scheme,
                      :supported_ip_allocation_policy,
                      :ip_allocation_policy,
                      :supported_ip_protocol,
                      :ip_protocol,
                      :type

        # Constructs a new instance.
        # @param ruby_values [Hash] a map of initial property values (optional)
        # @param struct_value [VAPI::Data::StructValue] a raw StructValue from the wire (optional)
        def initialize(ruby_values=nil, struct_value=nil)
            super(self.class.binding_type, ruby_values, struct_value)
        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy``   enumerated type  defines the possible IP allocation policy for a deployment.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that DHCP will be used to allocate IP addresses.
        # @!attribute [rw] transient_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
        # @!attribute [rw] static_manual
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
        # @!attribute [rw] static_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
        class IpAllocationPolicy < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_policy',
                        IpAllocationPolicy)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationPolicy] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationPolicy.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that DHCP will be used to allocate IP addresses.
            DHCP = IpAllocationPolicy.new('DHCP')

            # @!attribute [rw] transient_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
            TRANSIENT_IPPOOL = IpAllocationPolicy.new('TRANSIENT_IPPOOL')

            # @!attribute [rw] static_manual
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
            STATIC_MANUAL = IpAllocationPolicy.new('STATIC_MANUAL')

            # @!attribute [rw] static_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
            STATIC_IPPOOL = IpAllocationPolicy.new('STATIC_IPPOOL')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme``   enumerated type  defines the possible IP allocation schemes that can be supported by the guest software.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports DHCP to acquire IP configuration.
        # @!attribute [rw] ovf_environment
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports setting the IP configuration through the properties provided in the OVF environment.
        class IpAllocationScheme < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_scheme',
                        IpAllocationScheme)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationScheme] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationScheme.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports DHCP to acquire IP configuration.
            DHCP = IpAllocationScheme.new('DHCP')

            # @!attribute [rw] ovf_environment
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports setting the IP configuration through the properties provided in the OVF environment.
            OVF_ENVIRONMENT = IpAllocationScheme.new('OVF_ENVIRONMENT')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol``   enumerated type  defines the IP protocols supported by the guest software.
        # @!attribute [rw] ip_v4
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv4 protocol.
        # @!attribute [rw] ip_v6
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv6 protocol.
        class IpProtocol < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_protocol',
                        IpProtocol)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpProtocol] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpProtocol.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] ip_v4
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv4 protocol.
            IP_V4 = IpProtocol.new('IP_V4')

            # @!attribute [rw] ip_v6
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv6 protocol.
            IP_V6 = IpProtocol.new('IP_V6')

        end

    end

### - (`Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol`) ip_protocol

Specifies the chosen IP protocol for this deployment. This must be one of the IP protocols supported by the guest software. See :attr:`Com::Vmware::Vcenter::Ovf::IpAllocationParams.supported_ip_protocol` . This field is optional in the input parameters when deploying an OVF package. If nil there is no IP protocol chosen. This field will always be present in the result when retrieving information about an OVF package.

Returns:

- (`Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol`)

    1322
    1323
    1324
    1325
    1326
    1327
    1328
    1329
    1330
    1331
    1332
    1333
    1334
    1335
    1336
    1337
    1338
    1339
    1340
    1341
    1342
    1343
    1344
    1345
    1346
    1347
    1348
    1349
    1350
    1351
    1352
    1353
    1354
    1355
    1356
    1357
    1358
    1359
    1360
    1361
    1362
    1363
    1364
    1365
    1366
    1367
    1368
    1369
    1370
    1371
    1372
    1373
    1374
    1375
    1376
    1377
    1378
    1379
    1380
    1381
    1382
    1383
    1384
    1385
    1386
    1387
    1388
    1389
    1390
    1391
    1392
    1393
    1394
    1395
    1396
    1397
    1398
    1399
    1400
    1401
    1402
    1403
    1404
    1405
    1406
    1407
    1408
    1409
    1410
    1411
    1412
    1413
    1414
    1415
    1416
    1417
    1418
    1419
    1420
    1421
    1422
    1423
    1424
    1425
    1426
    1427
    1428
    1429
    1430
    1431
    1432
    1433
    1434
    1435
    1436
    1437
    1438
    1439
    1440
    1441
    1442
    1443
    1444
    1445
    1446
    1447
    1448
    1449
    1450
    1451
    1452
    1453
    1454
    1455
    1456
    1457
    1458
    1459
    1460
    1461
    1462
    1463
    1464
    1465
    1466
    1467
    1468
    1469
    1470
    1471
    1472
    1473
    1474
    1475
    1476
    1477
    1478
    1479
    1480
    1481
    1482
    1483
    1484
    1485
    1486
    1487
    1488
    1489
    1490
    1491
    1492
    1493
    1494
    1495
    1496
    1497
    1498
    1499
    1500
    1501
    1502
    1503
    1504
    1505
    1506
    1507
    1508
    1509
    1510
    1511
    1512
    1513
    1514
    1515
    1516
    1517
    1518
    1519
    1520
    1521
    1522
    1523
    1524
    1525
    1526
    1527
    1528
    1529
    1530
    1531
    1532
    1533
    1534
    1535
    1536
    1537
    1538
    1539
    1540
    1541
    1542
    1543
    1544
    1545
    1546
    1547
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1322

    class IpAllocationParams < VAPI::Bindings::VapiStruct

        class << self
            # Holds (gets or creates) the binding type metadata for this structure type.
            # @scope class
            # @return [VAPI::Bindings::StructType] the binding type
            def binding_type
                @binding_type ||= VAPI::Bindings::StructType.new(
                    'com.vmware.vcenter.ovf.ip_allocation_params',
                    {
                        'supported_allocation_scheme' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme'))),
                        'supported_ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy'))),
                        'ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy')),
                        'supported_ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol'))),
                        'ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol')),
                        'type' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::StringType.instance),
                    },
                    IpAllocationParams,
                    false,
                    nil)
            end
        end

        attr_accessor :supported_allocation_scheme,
                      :supported_ip_allocation_policy,
                      :ip_allocation_policy,
                      :supported_ip_protocol,
                      :ip_protocol,
                      :type

        # Constructs a new instance.
        # @param ruby_values [Hash] a map of initial property values (optional)
        # @param struct_value [VAPI::Data::StructValue] a raw StructValue from the wire (optional)
        def initialize(ruby_values=nil, struct_value=nil)
            super(self.class.binding_type, ruby_values, struct_value)
        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy``   enumerated type  defines the possible IP allocation policy for a deployment.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that DHCP will be used to allocate IP addresses.
        # @!attribute [rw] transient_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
        # @!attribute [rw] static_manual
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
        # @!attribute [rw] static_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
        class IpAllocationPolicy < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_policy',
                        IpAllocationPolicy)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationPolicy] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationPolicy.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that DHCP will be used to allocate IP addresses.
            DHCP = IpAllocationPolicy.new('DHCP')

            # @!attribute [rw] transient_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
            TRANSIENT_IPPOOL = IpAllocationPolicy.new('TRANSIENT_IPPOOL')

            # @!attribute [rw] static_manual
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
            STATIC_MANUAL = IpAllocationPolicy.new('STATIC_MANUAL')

            # @!attribute [rw] static_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
            STATIC_IPPOOL = IpAllocationPolicy.new('STATIC_IPPOOL')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme``   enumerated type  defines the possible IP allocation schemes that can be supported by the guest software.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports DHCP to acquire IP configuration.
        # @!attribute [rw] ovf_environment
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports setting the IP configuration through the properties provided in the OVF environment.
        class IpAllocationScheme < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_scheme',
                        IpAllocationScheme)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationScheme] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationScheme.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports DHCP to acquire IP configuration.
            DHCP = IpAllocationScheme.new('DHCP')

            # @!attribute [rw] ovf_environment
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports setting the IP configuration through the properties provided in the OVF environment.
            OVF_ENVIRONMENT = IpAllocationScheme.new('OVF_ENVIRONMENT')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol``   enumerated type  defines the IP protocols supported by the guest software.
        # @!attribute [rw] ip_v4
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv4 protocol.
        # @!attribute [rw] ip_v6
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv6 protocol.
        class IpProtocol < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_protocol',
                        IpProtocol)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpProtocol] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpProtocol.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] ip_v4
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv4 protocol.
            IP_V4 = IpProtocol.new('IP_V4')

            # @!attribute [rw] ip_v6
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv6 protocol.
            IP_V6 = IpProtocol.new('IP_V6')

        end

    end

### - (`Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme>`) supported_allocation_scheme

Specifies the IP allocation schemes supported by the guest software. This field defines the valid values for the IP allocation policy. This setting is often configured by the virtual appliance template author or OVF package author to reflect what the guest software supports, and the IP allocation policy is configured at deployment time. See :attr:`Com::Vmware::Vcenter::Ovf::IpAllocationParams.ip_allocation_policy` . This field is not used in the input parameters when deploying an OVF package. This field will always be present in the result when retrieving information about an OVF package.

Returns:

- (`Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme>`)

    1322
    1323
    1324
    1325
    1326
    1327
    1328
    1329
    1330
    1331
    1332
    1333
    1334
    1335
    1336
    1337
    1338
    1339
    1340
    1341
    1342
    1343
    1344
    1345
    1346
    1347
    1348
    1349
    1350
    1351
    1352
    1353
    1354
    1355
    1356
    1357
    1358
    1359
    1360
    1361
    1362
    1363
    1364
    1365
    1366
    1367
    1368
    1369
    1370
    1371
    1372
    1373
    1374
    1375
    1376
    1377
    1378
    1379
    1380
    1381
    1382
    1383
    1384
    1385
    1386
    1387
    1388
    1389
    1390
    1391
    1392
    1393
    1394
    1395
    1396
    1397
    1398
    1399
    1400
    1401
    1402
    1403
    1404
    1405
    1406
    1407
    1408
    1409
    1410
    1411
    1412
    1413
    1414
    1415
    1416
    1417
    1418
    1419
    1420
    1421
    1422
    1423
    1424
    1425
    1426
    1427
    1428
    1429
    1430
    1431
    1432
    1433
    1434
    1435
    1436
    1437
    1438
    1439
    1440
    1441
    1442
    1443
    1444
    1445
    1446
    1447
    1448
    1449
    1450
    1451
    1452
    1453
    1454
    1455
    1456
    1457
    1458
    1459
    1460
    1461
    1462
    1463
    1464
    1465
    1466
    1467
    1468
    1469
    1470
    1471
    1472
    1473
    1474
    1475
    1476
    1477
    1478
    1479
    1480
    1481
    1482
    1483
    1484
    1485
    1486
    1487
    1488
    1489
    1490
    1491
    1492
    1493
    1494
    1495
    1496
    1497
    1498
    1499
    1500
    1501
    1502
    1503
    1504
    1505
    1506
    1507
    1508
    1509
    1510
    1511
    1512
    1513
    1514
    1515
    1516
    1517
    1518
    1519
    1520
    1521
    1522
    1523
    1524
    1525
    1526
    1527
    1528
    1529
    1530
    1531
    1532
    1533
    1534
    1535
    1536
    1537
    1538
    1539
    1540
    1541
    1542
    1543
    1544
    1545
    1546
    1547
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1322

    class IpAllocationParams < VAPI::Bindings::VapiStruct

        class << self
            # Holds (gets or creates) the binding type metadata for this structure type.
            # @scope class
            # @return [VAPI::Bindings::StructType] the binding type
            def binding_type
                @binding_type ||= VAPI::Bindings::StructType.new(
                    'com.vmware.vcenter.ovf.ip_allocation_params',
                    {
                        'supported_allocation_scheme' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme'))),
                        'supported_ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy'))),
                        'ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy')),
                        'supported_ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol'))),
                        'ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol')),
                        'type' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::StringType.instance),
                    },
                    IpAllocationParams,
                    false,
                    nil)
            end
        end

        attr_accessor :supported_allocation_scheme,
                      :supported_ip_allocation_policy,
                      :ip_allocation_policy,
                      :supported_ip_protocol,
                      :ip_protocol,
                      :type

        # Constructs a new instance.
        # @param ruby_values [Hash] a map of initial property values (optional)
        # @param struct_value [VAPI::Data::StructValue] a raw StructValue from the wire (optional)
        def initialize(ruby_values=nil, struct_value=nil)
            super(self.class.binding_type, ruby_values, struct_value)
        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy``   enumerated type  defines the possible IP allocation policy for a deployment.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that DHCP will be used to allocate IP addresses.
        # @!attribute [rw] transient_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
        # @!attribute [rw] static_manual
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
        # @!attribute [rw] static_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
        class IpAllocationPolicy < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_policy',
                        IpAllocationPolicy)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationPolicy] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationPolicy.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that DHCP will be used to allocate IP addresses.
            DHCP = IpAllocationPolicy.new('DHCP')

            # @!attribute [rw] transient_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
            TRANSIENT_IPPOOL = IpAllocationPolicy.new('TRANSIENT_IPPOOL')

            # @!attribute [rw] static_manual
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
            STATIC_MANUAL = IpAllocationPolicy.new('STATIC_MANUAL')

            # @!attribute [rw] static_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
            STATIC_IPPOOL = IpAllocationPolicy.new('STATIC_IPPOOL')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme``   enumerated type  defines the possible IP allocation schemes that can be supported by the guest software.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports DHCP to acquire IP configuration.
        # @!attribute [rw] ovf_environment
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports setting the IP configuration through the properties provided in the OVF environment.
        class IpAllocationScheme < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_scheme',
                        IpAllocationScheme)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationScheme] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationScheme.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports DHCP to acquire IP configuration.
            DHCP = IpAllocationScheme.new('DHCP')

            # @!attribute [rw] ovf_environment
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports setting the IP configuration through the properties provided in the OVF environment.
            OVF_ENVIRONMENT = IpAllocationScheme.new('OVF_ENVIRONMENT')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol``   enumerated type  defines the IP protocols supported by the guest software.
        # @!attribute [rw] ip_v4
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv4 protocol.
        # @!attribute [rw] ip_v6
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv6 protocol.
        class IpProtocol < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_protocol',
                        IpProtocol)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpProtocol] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpProtocol.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] ip_v4
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv4 protocol.
            IP_V4 = IpProtocol.new('IP_V4')

            # @!attribute [rw] ip_v6
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv6 protocol.
            IP_V6 = IpProtocol.new('IP_V6')

        end

    end

### - (`Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy>`) supported_ip_allocation_policy

Specifies the IP allocation policies supported. The set of valid options for the policy is based on the capabilities of the virtual appliance software, as specified by the :attr:`Com::Vmware::Vcenter::Ovf::IpAllocationParams.supported_allocation_scheme` field . This field is not used in the input parameters when deploying an OVF package. This field will always be present in the result when retrieving information about an OVF package.

Returns:

- (`Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy>`)

    1322
    1323
    1324
    1325
    1326
    1327
    1328
    1329
    1330
    1331
    1332
    1333
    1334
    1335
    1336
    1337
    1338
    1339
    1340
    1341
    1342
    1343
    1344
    1345
    1346
    1347
    1348
    1349
    1350
    1351
    1352
    1353
    1354
    1355
    1356
    1357
    1358
    1359
    1360
    1361
    1362
    1363
    1364
    1365
    1366
    1367
    1368
    1369
    1370
    1371
    1372
    1373
    1374
    1375
    1376
    1377
    1378
    1379
    1380
    1381
    1382
    1383
    1384
    1385
    1386
    1387
    1388
    1389
    1390
    1391
    1392
    1393
    1394
    1395
    1396
    1397
    1398
    1399
    1400
    1401
    1402
    1403
    1404
    1405
    1406
    1407
    1408
    1409
    1410
    1411
    1412
    1413
    1414
    1415
    1416
    1417
    1418
    1419
    1420
    1421
    1422
    1423
    1424
    1425
    1426
    1427
    1428
    1429
    1430
    1431
    1432
    1433
    1434
    1435
    1436
    1437
    1438
    1439
    1440
    1441
    1442
    1443
    1444
    1445
    1446
    1447
    1448
    1449
    1450
    1451
    1452
    1453
    1454
    1455
    1456
    1457
    1458
    1459
    1460
    1461
    1462
    1463
    1464
    1465
    1466
    1467
    1468
    1469
    1470
    1471
    1472
    1473
    1474
    1475
    1476
    1477
    1478
    1479
    1480
    1481
    1482
    1483
    1484
    1485
    1486
    1487
    1488
    1489
    1490
    1491
    1492
    1493
    1494
    1495
    1496
    1497
    1498
    1499
    1500
    1501
    1502
    1503
    1504
    1505
    1506
    1507
    1508
    1509
    1510
    1511
    1512
    1513
    1514
    1515
    1516
    1517
    1518
    1519
    1520
    1521
    1522
    1523
    1524
    1525
    1526
    1527
    1528
    1529
    1530
    1531
    1532
    1533
    1534
    1535
    1536
    1537
    1538
    1539
    1540
    1541
    1542
    1543
    1544
    1545
    1546
    1547
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1322

    class IpAllocationParams < VAPI::Bindings::VapiStruct

        class << self
            # Holds (gets or creates) the binding type metadata for this structure type.
            # @scope class
            # @return [VAPI::Bindings::StructType] the binding type
            def binding_type
                @binding_type ||= VAPI::Bindings::StructType.new(
                    'com.vmware.vcenter.ovf.ip_allocation_params',
                    {
                        'supported_allocation_scheme' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme'))),
                        'supported_ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy'))),
                        'ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy')),
                        'supported_ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol'))),
                        'ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol')),
                        'type' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::StringType.instance),
                    },
                    IpAllocationParams,
                    false,
                    nil)
            end
        end

        attr_accessor :supported_allocation_scheme,
                      :supported_ip_allocation_policy,
                      :ip_allocation_policy,
                      :supported_ip_protocol,
                      :ip_protocol,
                      :type

        # Constructs a new instance.
        # @param ruby_values [Hash] a map of initial property values (optional)
        # @param struct_value [VAPI::Data::StructValue] a raw StructValue from the wire (optional)
        def initialize(ruby_values=nil, struct_value=nil)
            super(self.class.binding_type, ruby_values, struct_value)
        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy``   enumerated type  defines the possible IP allocation policy for a deployment.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that DHCP will be used to allocate IP addresses.
        # @!attribute [rw] transient_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
        # @!attribute [rw] static_manual
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
        # @!attribute [rw] static_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
        class IpAllocationPolicy < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_policy',
                        IpAllocationPolicy)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationPolicy] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationPolicy.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that DHCP will be used to allocate IP addresses.
            DHCP = IpAllocationPolicy.new('DHCP')

            # @!attribute [rw] transient_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
            TRANSIENT_IPPOOL = IpAllocationPolicy.new('TRANSIENT_IPPOOL')

            # @!attribute [rw] static_manual
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
            STATIC_MANUAL = IpAllocationPolicy.new('STATIC_MANUAL')

            # @!attribute [rw] static_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
            STATIC_IPPOOL = IpAllocationPolicy.new('STATIC_IPPOOL')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme``   enumerated type  defines the possible IP allocation schemes that can be supported by the guest software.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports DHCP to acquire IP configuration.
        # @!attribute [rw] ovf_environment
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports setting the IP configuration through the properties provided in the OVF environment.
        class IpAllocationScheme < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_scheme',
                        IpAllocationScheme)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationScheme] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationScheme.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports DHCP to acquire IP configuration.
            DHCP = IpAllocationScheme.new('DHCP')

            # @!attribute [rw] ovf_environment
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports setting the IP configuration through the properties provided in the OVF environment.
            OVF_ENVIRONMENT = IpAllocationScheme.new('OVF_ENVIRONMENT')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol``   enumerated type  defines the IP protocols supported by the guest software.
        # @!attribute [rw] ip_v4
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv4 protocol.
        # @!attribute [rw] ip_v6
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv6 protocol.
        class IpProtocol < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_protocol',
                        IpProtocol)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpProtocol] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpProtocol.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] ip_v4
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv4 protocol.
            IP_V4 = IpProtocol.new('IP_V4')

            # @!attribute [rw] ip_v6
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv6 protocol.
            IP_V6 = IpProtocol.new('IP_V6')

        end

    end

### - (`Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol>`) supported_ip_protocol

Specifies the IP protocols supported by the guest. This field is not used in the input parameters when deploying an OVF package. This field will always be present in the result when retrieving information about an OVF package.

Returns:

- (`Array<Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol>`)

    1322
    1323
    1324
    1325
    1326
    1327
    1328
    1329
    1330
    1331
    1332
    1333
    1334
    1335
    1336
    1337
    1338
    1339
    1340
    1341
    1342
    1343
    1344
    1345
    1346
    1347
    1348
    1349
    1350
    1351
    1352
    1353
    1354
    1355
    1356
    1357
    1358
    1359
    1360
    1361
    1362
    1363
    1364
    1365
    1366
    1367
    1368
    1369
    1370
    1371
    1372
    1373
    1374
    1375
    1376
    1377
    1378
    1379
    1380
    1381
    1382
    1383
    1384
    1385
    1386
    1387
    1388
    1389
    1390
    1391
    1392
    1393
    1394
    1395
    1396
    1397
    1398
    1399
    1400
    1401
    1402
    1403
    1404
    1405
    1406
    1407
    1408
    1409
    1410
    1411
    1412
    1413
    1414
    1415
    1416
    1417
    1418
    1419
    1420
    1421
    1422
    1423
    1424
    1425
    1426
    1427
    1428
    1429
    1430
    1431
    1432
    1433
    1434
    1435
    1436
    1437
    1438
    1439
    1440
    1441
    1442
    1443
    1444
    1445
    1446
    1447
    1448
    1449
    1450
    1451
    1452
    1453
    1454
    1455
    1456
    1457
    1458
    1459
    1460
    1461
    1462
    1463
    1464
    1465
    1466
    1467
    1468
    1469
    1470
    1471
    1472
    1473
    1474
    1475
    1476
    1477
    1478
    1479
    1480
    1481
    1482
    1483
    1484
    1485
    1486
    1487
    1488
    1489
    1490
    1491
    1492
    1493
    1494
    1495
    1496
    1497
    1498
    1499
    1500
    1501
    1502
    1503
    1504
    1505
    1506
    1507
    1508
    1509
    1510
    1511
    1512
    1513
    1514
    1515
    1516
    1517
    1518
    1519
    1520
    1521
    1522
    1523
    1524
    1525
    1526
    1527
    1528
    1529
    1530
    1531
    1532
    1533
    1534
    1535
    1536
    1537
    1538
    1539
    1540
    1541
    1542
    1543
    1544
    1545
    1546
    1547
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1322

    class IpAllocationParams < VAPI::Bindings::VapiStruct

        class << self
            # Holds (gets or creates) the binding type metadata for this structure type.
            # @scope class
            # @return [VAPI::Bindings::StructType] the binding type
            def binding_type
                @binding_type ||= VAPI::Bindings::StructType.new(
                    'com.vmware.vcenter.ovf.ip_allocation_params',
                    {
                        'supported_allocation_scheme' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme'))),
                        'supported_ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy'))),
                        'ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy')),
                        'supported_ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol'))),
                        'ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol')),
                        'type' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::StringType.instance),
                    },
                    IpAllocationParams,
                    false,
                    nil)
            end
        end

        attr_accessor :supported_allocation_scheme,
                      :supported_ip_allocation_policy,
                      :ip_allocation_policy,
                      :supported_ip_protocol,
                      :ip_protocol,
                      :type

        # Constructs a new instance.
        # @param ruby_values [Hash] a map of initial property values (optional)
        # @param struct_value [VAPI::Data::StructValue] a raw StructValue from the wire (optional)
        def initialize(ruby_values=nil, struct_value=nil)
            super(self.class.binding_type, ruby_values, struct_value)
        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy``   enumerated type  defines the possible IP allocation policy for a deployment.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that DHCP will be used to allocate IP addresses.
        # @!attribute [rw] transient_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
        # @!attribute [rw] static_manual
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
        # @!attribute [rw] static_ippool
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
        #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
        class IpAllocationPolicy < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_policy',
                        IpAllocationPolicy)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationPolicy] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationPolicy.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that DHCP will be used to allocate IP addresses.
            DHCP = IpAllocationPolicy.new('DHCP')

            # @!attribute [rw] transient_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from an IP pool. The IP addresses are allocated when needed, typically at power-on, and deallocated during power-off. There is no guarantee that a property will receive same IP address when restarted.
            TRANSIENT_IPPOOL = IpAllocationPolicy.new('TRANSIENT_IPPOOL')

            # @!attribute [rw] static_manual
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are configured manually upon deployment, and will be kept until reconfigured or the virtual appliance destroyed. This ensures that a property gets a consistent IP for its lifetime.
            STATIC_MANUAL = IpAllocationPolicy.new('STATIC_MANUAL')

            # @!attribute [rw] static_ippool
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy]
            #     Specifies that IP addresses are allocated from the range managed by an IP pool. The IP addresses are allocated at first power-on, and remain allocated at power-off. This ensures that a virtual appliance gets a consistent IP for its life-time.
            STATIC_IPPOOL = IpAllocationPolicy.new('STATIC_IPPOOL')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme``   enumerated type  defines the possible IP allocation schemes that can be supported by the guest software.
        # @!attribute [rw] dhcp
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports DHCP to acquire IP configuration.
        # @!attribute [rw] ovf_environment
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
        #     It supports setting the IP configuration through the properties provided in the OVF environment.
        class IpAllocationScheme < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_allocation_scheme',
                        IpAllocationScheme)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpAllocationScheme] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpAllocationScheme.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] dhcp
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports DHCP to acquire IP configuration.
            DHCP = IpAllocationScheme.new('DHCP')

            # @!attribute [rw] ovf_environment
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme]
            #     It supports setting the IP configuration through the properties provided in the OVF environment.
            OVF_ENVIRONMENT = IpAllocationScheme.new('OVF_ENVIRONMENT')

        end

        # The  ``Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol``   enumerated type  defines the IP protocols supported by the guest software.
        # @!attribute [rw] ip_v4
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv4 protocol.
        # @!attribute [rw] ip_v6
        #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
        #     It supports the IPv6 protocol.
        class IpProtocol < VAPI::Bindings::VapiEnum

            class << self
                # Holds (gets or creates) the binding type metadata for this enumeration type.
                # @scope class
                # @return [VAPI::Bindings::EnumType] the binding type
                def binding_type
                    @binding_type ||= VAPI::Bindings::EnumType.new(
                        'com.vmware.vcenter.ovf.ip_allocation_params.ip_protocol',
                        IpProtocol)
                end

                # Converts from a string value (perhaps off the wire) to an instance
                # of this enum type.
                # @param value [String] the actual value of the enum instance
                # @return [IpProtocol] the instance found for the value, otherwise
                #         an unknown instance will be built for the value
                def from_string(value)
                    begin
                        const_get(value)
                    rescue NameError
                        IpProtocol.new('UNKNOWN', value)
                    end
                end
            end

            private

            # Constructs a new instance.
            # @param value [String] the actual value of the enum instance
            # @param unknown [String] the unknown value when value is 'UKNOWN'
            def initialize(value, unknown=nil)
                super(self.class.binding_type, value, unknown)
            end

            public

            # @!attribute [rw] ip_v4
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv4 protocol.
            IP_V4 = IpProtocol.new('IP_V4')

            # @!attribute [rw] ip_v6
            #     @return [Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol]
            #     It supports the IPv6 protocol.
            IP_V6 = IpProtocol.new('IP_V6')

        end

    end

### - (`Object`) type

Returns the value of attribute type

    1345
    1346
    1347
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1345

    def type
      @type
    end

## Class Method Details

### + (`VAPI::Bindings::StructType`) binding_type

Holds (gets or creates) the binding type metadata for this structure type.

Returns:

- (`VAPI::Bindings::StructType`) —

  the binding type

    1328
    1329
    1330
    1331
    1332
    1333
    1334
    1335
    1336
    1337
    1338
    1339
    1340
    1341
    1342
    # File '/build/mts/release/bora-4571906/build/sdk/aggregated-bindings/ruby/com/vmware/vcenter/ovf.rb', line 1328

    def binding_type
        @binding_type ||= VAPI::Bindings::StructType.new(
            'com.vmware.vcenter.ovf.ip_allocation_params',
            {
                'supported_allocation_scheme' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationScheme'))),
                'supported_ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy'))),
                'ip_allocation_policy' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpAllocationPolicy')),
                'supported_ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ListType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol'))),
                'ip_protocol' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::ReferenceType.new('Com::Vmware::Vcenter::Ovf::IpAllocationParams::IpProtocol')),
                'type' => VAPI::Bindings::OptionalType.new(VAPI::Bindings::StringType.instance),
            },
            IpAllocationParams,
            false,
            nil)
    end