# Number of lines of code in new: 51
sub new {
my ($class, %args) = @_;
$class = ref($class) || $class;
my $validatorList = [];
$validatorList = [
new Com::Vmware::Vapi::Data::UnionValidator(
'discriminant_name' => 'type',
'case_map' => {
'VMXNET3' => ['upt_compatibility_enabled'],
'E1000' => [],
'E1000E' => [],
'PCNET32' => [],
'VMXNET' => [],
'VMXNET2' => [],
}),
new Com::Vmware::Vapi::Data::UnionValidator(
'discriminant_name' => 'mac_type',
'case_map' => {
'MANUAL' => ['mac_address'],
'GENERATED' => [],
'ASSIGNED' => [],
}),
];
my $self = $class->SUPER::new('validator_list' => $validatorList, %args);
$self->{type} = $args{'type'};
$self->{upt_compatibility_enabled} = $args{'upt_compatibility_enabled'};
$self->{mac_type} = $args{'mac_type'};
$self->{mac_address} = $args{'mac_address'};
$self->{pci_slot_number} = $args{'pci_slot_number'};
$self->{wake_on_lan_enabled} = $args{'wake_on_lan_enabled'};
$self->{backing} = $args{'backing'};
$self->{start_connected} = $args{'start_connected'};
$self->{allow_guest_control} = $args{'allow_guest_control'};
$self->set_binding_class('binding_class' => 'Com::Vmware::Vcenter::Vm::Hardware::Ethernet::CreateSpec');
$self->set_binding_name('name' => 'com.vmware.vcenter.vm.hardware.ethernet.create_spec');
$self->set_binding_field('key' => 'type', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::ReferenceType('module_ctx' => 'Com::Vmware::Vcenter::Vm::Hardware', 'type_name' => 'Ethernet::EmulationType')));
$self->set_binding_field('key' => 'upt_compatibility_enabled', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::BooleanType()));
$self->set_binding_field('key' => 'mac_type', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::ReferenceType('module_ctx' => 'Com::Vmware::Vcenter::Vm::Hardware', 'type_name' => 'Ethernet::MacAddressType')));
$self->set_binding_field('key' => 'mac_address', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::StringType()));
$self->set_binding_field('key' => 'pci_slot_number', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::LongType()));
$self->set_binding_field('key' => 'wake_on_lan_enabled', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::BooleanType()));
$self->set_binding_field('key' => 'backing', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::ReferenceType('module_ctx' => 'Com::Vmware::Vcenter::Vm::Hardware', 'type_name' => 'Ethernet::BackingSpec')));
$self->set_binding_field('key' => 'start_connected', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::BooleanType()));
$self->set_binding_field('key' => 'allow_guest_control', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::BooleanType()));
bless $self, $class;
return $self;
}