<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ItemFulfillmentPackageUps StructType
 * @subpackage Structs
 */
class ItemFulfillmentPackageUps extends AbstractStructBase
{
    /**
     * The packageWeightUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $packageWeightUps;
    /**
     * The packageDescrUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $packageDescrUps;
    /**
     * The packageTrackingNumberUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $packageTrackingNumberUps;
    /**
     * The packagingUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $packagingUps;
    /**
     * The useInsuredValueUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $useInsuredValueUps;
    /**
     * The insuredValueUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $insuredValueUps;
    /**
     * The reference1Ups
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $reference1Ups;
    /**
     * The reference2Ups
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $reference2Ups;
    /**
     * The packageLengthUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $packageLengthUps;
    /**
     * The packageWidthUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $packageWidthUps;
    /**
     * The packageHeightUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $packageHeightUps;
    /**
     * The additionalHandlingUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $additionalHandlingUps;
    /**
     * The useCodUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $useCodUps;
    /**
     * The codAmountUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $codAmountUps;
    /**
     * The codMethodUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $codMethodUps;
    /**
     * The deliveryConfUps
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $deliveryConfUps;
    /**
     * Constructor method for ItemFulfillmentPackageUps
     * @uses ItemFulfillmentPackageUps::setPackageWeightUps()
     * @uses ItemFulfillmentPackageUps::setPackageDescrUps()
     * @uses ItemFulfillmentPackageUps::setPackageTrackingNumberUps()
     * @uses ItemFulfillmentPackageUps::setPackagingUps()
     * @uses ItemFulfillmentPackageUps::setUseInsuredValueUps()
     * @uses ItemFulfillmentPackageUps::setInsuredValueUps()
     * @uses ItemFulfillmentPackageUps::setReference1Ups()
     * @uses ItemFulfillmentPackageUps::setReference2Ups()
     * @uses ItemFulfillmentPackageUps::setPackageLengthUps()
     * @uses ItemFulfillmentPackageUps::setPackageWidthUps()
     * @uses ItemFulfillmentPackageUps::setPackageHeightUps()
     * @uses ItemFulfillmentPackageUps::setAdditionalHandlingUps()
     * @uses ItemFulfillmentPackageUps::setUseCodUps()
     * @uses ItemFulfillmentPackageUps::setCodAmountUps()
     * @uses ItemFulfillmentPackageUps::setCodMethodUps()
     * @uses ItemFulfillmentPackageUps::setDeliveryConfUps()
     * @param float $packageWeightUps
     * @param string $packageDescrUps
     * @param string $packageTrackingNumberUps
     * @param string $packagingUps
     * @param bool $useInsuredValueUps
     * @param float $insuredValueUps
     * @param string $reference1Ups
     * @param string $reference2Ups
     * @param int $packageLengthUps
     * @param int $packageWidthUps
     * @param int $packageHeightUps
     * @param bool $additionalHandlingUps
     * @param bool $useCodUps
     * @param float $codAmountUps
     * @param string $codMethodUps
     * @param string $deliveryConfUps
     */
    public function __construct($packageWeightUps = null, $packageDescrUps = null, $packageTrackingNumberUps = null, $packagingUps = null, $useInsuredValueUps = null, $insuredValueUps = null, $reference1Ups = null, $reference2Ups = null, $packageLengthUps = null, $packageWidthUps = null, $packageHeightUps = null, $additionalHandlingUps = null, $useCodUps = null, $codAmountUps = null, $codMethodUps = null, $deliveryConfUps = null)
    {
        $this
            ->setPackageWeightUps($packageWeightUps)
            ->setPackageDescrUps($packageDescrUps)
            ->setPackageTrackingNumberUps($packageTrackingNumberUps)
            ->setPackagingUps($packagingUps)
            ->setUseInsuredValueUps($useInsuredValueUps)
            ->setInsuredValueUps($insuredValueUps)
            ->setReference1Ups($reference1Ups)
            ->setReference2Ups($reference2Ups)
            ->setPackageLengthUps($packageLengthUps)
            ->setPackageWidthUps($packageWidthUps)
            ->setPackageHeightUps($packageHeightUps)
            ->setAdditionalHandlingUps($additionalHandlingUps)
            ->setUseCodUps($useCodUps)
            ->setCodAmountUps($codAmountUps)
            ->setCodMethodUps($codMethodUps)
            ->setDeliveryConfUps($deliveryConfUps);
    }
    /**
     * Get packageWeightUps value
     * @return float|null
     */
    public function getPackageWeightUps()
    {
        return $this->packageWeightUps;
    }
    /**
     * Set packageWeightUps value
     * @param float $packageWeightUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setPackageWeightUps($packageWeightUps = null)
    {
        // validation for constraint: float
        if (!is_null($packageWeightUps) && !(is_float($packageWeightUps) || is_numeric($packageWeightUps))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($packageWeightUps, true), gettype($packageWeightUps)), __LINE__);
        }
        $this->packageWeightUps = $packageWeightUps;
        return $this;
    }
    /**
     * Get packageDescrUps value
     * @return string|null
     */
    public function getPackageDescrUps()
    {
        return $this->packageDescrUps;
    }
    /**
     * Set packageDescrUps value
     * @param string $packageDescrUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setPackageDescrUps($packageDescrUps = null)
    {
        // validation for constraint: string
        if (!is_null($packageDescrUps) && !is_string($packageDescrUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($packageDescrUps, true), gettype($packageDescrUps)), __LINE__);
        }
        $this->packageDescrUps = $packageDescrUps;
        return $this;
    }
    /**
     * Get packageTrackingNumberUps value
     * @return string|null
     */
    public function getPackageTrackingNumberUps()
    {
        return $this->packageTrackingNumberUps;
    }
    /**
     * Set packageTrackingNumberUps value
     * @param string $packageTrackingNumberUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setPackageTrackingNumberUps($packageTrackingNumberUps = null)
    {
        // validation for constraint: string
        if (!is_null($packageTrackingNumberUps) && !is_string($packageTrackingNumberUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($packageTrackingNumberUps, true), gettype($packageTrackingNumberUps)), __LINE__);
        }
        $this->packageTrackingNumberUps = $packageTrackingNumberUps;
        return $this;
    }
    /**
     * Get packagingUps value
     * @return string|null
     */
    public function getPackagingUps()
    {
        return $this->packagingUps;
    }
    /**
     * Set packagingUps value
     * @uses \EnumType\ItemFulfillmentPackageUpsPackagingUps::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageUpsPackagingUps::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $packagingUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setPackagingUps($packagingUps = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageUpsPackagingUps::valueIsValid($packagingUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageUpsPackagingUps', is_array($packagingUps) ? implode(', ', $packagingUps) : var_export($packagingUps, true), implode(', ', \EnumType\ItemFulfillmentPackageUpsPackagingUps::getValidValues())), __LINE__);
        }
        $this->packagingUps = $packagingUps;
        return $this;
    }
    /**
     * Get useInsuredValueUps value
     * @return bool|null
     */
    public function getUseInsuredValueUps()
    {
        return $this->useInsuredValueUps;
    }
    /**
     * Set useInsuredValueUps value
     * @param bool $useInsuredValueUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setUseInsuredValueUps($useInsuredValueUps = null)
    {
        // validation for constraint: boolean
        if (!is_null($useInsuredValueUps) && !is_bool($useInsuredValueUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($useInsuredValueUps, true), gettype($useInsuredValueUps)), __LINE__);
        }
        $this->useInsuredValueUps = $useInsuredValueUps;
        return $this;
    }
    /**
     * Get insuredValueUps value
     * @return float|null
     */
    public function getInsuredValueUps()
    {
        return $this->insuredValueUps;
    }
    /**
     * Set insuredValueUps value
     * @param float $insuredValueUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setInsuredValueUps($insuredValueUps = null)
    {
        // validation for constraint: float
        if (!is_null($insuredValueUps) && !(is_float($insuredValueUps) || is_numeric($insuredValueUps))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($insuredValueUps, true), gettype($insuredValueUps)), __LINE__);
        }
        $this->insuredValueUps = $insuredValueUps;
        return $this;
    }
    /**
     * Get reference1Ups value
     * @return string|null
     */
    public function getReference1Ups()
    {
        return $this->reference1Ups;
    }
    /**
     * Set reference1Ups value
     * @param string $reference1Ups
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setReference1Ups($reference1Ups = null)
    {
        // validation for constraint: string
        if (!is_null($reference1Ups) && !is_string($reference1Ups)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($reference1Ups, true), gettype($reference1Ups)), __LINE__);
        }
        $this->reference1Ups = $reference1Ups;
        return $this;
    }
    /**
     * Get reference2Ups value
     * @return string|null
     */
    public function getReference2Ups()
    {
        return $this->reference2Ups;
    }
    /**
     * Set reference2Ups value
     * @param string $reference2Ups
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setReference2Ups($reference2Ups = null)
    {
        // validation for constraint: string
        if (!is_null($reference2Ups) && !is_string($reference2Ups)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($reference2Ups, true), gettype($reference2Ups)), __LINE__);
        }
        $this->reference2Ups = $reference2Ups;
        return $this;
    }
    /**
     * Get packageLengthUps value
     * @return int|null
     */
    public function getPackageLengthUps()
    {
        return $this->packageLengthUps;
    }
    /**
     * Set packageLengthUps value
     * @param int $packageLengthUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setPackageLengthUps($packageLengthUps = null)
    {
        // validation for constraint: int
        if (!is_null($packageLengthUps) && !(is_int($packageLengthUps) || ctype_digit($packageLengthUps))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($packageLengthUps, true), gettype($packageLengthUps)), __LINE__);
        }
        $this->packageLengthUps = $packageLengthUps;
        return $this;
    }
    /**
     * Get packageWidthUps value
     * @return int|null
     */
    public function getPackageWidthUps()
    {
        return $this->packageWidthUps;
    }
    /**
     * Set packageWidthUps value
     * @param int $packageWidthUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setPackageWidthUps($packageWidthUps = null)
    {
        // validation for constraint: int
        if (!is_null($packageWidthUps) && !(is_int($packageWidthUps) || ctype_digit($packageWidthUps))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($packageWidthUps, true), gettype($packageWidthUps)), __LINE__);
        }
        $this->packageWidthUps = $packageWidthUps;
        return $this;
    }
    /**
     * Get packageHeightUps value
     * @return int|null
     */
    public function getPackageHeightUps()
    {
        return $this->packageHeightUps;
    }
    /**
     * Set packageHeightUps value
     * @param int $packageHeightUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setPackageHeightUps($packageHeightUps = null)
    {
        // validation for constraint: int
        if (!is_null($packageHeightUps) && !(is_int($packageHeightUps) || ctype_digit($packageHeightUps))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($packageHeightUps, true), gettype($packageHeightUps)), __LINE__);
        }
        $this->packageHeightUps = $packageHeightUps;
        return $this;
    }
    /**
     * Get additionalHandlingUps value
     * @return bool|null
     */
    public function getAdditionalHandlingUps()
    {
        return $this->additionalHandlingUps;
    }
    /**
     * Set additionalHandlingUps value
     * @param bool $additionalHandlingUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setAdditionalHandlingUps($additionalHandlingUps = null)
    {
        // validation for constraint: boolean
        if (!is_null($additionalHandlingUps) && !is_bool($additionalHandlingUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($additionalHandlingUps, true), gettype($additionalHandlingUps)), __LINE__);
        }
        $this->additionalHandlingUps = $additionalHandlingUps;
        return $this;
    }
    /**
     * Get useCodUps value
     * @return bool|null
     */
    public function getUseCodUps()
    {
        return $this->useCodUps;
    }
    /**
     * Set useCodUps value
     * @param bool $useCodUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setUseCodUps($useCodUps = null)
    {
        // validation for constraint: boolean
        if (!is_null($useCodUps) && !is_bool($useCodUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($useCodUps, true), gettype($useCodUps)), __LINE__);
        }
        $this->useCodUps = $useCodUps;
        return $this;
    }
    /**
     * Get codAmountUps value
     * @return float|null
     */
    public function getCodAmountUps()
    {
        return $this->codAmountUps;
    }
    /**
     * Set codAmountUps value
     * @param float $codAmountUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setCodAmountUps($codAmountUps = null)
    {
        // validation for constraint: float
        if (!is_null($codAmountUps) && !(is_float($codAmountUps) || is_numeric($codAmountUps))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($codAmountUps, true), gettype($codAmountUps)), __LINE__);
        }
        $this->codAmountUps = $codAmountUps;
        return $this;
    }
    /**
     * Get codMethodUps value
     * @return string|null
     */
    public function getCodMethodUps()
    {
        return $this->codMethodUps;
    }
    /**
     * Set codMethodUps value
     * @uses \EnumType\ItemFulfillmentPackageUpsCodMethodUps::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageUpsCodMethodUps::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $codMethodUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setCodMethodUps($codMethodUps = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageUpsCodMethodUps::valueIsValid($codMethodUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageUpsCodMethodUps', is_array($codMethodUps) ? implode(', ', $codMethodUps) : var_export($codMethodUps, true), implode(', ', \EnumType\ItemFulfillmentPackageUpsCodMethodUps::getValidValues())), __LINE__);
        }
        $this->codMethodUps = $codMethodUps;
        return $this;
    }
    /**
     * Get deliveryConfUps value
     * @return string|null
     */
    public function getDeliveryConfUps()
    {
        return $this->deliveryConfUps;
    }
    /**
     * Set deliveryConfUps value
     * @uses \EnumType\ItemFulfillmentPackageUpsDeliveryConfUps::valueIsValid()
     * @uses \EnumType\ItemFulfillmentPackageUpsDeliveryConfUps::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $deliveryConfUps
     * @return \StructType\ItemFulfillmentPackageUps
     */
    public function setDeliveryConfUps($deliveryConfUps = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemFulfillmentPackageUpsDeliveryConfUps::valueIsValid($deliveryConfUps)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemFulfillmentPackageUpsDeliveryConfUps', is_array($deliveryConfUps) ? implode(', ', $deliveryConfUps) : var_export($deliveryConfUps, true), implode(', ', \EnumType\ItemFulfillmentPackageUpsDeliveryConfUps::getValidValues())), __LINE__);
        }
        $this->deliveryConfUps = $deliveryConfUps;
        return $this;
    }
}
