public function formatParameters()
    {
        switch ($this->type()) {
            case TargetEnum::TYPE_CD:
                return $this->parameter('group') ?: '???';

            case TargetEnum::TYPE_EB:
                return $this->parameter('environment') ?: '???';

            case TargetEnum::TYPE_S3:
                $bucket = $this->parameter('bucket') ?: '???';
                if ($path = $this->parameter('path')) {
                    $bucket = sprintf('%s/%s', $bucket, $path);

                    if ($source = $this->parameter('source')) {
                        $bucket = sprintf('%s:%s', $source, $bucket);
                    }
                }

                return $bucket;

            case TargetEnum::TYPE_SCRIPT:
                return $this->parameter('context') ?: '???';

            case TargetEnum::TYPE_RSYNC:
                return $this->parameter('path') ?: '???';

            default:
                return 'Unknown';
        }
    }