<!--
 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 class="section-nav-item--collapsible">
  <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 class="section-nav-item--collapsible">
  <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 transforms</a></li>
        <li><a href="{{ site.baseurl }}/documentation/io/authoring-overview/">Authoring new I/O transforms</a></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><a href="{{ site.baseurl }}/documentation/resources/">Additional Resources</a></li>
  </ul>
</li>
