public function upload($rawMedia = null, $base64Media = null, $owners = null)
	{
		// Check the rate limit for remaining hits
		$this->checkRateLimit('media', 'upload');

		// Determine which type of data was passed for $media
		if ($rawMedia !== null)
		{
			$data['media'] = $rawMedia;
		}
		elseif ($base64Media !== null)
		{
			$data['media_data'] = $base64Media;
		}
		else
		{
			// We don't have a valid entry
			throw new \RuntimeException('You must specify at least one valid media type.');
		}

		if ($rawMedia !== null && $base64Media !== null)
		{
			throw new \RuntimeException('You may only specify one type of media.');
		}

		if ($owners !== null)
		{
			$data['additional_owners'] = $owners;
		}

		// Set the API path
		$path = '/media/upload.json';

		// Send the request.
		return $this->sendRequest($path, 'POST', $data);
	}