diff --git a/README.rst b/README.rst
index 2b67be4bdc..376d714488 100644
--- a/README.rst
+++ b/README.rst
@@ -1,1134 +1,118 @@
-.. raw:: html
-
-
-
-.. raw:: html
-
-
-
-SAM CLI (Beta)
-==============
-
-|Build Status| |Apache-2.0| |Contributers| |GitHub-release| |PyPI version|
-
-`Join the SAM developers channel (#samdev) on
-Slack `__ to collaborate with
-fellow community members and the AWS SAM team.
-
-``sam`` is the AWS CLI tool for managing Serverless applications
-written with `AWS Serverless Application Model
-(SAM) `__. SAM
-CLI can be used to test functions locally, start a local API Gateway
-from a SAM template, validate a SAM template, fetch logs, generate sample payloads
-for various event sources, and generate a SAM project in your favorite
-Lambda Runtime.
-
-- `SAM CLI (Beta) <#sam-cli-beta>`__
-
- - `Main features <#main-features>`__
- - `Installation <#installation>`__
-
- - `Prerequisites <#prerequisites>`__
- - `Windows, Linux, macOS with PIP <#windows-linux-macos-with-pip>`__
- - `Upgrade from 0.2.11, below or above <#upgrading>`__
-
- - `Usage <#usage>`__
-
- - `Invoke functions locally <#invoke-functions-locally>`__
- - `Run automated tests for your Lambda functions locally <#run-automated-tests-for-your-lambda-functions-locally>`__
- - `Generate sample event source
- payloads <#generate-sample-event-source-payloads>`__
- - `Run API Gateway locally <#run-api-gateway-locally>`__
- - `Debugging Applications <#debugging-applications>`__
-
- - `Debugging Python functions <#debugging-python-functions>`__
- - `Fetch, tail, and filter Lambda function logs <#fetch-tail-and-filter-lambda-function-logs>`__
- - `Validate SAM templates <#validate-sam-templates>`__
- - `Package and Deploy to
- Lambda <#package-and-deploy-to-lambda>`__
- - `Advanced <#advanced>`__
-
- - `Compiled Languages <#compiled-languages>`__
-
- - `Java <#java>`__
- - `.NET Core <#net_core>`__
-
- - `IAM Credentials <#iam-credentials>`__
- - `Lambda Environment
- Variables <#lambda-environment-variables>`__
-
- - `Environment Variable file <#environment-variable-file>`__
- - `Shell environment <#shell-environment>`__
- - `Combination of Shell and Environment Variable
- file <#combination-of-shell-and-environment-variable-file>`__
-
- - `Identifying local execution from Lambda function
- code <#identifying-local-execution-from-lambda-function-code>`__
- - `Static Assets <#static-assets>`__
- - `Local Logging <#local-logging>`__
- - `Remote Docker <#remote-docker>`__
-
- - `Advanced/Custom Installation <#advanced-installations>`__
-
- - `Build From Source <#build-from-source>`__
- - `Install with PyEnv <#install-with-pyenv>`__
- - `Troubleshooting <#troubleshooting>`__
-
- - `Mac <#mac-issues>`__
- - `Project Status <#project-status>`__
- - `Contributing <#contributing>`__
- - `A special thank you <#a-special-thank-you>`__
- - `Examples <#examples>`__
-
-Main features
--------------
-
-- Develop and test your Lambda functions locally with ``sam local`` and
- Docker
-- Invoke functions from known event sources such as Amazon S3, Amazon
- DynamoDB, Amazon Kinesis Streams, etc.
-- Start local API Gateway from a SAM template, and quickly iterate over
- your functions with hot-reloading
-- Validate SAM templates
-- Get started with boilerplate Serverless Service in your chosen Lambda
- Runtime ``sam init``
-
-Installation
-------------
-
-Prerequisites
-~~~~~~~~~~~~~
-
-- Docker
-- Python2.7 or Python3.6
-- `The AWS CLI `__
-
-Running Serverless projects and functions locally with SAM CLI requires
-Docker to be installed and running. SAM CLI will use the ``DOCKER_HOST``
-environment variable to contact the docker daemon.
-
-- **macOS**: `Docker for
- Mac `__
-- **Windows**: `Docker
- For Windows (create an account & follow through to download from the Docker Store) `__
-- **Linux**: Check your distro’s package manager (e.g. yum install docker)
-
-**Note for macOS and Windows users**: SAM CLI requires that the project directory
-(or any parent directory) is listed in `Docker file sharing options `__.
-
-Verify that docker is working, and that you can run docker commands from
-the CLI (e.g. `docker ps`). You do not need to install/fetch/pull any
-containers – SAM CLI will do it automatically as required.
-
-Windows, Linux, macOS with PIP
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Step 1. Verify Python Version is 2.7 or 3.6.
-
-.. code:: bash
-
- $ python --version
-
-If not installed, go `download python and install `_
-
-Step 2. Verify Pip is installed.
-
-The easiest way to install ``sam`` is to use
-`PIP `__.
-
-.. code:: bash
-
- $ pip --version
-
-If not installed, `download and install pip `_
-
-Step 3. Install aws-sam-cli
-
-.. code:: bash
-
- $ pip install --user aws-sam-cli
-
-Step 4. **Adjust your PATH** to include Python scripts installed under User's directory.
-
-macOS & Linux
-^^^^^^^^^^^^^
-
-In Unix/Mac systems the command ``python -m site --user-base`` typically print ``~/.local`` path, so that you'll need to add ``/bin`` to obtain the script path
-
-**NOTE**: As explained in the `Python Developer's Guide `__, the User's directory where the scripts are installed is ``~/.local/bin`` for Unix/Mac.
-
-
-.. code:: bash
-
- # Find your Python User Base path (where Python --user will install packages/scripts)
- $ USER_BASE_PATH=$(python -m site --user-base)
-
- # Update your preferred shell configuration
- ## Standard bash --> ~/.bash_profile
- ## ZSH --> ~/.zshrc
- $ export PATH=$PATH:$USER_BASE_PATH/bin
-
-Restart or Open up a new terminal and verify that the installation worked:
-
-.. code:: bash
-
- # Restart current shell
- $ exec "$SHELL"
- $ sam --version
-
-Windows
-^^^^^^^
-
-In Windows systems the command ``py -m site --user-site`` typically print ``%APPDATA%\Roaming\Python\site-packages``, so you'll need to remove the last ``\site-packages`` folder and replace it with the ``\Scripts`` one.
-
-.. code:: bash
-
- $ python -m site --user-base
-
-Using file explorer, go to the folder indicated in the output, and look for the ``Scripts`` folder. Visually confirm that sam Application is inside this folder.
-
-Copy the File Path.
-
-**NOTE**: As explained in the `Python Developer's Guide `__, the User's directory where the scripts are installed is ``%APPDATA%\Python\Scripts`` for Windows.
-
-Seach Windows for ``Edit the system environment variables``.
-
-Select **Enviromental Variables**.
-
-Under **System variables**, select **Path**.
-
-Select **New** and enter the file path to the Python Scripts folder.
-
-Step 5. Verify that sam is installed
-
-Restart or Open up a new terminal and verify that the installation worked:
-
-.. code:: bash
-
- # Restart current shell
- $ sam --version
-
-
-Upgrading
-~~~~~~~~~~
-
-``sam`` can be upgraded via pip:
-
-.. code:: bash
-
- $ pip install --user --upgrade aws-sam-cli
-
-Previous CLI Versions must be uninstalled first (0.2.11 or below) and then follow the `Installation <#windows-linux-macos-with-pip>`__ steps above:
-
-.. code:: bash
-
- $ npm uninstall -g aws-sam-local
-
-Usage
------
-
-**Create a sample app with sam init command**: ``sam init`` or ``sam init --runtime ``
-
-``sam`` requires a SAM template in order to know how to invoke your
-function locally, and it’s also true for spawning API Gateway locally -
-If no template is specified ``template.yaml`` will be used instead.
-
-Alternatively, you can find other sample SAM Templates by visiting `SAM `__ official repository.
-
-Invoke functions locally
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. figure:: media/sam-invoke.gif
- :alt: SAM CLI Invoke Sample
-
- SAM CLI Invoke Sample
-
-You can invoke your function locally by passing its **SAM logical ID**
-and an event file. Alternatively, ``sam local invoke`` accepts stdin as
-an event too.
-
-.. code:: yaml
-
- Resources:
- Ratings: # <-- Logical ID
- Type: 'AWS::Serverless::Function'
- ...
-
-**Syntax**
-
-.. code:: bash
-
- # Invoking function with event file
- $ sam local invoke "Ratings" -e event.json
-
- # Invoking function with event via stdin
- $ echo '{"message": "Hey, are you there?" }' | sam local invoke "Ratings"
-
- # For more options
- $ sam local invoke --help
-
-
-Run automated tests for your Lambda functions locally
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can use the ``sam local invoke`` command to manually test your code
-by running Lambda function locally. With SAM CLI, you can easily
-author automated integration tests by
-first running tests against local Lambda functions before deploying to the
-cloud. The ``sam local start-lambda`` command starts a local
-endpoint that emulates the AWS Lambda service’s invoke endpoint, and you
-can invoke it from your automated tests. Because this endpoint emulates
-the Lambda service's invoke endpoint, you can write tests once and run
-them (without any modifications) against the local Lambda function or
-against a deployed Lambda function. You can also run the same tests
-against a deployed SAM stack in your CI/CD pipeline.
-
-Here is how this works:
-
-**1. Start the Local Lambda Endpoint**
-
-Start the local Lambda endpoint by running the following command in the directory that contains your AWS
-SAM template:
-
-.. code:: bash
-
- sam local start-lambda
-
-This command starts a local endpoint at http://127.0.0.1:3001 that
-emulates the AWS Lambda service, and you can run your automated tests
-against this local Lambda endpoint. When you send an invoke to this
-endpoint using the AWS CLI or SDK, it will locally execute the Lambda
-function specified in the request and return a response.
-
-**2. Run integration test against local Lambda endpoint**
-
-In your integration test, you can use AWS SDK to invoke your Lambda function
-with test data, wait for response, and assert that the response what you
-expect. To run the integration test locally, you should configure AWS
-SDK to send Lambda Invoke API call to local Lambda endpoint started in
-previous step.
-
-Here is an Python example (AWS SDK for other languages have similar
-configurations):
-
-.. code:: python
-
- import boto3
- import botocore
-
- # Set "running_locally" flag if you are running the integration test locally
- running_locally = True
-
- if running_locally:
-
- # Create Lambda SDK client to connect to appropriate Lambda endpoint
- lambda_client = boto3.client('lambda',
- region_name="us-west-2",
- endpoint_url="http://127.0.0.1:3001",
- use_ssl=False,
- verify=False,
- config=botocore.client.Config(
- signature_version=botocore.UNSIGNED,
- read_timeout=0,
- retries={'max_attempts': 0},
- )
- )
- else:
- lambda_client = boto3.client('lambda')
-
-
- # Invoke your Lambda function as you normally usually do. The function will run
- # locally if it is configured to do so
- response = lambda_client.invoke(FunctionName="HelloWorldFunction")
-
- # Verify the response
- assert response == "Hello World"
-
-This code can run without modifications against a Lambda function which
-is deployed. To do so, set the ``running_locally`` flag to ``False`` .
-This will setup AWS SDK to connect to AWS Lambda service on the cloud.
-
-Connecting to docker network
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Both ``sam local invoke`` and ``sam local start-api`` support connecting
-the create lambda docker containers to an existing docker network.
-
-To connect the containers to an existing docker network, you can use the
-``--docker-network`` command-line argument or the ``SAM_DOCKER_NETWORK``
-environment variable along with the name or id of the docker network you
-wish to connect to.
-
-.. code:: bash
-
- # Invoke a function locally and connect to a docker network
- $ sam local invoke --docker-network my-custom-network
-
- # Start local API Gateway and connect all containers to a docker network
- $ sam local start-api --docker-network b91847306671 -d 5858
-
-
-Generate sample event source payloads
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To make local development and testing of Lambda functions easier, you
-can generate mock/sample event payloads for the following services:
-
-- S3
-- Kinesis Streams
-- DynamoDB
-- Cloudwatch Scheduled Event
-- API Gateway
-- SNS
-
-**Syntax**
-
-.. code:: bash
-
- $ sam local generate-event
-
-Also, you can invoke an individual lambda function locally from a sample
-event payload - Here’s an example using S3:
-
-.. code:: bash
-
- $ sam local generate-event s3 --bucket --key | sam local invoke
-
-For more options, see ``sam local generate-event --help``.
-
-Run API Gateway locally
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``sam local start-api`` spawns a local API Gateway to test HTTP
-request/response functionality. Features hot-reloading to allow you to
-quickly develop and iterate over your functions.
-
-.. figure:: media/sam-start-api.gif
- :alt: SAM CLI Start API
-
- SAM CLI Start API
-
-**Syntax**
-
-.. code:: bash
-
- $ sam local start-api
-
-``sam`` will automatically find any functions within your SAM
-template that have ``Api`` event sources defined, and mount them at the
-defined HTTP paths.
-
-In the example below, the ``Ratings`` function would mount
-``ratings.py:handler()`` at ``/ratings`` for ``GET`` requests.
-
-.. code:: yaml
-
- Ratings:
- Type: AWS::Serverless::Function
- Properties:
- Handler: ratings.handler
- Runtime: python3.6
- Events:
- Api:
- Type: Api
- Properties:
- Path: /ratings
- Method: get
-
-By default, SAM uses `Proxy
-Integration `__
-and expects the response from your Lambda function to include one or
-more of the following: ``statusCode``, ``headers`` and/or ``body``.
-
-For example:
-
-.. code:: javascript
-
- // Example of a Proxy Integration response
- exports.handler = (event, context, callback) => {
- callback(null, {
- statusCode: 200,
- headers: { "x-custom-header" : "my custom header value" },
- body: "hello world"
- });
- }
-
-For examples in other AWS Lambda languages, see `this
-page `__.
-
-If your function does not return a valid `Proxy
-Integration `__
-response then you will get a HTTP 500 (Internal Server Error) when
-accessing your function. SAM CLI will also print the following error log
-message to help you diagnose the problem:
-
-::
-
- ERROR: Function ExampleFunction returned an invalid response (must include one of: body, headers or statusCode in the response object)
-
-Debugging Applications
-~~~~~~~~~~~~~~~~~~~~~~
-
-Both ``sam local invoke`` and ``sam local start-api`` support local
-debugging of your functions.
-
-To run SAM Local with debugging support enabled, just specify
-``--debug-port`` or ``-d`` on the command line.
-
-.. code:: bash
-
- # Invoke a function locally in debug mode on port 5858
- $ sam local invoke -d 5858
-
- # Start local API Gateway in debug mode on port 5858
- $ sam local start-api -d 5858
-
-Note: If using ``sam local start-api``, the local API Gateway will
-expose all of your Lambda functions but, since you can specify a single
-debug port, you can only debug one function at a time. You will need to
-hit your API before SAM CLI binds to the port allowing the debugger to
-connect.
-
-Here is an example showing how to debug a NodeJS function with Microsoft
-Visual Studio Code:
-
-.. figure:: media/sam-debug.gif
- :alt: SAM Local debugging example
-
- SAM Local debugging example
-
-In order to setup Visual Studio Code for debugging with AWS SAM CLI, use
-the following launch configuration:
-
-.. code:: json
-
- {
- "version": "0.2.0",
- "configurations": [
- {
- "name": "Attach to SAM CLI",
- "type": "node",
- "request": "attach",
- "address": "localhost",
- "port": 5858,
- "localRoot": "${workspaceRoot}",
- "remoteRoot": "/var/task",
- "protocol": "legacy"
- }
- ]
- }
-
-Note: Node.js versions **below** 7 (e.g. Node.js 4.3 and Node.js 6.10)
-use the ``legacy`` protocol, while Node.js versions including and above
-7 (e.g. Node.js 8.10) use the ``inspector`` protocol. Be sure to specify
-the corresponding protocol in the ``protocol`` entry of your launch
-configuration.
-
-Debugging Python functions
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Unlike Node.JS and Java, Python requires you to enable remote debugging
-in your Lambda function code. If you enable debugging with
-``--debug-port`` or ``-d`` for a function that uses one of the Python
-runtimes, SAM CLI will just map through that port from your host machine
-through to the Lambda runtime container. You will need to enable remote
-debugging in your function code. To do this, use a python package such
-as `remote-pdb `__. When
-configuring the host the debugger listens on in your code, make sure to
-use ``0.0.0.0`` not ``127.0.0.1`` to allow Docker to map through the
-port to your host machine.
-
- Please note, due to a `open
- bug `__ with
- Visual Studio Code, you may get a
- ``Debug adapter process has terminated unexpectedly`` error when
- attempting to debug Python applications with this IDE. Please track
- the `GitHub
- issue `__ for
- updates.
-
-Debugging Golang functions
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Golang function debugging is slightly different when compared to Node.JS,
-Java, and Python. We require `delve `__
-as the debugger, and wrap your function with it at runtime. The debugger
-is run in headless mode, listening on the debug port.
-
-When debugging, you must compile your function in debug mode:
-
-`GOARCH=amd64 GOOS=linux go build -gcflags='-N -l' -o