<?php

namespace Geniki\GenikiStruct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Authenticate GenikiStruct
 * @package Geniki
 * @subpackage Structs
 */
class GenikiAuthenticate extends AbstractStructBase
{
    /**
     * The sUsrName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sUsrName;
    /**
     * The sUsrPwd
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sUsrPwd;
    /**
     * The applicationKey
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $applicationKey;
    /**
     * Constructor method for Authenticate
     * @uses GenikiAuthenticate::setSUsrName()
     * @uses GenikiAuthenticate::setSUsrPwd()
     * @uses GenikiAuthenticate::setApplicationKey()
     * @param string $sUsrName
     * @param string $sUsrPwd
     * @param string $applicationKey
     */
    public function __construct($sUsrName = null, $sUsrPwd = null, $applicationKey = null)
    {
        $this
            ->setSUsrName($sUsrName)
            ->setSUsrPwd($sUsrPwd)
            ->setApplicationKey($applicationKey);
    }
    /**
     * Get sUsrName value
     * @return string|null
     */
    public function getSUsrName()
    {
        return $this->sUsrName;
    }
    /**
     * Set sUsrName value
     * @param string $sUsrName
     * @return \Geniki\GenikiStruct\GenikiAuthenticate
     */
    public function setSUsrName($sUsrName = null)
    {
        // validation for constraint: string
        if (!is_null($sUsrName) && !is_string($sUsrName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sUsrName, true), gettype($sUsrName)), __LINE__);
        }
        $this->sUsrName = $sUsrName;
        return $this;
    }
    /**
     * Get sUsrPwd value
     * @return string|null
     */
    public function getSUsrPwd()
    {
        return $this->sUsrPwd;
    }
    /**
     * Set sUsrPwd value
     * @param string $sUsrPwd
     * @return \Geniki\GenikiStruct\GenikiAuthenticate
     */
    public function setSUsrPwd($sUsrPwd = null)
    {
        // validation for constraint: string
        if (!is_null($sUsrPwd) && !is_string($sUsrPwd)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sUsrPwd, true), gettype($sUsrPwd)), __LINE__);
        }
        $this->sUsrPwd = $sUsrPwd;
        return $this;
    }
    /**
     * Get applicationKey value
     * @return string|null
     */
    public function getApplicationKey()
    {
        return $this->applicationKey;
    }
    /**
     * Set applicationKey value
     * @param string $applicationKey
     * @return \Geniki\GenikiStruct\GenikiAuthenticate
     */
    public function setApplicationKey($applicationKey = null)
    {
        // validation for constraint: string
        if (!is_null($applicationKey) && !is_string($applicationKey)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($applicationKey, true), gettype($applicationKey)), __LINE__);
        }
        $this->applicationKey = $applicationKey;
        return $this;
    }
}
