<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ItemFulfillmentPackageFedEx StructType
 * @subpackage Structs
 */
class ItemFulfillmentPackageFedEx extends AbstractStructBase
{
    /**
     * The packageWeightFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $packageWeightFedEx;
    /**
     * The dryIceWeightFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $dryIceWeightFedEx;
    /**
     * The packageTrackingNumberFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $packageTrackingNumberFedEx;
    /**
     * The packagingFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $packagingFedEx;
    /**
     * The admPackageTypeFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $admPackageTypeFedEx;
    /**
     * The isNonStandardContainerFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isNonStandardContainerFedEx;
    /**
     * The isAlcoholFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isAlcoholFedEx;
    /**
     * The alcoholRecipientTypeFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $alcoholRecipientTypeFedEx;
    /**
     * The isNonHazLithiumFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isNonHazLithiumFedEx;
    /**
     * The insuredValueFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $insuredValueFedEx;
    /**
     * The useInsuredValueFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $useInsuredValueFedEx;
    /**
     * The reference1FedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $reference1FedEx;
    /**
     * The priorityAlertTypeFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $priorityAlertTypeFedEx;
    /**
     * The priorityAlertContentFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $priorityAlertContentFedEx;
    /**
     * The packageLengthFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $packageLengthFedEx;
    /**
     * The packageWidthFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $packageWidthFedEx;
    /**
     * The packageHeightFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $packageHeightFedEx;
    /**
     * The useCodFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $useCodFedEx;
    /**
     * The codAmountFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $codAmountFedEx;
    /**
     * The codMethodFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $codMethodFedEx;
    /**
     * The codFreightTypeFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $codFreightTypeFedEx;
    /**
     * The deliveryConfFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $deliveryConfFedEx;
    /**
     * The signatureOptionsFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $signatureOptionsFedEx;
    /**
     * The signatureReleaseFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $signatureReleaseFedEx;
    /**
     * The authorizationNumberFedEx
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $authorizationNumberFedEx;
    /**
     * Constructor method for ItemFulfillmentPackageFedEx
     * @uses ItemFulfillmentPackageFedEx::setPackageWeightFedEx()
     * @uses ItemFulfillmentPackageFedEx::setDryIceWeightFedEx()
     * @uses ItemFulfillmentPackageFedEx::setPackageTrackingNumberFedEx()
     * @uses ItemFulfillmentPackageFedEx::setPackagingFedEx()
     * @uses ItemFulfillmentPackageFedEx::setAdmPackageTypeFedEx()
     * @uses ItemFulfillmentPackageFedEx::setIsNonStandardContainerFedEx()
     * @uses ItemFulfillmentPackageFedEx::setIsAlcoholFedEx()
     * @uses ItemFulfillmentPackageFedEx::setAlcoholRecipientTypeFedEx()
     * @uses ItemFulfillmentPackageFedEx::setIsNonHazLithiumFedEx()
     * @uses ItemFulfillmentPackageFedEx::setInsuredValueFedEx()
     * @uses ItemFulfillmentPackageFedEx::setUseInsuredValueFedEx()
     * @uses ItemFulfillmentPackageFedEx::setReference1FedEx()
     * @uses ItemFulfillmentPackageFedEx::setPriorityAlertTypeFedEx()
     * @uses ItemFulfillmentPackageFedEx::setPriorityAlertContentFedEx()
     * @uses ItemFulfillmentPackageFedEx::setPackageLengthFedEx()
     * @uses ItemFulfillmentPackageFedEx::setPackageWidthFedEx()
     * @uses ItemFulfillmentPackageFedEx::setPackageHeightFedEx()
     * @uses ItemFulfillmentPackageFedEx::setUseCodFedEx()
     * @uses ItemFulfillmentPackageFedEx::setCodAmountFedEx()
     * @uses ItemFulfillmentPackageFedEx::setCodMethodFedEx()
     * @uses ItemFulfillmentPackageFedEx::setCodFreightTypeFedEx()
     * @uses ItemFulfillmentPackageFedEx::setDeliveryConfFedEx()
     * @uses ItemFulfillmentPackageFedEx::setSignatureOptionsFedEx()
     * @uses ItemFulfillmentPackageFedEx::setSignatureReleaseFedEx()
     * @uses ItemFulfillmentPackageFedEx::setAuthorizationNumberFedEx()
     * @param float $packageWeightFedEx
     * @param float $dryIceWeightFedEx
     * @param string $packageTrackingNumberFedEx
     * @param string $packagingFedEx
     * @param string $admPackageTypeFedEx
     * @param bool $isNonStandardContainerFedEx
     * @param bool $isAlcoholFedEx
     * @param string $alcoholRecipientTypeFedEx
     * @param bool $isNonHazLithiumFedEx
     * @param float $insuredValueFedEx
     * @param bool $useInsuredValueFedEx
     * @param string $reference1FedEx
     * @param string $priorityAlertTypeFedEx
     * @param string $priorityAlertContentFedEx
     * @param int $packageLengthFedEx
     * @param int $packageWidthFedEx
     * @param int $packageHeightFedEx
     * @param bool $useCodFedEx
     * @param float $codAmountFedEx
     * @param string $codMethodFedEx
     * @param string $codFreightTypeFedEx
     * @param string $deliveryConfFedEx
     * @param string $signatureOptionsFedEx
     * @param string $signatureReleaseFedEx
     * @param string $authorizationNumberFedEx
     */
    public function __construct($packageWeightFedEx = null, $dryIceWeightFedEx = null, $packageTrackingNumberFedEx = null, $packagingFedEx = null, $admPackageTypeFedEx = null, $isNonStandardContainerFedEx = null, $isAlcoholFedEx = null, $alcoholRecipientTypeFedEx = null, $isNonHazLithiumFedEx = null, $insuredValueFedEx = null, $useInsuredValueFedEx = null, $reference1FedEx = null, $priorityAlertTypeFedEx = null, $priorityAlertContentFedEx = null, $packageLengthFedEx = null, $packageWidthFedEx = null, $packageHeightFedEx = null, $useCodFedEx = null, $codAmountFedEx = null, $codMethodFedEx = null, $codFreightTypeFedEx = null, $deliveryConfFedEx = null, $signatureOptionsFedEx = null, $signatureReleaseFedEx = null, $authorizationNumberFedEx = null)
    {
        $this
            ->setPackageWeightFedEx($packageWeightFedEx)
            ->setDryIceWeightFedEx($dryIceWeightFedEx)
            ->setPackageTrackingNumberFedEx($packageTrackingNumberFedEx)
            ->setPackagingFedEx($packagingFedEx)
            ->setAdmPackageTypeFedEx($admPackageTypeFedEx)
            ->setIsNonStandardContainerFedEx($isNonStandardContainerFedEx)
            ->setIsAlcoholFedEx($isAlcoholFedEx)
            ->setAlcoholRecipientTypeFedEx($alcoholRecipientTypeFedEx)
            ->setIsNonHazLithiumFedEx($isNonHazLithiumFedEx)
            ->setInsuredValueFedEx($insuredValueFedEx)
            ->setUseInsuredValueFedEx($useInsuredValueFedEx)
            ->setReference1FedEx($reference1FedEx)
            ->setPriorityAlertTypeFedEx($priorityAlertTypeFedEx)
            ->setPriorityAlertContentFedEx($priorityAlertContentFedEx)
            ->setPackageLengthFedEx($packageLengthFedEx)
            ->setPackageWidthFedEx($packageWidthFedEx)
            ->setPackageHeightFedEx($packageHeightFedEx)
            ->setUseCodFedEx($useCodFedEx)
            ->setCodAmountFedEx($codAmountFedEx)
            ->setCodMethodFedEx($codMethodFedEx)
            ->setCodFreightTypeFedEx($codFreightTypeFedEx)
            ->setDeliveryConfFedEx($deliveryConfFedEx)
            ->setSignatureOptionsFedEx($signatureOptionsFedEx)
            ->setSignatureReleaseFedEx($signatureReleaseFedEx)
            ->setAuthorizationNumberFedEx($authorizationNumberFedEx);
    }
    /**
     * Get packageWeightFedEx value
     * @return float|null
     */
    public function getPackageWeightFedEx()
    {
        return $this->packageWeightFedEx;
    }
    /**
     * Set packageWeightFedEx value
     * @param float $packageWeightFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPackageWeightFedEx($packageWeightFedEx = null)
    {
        // validation for constraint: float
        if (!is_null($packageWeightFedEx) && !(is_float($packageWeightFedEx) || is_numeric($packageWeightFedEx))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($packageWeightFedEx, true), gettype($packageWeightFedEx)), __LINE__);
        }
        $this->packageWeightFedEx = $packageWeightFedEx;
        return $this;
    }
    /**
     * Get dryIceWeightFedEx value
     * @return float|null
     */
    public function getDryIceWeightFedEx()
    {
        return $this->dryIceWeightFedEx;
    }
    /**
     * Set dryIceWeightFedEx value
     * @param float $dryIceWeightFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setDryIceWeightFedEx($dryIceWeightFedEx = null)
    {
        // validation for constraint: float
        if (!is_null($dryIceWeightFedEx) && !(is_float($dryIceWeightFedEx) || is_numeric($dryIceWeightFedEx))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($dryIceWeightFedEx, true), gettype($dryIceWeightFedEx)), __LINE__);
        }
        $this->dryIceWeightFedEx = $dryIceWeightFedEx;
        return $this;
    }
    /**
     * Get packageTrackingNumberFedEx value
     * @return string|null
     */
    public function getPackageTrackingNumberFedEx()
    {
        return $this->packageTrackingNumberFedEx;
    }
    /**
     * Set packageTrackingNumberFedEx value
     * @param string $packageTrackingNumberFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPackageTrackingNumberFedEx($packageTrackingNumberFedEx = null)
    {
        // validation for constraint: string
        if (!is_null($packageTrackingNumberFedEx) && !is_string($packageTrackingNumberFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($packageTrackingNumberFedEx, true), gettype($packageTrackingNumberFedEx)), __LINE__);
        }
        $this->packageTrackingNumberFedEx = $packageTrackingNumberFedEx;
        return $this;
    }
    /**
     * Get packagingFedEx value
     * @return string|null
     */
    public function getPackagingFedEx()
    {
        return $this->packagingFedEx;
    }
    /**
     * Set packagingFedEx value
     * @uses \EnumType\ItemFulfillmentPackageFedExPackagingFedEx::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageFedExPackagingFedEx::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $packagingFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPackagingFedEx($packagingFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageFedExPackagingFedEx::valueIsValid($packagingFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageFedExPackagingFedEx', is_array($packagingFedEx) ? implode(', ', $packagingFedEx) : var_export($packagingFedEx, true), implode(', ', \EnumType\ItemFulfillmentPackageFedExPackagingFedEx::getValidValues())), __LINE__);
        }
        $this->packagingFedEx = $packagingFedEx;
        return $this;
    }
    /**
     * Get admPackageTypeFedEx value
     * @return string|null
     */
    public function getAdmPackageTypeFedEx()
    {
        return $this->admPackageTypeFedEx;
    }
    /**
     * Set admPackageTypeFedEx value
     * @uses \EnumType\ItemFulfillmentPackageFedExAdmPackageTypeFedEx::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageFedExAdmPackageTypeFedEx::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $admPackageTypeFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setAdmPackageTypeFedEx($admPackageTypeFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageFedExAdmPackageTypeFedEx::valueIsValid($admPackageTypeFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageFedExAdmPackageTypeFedEx', is_array($admPackageTypeFedEx) ? implode(', ', $admPackageTypeFedEx) : var_export($admPackageTypeFedEx, true), implode(', ', \EnumType\ItemFulfillmentPackageFedExAdmPackageTypeFedEx::getValidValues())), __LINE__);
        }
        $this->admPackageTypeFedEx = $admPackageTypeFedEx;
        return $this;
    }
    /**
     * Get isNonStandardContainerFedEx value
     * @return bool|null
     */
    public function getIsNonStandardContainerFedEx()
    {
        return $this->isNonStandardContainerFedEx;
    }
    /**
     * Set isNonStandardContainerFedEx value
     * @param bool $isNonStandardContainerFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setIsNonStandardContainerFedEx($isNonStandardContainerFedEx = null)
    {
        // validation for constraint: boolean
        if (!is_null($isNonStandardContainerFedEx) && !is_bool($isNonStandardContainerFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isNonStandardContainerFedEx, true), gettype($isNonStandardContainerFedEx)), __LINE__);
        }
        $this->isNonStandardContainerFedEx = $isNonStandardContainerFedEx;
        return $this;
    }
    /**
     * Get isAlcoholFedEx value
     * @return bool|null
     */
    public function getIsAlcoholFedEx()
    {
        return $this->isAlcoholFedEx;
    }
    /**
     * Set isAlcoholFedEx value
     * @param bool $isAlcoholFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setIsAlcoholFedEx($isAlcoholFedEx = null)
    {
        // validation for constraint: boolean
        if (!is_null($isAlcoholFedEx) && !is_bool($isAlcoholFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isAlcoholFedEx, true), gettype($isAlcoholFedEx)), __LINE__);
        }
        $this->isAlcoholFedEx = $isAlcoholFedEx;
        return $this;
    }
    /**
     * Get alcoholRecipientTypeFedEx value
     * @return string|null
     */
    public function getAlcoholRecipientTypeFedEx()
    {
        return $this->alcoholRecipientTypeFedEx;
    }
    /**
     * Set alcoholRecipientTypeFedEx value
     * @uses \EnumType\AlcoholRecipientType::valueIsValid()
     * @uses \EnumType\AlcoholRecipientType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $alcoholRecipientTypeFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setAlcoholRecipientTypeFedEx($alcoholRecipientTypeFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\AlcoholRecipientType::valueIsValid($alcoholRecipientTypeFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\AlcoholRecipientType', is_array($alcoholRecipientTypeFedEx) ? implode(', ', $alcoholRecipientTypeFedEx) : var_export($alcoholRecipientTypeFedEx, true), implode(', ', \EnumType\AlcoholRecipientType::getValidValues())), __LINE__);
        }
        $this->alcoholRecipientTypeFedEx = $alcoholRecipientTypeFedEx;
        return $this;
    }
    /**
     * Get isNonHazLithiumFedEx value
     * @return bool|null
     */
    public function getIsNonHazLithiumFedEx()
    {
        return $this->isNonHazLithiumFedEx;
    }
    /**
     * Set isNonHazLithiumFedEx value
     * @param bool $isNonHazLithiumFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setIsNonHazLithiumFedEx($isNonHazLithiumFedEx = null)
    {
        // validation for constraint: boolean
        if (!is_null($isNonHazLithiumFedEx) && !is_bool($isNonHazLithiumFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isNonHazLithiumFedEx, true), gettype($isNonHazLithiumFedEx)), __LINE__);
        }
        $this->isNonHazLithiumFedEx = $isNonHazLithiumFedEx;
        return $this;
    }
    /**
     * Get insuredValueFedEx value
     * @return float|null
     */
    public function getInsuredValueFedEx()
    {
        return $this->insuredValueFedEx;
    }
    /**
     * Set insuredValueFedEx value
     * @param float $insuredValueFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setInsuredValueFedEx($insuredValueFedEx = null)
    {
        // validation for constraint: float
        if (!is_null($insuredValueFedEx) && !(is_float($insuredValueFedEx) || is_numeric($insuredValueFedEx))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($insuredValueFedEx, true), gettype($insuredValueFedEx)), __LINE__);
        }
        $this->insuredValueFedEx = $insuredValueFedEx;
        return $this;
    }
    /**
     * Get useInsuredValueFedEx value
     * @return bool|null
     */
    public function getUseInsuredValueFedEx()
    {
        return $this->useInsuredValueFedEx;
    }
    /**
     * Set useInsuredValueFedEx value
     * @param bool $useInsuredValueFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setUseInsuredValueFedEx($useInsuredValueFedEx = null)
    {
        // validation for constraint: boolean
        if (!is_null($useInsuredValueFedEx) && !is_bool($useInsuredValueFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($useInsuredValueFedEx, true), gettype($useInsuredValueFedEx)), __LINE__);
        }
        $this->useInsuredValueFedEx = $useInsuredValueFedEx;
        return $this;
    }
    /**
     * Get reference1FedEx value
     * @return string|null
     */
    public function getReference1FedEx()
    {
        return $this->reference1FedEx;
    }
    /**
     * Set reference1FedEx value
     * @param string $reference1FedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setReference1FedEx($reference1FedEx = null)
    {
        // validation for constraint: string
        if (!is_null($reference1FedEx) && !is_string($reference1FedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($reference1FedEx, true), gettype($reference1FedEx)), __LINE__);
        }
        $this->reference1FedEx = $reference1FedEx;
        return $this;
    }
    /**
     * Get priorityAlertTypeFedEx value
     * @return string|null
     */
    public function getPriorityAlertTypeFedEx()
    {
        return $this->priorityAlertTypeFedEx;
    }
    /**
     * Set priorityAlertTypeFedEx value
     * @uses \EnumType\ItemFulfillmentPackageFedExPriorityAlertTypeFedEx::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageFedExPriorityAlertTypeFedEx::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $priorityAlertTypeFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPriorityAlertTypeFedEx($priorityAlertTypeFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageFedExPriorityAlertTypeFedEx::valueIsValid($priorityAlertTypeFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageFedExPriorityAlertTypeFedEx', is_array($priorityAlertTypeFedEx) ? implode(', ', $priorityAlertTypeFedEx) : var_export($priorityAlertTypeFedEx, true), implode(', ', \EnumType\ItemFulfillmentPackageFedExPriorityAlertTypeFedEx::getValidValues())), __LINE__);
        }
        $this->priorityAlertTypeFedEx = $priorityAlertTypeFedEx;
        return $this;
    }
    /**
     * Get priorityAlertContentFedEx value
     * @return string|null
     */
    public function getPriorityAlertContentFedEx()
    {
        return $this->priorityAlertContentFedEx;
    }
    /**
     * Set priorityAlertContentFedEx value
     * @param string $priorityAlertContentFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPriorityAlertContentFedEx($priorityAlertContentFedEx = null)
    {
        // validation for constraint: string
        if (!is_null($priorityAlertContentFedEx) && !is_string($priorityAlertContentFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($priorityAlertContentFedEx, true), gettype($priorityAlertContentFedEx)), __LINE__);
        }
        $this->priorityAlertContentFedEx = $priorityAlertContentFedEx;
        return $this;
    }
    /**
     * Get packageLengthFedEx value
     * @return int|null
     */
    public function getPackageLengthFedEx()
    {
        return $this->packageLengthFedEx;
    }
    /**
     * Set packageLengthFedEx value
     * @param int $packageLengthFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPackageLengthFedEx($packageLengthFedEx = null)
    {
        // validation for constraint: int
        if (!is_null($packageLengthFedEx) && !(is_int($packageLengthFedEx) || ctype_digit($packageLengthFedEx))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($packageLengthFedEx, true), gettype($packageLengthFedEx)), __LINE__);
        }
        $this->packageLengthFedEx = $packageLengthFedEx;
        return $this;
    }
    /**
     * Get packageWidthFedEx value
     * @return int|null
     */
    public function getPackageWidthFedEx()
    {
        return $this->packageWidthFedEx;
    }
    /**
     * Set packageWidthFedEx value
     * @param int $packageWidthFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPackageWidthFedEx($packageWidthFedEx = null)
    {
        // validation for constraint: int
        if (!is_null($packageWidthFedEx) && !(is_int($packageWidthFedEx) || ctype_digit($packageWidthFedEx))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($packageWidthFedEx, true), gettype($packageWidthFedEx)), __LINE__);
        }
        $this->packageWidthFedEx = $packageWidthFedEx;
        return $this;
    }
    /**
     * Get packageHeightFedEx value
     * @return int|null
     */
    public function getPackageHeightFedEx()
    {
        return $this->packageHeightFedEx;
    }
    /**
     * Set packageHeightFedEx value
     * @param int $packageHeightFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setPackageHeightFedEx($packageHeightFedEx = null)
    {
        // validation for constraint: int
        if (!is_null($packageHeightFedEx) && !(is_int($packageHeightFedEx) || ctype_digit($packageHeightFedEx))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($packageHeightFedEx, true), gettype($packageHeightFedEx)), __LINE__);
        }
        $this->packageHeightFedEx = $packageHeightFedEx;
        return $this;
    }
    /**
     * Get useCodFedEx value
     * @return bool|null
     */
    public function getUseCodFedEx()
    {
        return $this->useCodFedEx;
    }
    /**
     * Set useCodFedEx value
     * @param bool $useCodFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setUseCodFedEx($useCodFedEx = null)
    {
        // validation for constraint: boolean
        if (!is_null($useCodFedEx) && !is_bool($useCodFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($useCodFedEx, true), gettype($useCodFedEx)), __LINE__);
        }
        $this->useCodFedEx = $useCodFedEx;
        return $this;
    }
    /**
     * Get codAmountFedEx value
     * @return float|null
     */
    public function getCodAmountFedEx()
    {
        return $this->codAmountFedEx;
    }
    /**
     * Set codAmountFedEx value
     * @param float $codAmountFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setCodAmountFedEx($codAmountFedEx = null)
    {
        // validation for constraint: float
        if (!is_null($codAmountFedEx) && !(is_float($codAmountFedEx) || is_numeric($codAmountFedEx))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($codAmountFedEx, true), gettype($codAmountFedEx)), __LINE__);
        }
        $this->codAmountFedEx = $codAmountFedEx;
        return $this;
    }
    /**
     * Get codMethodFedEx value
     * @return string|null
     */
    public function getCodMethodFedEx()
    {
        return $this->codMethodFedEx;
    }
    /**
     * Set codMethodFedEx value
     * @uses \EnumType\ItemFulfillmentPackageFedExCodMethodFedEx::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageFedExCodMethodFedEx::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $codMethodFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setCodMethodFedEx($codMethodFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageFedExCodMethodFedEx::valueIsValid($codMethodFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageFedExCodMethodFedEx', is_array($codMethodFedEx) ? implode(', ', $codMethodFedEx) : var_export($codMethodFedEx, true), implode(', ', \EnumType\ItemFulfillmentPackageFedExCodMethodFedEx::getValidValues())), __LINE__);
        }
        $this->codMethodFedEx = $codMethodFedEx;
        return $this;
    }
    /**
     * Get codFreightTypeFedEx value
     * @return string|null
     */
    public function getCodFreightTypeFedEx()
    {
        return $this->codFreightTypeFedEx;
    }
    /**
     * Set codFreightTypeFedEx value
     * @uses \EnumType\ItemFulfillmentPackageFedExCodFreightTypeFedEx::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageFedExCodFreightTypeFedEx::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $codFreightTypeFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setCodFreightTypeFedEx($codFreightTypeFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageFedExCodFreightTypeFedEx::valueIsValid($codFreightTypeFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageFedExCodFreightTypeFedEx', is_array($codFreightTypeFedEx) ? implode(', ', $codFreightTypeFedEx) : var_export($codFreightTypeFedEx, true), implode(', ', \EnumType\ItemFulfillmentPackageFedExCodFreightTypeFedEx::getValidValues())), __LINE__);
        }
        $this->codFreightTypeFedEx = $codFreightTypeFedEx;
        return $this;
    }
    /**
     * Get deliveryConfFedEx value
     * @return string|null
     */
    public function getDeliveryConfFedEx()
    {
        return $this->deliveryConfFedEx;
    }
    /**
     * Set deliveryConfFedEx value
     * @uses \EnumType\ItemFulfillmentPackageFedExDeliveryConfFedEx::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageFedExDeliveryConfFedEx::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $deliveryConfFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setDeliveryConfFedEx($deliveryConfFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageFedExDeliveryConfFedEx::valueIsValid($deliveryConfFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageFedExDeliveryConfFedEx', is_array($deliveryConfFedEx) ? implode(', ', $deliveryConfFedEx) : var_export($deliveryConfFedEx, true), implode(', ', \EnumType\ItemFulfillmentPackageFedExDeliveryConfFedEx::getValidValues())), __LINE__);
        }
        $this->deliveryConfFedEx = $deliveryConfFedEx;
        return $this;
    }
    /**
     * Get signatureOptionsFedEx value
     * @return string|null
     */
    public function getSignatureOptionsFedEx()
    {
        return $this->signatureOptionsFedEx;
    }
    /**
     * Set signatureOptionsFedEx value
     * @uses \EnumType\ItemFulfillmentPackageFedExSignatureOptionsFedEx::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageFedExSignatureOptionsFedEx::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $signatureOptionsFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setSignatureOptionsFedEx($signatureOptionsFedEx = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageFedExSignatureOptionsFedEx::valueIsValid($signatureOptionsFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageFedExSignatureOptionsFedEx', is_array($signatureOptionsFedEx) ? implode(', ', $signatureOptionsFedEx) : var_export($signatureOptionsFedEx, true), implode(', ', \EnumType\ItemFulfillmentPackageFedExSignatureOptionsFedEx::getValidValues())), __LINE__);
        }
        $this->signatureOptionsFedEx = $signatureOptionsFedEx;
        return $this;
    }
    /**
     * Get signatureReleaseFedEx value
     * @return string|null
     */
    public function getSignatureReleaseFedEx()
    {
        return $this->signatureReleaseFedEx;
    }
    /**
     * Set signatureReleaseFedEx value
     * @param string $signatureReleaseFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setSignatureReleaseFedEx($signatureReleaseFedEx = null)
    {
        // validation for constraint: string
        if (!is_null($signatureReleaseFedEx) && !is_string($signatureReleaseFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($signatureReleaseFedEx, true), gettype($signatureReleaseFedEx)), __LINE__);
        }
        $this->signatureReleaseFedEx = $signatureReleaseFedEx;
        return $this;
    }
    /**
     * Get authorizationNumberFedEx value
     * @return string|null
     */
    public function getAuthorizationNumberFedEx()
    {
        return $this->authorizationNumberFedEx;
    }
    /**
     * Set authorizationNumberFedEx value
     * @param string $authorizationNumberFedEx
     * @return \StructType\ItemFulfillmentPackageFedEx
     */
    public function setAuthorizationNumberFedEx($authorizationNumberFedEx = null)
    {
        // validation for constraint: string
        if (!is_null($authorizationNumberFedEx) && !is_string($authorizationNumberFedEx)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($authorizationNumberFedEx, true), gettype($authorizationNumberFedEx)), __LINE__);
        }
        $this->authorizationNumberFedEx = $authorizationNumberFedEx;
        return $this;
    }
}
