Lullabot/mpx-php

View on GitHub
src/DataService/Media/MediaFile.php

Summary

Maintainability
A
0 mins
Test Coverage
A
96%
<?php

namespace Lullabot\Mpx\DataService\Media;

use GuzzleHttp\Psr7\Uri;
use Lullabot\Mpx\DataService\Annotation\DataService;
use Lullabot\Mpx\DataService\DateTime\NullDateTime;
use Lullabot\Mpx\DataService\ObjectBase;

/**
 * Implements a MediaFile object.
 *
 * @see https://docs.theplatform.com/help/media-mediafile-object
 *
 * @DataService(
 *     service="Media Data Service",
 *     objectType="MediaFile",
 *     schemaVersion="1.10"
 * )
 */
class MediaFile extends ObjectBase
{
    /**
     * The date and time that this object was created.
     *
     * @var \Lullabot\Mpx\DataService\DateTime\DateTimeFormatInterface
     */
    protected $added;

    /**
     * The id of the user that created this object.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $addedByUserId;

    /**
     * Whether playback is enabled for this file, and whether it can be associated with new Release objects.
     *
     * @var bool
     */
    protected $allowRelease;

    /**
     * Whether this object is approved.
     *
     * @var bool
     */
    protected $approved;

    /**
     * The file's calculated aspect ratio.
     *
     * @var float
     */
    protected $aspectRatio;

    /**
     * The id values of any AssetType objects associated with this object.
     *
     * @var \Psr\Http\Message\UriInterface[]
     */
    protected $assetTypeIds = [];

    /**
     * The names of any AssetType objects associated with this object.
     *
     * @var string[]
     */
    protected $assetTypes = [];

    /**
     * The number of audio channels the file has.
     *
     * @var int
     */
    protected $audioChannels;

    /**
     * The name of the audio codec the file uses.
     *
     * @var string
     */
    protected $audioCodec;

    /**
     * The file's audio sample rate, in hertz (Hz).
     *
     * @var int
     */
    protected $audioSampleRate;

    /**
     * The file's audio sample size, in bits (b).
     *
     * @var int
     */
    protected $audioSampleSize;

    /**
     * The file's bitrate, in bits per second (bps).
     *
     * @var int
     */
    protected $bitrate;

    /**
     * The file's checksum values.
     *
     * @var array
     */
    protected $checksums;

    /**
     * Whether the file contains text tracks.
     *
     * @var bool
     */
    protected $closedCaptions;

    /**
     * The file's content type.
     *
     * @var string
     */
    protected $contentType;

    /**
     * The description of this object.
     *
     * @var string
     */
    protected $description;

    /**
     * The aspect ratio to display to users.
     *
     * @var string
     */
    protected $displayAspectRatio;

    /**
     * The file's download URL.
     *
     * @var string
     */
    protected $downloadUrl;

    /**
     * The duration of the file, in seconds.
     *
     * @var float
     */
    protected $duration;

    /**
     * Whether the file exists at the specified location yet.
     *
     * @var bool
     */
    protected $exists;

    /**
     * The file's expression type.
     *
     * @var string
     */
    protected $expression;

    /**
     * The secondary source URL for the original file.
     *
     * @var string
     */
    protected $failoverSourceUrl;

    /**
     * One or more secondary streaming URLs.
     *
     * @var string
     */
    protected $failoverStreamingUrl;

    /**
     * The path and filename of the file, relative to a managed storage server's root.
     *
     * @var string
     */
    protected $filePath;

    /**
     * The file's size, in bytes (B).
     *
     * @var int
     */
    protected $fileSize;

    /**
     * The file's format.
     *
     * @var string
     */
    protected $format;

    /**
     * The file's frame rate, in frames per second (fps).
     *
     * @var float
     */
    protected $frameRate;

    /**
     * An alternate identifier for this object that is unique within the owning account.
     *
     * @var string
     */
    protected $guid;

    /**
     * The file's frame height, in pixels.
     *
     * @var int
     */
    protected $height;

    /**
     * The globally unique URI of this object.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $id;

    /**
     * Whether this file is the default content or thumbnail file for the associated Mediaobject.
     *
     * @var bool
     */
    protected $isDefault;

    /**
     * Whether this file is protected.
     *
     * @var bool
     */
    protected $isProtected;

    /**
     * Whether this file is a thumbnail.
     *
     * @var bool
     */
    protected $isThumbnail;

    /**
     * The ISO 639 language code for the file.
     *
     * @var string
     */
    protected $language;

    /**
     * Whether this object currently allows updates.
     *
     * @var bool
     */
    protected $locked;

    /**
     * The id of the Media object this object is associated with.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $mediaId;

    /**
     * The id of the account that owns this object.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $ownerId;

    /**
     * Information about the file's location used by the FMS moveFile method.
     *
     * @var PreviousLocation[]
     */
    protected $previousLocations = [];

    /**
     * One or more protection system headers.
     *
     * @var string[]
     */
    protected $protectionHeaders = [];

    /**
     * The DRM or copy protection key.
     *
     * @var string
     */
    protected $protectionKey;

    /**
     * The DRM or copy protection scheme.
     *
     * @var string
     */
    protected $protectionScheme;

    /**
     * The Release objects associated with this file.
     *
     * @var Release[]
     */
    protected $releases = [];

    /**
     * The languages in which secondary audio programming (SAP) is available in the file.
     *
     * @var string[]
     */
    protected $secondaryAudio = [];

    /**
     * The format of the streaming content segments.
     *
     * @var string
     */
    protected $segmentFormat;

    /**
     * The id of the Server object representing the storage server that this file is on.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $serverId;

    /**
     * The id of the source MediaFile object that this file was generated from.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $sourceMediaFileId;

    /**
     * The start time of this excerpt in the source file, in seconds.
     *
     * @var float
     */
    protected $sourceTime;

    /**
     * The original source URL for this file.
     *
     * @var string
     */
    protected $sourceUrl;

    /**
     * The URL of the file's storage location.
     *
     * @var string
     */
    protected $storageUrl;

    /**
     * The file's primary streaming URL.
     *
     * @var string
     */
    protected $streamingUrl;

    /**
     * The name of this object.
     *
     * @var string
     */
    protected $title;

    /**
     * The server information required to transfer the file.
     *
     * @var \Lullabot\Mpx\DataService\Media\TransferInfo
     */
    protected $transferInfo;

    /**
     * The id of the encoding template used to generate the file.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $transformId;

    /**
     * The date and time this object was last modified.
     *
     * @var \Lullabot\Mpx\DataService\DateTime\DateTimeFormatInterface
     */
    protected $updated;

    /**
     * The id of the user that last modified this object.
     *
     * @var \Psr\Http\Message\UriInterface
     */
    protected $updatedByUserId;

    /**
     * The URL of the file.
     *
     * @var string
     */
    protected $url;

    /**
     * This object's modification version, used for optimistic locking.
     *
     * @var int
     */
    protected $version;

    /**
     * The name of this file's video codec.
     *
     * @var string
     */
    protected $videoCodec;

    /**
     * This file's frame width, in pixels.
     *
     * @var int
     */
    protected $width;

    /**
     * Returns the date and time that this object was created.
     */
    public function getAdded(): \Lullabot\Mpx\DataService\DateTime\DateTimeFormatInterface
    {
        if (!$this->added) {
            return new NullDateTime();
        }

        return $this->added;
    }

    /**
     * Set the date and time that this object was created.
     */
    public function setAdded(\Lullabot\Mpx\DataService\DateTime\DateTimeFormatInterface $added)
    {
        $this->added = $added;
    }

    /**
     * Returns the id of the user that created this object.
     */
    public function getAddedByUserId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->addedByUserId) {
            return new Uri();
        }

        return $this->addedByUserId;
    }

    /**
     * Set the id of the user that created this object.
     */
    public function setAddedByUserId(\Psr\Http\Message\UriInterface $addedByUserId)
    {
        $this->addedByUserId = $addedByUserId;
    }

    /**
     * Returns whether playback is enabled for this file, and whether it can be associated with new Release objects.
     */
    public function getAllowRelease(): ?bool
    {
        return $this->allowRelease;
    }

    /**
     * Set whether playback is enabled for this file, and whether it can be associated with new Release objects.
     */
    public function setAllowRelease(?bool $allowRelease)
    {
        $this->allowRelease = $allowRelease;
    }

    /**
     * Returns whether this object is approved.
     */
    public function getApproved(): ?bool
    {
        return $this->approved;
    }

    /**
     * Set whether this object is approved.
     */
    public function setApproved(?bool $approved)
    {
        $this->approved = $approved;
    }

    /**
     * Returns the file's calculated aspect ratio.
     */
    public function getAspectRatio(): ?float
    {
        return $this->aspectRatio;
    }

    /**
     * Set the file's calculated aspect ratio.
     */
    public function setAspectRatio(?float $aspectRatio)
    {
        $this->aspectRatio = $aspectRatio;
    }

    /**
     * Returns the id values of any AssetType objects associated with this object.
     *
     * @return \Psr\Http\Message\UriInterface[]
     */
    public function getAssetTypeIds(): array
    {
        return $this->assetTypeIds;
    }

    /**
     * Set the id values of any AssetType objects associated with this object.
     *
     * @param \Psr\Http\Message\UriInterface[] $assetTypeIds
     */
    public function setAssetTypeIds(array $assetTypeIds)
    {
        $this->assetTypeIds = $assetTypeIds;
    }

    /**
     * Returns the names of any AssetType objects associated with this object.
     *
     * @return string[]
     */
    public function getAssetTypes(): array
    {
        return $this->assetTypes;
    }

    /**
     * Set the names of any AssetType objects associated with this object.
     *
     * @param string[] $assetTypes
     */
    public function setAssetTypes(array $assetTypes)
    {
        $this->assetTypes = $assetTypes;
    }

    /**
     * Returns the number of audio channels the file has.
     */
    public function getAudioChannels(): ?int
    {
        return $this->audioChannels;
    }

    /**
     * Set the number of audio channels the file has.
     */
    public function setAudioChannels(?int $audioChannels)
    {
        $this->audioChannels = $audioChannels;
    }

    /**
     * Returns the name of the audio codec the file uses.
     */
    public function getAudioCodec(): ?string
    {
        return $this->audioCodec;
    }

    /**
     * Set the name of the audio codec the file uses.
     */
    public function setAudioCodec(?string $audioCodec)
    {
        $this->audioCodec = $audioCodec;
    }

    /**
     * Returns the file's audio sample rate, in hertz (Hz).
     */
    public function getAudioSampleRate(): ?int
    {
        return $this->audioSampleRate;
    }

    /**
     * Set the file's audio sample rate, in hertz (Hz).
     */
    public function setAudioSampleRate(?int $audioSampleRate)
    {
        $this->audioSampleRate = $audioSampleRate;
    }

    /**
     * Returns the file's audio sample size, in bits (b).
     */
    public function getAudioSampleSize(): ?int
    {
        return $this->audioSampleSize;
    }

    /**
     * Set the file's audio sample size, in bits (b).
     */
    public function setAudioSampleSize(?int $audioSampleSize)
    {
        $this->audioSampleSize = $audioSampleSize;
    }

    /**
     * Returns the file's bitrate, in bits per second (bps).
     */
    public function getBitrate(): ?int
    {
        return $this->bitrate;
    }

    /**
     * Set the file's bitrate, in bits per second (bps).
     */
    public function setBitrate(?int $bitrate)
    {
        $this->bitrate = $bitrate;
    }

    /**
     * Returns the file's checksum values.
     */
    public function getChecksums(): array
    {
        return $this->checksums;
    }

    /**
     * Set the file's checksum values.
     */
    public function setChecksums(array $checksums)
    {
        $this->checksums = $checksums;
    }

    /**
     * Returns whether the file contains text tracks.
     */
    public function getClosedCaptions(): ?bool
    {
        return $this->closedCaptions;
    }

    /**
     * Set whether the file contains text tracks.
     */
    public function setClosedCaptions(?bool $closedCaptions)
    {
        $this->closedCaptions = $closedCaptions;
    }

    /**
     * Returns the file's content type.
     */
    public function getContentType(): ?string
    {
        return $this->contentType;
    }

    /**
     * Set the file's content type.
     */
    public function setContentType(?string $contentType)
    {
        $this->contentType = $contentType;
    }

    /**
     * Returns the description of this object.
     */
    public function getDescription(): ?string
    {
        return $this->description;
    }

    /**
     * Set the description of this object.
     */
    public function setDescription(?string $description)
    {
        $this->description = $description;
    }

    /**
     * Returns the aspect ratio to display to users.
     */
    public function getDisplayAspectRatio(): ?string
    {
        return $this->displayAspectRatio;
    }

    /**
     * Set the aspect ratio to display to users.
     */
    public function setDisplayAspectRatio(?string $displayAspectRatio)
    {
        $this->displayAspectRatio = $displayAspectRatio;
    }

    /**
     * Returns the file's download URL.
     */
    public function getDownloadUrl(): ?string
    {
        return $this->downloadUrl;
    }

    /**
     * Set the file's download URL.
     */
    public function setDownloadUrl(?string $downloadUrl)
    {
        $this->downloadUrl = $downloadUrl;
    }

    /**
     * Returns the duration of the file, in seconds.
     */
    public function getDuration(): ?float
    {
        return $this->duration;
    }

    /**
     * Set the duration of the file, in seconds.
     */
    public function setDuration(?float $duration)
    {
        $this->duration = $duration;
    }

    /**
     * Returns whether the file exists at the specified location yet.
     */
    public function getExists(): ?bool
    {
        return $this->exists;
    }

    /**
     * Set whether the file exists at the specified location yet.
     */
    public function setExists(?bool $exists)
    {
        $this->exists = $exists;
    }

    /**
     * Returns the file's expression type.
     */
    public function getExpression(): ?string
    {
        return $this->expression;
    }

    /**
     * Set the file's expression type.
     */
    public function setExpression(?string $expression)
    {
        $this->expression = $expression;
    }

    /**
     * Returns the secondary source URL for the original file.
     */
    public function getFailoverSourceUrl(): ?string
    {
        return $this->failoverSourceUrl;
    }

    /**
     * Set the secondary source URL for the original file.
     */
    public function setFailoverSourceUrl(?string $failoverSourceUrl)
    {
        $this->failoverSourceUrl = $failoverSourceUrl;
    }

    /**
     * Returns one or more secondary streaming URLs.
     */
    public function getFailoverStreamingUrl(): ?string
    {
        return $this->failoverStreamingUrl;
    }

    /**
     * Set one or more secondary streaming URLs.
     */
    public function setFailoverStreamingUrl(?string $failoverStreamingUrl)
    {
        $this->failoverStreamingUrl = $failoverStreamingUrl;
    }

    /**
     * Returns the path and filename of the file, relative to a managed storage server's root.
     */
    public function getFilePath(): ?string
    {
        return $this->filePath;
    }

    /**
     * Set the path and filename of the file, relative to a managed storage server's root.
     */
    public function setFilePath(?string $filePath)
    {
        $this->filePath = $filePath;
    }

    /**
     * Returns the file's size, in bytes (B).
     */
    public function getFileSize(): ?int
    {
        return $this->fileSize;
    }

    /**
     * Set the file's size, in bytes (B).
     */
    public function setFileSize(?int $fileSize)
    {
        $this->fileSize = $fileSize;
    }

    /**
     * Returns the file's format.
     */
    public function getFormat(): ?string
    {
        return $this->format;
    }

    /**
     * Set the file's format.
     */
    public function setFormat(?string $format)
    {
        $this->format = $format;
    }

    /**
     * Returns the file's frame rate, in frames per second (fps).
     */
    public function getFrameRate(): ?float
    {
        return $this->frameRate;
    }

    /**
     * Set the file's frame rate, in frames per second (fps).
     */
    public function setFrameRate(?float $frameRate)
    {
        $this->frameRate = $frameRate;
    }

    /**
     * Returns an alternate identifier for this object that is unique within the owning account.
     */
    public function getGuid(): ?string
    {
        return $this->guid;
    }

    /**
     * Set an alternate identifier for this object that is unique within the owning account.
     */
    public function setGuid(?string $guid)
    {
        $this->guid = $guid;
    }

    /**
     * Returns the file's frame height, in pixels.
     */
    public function getHeight(): ?int
    {
        return $this->height;
    }

    /**
     * Set the file's frame height, in pixels.
     */
    public function setHeight(?int $height)
    {
        $this->height = $height;
    }

    /**
     * Returns the globally unique URI of this object.
     */
    public function getId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->id) {
            return new Uri();
        }

        return $this->id;
    }

    /**
     * Set the globally unique URI of this object.
     */
    public function setId(\Psr\Http\Message\UriInterface $id)
    {
        $this->id = $id;
    }

    /**
     * Returns whether this file is the default content or thumbnail file for the associated Mediaobject.
     */
    public function getIsDefault(): ?bool
    {
        return $this->isDefault;
    }

    /**
     * Set whether this file is the default content or thumbnail file for the associated Mediaobject.
     */
    public function setIsDefault(?bool $isDefault)
    {
        $this->isDefault = $isDefault;
    }

    /**
     * Returns whether this file is protected.
     */
    public function getIsProtected(): ?bool
    {
        return $this->isProtected;
    }

    /**
     * Set whether this file is protected.
     */
    public function setIsProtected(?bool $isProtected)
    {
        $this->isProtected = $isProtected;
    }

    /**
     * Returns whether this file is a thumbnail.
     */
    public function getIsThumbnail(): ?bool
    {
        return $this->isThumbnail;
    }

    /**
     * Set whether this file is a thumbnail.
     */
    public function setIsThumbnail(?bool $isThumbnail)
    {
        $this->isThumbnail = $isThumbnail;
    }

    /**
     * Returns the ISO 639 language code for the file.
     */
    public function getLanguage(): ?string
    {
        return $this->language;
    }

    /**
     * Set the ISO 639 language code for the file.
     */
    public function setLanguage(?string $language)
    {
        $this->language = $language;
    }

    /**
     * Returns whether this object currently allows updates.
     */
    public function getLocked(): ?bool
    {
        return $this->locked;
    }

    /**
     * Set whether this object currently allows updates.
     */
    public function setLocked(?bool $locked)
    {
        $this->locked = $locked;
    }

    /**
     * Returns the id of the Media object this object is associated with.
     */
    public function getMediaId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->mediaId) {
            return new Uri();
        }

        return $this->mediaId;
    }

    /**
     * Set the id of the Media object this object is associated with.
     */
    public function setMediaId(\Psr\Http\Message\UriInterface $mediaId)
    {
        $this->mediaId = $mediaId;
    }

    /**
     * Returns the id of the account that owns this object.
     */
    public function getOwnerId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->ownerId) {
            return new Uri();
        }

        return $this->ownerId;
    }

    /**
     * Set the id of the account that owns this object.
     */
    public function setOwnerId(\Psr\Http\Message\UriInterface $ownerId)
    {
        $this->ownerId = $ownerId;
    }

    /**
     * Returns information about the file's location used by the FMS moveFile method.
     *
     * @return PreviousLocation[]
     */
    public function getPreviousLocations(): array
    {
        return $this->previousLocations;
    }

    /**
     * Set information about the file's location used by the FMS moveFile method.
     *
     * @param PreviousLocation[] $previousLocations
     */
    public function setPreviousLocations(array $previousLocations)
    {
        $this->previousLocations = $previousLocations;
    }

    /**
     * Returns one or more protection system headers.
     *
     * @return string[]
     */
    public function getProtectionHeaders(): array
    {
        return $this->protectionHeaders;
    }

    /**
     * Set one or more protection system headers.
     *
     * @param string[] $protectionHeaders
     */
    public function setProtectionHeaders(array $protectionHeaders)
    {
        $this->protectionHeaders = $protectionHeaders;
    }

    /**
     * Returns the DRM or copy protection key.
     */
    public function getProtectionKey(): ?string
    {
        return $this->protectionKey;
    }

    /**
     * Set the DRM or copy protection key.
     */
    public function setProtectionKey(?string $protectionKey)
    {
        $this->protectionKey = $protectionKey;
    }

    /**
     * Returns the DRM or copy protection scheme.
     */
    public function getProtectionScheme(): ?string
    {
        return $this->protectionScheme;
    }

    /**
     * Set the DRM or copy protection scheme.
     */
    public function setProtectionScheme(?string $protectionScheme)
    {
        $this->protectionScheme = $protectionScheme;
    }

    /**
     * Returns the Release objects associated with this file.
     *
     * @return Release[]
     */
    public function getReleases(): array
    {
        return $this->releases;
    }

    /**
     * Set the Release objects associated with this file.
     *
     * @param Release[] $releases
     */
    public function setReleases(array $releases)
    {
        $this->releases = $releases;
    }

    /**
     * Returns the languages in which secondary audio programming (SAP) is available in the file.
     *
     * @return string[]
     */
    public function getSecondaryAudio(): array
    {
        return $this->secondaryAudio;
    }

    /**
     * Set the languages in which secondary audio programming (SAP) is available in the file.
     *
     * @param string[] $secondaryAudio
     */
    public function setSecondaryAudio(array $secondaryAudio)
    {
        $this->secondaryAudio = $secondaryAudio;
    }

    /**
     * Returns the format of the streaming content segments.
     */
    public function getSegmentFormat(): ?string
    {
        return $this->segmentFormat;
    }

    /**
     * Set the format of the streaming content segments.
     */
    public function setSegmentFormat(?string $segmentFormat)
    {
        $this->segmentFormat = $segmentFormat;
    }

    /**
     * Returns the id of the Server object representing the storage server that this file is on.
     */
    public function getServerId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->serverId) {
            return new Uri();
        }

        return $this->serverId;
    }

    /**
     * Set the id of the Server object representing the storage server that this file is on.
     */
    public function setServerId(\Psr\Http\Message\UriInterface $serverId)
    {
        $this->serverId = $serverId;
    }

    /**
     * Returns the id of the source MediaFile object that this file was generated from.
     */
    public function getSourceMediaFileId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->sourceMediaFileId) {
            return new Uri();
        }

        return $this->sourceMediaFileId;
    }

    /**
     * Set the id of the source MediaFile object that this file was generated from.
     */
    public function setSourceMediaFileId(\Psr\Http\Message\UriInterface $sourceMediaFileId)
    {
        $this->sourceMediaFileId = $sourceMediaFileId;
    }

    /**
     * Returns the start time of this excerpt in the source file, in seconds.
     */
    public function getSourceTime(): ?float
    {
        return $this->sourceTime;
    }

    /**
     * Set the start time of this excerpt in the source file, in seconds.
     */
    public function setSourceTime(?float $sourceTime)
    {
        $this->sourceTime = $sourceTime;
    }

    /**
     * Returns the original source URL for this file.
     */
    public function getSourceUrl(): ?string
    {
        return $this->sourceUrl;
    }

    /**
     * Set the original source URL for this file.
     */
    public function setSourceUrl(?string $sourceUrl)
    {
        $this->sourceUrl = $sourceUrl;
    }

    /**
     * Returns the URL of the file's storage location.
     */
    public function getStorageUrl(): ?string
    {
        return $this->storageUrl;
    }

    /**
     * Set the URL of the file's storage location.
     */
    public function setStorageUrl(?string $storageUrl)
    {
        $this->storageUrl = $storageUrl;
    }

    /**
     * Returns the file's primary streaming URL.
     */
    public function getStreamingUrl(): ?string
    {
        return $this->streamingUrl;
    }

    /**
     * Set the file's primary streaming URL.
     */
    public function setStreamingUrl(?string $streamingUrl)
    {
        $this->streamingUrl = $streamingUrl;
    }

    /**
     * Returns the name of this object.
     */
    public function getTitle(): ?string
    {
        return $this->title;
    }

    /**
     * Set the name of this object.
     */
    public function setTitle(?string $title)
    {
        $this->title = $title;
    }

    /**
     * Returns the server information required to transfer the file.
     */
    public function getTransferInfo(): TransferInfo
    {
        return $this->transferInfo;
    }

    /**
     * Set the server information required to transfer the file.
     */
    public function setTransferInfo(TransferInfo $transferInfo)
    {
        $this->transferInfo = $transferInfo;
    }

    /**
     * Returns the id of the encoding template used to generate the file.
     */
    public function getTransformId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->transformId) {
            return new Uri();
        }

        return $this->transformId;
    }

    /**
     * Set the id of the encoding template used to generate the file.
     */
    public function setTransformId(\Psr\Http\Message\UriInterface $transformId)
    {
        $this->transformId = $transformId;
    }

    /**
     * Returns the date and time this object was last modified.
     */
    public function getUpdated(): \Lullabot\Mpx\DataService\DateTime\DateTimeFormatInterface
    {
        if (!$this->updated) {
            return new NullDateTime();
        }

        return $this->updated;
    }

    /**
     * Set the date and time this object was last modified.
     */
    public function setUpdated(\Lullabot\Mpx\DataService\DateTime\DateTimeFormatInterface $updated)
    {
        $this->updated = $updated;
    }

    /**
     * Returns the id of the user that last modified this object.
     */
    public function getUpdatedByUserId(): \Psr\Http\Message\UriInterface
    {
        if (!$this->updatedByUserId) {
            return new Uri();
        }

        return $this->updatedByUserId;
    }

    /**
     * Set the id of the user that last modified this object.
     */
    public function setUpdatedByUserId(\Psr\Http\Message\UriInterface $updatedByUserId)
    {
        $this->updatedByUserId = $updatedByUserId;
    }

    /**
     * Returns the URL of the file.
     */
    public function getUrl(): ?string
    {
        return $this->url;
    }

    /**
     * Set the URL of the file.
     */
    public function setUrl(?string $url)
    {
        $this->url = $url;
    }

    /**
     * Returns this object's modification version, used for optimistic locking.
     */
    public function getVersion(): ?int
    {
        return $this->version;
    }

    /**
     * Set this object's modification version, used for optimistic locking.
     */
    public function setVersion(?int $version)
    {
        $this->version = $version;
    }

    /**
     * Returns the name of this file's video codec.
     */
    public function getVideoCodec(): ?string
    {
        return $this->videoCodec;
    }

    /**
     * Set the name of this file's video codec.
     */
    public function setVideoCodec(?string $videoCodec)
    {
        $this->videoCodec = $videoCodec;
    }

    /**
     * Returns this file's frame width, in pixels.
     */
    public function getWidth(): ?int
    {
        return $this->width;
    }

    /**
     * Set this file's frame width, in pixels.
     */
    public function setWidth(?int $width)
    {
        $this->width = $width;
    }
}