<?php

/**
 * Generated by phpSPO model generator 2020-05-26T22:12:31+00:00 
 */
namespace Office365\Graph;

use Office365\Runtime\ClientObject;
use Office365\Runtime\ResourcePath;
/**
 *  "A team in Microsoft Teams is a collection of channels. "
 */
class Team extends ClientObject
{
    /**
     *  A hyperlink that will go to the team in the Microsoft Teams client. This is the URL that you get when you right-click a team in the Microsoft Teams client and select **Get link to team**. This URL should be treated as an opaque blob, and not parsed. 
     * @return string
     */
    public function getWebUrl()
    {
        if (!$this->isPropertyAvailable("WebUrl")) {
            return null;
        }
        return $this->getProperty("WebUrl");
    }
    /**
     *  A hyperlink that will go to the team in the Microsoft Teams client. This is the URL that you get when you right-click a team in the Microsoft Teams client and select **Get link to team**. This URL should be treated as an opaque blob, and not parsed. 
     * @var string
     */
    public function setWebUrl($value)
    {
        $this->setProperty("WebUrl", $value, true);
    }
    /**
     * Whether this team is in read-only mode. 
     * @return bool
     */
    public function getIsArchived()
    {
        if (!$this->isPropertyAvailable("IsArchived")) {
            return null;
        }
        return $this->getProperty("IsArchived");
    }
    /**
     * Whether this team is in read-only mode. 
     * @var bool
     */
    public function setIsArchived($value)
    {
        $this->setProperty("IsArchived", $value, true);
    }
    /**
     * Settings to configure whether members can perform certain actions, for example, create channels and add bots, in the team.
     * @return TeamMemberSettings
     */
    public function getMemberSettings()
    {
        if (!$this->isPropertyAvailable("MemberSettings")) {
            return null;
        }
        return $this->getProperty("MemberSettings");
    }
    /**
     * Settings to configure whether members can perform certain actions, for example, create channels and add bots, in the team.
     * @var TeamMemberSettings
     */
    public function setMemberSettings($value)
    {
        $this->setProperty("MemberSettings", $value, true);
    }
    /**
     * Settings to configure whether guests can create, update, or delete channels in the team.
     * @return TeamGuestSettings
     */
    public function getGuestSettings()
    {
        if (!$this->isPropertyAvailable("GuestSettings")) {
            return null;
        }
        return $this->getProperty("GuestSettings");
    }
    /**
     * Settings to configure whether guests can create, update, or delete channels in the team.
     * @var TeamGuestSettings
     */
    public function setGuestSettings($value)
    {
        $this->setProperty("GuestSettings", $value, true);
    }
    /**
     * Settings to configure messaging and mentions in the team.
     * @return TeamMessagingSettings
     */
    public function getMessagingSettings()
    {
        if (!$this->isPropertyAvailable("MessagingSettings")) {
            return null;
        }
        return $this->getProperty("MessagingSettings");
    }
    /**
     * Settings to configure messaging and mentions in the team.
     * @var TeamMessagingSettings
     */
    public function setMessagingSettings($value)
    {
        $this->setProperty("MessagingSettings", $value, true);
    }
    /**
     * Settings to configure use of Giphy, memes, and stickers in the team.
     * @return TeamFunSettings
     */
    public function getFunSettings()
    {
        if (!$this->isPropertyAvailable("FunSettings")) {
            return null;
        }
        return $this->getProperty("FunSettings");
    }
    /**
     * Settings to configure use of Giphy, memes, and stickers in the team.
     * @var TeamFunSettings
     */
    public function setFunSettings($value)
    {
        $this->setProperty("FunSettings", $value, true);
    }
}