<?php

/**
* Copyright (c) Microsoft Corporation.  All Rights Reserved.  Licensed under the MIT License.  See License in the project root for license information.
* 
* Windows10TeamGeneralConfiguration File
* PHP version 7
*
* @category  Library
* @package   Microsoft.Graph
* @copyright (c) Microsoft Corporation. All rights reserved.
* @license   https://opensource.org/licenses/MIT MIT License
* @link      https://graph.microsoft.com
*/
namespace XCloner\Microsoft\Graph\Model;

if (!defined('ABSPATH') && \PHP_SAPI !== 'cli') {
    die;
}
/**
* Windows10TeamGeneralConfiguration class
*
* @category  Model
* @package   Microsoft.Graph
* @copyright (c) Microsoft Corporation. All rights reserved.
* @license   https://opensource.org/licenses/MIT MIT License
* @link      https://graph.microsoft.com
*/
class Windows10TeamGeneralConfiguration extends DeviceConfiguration
{
    /**
     * Gets the azureOperationalInsightsBlockTelemetry
     * Indicates whether or not to Block Azure Operational Insights.
     *
     * @return bool|null The azureOperationalInsightsBlockTelemetry
     */
    public function getAzureOperationalInsightsBlockTelemetry()
    {
        if (array_key_exists("azureOperationalInsightsBlockTelemetry", $this->_propDict)) {
            return $this->_propDict["azureOperationalInsightsBlockTelemetry"];
        } else {
            return null;
        }
    }
    /**
     * Sets the azureOperationalInsightsBlockTelemetry
     * Indicates whether or not to Block Azure Operational Insights.
     *
     * @param bool $val The azureOperationalInsightsBlockTelemetry
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setAzureOperationalInsightsBlockTelemetry($val)
    {
        $this->_propDict["azureOperationalInsightsBlockTelemetry"] = boolval($val);
        return $this;
    }
    /**
     * Gets the azureOperationalInsightsWorkspaceId
     * The Azure Operational Insights workspace id.
     *
     * @return string|null The azureOperationalInsightsWorkspaceId
     */
    public function getAzureOperationalInsightsWorkspaceId()
    {
        if (array_key_exists("azureOperationalInsightsWorkspaceId", $this->_propDict)) {
            return $this->_propDict["azureOperationalInsightsWorkspaceId"];
        } else {
            return null;
        }
    }
    /**
     * Sets the azureOperationalInsightsWorkspaceId
     * The Azure Operational Insights workspace id.
     *
     * @param string $val The azureOperationalInsightsWorkspaceId
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setAzureOperationalInsightsWorkspaceId($val)
    {
        $this->_propDict["azureOperationalInsightsWorkspaceId"] = $val;
        return $this;
    }
    /**
     * Gets the azureOperationalInsightsWorkspaceKey
     * The Azure Operational Insights Workspace key.
     *
     * @return string|null The azureOperationalInsightsWorkspaceKey
     */
    public function getAzureOperationalInsightsWorkspaceKey()
    {
        if (array_key_exists("azureOperationalInsightsWorkspaceKey", $this->_propDict)) {
            return $this->_propDict["azureOperationalInsightsWorkspaceKey"];
        } else {
            return null;
        }
    }
    /**
     * Sets the azureOperationalInsightsWorkspaceKey
     * The Azure Operational Insights Workspace key.
     *
     * @param string $val The azureOperationalInsightsWorkspaceKey
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setAzureOperationalInsightsWorkspaceKey($val)
    {
        $this->_propDict["azureOperationalInsightsWorkspaceKey"] = $val;
        return $this;
    }
    /**
     * Gets the connectAppBlockAutoLaunch
     * Specifies whether to automatically launch the Connect app whenever a projection is initiated.
     *
     * @return bool|null The connectAppBlockAutoLaunch
     */
    public function getConnectAppBlockAutoLaunch()
    {
        if (array_key_exists("connectAppBlockAutoLaunch", $this->_propDict)) {
            return $this->_propDict["connectAppBlockAutoLaunch"];
        } else {
            return null;
        }
    }
    /**
     * Sets the connectAppBlockAutoLaunch
     * Specifies whether to automatically launch the Connect app whenever a projection is initiated.
     *
     * @param bool $val The connectAppBlockAutoLaunch
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setConnectAppBlockAutoLaunch($val)
    {
        $this->_propDict["connectAppBlockAutoLaunch"] = boolval($val);
        return $this;
    }
    /**
     * Gets the maintenanceWindowBlocked
     * Indicates whether or not to Block setting a maintenance window for device updates.
     *
     * @return bool|null The maintenanceWindowBlocked
     */
    public function getMaintenanceWindowBlocked()
    {
        if (array_key_exists("maintenanceWindowBlocked", $this->_propDict)) {
            return $this->_propDict["maintenanceWindowBlocked"];
        } else {
            return null;
        }
    }
    /**
     * Sets the maintenanceWindowBlocked
     * Indicates whether or not to Block setting a maintenance window for device updates.
     *
     * @param bool $val The maintenanceWindowBlocked
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setMaintenanceWindowBlocked($val)
    {
        $this->_propDict["maintenanceWindowBlocked"] = boolval($val);
        return $this;
    }
    /**
     * Gets the maintenanceWindowDurationInHours
     * Maintenance window duration for device updates. Valid values 0 to 5
     *
     * @return int|null The maintenanceWindowDurationInHours
     */
    public function getMaintenanceWindowDurationInHours()
    {
        if (array_key_exists("maintenanceWindowDurationInHours", $this->_propDict)) {
            return $this->_propDict["maintenanceWindowDurationInHours"];
        } else {
            return null;
        }
    }
    /**
     * Sets the maintenanceWindowDurationInHours
     * Maintenance window duration for device updates. Valid values 0 to 5
     *
     * @param int $val The maintenanceWindowDurationInHours
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setMaintenanceWindowDurationInHours($val)
    {
        $this->_propDict["maintenanceWindowDurationInHours"] = intval($val);
        return $this;
    }
    /**
     * Gets the maintenanceWindowStartTime
     * Maintenance window start time for device updates.
     *
     * @return TimeOfDay|null The maintenanceWindowStartTime
     */
    public function getMaintenanceWindowStartTime()
    {
        if (array_key_exists("maintenanceWindowStartTime", $this->_propDict)) {
            if (is_a($this->_propDict["maintenanceWindowStartTime"], "XCloner\\Microsoft\\Graph\\Model\\TimeOfDay") || is_null($this->_propDict["maintenanceWindowStartTime"])) {
                return $this->_propDict["maintenanceWindowStartTime"];
            } else {
                $this->_propDict["maintenanceWindowStartTime"] = new TimeOfDay($this->_propDict["maintenanceWindowStartTime"]);
                return $this->_propDict["maintenanceWindowStartTime"];
            }
        }
        return null;
    }
    /**
     * Sets the maintenanceWindowStartTime
     * Maintenance window start time for device updates.
     *
     * @param TimeOfDay $val The maintenanceWindowStartTime
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setMaintenanceWindowStartTime($val)
    {
        $this->_propDict["maintenanceWindowStartTime"] = $val;
        return $this;
    }
    /**
     * Gets the miracastBlocked
     * Indicates whether or not to Block wireless projection.
     *
     * @return bool|null The miracastBlocked
     */
    public function getMiracastBlocked()
    {
        if (array_key_exists("miracastBlocked", $this->_propDict)) {
            return $this->_propDict["miracastBlocked"];
        } else {
            return null;
        }
    }
    /**
     * Sets the miracastBlocked
     * Indicates whether or not to Block wireless projection.
     *
     * @param bool $val The miracastBlocked
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setMiracastBlocked($val)
    {
        $this->_propDict["miracastBlocked"] = boolval($val);
        return $this;
    }
    /**
     * Gets the miracastChannel
     * The channel. Possible values are: userDefined, one, two, three, four, five, six, seven, eight, nine, ten, eleven, thirtySix, forty, fortyFour, fortyEight, oneHundredFortyNine, oneHundredFiftyThree, oneHundredFiftySeven, oneHundredSixtyOne, oneHundredSixtyFive.
     *
     * @return MiracastChannel|null The miracastChannel
     */
    public function getMiracastChannel()
    {
        if (array_key_exists("miracastChannel", $this->_propDict)) {
            if (is_a($this->_propDict["miracastChannel"], "XCloner\\Microsoft\\Graph\\Model\\MiracastChannel") || is_null($this->_propDict["miracastChannel"])) {
                return $this->_propDict["miracastChannel"];
            } else {
                $this->_propDict["miracastChannel"] = new MiracastChannel($this->_propDict["miracastChannel"]);
                return $this->_propDict["miracastChannel"];
            }
        }
        return null;
    }
    /**
     * Sets the miracastChannel
     * The channel. Possible values are: userDefined, one, two, three, four, five, six, seven, eight, nine, ten, eleven, thirtySix, forty, fortyFour, fortyEight, oneHundredFortyNine, oneHundredFiftyThree, oneHundredFiftySeven, oneHundredSixtyOne, oneHundredSixtyFive.
     *
     * @param MiracastChannel $val The miracastChannel
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setMiracastChannel($val)
    {
        $this->_propDict["miracastChannel"] = $val;
        return $this;
    }
    /**
     * Gets the miracastRequirePin
     * Indicates whether or not to require a pin for wireless projection.
     *
     * @return bool|null The miracastRequirePin
     */
    public function getMiracastRequirePin()
    {
        if (array_key_exists("miracastRequirePin", $this->_propDict)) {
            return $this->_propDict["miracastRequirePin"];
        } else {
            return null;
        }
    }
    /**
     * Sets the miracastRequirePin
     * Indicates whether or not to require a pin for wireless projection.
     *
     * @param bool $val The miracastRequirePin
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setMiracastRequirePin($val)
    {
        $this->_propDict["miracastRequirePin"] = boolval($val);
        return $this;
    }
    /**
     * Gets the settingsBlockMyMeetingsAndFiles
     * Specifies whether to disable the 'My meetings and files' feature in the Start menu, which shows the signed-in user's meetings and files from Office 365.
     *
     * @return bool|null The settingsBlockMyMeetingsAndFiles
     */
    public function getSettingsBlockMyMeetingsAndFiles()
    {
        if (array_key_exists("settingsBlockMyMeetingsAndFiles", $this->_propDict)) {
            return $this->_propDict["settingsBlockMyMeetingsAndFiles"];
        } else {
            return null;
        }
    }
    /**
     * Sets the settingsBlockMyMeetingsAndFiles
     * Specifies whether to disable the 'My meetings and files' feature in the Start menu, which shows the signed-in user's meetings and files from Office 365.
     *
     * @param bool $val The settingsBlockMyMeetingsAndFiles
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setSettingsBlockMyMeetingsAndFiles($val)
    {
        $this->_propDict["settingsBlockMyMeetingsAndFiles"] = boolval($val);
        return $this;
    }
    /**
     * Gets the settingsBlockSessionResume
     * Specifies whether to allow the ability to resume a session when the session times out.
     *
     * @return bool|null The settingsBlockSessionResume
     */
    public function getSettingsBlockSessionResume()
    {
        if (array_key_exists("settingsBlockSessionResume", $this->_propDict)) {
            return $this->_propDict["settingsBlockSessionResume"];
        } else {
            return null;
        }
    }
    /**
     * Sets the settingsBlockSessionResume
     * Specifies whether to allow the ability to resume a session when the session times out.
     *
     * @param bool $val The settingsBlockSessionResume
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setSettingsBlockSessionResume($val)
    {
        $this->_propDict["settingsBlockSessionResume"] = boolval($val);
        return $this;
    }
    /**
     * Gets the settingsBlockSigninSuggestions
     * Specifies whether to disable auto-populating of the sign-in dialog with invitees from scheduled meetings.
     *
     * @return bool|null The settingsBlockSigninSuggestions
     */
    public function getSettingsBlockSigninSuggestions()
    {
        if (array_key_exists("settingsBlockSigninSuggestions", $this->_propDict)) {
            return $this->_propDict["settingsBlockSigninSuggestions"];
        } else {
            return null;
        }
    }
    /**
     * Sets the settingsBlockSigninSuggestions
     * Specifies whether to disable auto-populating of the sign-in dialog with invitees from scheduled meetings.
     *
     * @param bool $val The settingsBlockSigninSuggestions
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setSettingsBlockSigninSuggestions($val)
    {
        $this->_propDict["settingsBlockSigninSuggestions"] = boolval($val);
        return $this;
    }
    /**
     * Gets the settingsDefaultVolume
     * Specifies the default volume value for a new session. Permitted values are 0-100. The default is 45. Valid values 0 to 100
     *
     * @return int|null The settingsDefaultVolume
     */
    public function getSettingsDefaultVolume()
    {
        if (array_key_exists("settingsDefaultVolume", $this->_propDict)) {
            return $this->_propDict["settingsDefaultVolume"];
        } else {
            return null;
        }
    }
    /**
     * Sets the settingsDefaultVolume
     * Specifies the default volume value for a new session. Permitted values are 0-100. The default is 45. Valid values 0 to 100
     *
     * @param int $val The settingsDefaultVolume
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setSettingsDefaultVolume($val)
    {
        $this->_propDict["settingsDefaultVolume"] = intval($val);
        return $this;
    }
    /**
     * Gets the settingsScreenTimeoutInMinutes
     * Specifies the number of minutes until the Hub screen turns off.
     *
     * @return int|null The settingsScreenTimeoutInMinutes
     */
    public function getSettingsScreenTimeoutInMinutes()
    {
        if (array_key_exists("settingsScreenTimeoutInMinutes", $this->_propDict)) {
            return $this->_propDict["settingsScreenTimeoutInMinutes"];
        } else {
            return null;
        }
    }
    /**
     * Sets the settingsScreenTimeoutInMinutes
     * Specifies the number of minutes until the Hub screen turns off.
     *
     * @param int $val The settingsScreenTimeoutInMinutes
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setSettingsScreenTimeoutInMinutes($val)
    {
        $this->_propDict["settingsScreenTimeoutInMinutes"] = intval($val);
        return $this;
    }
    /**
     * Gets the settingsSessionTimeoutInMinutes
     * Specifies the number of minutes until the session times out.
     *
     * @return int|null The settingsSessionTimeoutInMinutes
     */
    public function getSettingsSessionTimeoutInMinutes()
    {
        if (array_key_exists("settingsSessionTimeoutInMinutes", $this->_propDict)) {
            return $this->_propDict["settingsSessionTimeoutInMinutes"];
        } else {
            return null;
        }
    }
    /**
     * Sets the settingsSessionTimeoutInMinutes
     * Specifies the number of minutes until the session times out.
     *
     * @param int $val The settingsSessionTimeoutInMinutes
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setSettingsSessionTimeoutInMinutes($val)
    {
        $this->_propDict["settingsSessionTimeoutInMinutes"] = intval($val);
        return $this;
    }
    /**
     * Gets the settingsSleepTimeoutInMinutes
     * Specifies the number of minutes until the Hub enters sleep mode.
     *
     * @return int|null The settingsSleepTimeoutInMinutes
     */
    public function getSettingsSleepTimeoutInMinutes()
    {
        if (array_key_exists("settingsSleepTimeoutInMinutes", $this->_propDict)) {
            return $this->_propDict["settingsSleepTimeoutInMinutes"];
        } else {
            return null;
        }
    }
    /**
     * Sets the settingsSleepTimeoutInMinutes
     * Specifies the number of minutes until the Hub enters sleep mode.
     *
     * @param int $val The settingsSleepTimeoutInMinutes
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setSettingsSleepTimeoutInMinutes($val)
    {
        $this->_propDict["settingsSleepTimeoutInMinutes"] = intval($val);
        return $this;
    }
    /**
     * Gets the welcomeScreenBackgroundImageUrl
     * The welcome screen background image URL. The URL must use the HTTPS protocol and return a PNG image.
     *
     * @return string|null The welcomeScreenBackgroundImageUrl
     */
    public function getWelcomeScreenBackgroundImageUrl()
    {
        if (array_key_exists("welcomeScreenBackgroundImageUrl", $this->_propDict)) {
            return $this->_propDict["welcomeScreenBackgroundImageUrl"];
        } else {
            return null;
        }
    }
    /**
     * Sets the welcomeScreenBackgroundImageUrl
     * The welcome screen background image URL. The URL must use the HTTPS protocol and return a PNG image.
     *
     * @param string $val The welcomeScreenBackgroundImageUrl
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setWelcomeScreenBackgroundImageUrl($val)
    {
        $this->_propDict["welcomeScreenBackgroundImageUrl"] = $val;
        return $this;
    }
    /**
     * Gets the welcomeScreenBlockAutomaticWakeUp
     * Indicates whether or not to Block the welcome screen from waking up automatically when someone enters the room.
     *
     * @return bool|null The welcomeScreenBlockAutomaticWakeUp
     */
    public function getWelcomeScreenBlockAutomaticWakeUp()
    {
        if (array_key_exists("welcomeScreenBlockAutomaticWakeUp", $this->_propDict)) {
            return $this->_propDict["welcomeScreenBlockAutomaticWakeUp"];
        } else {
            return null;
        }
    }
    /**
     * Sets the welcomeScreenBlockAutomaticWakeUp
     * Indicates whether or not to Block the welcome screen from waking up automatically when someone enters the room.
     *
     * @param bool $val The welcomeScreenBlockAutomaticWakeUp
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setWelcomeScreenBlockAutomaticWakeUp($val)
    {
        $this->_propDict["welcomeScreenBlockAutomaticWakeUp"] = boolval($val);
        return $this;
    }
    /**
     * Gets the welcomeScreenMeetingInformation
     * The welcome screen meeting information shown. Possible values are: userDefined, showOrganizerAndTimeOnly, showOrganizerAndTimeAndSubject.
     *
     * @return WelcomeScreenMeetingInformation|null The welcomeScreenMeetingInformation
     */
    public function getWelcomeScreenMeetingInformation()
    {
        if (array_key_exists("welcomeScreenMeetingInformation", $this->_propDict)) {
            if (is_a($this->_propDict["welcomeScreenMeetingInformation"], "XCloner\\Microsoft\\Graph\\Model\\WelcomeScreenMeetingInformation") || is_null($this->_propDict["welcomeScreenMeetingInformation"])) {
                return $this->_propDict["welcomeScreenMeetingInformation"];
            } else {
                $this->_propDict["welcomeScreenMeetingInformation"] = new WelcomeScreenMeetingInformation($this->_propDict["welcomeScreenMeetingInformation"]);
                return $this->_propDict["welcomeScreenMeetingInformation"];
            }
        }
        return null;
    }
    /**
     * Sets the welcomeScreenMeetingInformation
     * The welcome screen meeting information shown. Possible values are: userDefined, showOrganizerAndTimeOnly, showOrganizerAndTimeAndSubject.
     *
     * @param WelcomeScreenMeetingInformation $val The welcomeScreenMeetingInformation
     *
     * @return Windows10TeamGeneralConfiguration
     */
    public function setWelcomeScreenMeetingInformation($val)
    {
        $this->_propDict["welcomeScreenMeetingInformation"] = $val;
        return $this;
    }
}
