public function get($id, Parameters $parameters = null)
    {
        if (null !== $id) {
            $resource = str_replace('{id}', $id, static::RESOURCE_OBJECT);
        } else {
            $key = $parameters->getKey();
            $tenantId = $parameters->getTenantId();

            switch (true) {
                case null !== $key && null !== $tenantId:
                    $resource = str_replace(['{key}', '{tenant-id}'], [$key, $tenantId], static::RESOURCE_OBJECT_BY_KEY_AND_TENANT_ID);
                    break;

                case null !== $key:
                    $resource = str_replace('{key}', $key, static::RESOURCE_OBJECT_BY_KEY);
                    break;

                default:
                    throw new LogicException('"Key" and/or "TenantId" parameters are not defined.');
            }
        }

        $options = [
            'headers' => [
                'Accept' => 'application/json'
            ]
        ];
        $object = $this->execute('GET', $resource, $options);
        $model = static::toModel($object);

        return $model;
    }