diff --git a/Annotation/ApiDoc.php b/Annotation/ApiDoc.php
index aca0393..4086a98 100644
--- a/Annotation/ApiDoc.php
+++ b/Annotation/ApiDoc.php
@@ -18,8 +18,6 @@ use Symfony\Component\Routing\Route;
  */
 class ApiDoc
 {
-    const DEFAULT_VIEW = 'default';
-
     /**
      * Requirements are mandatory parameters in a route.
      *
@@ -27,13 +25,6 @@ class ApiDoc
      */
     private $requirements = array();
 
-    /**
-     * Which views is this route used. Defaults to "Default".
-     *
-     * @var array
-     */
-    private $views = array();
-
     /**
      * Filters are optional parameters in the query string.
      *
@@ -76,55 +67,11 @@ class ApiDoc
      */
     private $description = null;
 
-    /**
-     * Section to group actions together.
-     *
-     * @var string
-     */
-    private $section = null;
-
-    /**
-     * Extended documentation.
-     *
-     * @var string
-     */
-    private $documentation = null;
-
-    /**
-     * @var bool
-     */
-    private $resource = false;
-
-    /**
-     * @var string
-     */
-    private $method;
-
-    /**
-     * @var string
-     */
-    private $host;
-
-    /**
-     * @var string
-     */
-    private $uri;
-
     /**
      * @var array
      */
     private $response = array();
 
-    /**
-     * @var Route
-     */
-    private $route;
-
-    /**
-     * @var bool
-     */
-    private $https = false;
-
     /**
      * @var bool
      */
@@ -135,11 +82,6 @@ class ApiDoc
      */
     private $authenticationRoles = array();
 
-    /**
-     * @var int
-     */
-    private $cache;
-
     /**
      * @var bool
      */
@@ -150,11 +92,6 @@ class ApiDoc
      */
     private $statusCodes = array();
 
-    /**
-     * @var string|null
-     */
-    private $resourceDescription = null;
-
     /**
      * @var array
      */
@@ -172,8 +109,6 @@ class ApiDoc
 
     public function __construct(array $data)
     {
-        $this->resource = !empty($data['resource']) ? $data['resource'] : false;
-
         if (isset($data['description'])) {
             $this->description = $data['description'];
         }
@@ -208,16 +143,6 @@ class ApiDoc
             }
         }
 
-        if (isset($data['views'])) {
-            if (!is_array($data['views'])) {
-                $data['views'] = array($data['views']);
-            }
-
-            foreach ($data['views'] as $view) {
-                $this->addView($view);
-            }
-        }
-
         if (isset($data['parameters'])) {
             foreach ($data['parameters'] as $parameter) {
                 if (!isset($parameter['name'])) {
@@ -271,14 +196,6 @@ class ApiDoc
             }
         }
 
-        if (isset($data['cache'])) {
-            $this->setCache($data['cache']);
-        }
-
-        if (isset($data['section'])) {
-            $this->section = $data['section'];
-        }
-
         if (isset($data['deprecated'])) {
             $this->deprecated = $data['deprecated'];
         }
@@ -297,14 +214,6 @@ class ApiDoc
             }
         }
 
-        if (isset($data['https'])) {
-            $this->https = $data['https'];
-        }
-
-        if (isset($data['resourceDescription'])) {
-            $this->resourceDescription = $data['resourceDescription'];
-        }
-
         if (isset($data['responseMap'])) {
             $this->responseMap = $data['responseMap'];
             if (isset($this->responseMap[200])) {
@@ -397,70 +306,6 @@ class ApiDoc
         $this->link = $link;
     }
 
-    /**
-     * @param string $section
-     */
-    public function setSection($section)
-    {
-        $this->section = $section;
-    }
-
-    /**
-     * @return string
-     */
-    public function getSection()
-    {
-        return $this->section;
-    }
-
-    /**
-     * @return array
-     */
-    public function addView($view)
-    {
-        $this->views[] = $view;
-    }
-
-    /**
-     * @return array
-     */
-    public function getViews()
-    {
-        return $this->views;
-    }
-
-    /**
-     * @param string $documentation
-     */
-    public function setDocumentation($documentation)
-    {
-        $this->documentation = $documentation;
-    }
-
-    /**
-     * @return string
-     */
-    public function getDocumentation()
-    {
-        return $this->documentation;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isResource()
-    {
-        return (bool) $this->resource;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getResource()
-    {
-        return $this->resource && is_string($this->resource) ? $this->resource : false;
-    }
-
     /**
      * @param string $name
      * @param array  $parameter
@@ -497,70 +342,6 @@ class ApiDoc
         $this->response = $response;
     }
 
-    /**
-     * @param Route $route
-     */
-    public function setRoute(Route $route)
-    {
-        $this->route = $route;
-
-        if (method_exists($route, 'getHost')) {
-            $this->host = $route->getHost() ?: null;
-
-            //replace route placeholders
-            foreach ($route->getDefaults() as $key => $value) {
-                if (is_string($value)) {
-                    $this->host = str_replace('{'.$key.'}', $value, $this->host);
-                }
-            }
-        } else {
-            $this->host = null;
-        }
-
-        $this->uri = $route->getPath();
-        $this->method = $route->getMethods() ? implode('|', $route->getMethods()) : 'ANY';
-    }
-
-    /**
-     * @return Route
-     */
-    public function getRoute()
-    {
-        return $this->route;
-    }
-
-    /**
-     * @return string
-     */
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    /**
-     * @param string $host
-     */
-    public function setHost($host)
-    {
-        $this->host = $host;
-    }
-
-    /**
-     * @return bool
-     */
-    public function getHttps()
-    {
-        return $this->https;
-    }
-
-    /**
-     * @param bool $https
-     */
-    public function setHttps($https)
-    {
-        $this->https = $https;
-    }
-
     /**
      * @return bool
      */
@@ -593,22 +374,6 @@ class ApiDoc
         $this->authenticationRoles = $authenticationRoles;
     }
 
-    /**
-     * @return int
-     */
-    public function getCache()
-    {
-        return $this->cache;
-    }
-
-    /**
-     * @param int $cache
-     */
-    public function setCache($cache)
-    {
-        $this->cache = (int) $cache;
-    }
-
     /**
      * @return bool
      */
@@ -661,28 +426,11 @@ class ApiDoc
         return $this;
     }
 
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
     /**
      * @return array
      */
     public function toArray()
     {
-        $data = array(
-            'method' => $this->method,
-            'uri' => $this->uri,
-        );
-
-        if ($host = $this->host) {
-            $data['host'] = $host;
-        }
-
         if ($description = $this->description) {
             $data['description'] = $description;
         }
@@ -691,10 +439,6 @@ class ApiDoc
             $data['link'] = $link;
         }
 
-        if ($documentation = $this->documentation) {
-            $data['documentation'] = $documentation;
-        }
-
         if ($filters = $this->filters) {
             $data['filters'] = $filters;
         }
@@ -711,10 +455,6 @@ class ApiDoc
             $data['requirements'] = $requirements;
         }
 
-        if ($views = $this->views) {
-            $data['views'] = $views;
-        }
-
         if ($response = $this->response) {
             $data['response'] = $response;
         }
@@ -727,23 +467,10 @@ class ApiDoc
             $data['statusCodes'] = $statusCodes;
         }
 
-        if ($section = $this->section) {
-            $data['section'] = $section;
-        }
-
-        if ($cache = $this->cache) {
-            $data['cache'] = $cache;
-        }
-
         if ($tags = $this->tags) {
             $data['tags'] = $tags;
         }
 
-        if ($resourceDescription = $this->resourceDescription) {
-            $data['resourceDescription'] = $resourceDescription;
-        }
-
-        $data['https'] = $this->https;
         $data['authentication'] = $this->authentication;
         $data['authenticationRoles'] = $this->authenticationRoles;
         $data['deprecated'] = $this->deprecated;
@@ -751,14 +478,6 @@ class ApiDoc
         return $data;
     }
 
-    /**
-     * @return null|string
-     */
-    public function getResourceDescription()
-    {
-        return $this->resourceDescription;
-    }
-
     /**
      * @return array
      */
diff --git a/UPGRADING-3.0.md b/UPGRADING-3.0.md
new file mode 100644
index 0000000..a898166
--- /dev/null
+++ b/UPGRADING-3.0.md
@@ -0,0 +1,21 @@
+# Upgrading From 2.x To 3.0
+
+NelmioApiDocBundle has been entirely refactored in 3.0 to focus on Swagger
+and most of it has changed.
+However, we tried to keep its API as familiar as possible: the `@ApiDoc`
+annotation is kept and the bundle remains the same (it is required the same
+way it was in 2.0).
+
+## Upgrade Your Annotations
+
+Some fields of the `@ApiDoc` annotation were removed as they are no
+longer used by the bundle:
+
+- `section`
+- `views`
+- `host`
+- `cache`
+- `resource`
+- `resourceDescription`
+- `https`, add a scheme requirement to your route instead
+- `documentation`, use `description` instead