<?php

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

use Office365\Runtime\ClientObject;
use Office365\Runtime\ResourcePath;
class SharedDriveItem extends ClientObject
{
    /**
     * @return IdentitySet
     */
    public function getOwner()
    {
        if (!$this->isPropertyAvailable("Owner")) {
            return null;
        }
        return $this->getProperty("Owner");
    }
    /**
     * @var IdentitySet
     */
    public function setOwner($value)
    {
        $this->setProperty("Owner", $value, true);
    }
    /**
     * @return DriveItem
     */
    public function getDriveItem()
    {
        if (!$this->isPropertyAvailable("DriveItem")) {
            $this->setProperty("DriveItem", new DriveItem($this->getContext(), new ResourcePath("DriveItem", $this->getResourcePath())));
        }
        return $this->getProperty("DriveItem");
    }
    /**
     * @return SharePointList
     */
    public function getList()
    {
        if (!$this->isPropertyAvailable("List")) {
            $this->setProperty("List", new SharePointList($this->getContext(), new ResourcePath("List", $this->getResourcePath())));
        }
        return $this->getProperty("List");
    }
    /**
     * @return ListItem
     */
    public function getListItem()
    {
        if (!$this->isPropertyAvailable("ListItem")) {
            $this->setProperty("ListItem", new ListItem($this->getContext(), new ResourcePath("ListItem", $this->getResourcePath())));
        }
        return $this->getProperty("ListItem");
    }
    /**
     * @return DriveItem
     */
    public function getRoot()
    {
        if (!$this->isPropertyAvailable("Root")) {
            $this->setProperty("Root", new DriveItem($this->getContext(), new ResourcePath("Root", $this->getResourcePath())));
        }
        return $this->getProperty("Root");
    }
    /**
     * @return Site
     */
    public function getSite()
    {
        if (!$this->isPropertyAvailable("Site")) {
            $this->setProperty("Site", new Site($this->getContext(), new ResourcePath("Site", $this->getResourcePath())));
        }
        return $this->getProperty("Site");
    }
    /**
     * @return DriveItemCollection
     */
    public function getItems()
    {
        if (!$this->isPropertyAvailable("Items")) {
            $this->setProperty("Items", new DriveItemCollection($this->getContext(), new ResourcePath("Items", $this->getResourcePath())));
        }
        return $this->getProperty("Items");
    }
}