# Summary

### Documentation

  * [Introduction](README.md)
    * [What is Policy?](README.md#what-is-policy)
    * [What is Policy Enablement?](README.md#what-is-policy-enablement)
    * [What is OPA?](README.md#what-is-opa)
    * [Why use OPA?](README.md#why-use-opa)
  * [How Does OPA Work?](how-does-opa-work.md)
    * [Overview](how-does-opa-work.md#overview)
    * [Deployment](how-does-opa-work.md#deployment)
    * [Data and Policies](how-does-opa-work.md#data-and-policies)
      * [Base Documents](how-does-opa-work.md#base-documents)
      * [Policies](how-does-opa-work.md#policies)
      * [Rules and Virtual Documents](how-does-opa-work.md#virtual-documents)
      * [The `data` Document](how-does-opa-work.md#the-data-document)
      * [The `input` Document](how-does-opa-work.md#the-input-document)
    * [Putting It All Together](how-does-opa-work.md#putting-it-all-together)
    * [Future Features](how-does-opa-work.md#future-features)
  * [How Do I Write Policies?](how-do-i-write-policies.md)
    * [What is Rego?](how-do-i-write-policies.md#what-is-rego)
    * [Why use Rego?](how-do-i-write-policies.md#why-use-rego)
    * [The Basics](how-do-i-write-policies.md#the-basics)
    * [Scalar Values](how-do-i-write-policies.md#scalar-values)
    * [Composite Values](how-do-i-write-policies.md#composite-values)
      * [Sets](how-do-i-write-policies.md#sets)
    * [Variables](how-do-i-write-policies.md#variables)
    * [References](how-do-i-write-policies.md#references)
      * [Variable Keys](how-do-i-write-policies.md#variable-keys)
      * [Multiple Expressions](how-do-i-write-policies.md#multiple-expressions)
      * [Self-Joins](how-do-i-write-policies.md#self-joins)
    * [Comprehensions](how-do-i-write-policies.md#comprehensions)
      * [Array Comprehensions](how-do-i-write-policies.md#array-comprehensions)
      * [Object Comprehensions](how-do-i-write-policies.md#object-comprehensions)
      * [Set Comprehensions](how-do-i-write-policies.md#set-comprehensions)
    * [Rules](how-do-i-write-policies.md#rules)
      * [Generating Sets](how-do-i-write-policies.md#generating-sets)
      * [Generating Objects](how-do-i-write-policies.md#generating-objects)
      * [Incremental Definitions](how-do-i-write-policies.md#incremental-definitions)
      * [Complete Definitions](how-do-i-write-policies.md#complete-definitions)
    * [Functions](how-do-i-write-policies.md#functions)
    * [Negation](how-do-i-write-policies.md#negation)
    * [Modules](how-do-i-write-policies.md#modules)
      * [Comments](how-do-i-write-policies.md#comments)
      * [Imports](how-do-i-write-policies.md#imports)
    * [With Keyword](how-do-i-write-policies.md#with-keyword)
    * [Default Keyword](how-do-i-write-policies.md#default-keyword)
    * [Else Keyword](how-do-i-write-policies.md#else-keyword)
    * [Operators](how-do-i-write-policies.md#operators)
      * [Equality](how-do-i-write-policies.md#equality)
      * [Inequality](how-do-i-write-policies.md#inequality)
    * [Built-in Functions](how-do-i-write-policies.md#built-in-functions)
    * [Example Data](how-do-i-write-policies.md#example-data)
  * [Language Reference](language-reference.md)
    * [Built-in Functions](language-reference.md#built-in-functions)
      * [Inequality](language-reference.md#inequality)
      * [Numbers](language-reference.md#numbers)
      * [Aggregates](language-reference.md#aggregates)
      * [Sets](language-reference.md#sets)
      * [Strings](language-reference.md#strings)
      * [Types](language-reference.md#types)
      * [Encoding](language-reference.md#encoding)
      * [Tokens](language-reference.md#tokens)
      * [Time](language-reference.md#time)
    * [Reserved Names](language-reference.md#reserved-names)
    * [Grammar](language-reference.md#grammar)
  * [REST API](rest-api.md)
    * [Policy API](rest-api.md#policy-api)
      * [List Policies](rest-api.md#list-policies)
      * [Get a Policy](rest-api.md#get-a-policy)
      * [Create or Update a Policy](rest-api.md#create-or-update-a-policy)
      * [Delete a Policy](rest-api.md#delete-a-policy)
    * [Data API](rest-api.md#data-api)
      * [Get a Document](rest-api.md#get-a-document)
      * [Get a Document (with Input)](rest-api.md#get-a-document-with-input)
      * [Get a Document (Webhook)](rest-api.md#get-a-document-webhook)
      * [Create or Overwrite a Document](rest-api.md#create-or-overwrite-a-document)
      * [Patch a Document](rest-api.md#patch-a-document)
    * [Query API](rest-api.md#query-api)
      * [Execute a Simple Query](rest-api.md#execute-a-simple-query)
      * [Execute an Ad-hoc Query](rest-api.md#execute-an-ad-hoc-query)
    * [Authentication](rest-api.md#authentication)
      * [Bearer Tokens](rest-api.md#bearer-tokens)
    * [Errors](rest-api.md#errors)
    * [Explanations](rest-api.md#explanations)
      * [Trace Events](rest-api.md#trace-events)
    * [Performance Metrics](rest-api.md#performance-metrics)
    * [Diagnostics](rest-api.md#diagnostics)
    * [Watches](rest-api.md#watches)
  * [Deployments](deployments.md)
    * [Docker](deployments.md#docker)
      * [Running with Docker](deployments.md#running-with-docker)
    * [Kubernetes](deployments.md#kubernetes)
      * [Kicking the Tires](deployments.md#kicking-the-tires)
  * [Security](security.md)
    * [TLS & HTTPS](security.md#tls-and-https)
    * [Authentication & Authorization](security.md#authentication-and-authorization)
  * [FAQ](faq.md)

### Tutorials

  * [Get Started](get-started.md)
  * [Docker Authorization](docker-authorization.md)
  * [HTTP API Authorization](http-api-authorization.md)
  * [SSH and sudo Authorization](ssh-and-sudo-authorization.md)
  * [Kubernetes Admission Control](kubernetes-admission-control.md)
  * [Terraform Testing](terraform.md)
