<!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
   http://www.apache.org/licenses/LICENSE-2.0
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License. See accompanying LICENSE file.
-->

<li><span class="section-nav-list-main-title">Documentation</span></li>
<li><a href="{{ site.baseurl }}/documentation">Using the Documentation</a></li>
<li><a href="{{ site.baseurl }}/documentation/execution-model">Beam Execution Model</a></li>
<li>
  <span class="section-nav-list-title">Pipeline development lifecycle</span>

  <ul class="section-nav-list">
    <li><a href="{{ site.baseurl }}/documentation/pipelines/design-your-pipeline/">Design Your Pipeline</a></li>
    <li><a href="{{ site.baseurl }}/documentation/pipelines/create-your-pipeline/">Create Your Pipeline</a></li>
    <li><a href="{{ site.baseurl }}/documentation/pipelines/test-your-pipeline/">Test Your Pipeline</a></li>
  </ul>
</li>
<li>
  <span class="section-nav-list-title">Beam programming guide</span>

  <ul class="section-nav-list">
    <li><a href="{{ site.baseurl }}/documentation/programming-guide/">Overview</a></li>
    <li><a href="{{ site.baseurl }}/documentation/programming-guide/#creating-a-pipeline">Pipelines</a></li>
    <li class="section-nav-item--collapsible">
      <span class="section-nav-list-title">PCollections</span>

      <ul class="section-nav-list">
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#pcollections">Creating a PCollection</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#pcollection-characteristics">PCollection characteristics</a></li>
      </ul>
    </li>
    <li class="section-nav-item--collapsible">
      <span class="section-nav-list-title">Transforms</span>

      <ul class="section-nav-list">
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#applying-transforms">Applying transforms</a></li>
        <li>
          <span class="section-nav-list-title">Core Beam transforms</span>

          <ul class="section-nav-list">
            <li><a href="{{ site.baseurl }}/documentation/programming-guide/#pardo">ParDo</a></li>
            <li><a href="{{ site.baseurl }}/documentation/programming-guide/#groupbykey">GroupByKey</a></li>
            <li><a href="{{ site.baseurl }}/documentation/programming-guide/#cogroupbykey">CoGroupByKey</a></li>
            <li><a href="{{ site.baseurl }}/documentation/programming-guide/#combine">Combine</a></li>
            <li><a href="{{ site.baseurl }}/documentation/programming-guide/#flatten">Flatten</a></li>
            <li><a href="{{ site.baseurl }}/documentation/programming-guide/#partition">Partition</a></li>
          </ul>
        </li>

        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#requirements-for-writing-user-code-for-beam-transforms">Requirements for user code</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#side-inputs">Side inputs</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#additional-outputs">Additional outputs</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#composite-transforms">Composite transforms</a></li>
      </ul>
    </li>
    <li class="section-nav-item--collapsible">
      <span class="section-nav-list-title">Pipeline I/O</span>

      <ul class="section-nav-list">
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#pipeline-io">Using I/O transforms</a></li>
        <li><a href="{{ site.baseurl }}/documentation/io/built-in/">Built-in I/O connectors</a></li>

        <li class="section-nav-item--collapsible">
           <span class="section-nav-list-title">Developing new I/O connectors</span>

          <ul class="section-nav-list">
           <li><a href="{{ site.baseurl }}/documentation/io/developing-io-overview/">Overview: Developing connectors</a></li>
           <li><a href="{{ site.baseurl }}/documentation/io/developing-io-java/">Developing connectors (Java)</a></li>
           <li><a href="{{ site.baseurl }}/documentation/io/developing-io-python/">Developing connectors (Python)</a></li>
          </ul>
        </li>

        <li><a href="{{ site.baseurl }}/documentation/io/testing/">Testing I/O transforms</a></li>
      </ul>
    </li>
    <li class="section-nav-item--collapsible">
      <span class="section-nav-list-title">Data encoding and type safety</span>

      <ul class="section-nav-list">
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#data-encoding-and-type-safety">Data encoding basics</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#specifying-coders">Specifying coders</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#default-coders-and-the-coderregistry">Default coders and the CoderRegistry</a></li>
      </ul>
    </li>
    <li class="section-nav-item--collapsible">
      <span class="section-nav-list-title">Windowing</span>

      <ul class="section-nav-list">
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#windowing">Windowing basics</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#provided-windowing-functions">Provided windowing functions</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#setting-your-pcollections-windowing-function">Setting your PCollection’s windowing function</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#watermarks-and-late-data">Watermarks and late data</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#adding-timestamps-to-a-pcollections-elements">Adding timestamps to a PCollection’s elements</a></li>
      </ul>
    </li>
    <li class="section-nav-item--collapsible">
      <span class="section-nav-list-title">Triggers</span>

      <ul class="section-nav-list">
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#triggers">Trigger basics</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#event-time-triggers">Event time triggers and the default trigger</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#processing-time-triggers">Processing time triggers</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#data-driven-triggers">Data-driven triggers</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#setting-a-trigger">Setting a trigger</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#composite-triggers">Composite triggers</a></li>
      </ul>
    </li>
    <li class="section-nav-item--collapsible">
      <span class="section-nav-list-title">Metrics</span>

      <ul class="section-nav-list">
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#metrics">Metrics basics</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#types-of-metrics">Types of metrics</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#querying-metrics">Querying metrics</a></li>
        <li><a href="{{ site.baseurl }}/documentation/programming-guide/#using-metrics">Using metrics in pipeline</a></li>
      </ul>
    </li>
  </ul>
</li>

<li class="section-nav-item--collapsible">
  <span class="section-nav-list-title">Transform catalog</span>

  <ul class="section-nav-list">
  <li class="section-nav-item--collapsible">
    <span class="section-nav-list-title">Python</span>

    <ul class="section-nav-list">
      <li><a href="{{ site.baseurl }}/documentation/transforms/python/overview/">Overview</a></li>
      <li class="section-nav-item--collapsible">
        <span class="section-nav-list-title">Element-wise</span>

        <ul class="section-nav-list">
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/filter/">Filter</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/flatmap/">FlatMap</a></li>  
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/keys/">Keys</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/kvswap/">KvSwap</a></li> 
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/map/">Map</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/pardo/">ParDo</a></li>   
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/partition/">Partition</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/regex/">Regex</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/reify/">Reify</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/tostring/">ToString</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/values/">Values</a></li>          
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/elementwise/withtimestamps/">WithTimestamps</a></li>                                              
        </ul>
      </li>
      <li class="section-nav-item--collapsible">
        <span class="section-nav-list-title">Aggregation</span>

        <ul class="section-nav-list">
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/cogroupbykey/">CoGroupByKey</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/combineglobally/">CombineGlobally</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/count/">Count</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/distinct/">Distinct</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/groupbykey/">GroupByKey</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/mean/">Mean</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/sample/">Sample</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/aggregation/top/">Top</a></li>
        </ul>
      </li>
      <li class="section-nav-item--collapsible">
        <span class="section-nav-list-title">Other</span>

        <ul class="section-nav-list">
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/other/create/">Create</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/other/flatten/">Flatten</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/other/reshuffle/">Reshuffle</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/python/other/windowinto/">WindowInto</a></li>
        </ul>
      </li>
    </ul>
  </li>   

  <li class="section-nav-item--collapsible">
    <span class="section-nav-list-title">Java</span>

    <ul class="section-nav-list">
      <li><a href="{{ site.baseurl }}/documentation/transforms/java/overview/">Overview</a></li>
      <li class="section-nav-item--collapsible">
        <span class="section-nav-list-title">Element-wise</span>

        <ul class="section-nav-list">
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/filter/">Filter</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/flatmapelements/">FlatMapElements</a></li>  
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/keys/">Keys</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/kvswap/">KvSwap</a></li> 
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/mapelements/">MapElements</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/pardo/">ParDo</a></li>   
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/partition/">Partition</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/regex/">Regex</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/reify/">Reify</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/values/">Values</a></li>           
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/tostring/">ToString</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/withkeys/">WithKeys</a></li> 
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/elementwise/withtimestamps/">WithTimestamps</a></li>                                             
        </ul>
      </li>
      <li class="section-nav-item--collapsible">
        <span class="section-nav-list-title">Aggregation</span>

        <ul class="section-nav-list">
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/approximatequantiles/">ApproximateQuantiles</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/approximateunique/">ApproximateUnique</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/cogroupbykey/">CoGroupByKey</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/combine/">Combine</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/combinewithcontext/">CombineWithContext</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/count/">Count</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/distinct/">Distinct</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/groupbykey/">GroupByKey</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/groupintobatches/">GroupIntoBatches</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/latest/">Latest</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/max/">Max</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/mean/">Mean</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/min/">Min</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/sample/">Sample</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/sum/">Sum</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/aggregation/top/">Top</a></li>
        </ul>
      </li>
      <li class="section-nav-item--collapsible">
        <span class="section-nav-list-title">Other</span>

        <ul class="section-nav-list">
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/other/create/">Create</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/other/flatten/">Flatten</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/other/passert/">PAssert</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/other/view/">View</a></li>
          <li><a href="{{ site.baseurl }}/documentation/transforms/java/other/window/">Window</a></li>
        </ul>
      </li>
    </ul>
  </li>   
  </ul>

</li>

<li class="section-nav-item--collapsible">
  <span class="section-nav-list-title">Common pipeline patterns</span>

  <ul class="section-nav-list">
    <li><a href="{{ site.baseurl }}/documentation/patterns/overview/">Overview</a></li>
    <li><a href="{{ site.baseurl }}/documentation/patterns/file-processing-patterns/">File processing patterns</a></li>
    <li><a href="{{ site.baseurl }}/documentation/patterns/side-input-patterns/">Side input patterns</a></li>
    <li><a href="{{ site.baseurl }}/documentation/patterns/pipeline-option-patterns/">Pipeline option patterns</a></li>
    <li><a href="{{ site.baseurl }}/documentation/patterns/custom-io-patterns/">Custom I/O patterns</a></li>
  </ul>
</li>

<li class="section-nav-item--collapsible">
  <span class="section-nav-list-title">Learning resources</span>

  <ul class="section-nav-list">
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#getting-started">Getting Started</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#articles">Articles</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#interactive-labs">Interactive Labs</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#beam-katas">Beam Katas</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#code-examples">Code Examples</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#api-reference">API Reference</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#feedback-and-suggestions">Feedback and Suggestions</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#how-to-contribute">How to Contribute</a></li>
    <li><a href="{{ site.baseurl }}/documentation/resources/videos-and-podcasts">Videos and Podcasts</a></li>
  </ul>
</li>
<li><a href="https://cwiki.apache.org/confluence/display/BEAM/Apache+Beam">Beam Wiki</a></li>
