<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CancelPartyByTicketIdsDetails-Request StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:CancelPartyByTicketIdsDetails-Request
 * @subpackage Structs
 */
class CancelPartyByTicketIdsDetails_Request extends AbstractStructBase
{
    /**
     * The Module
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Module;
    /**
     * The TicketIdList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TicketIdList;
    /**
     * Constructor method for CancelPartyByTicketIdsDetails-Request
     * @uses CancelPartyByTicketIdsDetails_Request::setModule()
     * @uses CancelPartyByTicketIdsDetails_Request::setTicketIdList()
     * @param string $module
     * @param string $ticketIdList
     */
    public function __construct($module = null, $ticketIdList = null)
    {
        $this
            ->setModule($module)
            ->setTicketIdList($ticketIdList);
    }
    /**
     * Get Module value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getModule()
    {
        return isset($this->Module) ? $this->Module : null;
    }
    /**
     * Set Module value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $module
     * @return \patest\StructType\CancelPartyByTicketIdsDetails_Request
     */
    public function setModule($module = null)
    {
        // validation for constraint: string
        if (!is_null($module) && !is_string($module)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($module, true), gettype($module)), __LINE__);
        }
        if (is_null($module) || (is_array($module) && empty($module))) {
            unset($this->Module);
        } else {
            $this->Module = $module;
        }
        return $this;
    }
    /**
     * Get TicketIdList value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getTicketIdList()
    {
        return isset($this->TicketIdList) ? $this->TicketIdList : null;
    }
    /**
     * Set TicketIdList value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $ticketIdList
     * @return \patest\StructType\CancelPartyByTicketIdsDetails_Request
     */
    public function setTicketIdList($ticketIdList = null)
    {
        // validation for constraint: string
        if (!is_null($ticketIdList) && !is_string($ticketIdList)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ticketIdList, true), gettype($ticketIdList)), __LINE__);
        }
        if (is_null($ticketIdList) || (is_array($ticketIdList) && empty($ticketIdList))) {
            unset($this->TicketIdList);
        } else {
            $this->TicketIdList = $ticketIdList;
        }
        return $this;
    }
}
