You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by gi...@apache.org on 2022/02/08 00:04:21 UTC

[beam] branch asf-site updated: Publishing website 2022/02/08 00:03:36 at commit ee9bdbc

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new a8eb3c7  Publishing website 2022/02/08 00:03:36 at commit ee9bdbc
a8eb3c7 is described below

commit a8eb3c798125acb2cd1e86b6fa10d491ca0659a4
Author: jenkins <bu...@apache.org>
AuthorDate: Tue Feb 8 00:03:36 2022 +0000

    Publishing website 2022/02/08 00:03:36 at commit ee9bdbc
---
 website/generated-content/.htaccess                |   2 +-
 .../blog/added-apex-runner/index.html              |   2 +-
 .../blog/adding-data-sources-to-sql/index.html     |   2 +-
 .../generated-content/blog/beam-2.10.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.11.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.12.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.13.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.14.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.15.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.16.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.17.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.18.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.19.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.20.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.21.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.22.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.23.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.24.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.25.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.26.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.27.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.28.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.29.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.3.0/index.html   |   2 +-
 .../generated-content/blog/beam-2.30.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.31.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.32.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.33.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.34.0/index.html  |   2 +-
 .../generated-content/blog/beam-2.35.0/index.html  |   2 +-
 .../blog/{beam-2.17.0 => beam-2.36.0}/index.html   | 126 +++-
 .../generated-content/blog/beam-2.5.0/index.html   |   2 +-
 .../generated-content/blog/beam-2.6.0/index.html   |   2 +-
 .../generated-content/blog/beam-2.7.0/index.html   |   2 +-
 .../generated-content/blog/beam-2.8.0/index.html   |   2 +-
 .../generated-content/blog/beam-2.9.0/index.html   |   2 +-
 .../blog/beam-a-look-back/index.html               |   2 +-
 .../blog/beam-first-stable-release/index.html      |   2 +-
 .../blog/beam-graduates/index.html                 |   2 +-
 .../blog/beam-has-a-logo/index.html                |   2 +-
 .../blog/beam-kata-release/index.html              |   2 +-
 .../blog/beam-katas-kotlin-release/index.html      |   2 +-
 .../generated-content/blog/beam-kotlin/index.html  |   2 +-
 .../blog/beam-summit-aftermath/index.html          |   2 +-
 .../blog/beam-summit-digital-2020/index.html       |   2 +-
 .../blog/beam-summit-europe-2019/index.html        |   2 +-
 .../blog/beam-summit-europe/index.html             |   2 +-
 .../blog/beam-summit-site/index.html               |   2 +-
 .../blog/capability-matrix/index.html              |   2 +-
 .../dataframe-api-preview-available/index.html     |   2 +-
 .../blog/first-release/index.html                  |   2 +-
 .../blog/flink-batch-runner-milestone/index.html   |   2 +-
 .../blog/go-sdk-release/index.html                 |   2 +-
 .../blog/graduation-media-recap/index.html         |   2 +-
 website/generated-content/blog/gsoc-19/index.html  |   2 +-
 website/generated-content/blog/index.html          |   2 +-
 website/generated-content/blog/index.xml           | 172 ++++--
 .../blog/kafka-to-pubsub-example/index.html        |   2 +-
 .../blog/looping-timers/index.html                 |   2 +-
 .../blog/pattern-match-beam-sql/index.html         |   2 +-
 .../blog/presentation-materials/index.html         |   2 +-
 .../blog/python-improved-annotations/index.html    |   2 +-
 .../index.html                                     |   2 +-
 .../blog/python-sdk-now-public/index.html          |   2 +-
 .../blog/python-sdk-release/index.html             |   2 +-
 .../blog/python-typing/index.html                  |   2 +-
 .../review-input-streaming-connectors/index.html   |   6 +-
 .../blog/season-of-docs/index.html                 |   2 +-
 .../generated-content/blog/six-months/index.html   |   2 +-
 .../blog/splitatfraction-method/index.html         |   2 +-
 .../blog/splittable-do-fn-is-available/index.html  |   2 +-
 .../blog/splittable-do-fn/index.html               |  12 +-
 .../blog/stateful-processing/index.html            |   2 +-
 .../blog/strata-hadoop-world-and-beam/index.html   |   2 +-
 .../generated-content/blog/test-stream/index.html  |   4 +-
 .../blog/timely-processing/index.html              |   2 +-
 .../blog/validate-beam-release/index.html          |   2 +-
 .../where-is-my-pcollection-dot-map/index.html     |   2 +-
 .../generated-content/categories/blog/index.xml    | 172 ++++--
 website/generated-content/categories/index.xml     |   2 +-
 website/generated-content/contribute/index.xml     |   4 +-
 .../contribute/ptransform-style-guide/index.html   |   2 +-
 .../dataframes/differences-from-pandas/index.html  |   6 +-
 .../dsls/dataframes/overview/index.html            |   2 +-
 .../sql/calcite/aggregate-functions/index.html     |   2 +-
 .../dsls/sql/calcite/data-types/index.html         |   2 +-
 .../dsls/sql/calcite/lexical-structure/index.html  |   2 +-
 .../dsls/sql/calcite/overview/index.html           |   2 +-
 .../dsls/sql/calcite/query-syntax/index.html       |   2 +-
 .../dsls/sql/calcite/scalar-functions/index.html   |   2 +-
 .../extensions/create-external-table/index.html    |   2 +-
 .../dsls/sql/extensions/joins/index.html           |   2 +-
 .../dsls/sql/extensions/set/index.html             |   2 +-
 .../extensions/user-defined-functions/index.html   |   2 +-
 .../extensions/windowing-and-triggering/index.html |   2 +-
 .../documentation/dsls/sql/overview/index.html     |   4 +-
 .../documentation/dsls/sql/shell/index.html        |   2 +-
 .../documentation/dsls/sql/walkthrough/index.html  |   8 +-
 .../sql/zetasql/aggregate-functions/index.html     |   2 +-
 .../sql/zetasql/conditional-expressions/index.html |   2 +-
 .../dsls/sql/zetasql/conversion-rules/index.html   |   2 +-
 .../dsls/sql/zetasql/data-types/index.html         |   2 +-
 .../dsls/sql/zetasql/lexical/index.html            |   2 +-
 .../dsls/sql/zetasql/math-functions/index.html     |   2 +-
 .../dsls/sql/zetasql/operators/index.html          |   2 +-
 .../dsls/sql/zetasql/overview/index.html           |   2 +-
 .../dsls/sql/zetasql/query-syntax/index.html       |   2 +-
 .../dsls/sql/zetasql/string-functions/index.html   |   2 +-
 .../dsls/sql/zetasql/syntax/index.html             |   2 +-
 website/generated-content/documentation/index.xml  | 644 ++++++++++++---------
 .../io/built-in/google-bigquery/index.html         |  16 +-
 .../documentation/io/built-in/index.html           |   3 +-
 .../documentation/io/built-in/parquet/index.html   |   4 +-
 .../documentation/io/built-in/snowflake/index.html | 346 ++++++-----
 .../io/developing-io-python/index.html             |   6 +-
 .../pipelines/test-your-pipeline/index.html        |   4 +-
 .../documentation/programming-guide/index.html     |  14 +-
 .../documentation/runners/dataflow/index.html      |   6 +-
 .../documentation/runners/direct/index.html        |  10 +-
 .../documentation/runners/flink/index.html         |   6 +-
 .../documentation/runners/jstorm/index.html        |   2 +-
 .../documentation/runners/mapreduce/index.html     |   2 +-
 .../documentation/runners/samza/index.html         |   2 +-
 .../documentation/runners/spark/index.html         |   2 +-
 .../sdks/feature-comparison/index.html             |   2 +-
 .../documentation/sdks/go/index.html               |   2 +-
 .../sdks/java-dependencies/index.html              |   4 +-
 .../documentation/sdks/java-extensions/index.html  |   2 +-
 .../sdks/java-multi-language-pipelines/index.html  |   2 +-
 .../documentation/sdks/java-thirdparty/index.html  |   2 +-
 .../documentation/sdks/java/euphoria/index.html    |   2 +-
 .../documentation/sdks/java/index.html             |   2 +-
 .../sdks/java/testing/nexmark/index.html           |   6 +-
 .../sdks/python-dependencies/index.html            |   4 +-
 .../python-multi-language-pipelines/index.html     |   2 +-
 .../sdks/python-pipeline-dependencies/index.html   |   2 +-
 .../documentation/sdks/python-streaming/index.html |   2 +-
 .../sdks/python-type-safety/index.html             |   2 +-
 .../documentation/sdks/python/index.html           |   2 +-
 website/generated-content/feed.xml                 | 217 ++++---
 .../get-started/downloads/index.html               |  17 +-
 website/generated-content/get-started/index.xml    |  24 +-
 .../get-started/quickstart-java/index.html         |   4 +-
 .../get-started/wordcount-example/index.html       |   4 +-
 website/generated-content/index.html               |   2 +-
 website/generated-content/sitemap.xml              |   2 +-
 146 files changed, 1300 insertions(+), 787 deletions(-)

diff --git a/website/generated-content/.htaccess b/website/generated-content/.htaccess
index 6f4808a..45c44bc 100644
--- a/website/generated-content/.htaccess
+++ b/website/generated-content/.htaccess
@@ -21,6 +21,6 @@ RewriteRule ^(.*)$ https://beam.apache.org/$1 [L,R=301]
 # The following redirect maintains the previously supported URLs.
 RedirectMatch permanent "/documentation/sdks/(javadoc|pydoc)(.*)" "https://beam.apache.org/releases/$1$2"
 # Keep this updated to point to the current release.
-RedirectMatch "/releases/([^/]+)/current(.*)" "https://beam.apache.org/releases/$1/2.35.0$2"
+RedirectMatch "/releases/([^/]+)/current(.*)" "https://beam.apache.org/releases/$1/2.36.0$2"
 
 RedirectMatch "/contribute/design-documents" "https://cwiki.apache.org/confluence/display/BEAM/Design+Documents"
diff --git a/website/generated-content/blog/added-apex-runner/index.html b/website/generated-content/blog/added-apex-runner/index.html
index 6b95562..29871ea 100644
--- a/website/generated-content/blog/added-apex-runner/index.html
+++ b/website/generated-content/blog/added-apex-runner/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2017/01/09</p></div><header class=post-header><h2 itemprop="name headline">Release 0.4.0 adds a runner for Apache Apex</h1><div class=post-info><span>Thomas Weise [<a href=https://twitter.com/thweise>@thweise</a>]</span></div></header><div clas [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2017/01/09</p></div><header class=post-header><h2 itemprop="name headline">Release 0.4.0 adds a runner for Apache Apex</h1><div class=post-info><span>Thomas Weise [<a href=https://twitter.com/thweise>@thweise</a>]</span></div></header><div clas [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/adding-data-sources-to-sql/index.html b/website/generated-content/blog/adding-data-sources-to-sql/index.html
index 56dafc6..d37c705 100644
--- a/website/generated-content/blog/adding-data-sources-to-sql/index.html
+++ b/website/generated-content/blog/adding-data-sources-to-sql/index.html
@@ -132,7 +132,7 @@ us make sure that we&rsquo;re providing the timestamp for each row properly:</p>
 +---------------------+--------------+
 5 rows selected (10.142 seconds)
 </code></pre><p>And voilà! We can start playing with some interesting streaming queries to our
-sequence generator.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div>< [...]
+sequence generator.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.10.0/index.html b/website/generated-content/blog/beam-2.10.0/index.html
index 6d38b62..cdf1c2b 100644
--- a/website/generated-content/blog/beam-2.10.0/index.html
+++ b/website/generated-content/blog/beam-2.10.0/index.html
@@ -36,7 +36,7 @@ Markwick, Pablo Estrada, Prem Kumar Karunakaran, Reuven Lax, robbe, Robbe
 Sneyders, Robert Bradshaw, Robert Burke, Ruoyun Huang, Ryan Williams, Sam
 Whittle, Scott Wegner, Slava Chernyak, Theodore Siu, Thomas Weise, Udi Meiri,
 <a href=mailto:vaclav.plajt@gmail.com>vaclav.plajt@gmail.com</a>, Valentyn Tymofieiev, Won Wook SONG, Wout Scheepers,
-Xinyu Liu, Yueyang Qiu, Zhuo Peng</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11 [...]
+Xinyu Liu, Yueyang Qiu, Zhuo Peng</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>20 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.11.0/index.html b/website/generated-content/blog/beam-2.11.0/index.html
index 44df830..66416ed 100644
--- a/website/generated-content/blog/beam-2.11.0/index.html
+++ b/website/generated-content/blog/beam-2.11.0/index.html
@@ -31,7 +31,7 @@ Maximilian Michels, Melissa Pashniak, Michael Luckey, Michal Walenia, Mike Peder
 Mikhail Gryzykhin, Niel Markwick, Pablo Estrada, Pascal Gula, Reuven Lax, Robbe Sneyders,
 Robert Bradshaw, Robert Burke, Rui Wang, Ruoyun Huang, Ryan Williams, Sam Rohde, Sam Whittle,
 Scott Wegner, Tanay Tummalapalli, Thomas Weise, Tianyang Hu, Tyler Akidau, Udi Meiri,
-Valentyn Tymofieiev, Xinyu Liu, Xu Mingmin, Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-catego [...]
+Valentyn Tymofieiev, Xinyu Liu, Xu Mingmin, Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-c [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.12.0/index.html b/website/generated-content/blog/beam-2.12.0/index.html
index 8989f34..37dd247 100644
--- a/website/generated-content/blog/beam-2.12.0/index.html
+++ b/website/generated-content/blog/beam-2.12.0/index.html
@@ -37,7 +37,7 @@ Mikhail Gryzykhin, Niel Markwick, Pablo Estrada, Radoslaw Stankiewicz,
 Reuven Lax, Robbe Sneyders, Robert Bradshaw, Robert Burke, Rui Wang,
 Ruoyun Huang, Ryan Williams, Slava Chernyak, Shahar Frank, Sunil Pedapudi,
 Thomas Weise, Tim Robertson, Tanay Tummalapalli, Udi Meiri,
-Valentyn Tymofieiev, Xinyu Liu, Yifan Zou, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"> [...]
+Valentyn Tymofieiev, Xinyu Liu, Yifan Zou, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-categ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.13.0/index.html b/website/generated-content/blog/beam-2.13.0/index.html
index 29c5b79..abe4644 100644
--- a/website/generated-content/blog/beam-2.13.0/index.html
+++ b/website/generated-content/blog/beam-2.13.0/index.html
@@ -34,7 +34,7 @@ Pablo Estrada, Pranay Nanda, Reuven Lax, Richard Moorhead, Robbe Sneyders,
 Robert Bradshaw, Robert Burke, Roman van der Krogt, rosetn, Rui Wang, Ryan Yuan,
 Sam Whittle, sudhan499, Sylwester Kardziejonek, Ted, Thomas Weise, Tim Robertson,
 ttanay, tvalentyn, Udi Meiri, Valentyn Tymofieiev, Xinyu Liu, Yifan Zou,
-yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p> [...]
+yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/1 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.14.0/index.html b/website/generated-content/blog/beam-2.14.0/index.html
index 39ab85d..cf7c5b2 100644
--- a/website/generated-content/blog/beam-2.14.0/index.html
+++ b/website/generated-content/blog/beam-2.14.0/index.html
@@ -40,7 +40,7 @@ Peter Backx, Rakesh Kumar, Rasmi Elasmar, Reuven Lax, Reza Rokni, Robbe Sneyders
 Robert Bradshaw, Robert Burke, Rose Nguyen, Rui Wang, Ruoyun Huang,
 Shoaib Zafar, Slava Chernyak, Steve Niemitz, Tanay Tummalapalli, Thomas Weise,
 Tim Robertson, Tim van der Lippe, Udi Meiri, Valentyn Tymofieiev, Varun Dhussa,
-Viktor Gerdin, Yichi Zhang, Yifan Mai, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-ca [...]
+Viktor Gerdin, Yichi Zhang, Yifan Mai, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info po [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.15.0/index.html b/website/generated-content/blog/beam-2.15.0/index.html
index 348e1d3..94b8c9e 100644
--- a/website/generated-content/blog/beam-2.15.0/index.html
+++ b/website/generated-content/blog/beam-2.15.0/index.html
@@ -35,7 +35,7 @@ Pablo Estrada, Paul King, Paul Suganthan, Raheel Khan, Rakesh Kumar,
 Reza Rokni, Robert Bradshaw, Robert Burke, rosetn, Rui Wang, Ryan Skraba, RyanSkraba,
 Sahith Nallapareddy, Sam Rohde, Sam Whittle, Steve Niemitz, Tanay Tummalapalli, Thomas Weise,
 Tianyang Hu, ttanay, tvalentyn, Udi Meiri, Valentyn Tymofieiev, Wout Scheepers,
-yanzhi, Yekut, Yichi Zhang, Yifan Zou, yoshiki.obata, Yueyang Qiu, Yunqing Zhou</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class=" [...]
+yanzhi, Yekut, Yichi Zhang, Yifan Zou, yoshiki.obata, Yueyang Qiu, Yunqing Zhou</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div cl [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.16.0/index.html b/website/generated-content/blog/beam-2.16.0/index.html
index 5750467..4ca208e 100644
--- a/website/generated-content/blog/beam-2.16.0/index.html
+++ b/website/generated-content/blog/beam-2.16.0/index.html
@@ -37,7 +37,7 @@ Salman Raza, Sam Rohde, Saul Chavez, Shoaib, Shoaib Zafar, Slava Chernyak, Tanay
 Thinh Ha, Thomas Weise, Tianzi Cai, Tim van der Lippe, Tomer Zeltzer, Tudor Marian,
 Udi Meiri, Valentyn Tymofieiev, Yichi Zhang, Yifan Zou, Yueyang Qiu, gxercavins,
 jesusrv1103, lostluck, matt-darwin, mrociorg, ostrokach, parahul, rahul8383, rosetn,
-sunjincheng121, the1plummie, ttanay, tvalentyn, venn001, yoshiki.obata, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div c [...]
+sunjincheng121, the1plummie, ttanay, tvalentyn, venn001, yoshiki.obata, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog>< [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.17.0/index.html b/website/generated-content/blog/beam-2.17.0/index.html
index 6a0e481..5b4eeda 100644
--- a/website/generated-content/blog/beam-2.17.0/index.html
+++ b/website/generated-content/blog/beam-2.17.0/index.html
@@ -38,7 +38,7 @@ Nasyrov, Reuven Lax, Robert Bradshaw, Robert Burke, Rui Wang, Ruslan Altynnikov,
 Ryan Skraba, Salman Raza, Saul Chavez, Sebastian Jambor, sunjincheng121, Tatu
 Saloranta, tchiarato, Thomas Weise, Tomo Suzuki, Tudor Marian, tvalentyn, Udi
 Meiri, Valentyn Tymofieiev, Viola Lyu, Vishwas, Yichi Zhang, Yifan Zou, Yueyang
-Qiu, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><d [...]
+Qiu, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></d [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.18.0/index.html b/website/generated-content/blog/beam-2.18.0/index.html
index 86190ec..9733aeb 100644
--- a/website/generated-content/blog/beam-2.18.0/index.html
+++ b/website/generated-content/blog/beam-2.18.0/index.html
@@ -22,7 +22,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 &
 Ahmet Altay</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>We are happy to present the new 2.18.0 release of Beam. This release includes both improvements and new functionality.
 See the <a href=/get-started/downloads/#2180-2020-01-23>download page</a> for this release.</p><p>For more information on changes in 2.18.0, check out the
-<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12346383&projectId=12319527">detailed release notes</a>.</p><h2 id=highlights>Highlights</h2><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-8470>BEAM-8470</a> - Create a new Spark runner based on Spark Structured streaming framework</li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-7636>BEAM-7636</a> - Added SqsIO v2 support.</li><li><a href=https://issues.apache.org/ [...]
+<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12346383&projectId=12319527">detailed release notes</a>.</p><h2 id=highlights>Highlights</h2><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-8470>BEAM-8470</a> - Create a new Spark runner based on Spark Structured streaming framework</li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-7636>BEAM-7636</a> - Added SqsIO v2 support.</li><li><a href=https://issues.apache.org/ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.19.0/index.html b/website/generated-content/blog/beam-2.19.0/index.html
index 5593097..d3d268b 100644
--- a/website/generated-content/blog/beam-2.19.0/index.html
+++ b/website/generated-content/blog/beam-2.19.0/index.html
@@ -25,7 +25,7 @@ See the <a href=/get-started/downloads/#2190-2020-02-04>download page</a> for th
 <a href=https://issues.apache.org/jira/browse/BEAM-8623>BEAM-8623</a>,
 <a href=https://issues.apache.org/jira/browse/BEAM-7949>BEAM-7949</a>,
 <a href=https://issues.apache.org/jira/browse/BEAM-8935>BEAM-8935</a>,
-<a href=https://issues.apache.org/jira/browse/BEAM-8816>BEAM-8816</a></li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-1440>BEAM-1440</a> Create a BigQuery source (that implements iobase.BoundedSource) for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-2572>BEAM-2572</a> Implement an S3 filesystem for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-5192>BEAM-5192</a> Support Elasticsearch 7.x</li><li><a h [...]
+<a href=https://issues.apache.org/jira/browse/BEAM-8816>BEAM-8816</a></li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-1440>BEAM-1440</a> Create a BigQuery source (that implements iobase.BoundedSource) for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-2572>BEAM-2572</a> Implement an S3 filesystem for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-5192>BEAM-5192</a> Support Elasticsearch 7.x</li><li><a h [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.20.0/index.html b/website/generated-content/blog/beam-2.20.0/index.html
index f09659e..01dd80a 100644
--- a/website/generated-content/blog/beam-2.20.0/index.html
+++ b/website/generated-content/blog/beam-2.20.0/index.html
@@ -26,7 +26,7 @@ See the <a href=/get-started/downloads/#2190-2020-02-04>download page</a> for th
 , Kengo Seki, Kenneth Jung, Kenneth Knowles, Kyle Weaver, Kyle Winkelman, Lukas Drbal, Marek Simunek, Mark Liu, Maximilian Michels, Melissa Pashniak
 , Michael Luckey, Michal Walenia, Mike Pedersen, Mikhail Gryzykhin, Niel Markwick, Pablo Estrada, Pascal Gula, Rehman Murad Ali, Reuven Lax, Rob, Robbe Sneyders
 , Robert Bradshaw, Robert Burke, Rui Wang, Ruoyun Huang, Ryan Williams, Sam Rohde, Sam Whittle, Scott Wegner, Shoaib Zafar, Thomas Weise, Tianyang Hu, Tyler Akidau
-, Udi Meiri, Valentyn Tymofieiev, Xinyu Liu, XuMingmin, ttanay, tvalentyn, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><di [...]
+, Udi Meiri, Valentyn Tymofieiev, Xinyu Liu, XuMingmin, ttanay, tvalentyn, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blo [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.21.0/index.html b/website/generated-content/blog/beam-2.21.0/index.html
index 4b6757b..59d97ab 100644
--- a/website/generated-content/blog/beam-2.21.0/index.html
+++ b/website/generated-content/blog/beam-2.21.0/index.html
@@ -53,7 +53,7 @@ see <a href=https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-av
 (<a href=https://issues.apache.org/jira/browse/BEAM-9634>BEAM-9634</a>)</p></li><li><p><code>docker-pull-licenses</code> tag was introduced. Licenses/notices of third party dependencies will be added to the docker images when <code>docker-pull-licenses</code> was set.
 The files are added to <code>/opt/apache/beam/third_party_licenses/</code>.
 By default, no licenses/notices are added to the docker images. (<a href=https://issues.apache.org/jira/browse/BEAM-9136>BEAM-9136</a>)</p></li></ul><h2 id=breaking-changes>Breaking Changes</h2><ul><li>Dataflow runner now requires the <code>--region</code> option to be set, unless a default value is set in the environment (<a href=https://issues.apache.org/jira/browse/BEAM-9199>BEAM-9199</a>). See <a href=https://cloud.google.com/dataflow/docs/concepts/regional-endpoints>here</a> for mor [...]
-Schema Options, it will be removed in version <code>2.23.0</code>. (<a href=https://issues.apache.org/jira/browse/BEAM-9704>BEAM-9704</a>)</li><li>The <code>--zone</code> option in the Dataflow runner is now deprecated. Please use <code>--worker_zone</code> instead. (<a href=https://issues.apache.org/jira/browse/BEAM-9716>BEAM-9716</a>)</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to git shortlog, the following people contributed to the 2.21.0 release. Thank [...]
+Schema Options, it will be removed in version <code>2.23.0</code>. (<a href=https://issues.apache.org/jira/browse/BEAM-9704>BEAM-9704</a>)</li><li>The <code>--zone</code> option in the Dataflow runner is now deprecated. Please use <code>--worker_zone</code> instead. (<a href=https://issues.apache.org/jira/browse/BEAM-9716>BEAM-9716</a>)</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to git shortlog, the following people contributed to the 2.21.0 release. Thank [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.22.0/index.html b/website/generated-content/blog/beam-2.22.0/index.html
index 725178d..aa358ce 100644
--- a/website/generated-content/blog/beam-2.22.0/index.html
+++ b/website/generated-content/blog/beam-2.22.0/index.html
@@ -21,7 +21,7 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2020/06/08</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.22.0</h1><div class=post-info><span>Brian Hulette [<a href=https://twitter.com/BrianHulette>@BrianHulette</a>]</span></div></header><div class="arrow-list  [...]
 See the <a href=/get-started/downloads/#2220-2020-06-08>download page</a> for this release.</p><p>For more information on changes in 2.22.0, check out the
 <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12347144">detailed release notes</a>.</p><h2 id=ios>I/Os</h2><ul><li>Basic Kafka read/write support for DataflowRunner (Python) (<a href=https://issues.apache.org/jira/browse/BEAM-8019>BEAM-8019</a>).</li><li>Sources and sinks for Google Healthcare APIs (Java)(<a href=https://issues.apache.org/jira/browse/BEAM-9468>BEAM-9468</a>).</li></ul><h2 id=new-features--improvements>New Features / Improvemen [...]
-(<a href=https://issues.apache.org/jira/browse/BEAM-9646>BEAM-9646</a>)</li></ul><h2 id=breaking-changes>Breaking Changes</h2><ul><li>The Python SDK now requires <code>--job_endpoint</code> to be set when using <code>--runner=PortableRunner</code> (<a href=https://issues.apache.org/jira/browse/BEAM-9860>BEAM-9860</a>). Users seeking the old default behavior should set <code>--runner=FlinkRunner</code> instead.</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to  [...]
+(<a href=https://issues.apache.org/jira/browse/BEAM-9646>BEAM-9646</a>)</li></ul><h2 id=breaking-changes>Breaking Changes</h2><ul><li>The Python SDK now requires <code>--job_endpoint</code> to be set when using <code>--runner=PortableRunner</code> (<a href=https://issues.apache.org/jira/browse/BEAM-9860>BEAM-9860</a>). Users seeking the old default behavior should set <code>--runner=FlinkRunner</code> instead.</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to  [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.23.0/index.html b/website/generated-content/blog/beam-2.23.0/index.html
index aecdf46..7bc3dac 100644
--- a/website/generated-content/blog/beam-2.23.0/index.html
+++ b/website/generated-content/blog/beam-2.23.0/index.html
@@ -29,7 +29,7 @@ Previously nulls could only be represented with explicit null values, as in
 <code>{"foo": "bar", "baz": null}</code>, whereas an implicit null like <code>{"foo": "bar"}</code> would raise an
 exception. Now both JSON strings will yield the same result by default. This behavior can be
 overridden with <code>RowJson.RowJsonDeserializer#withNullBehavior</code>.</li><li>Fixed a bug in <code>GroupIntoBatches</code> experimental transform in Python to actually group batches by key.
-This changes the output type for this transform (<a href=https://issues.apache.org/jira/browse/BEAM-6696>BEAM-6696</a>).</li></ul><h2 id=deprecations>Deprecations</h2><ul><li>Remove Gearpump runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>Remove Apex runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>RedisIO.readAll() is deprecated and will be removed in 2 versions, users must use RedisIO.readKeyPatterns() as a  [...]
+This changes the output type for this transform (<a href=https://issues.apache.org/jira/browse/BEAM-6696>BEAM-6696</a>).</li></ul><h2 id=deprecations>Deprecations</h2><ul><li>Remove Gearpump runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>Remove Apex runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>RedisIO.readAll() is deprecated and will be removed in 2 versions, users must use RedisIO.readKeyPatterns() as a  [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.24.0/index.html b/website/generated-content/blog/beam-2.24.0/index.html
index ccfd698..fd691e4 100644
--- a/website/generated-content/blog/beam-2.24.0/index.html
+++ b/website/generated-content/blog/beam-2.24.0/index.html
@@ -41,7 +41,7 @@ Robert Bradshaw, Robert Burke, Robin Qiu, Rui Wang, Saavan Nanavati, sabhyankar,
 Scott Lukas, Siddhartha Thota, Simone Primarosa, Sławomir Andrian,
 Steve Niemitz, Tobiasz Kędzierski, Tomo Suzuki, Tyson Hamilton, Udi Meiri,
 Valentyn Tymofieiev, viktorjonsson, Xinyu Liu, Yichi Zhang, Yixing Zhang, yoshiki.obata,
-Yueyang Qiu, zijiesong</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></di [...]
+Yueyang Qiu, zijiesong</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.25.0/index.html b/website/generated-content/blog/beam-2.25.0/index.html
index 711a848..70a7884 100644
--- a/website/generated-content/blog/beam-2.25.0/index.html
+++ b/website/generated-content/blog/beam-2.25.0/index.html
@@ -40,7 +40,7 @@ Saavan Nanavati, Sam Bourne, Sam Rohde, Sam Whittle, Sergiy Kolesnikov, Sindy Li
 Niemitz, Terry Xian, Thomas Weise, Tobiasz Kędzierski, Truc Le, Tyson Hamilton, Udi Meiri, Valentyn
 Tymofieiev, Yichi Zhang, Yifan Mai, Yueyang Qiu, annaqin418, danielxjd, dennis, dp, fuyuwei,
 lostluck, nehsyc, odeshpande, odidev, pulasthi, purbanow, rworley-monster, sclukas77, terryxian78,
-tvalentyn, yoshiki.obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></ [...]
+tvalentyn, yoshiki.obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11< [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.26.0/index.html b/website/generated-content/blog/beam-2.26.0/index.html
index 08b6023..5e7c17a 100644
--- a/website/generated-content/blog/beam-2.26.0/index.html
+++ b/website/generated-content/blog/beam-2.26.0/index.html
@@ -34,7 +34,7 @@ Romain Manni-Bucau, Rui Wang, rworley-monster, Sam Rohde, Sam Whittle, shollyman
 Simone Primarosa, Siyuan Chen, Steve Niemitz, Steven van Rossum, sychen, Teodor Spæren,
 Tim Clemons, Tim Robertson, Tobiasz Kędzierski, tszerszen, Tudor Marian, tvalentyn,
 Tyson Hamilton, Udi Meiri, Vasu Gupta, xasm83, Yichi Zhang, yichuan66, Yifan Mai,
-yoshiki.obata, Yueyang Qiu, yukihira1992</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p> [...]
+yoshiki.obata, Yueyang Qiu, yukihira1992</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.27.0/index.html b/website/generated-content/blog/beam-2.27.0/index.html
index 030ec75..7c41d8b 100644
--- a/website/generated-content/blog/beam-2.27.0/index.html
+++ b/website/generated-content/blog/beam-2.27.0/index.html
@@ -36,7 +36,7 @@ Pawel Pasterz, Piotr Szuberski, purbanow, Reuven Lax, rHermes,
 Robert Bradshaw, Robert Burke, Rui Wang, Sam Rohde, Sam Whittle,
 Siyuan Chen, Tim Robertson, Tobiasz Kędzierski, tszerszen,
 Valentyn Tymofieiev, Tyson Hamilton, Udi Meiri, vachan-shetty, Xinyu Liu,
-Yichi Zhang, Yifan Mai, yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>b [...]
+Yichi Zhang, Yifan Mai, yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category" [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.28.0/index.html b/website/generated-content/blog/beam-2.28.0/index.html
index 7ff74d2..d56eed8 100644
--- a/website/generated-content/blog/beam-2.28.0/index.html
+++ b/website/generated-content/blog/beam-2.28.0/index.html
@@ -35,7 +35,7 @@ Nelson Osacky, Niel Markwick, Ning Kang, omarismail94, Pablo Estrada, Piotr Szub
 ramazan-yapparov, Reuven Lax, Reza Rokni, rHermes, Robert Bradshaw, Robert Burke, Robert Gruener,
 Romster, Rui Wang, Sam Whittle, shehzaadn-vd, Siyuan Chen, Sonam Ramchand, Tobiasz Kędzierski,
 Tomo Suzuki, tszerszen, tvalentyn, Tyson Hamilton, Udi Meiri, Xinbin Huang, Yichi Zhang,
-Yifan Mai, yoshiki.obata, Yueyang Qiu, Yusaku Matsuki</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category">< [...]
+Yifan Mai, yoshiki.obata, Yueyang Qiu, Yusaku Matsuki</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-catego [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.29.0/index.html b/website/generated-content/blog/beam-2.29.0/index.html
index dde7ec2..379db89 100644
--- a/website/generated-content/blog/beam-2.29.0/index.html
+++ b/website/generated-content/blog/beam-2.29.0/index.html
@@ -39,7 +39,7 @@ Williams, Robert Bradshaw, Robert Burke, Rui Wang, Sam Rohde, Sam Whittle,
 Shehzaad Nakhoda, Shehzaad Nakhoda, Siyuan Chen, Sonam Ramchand, Steve Niemitz,
 sychen, Sylvain Veyrié, Tim Robertson, Tobias Kaymak, Tomasz Szerszeń, Tomasz
 Szerszeń, Tomo Suzuki, Tyson Hamilton, Udi Meiri, Valentyn Tymofieiev, Yichi
-Zhang, Yifan Mai, Yixing Zhang, Yoshiki Obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</ [...]
+Zhang, Yifan Mai, Yixing Zhang, Yoshiki Obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>b [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.3.0/index.html b/website/generated-content/blog/beam-2.3.0/index.html
index c6025e6..df2af87 100644
--- a/website/generated-content/blog/beam-2.3.0/index.html
+++ b/website/generated-content/blog/beam-2.3.0/index.html
@@ -40,7 +40,7 @@ implicit representations of various Beam entities.</li><li>Introduces two transf
 (approximate element frequency estimation) and HyperLogLog (approximate
 cardinality estimation).</li></ul><h2 id=runners>Runners</h2><ul><li>Staging files on Dataflow shows progress</li><li>Flink runner is based now on Flink version 1.4.0</li></ul><h2 id=ios>IOs</h2><ul><li>BigtableIO now supports ValueProvider configuration</li><li>BigQueryIO supports writing bounded collections to tables with partition
 decorators</li><li>KafkaIO moves to version 1.0 (it is still backwards compatible with versions >= 0.9.x.x)</li><li>Added IO source for VCF files (Python)</li><li>Added support for backoff on deadlocks in JdbcIO.write() and connection
-improvement</li><li>Improved performance of KinesisIO.read()</li><li>Many improvements to TikaIO</li></ul><h1 id=list-of-contributors>List of Contributors</h1><p>According to git shortlog, the following 78 people contributed to the 2.3.0 release. Thank you to all contributors!</p><p>Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Ankur Goenka, Anton Kedin, Arnaud Fournier, Asha Rostamianfar, Ben Chambers, Ben Sidhom, Bill Neubauer, Brian Foo, cclauss, Chamikara Jayalath, Charles [...]
+improvement</li><li>Improved performance of KinesisIO.read()</li><li>Many improvements to TikaIO</li></ul><h1 id=list-of-contributors>List of Contributors</h1><p>According to git shortlog, the following 78 people contributed to the 2.3.0 release. Thank you to all contributors!</p><p>Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Ankur Goenka, Anton Kedin, Arnaud Fournier, Asha Rostamianfar, Ben Chambers, Ben Sidhom, Bill Neubauer, Brian Foo, cclauss, Chamikara Jayalath, Charles [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.30.0/index.html b/website/generated-content/blog/beam-2.30.0/index.html
index df75cd1..0689f9c 100644
--- a/website/generated-content/blog/beam-2.30.0/index.html
+++ b/website/generated-content/blog/beam-2.30.0/index.html
@@ -30,7 +30,7 @@ Quentin Sommer, Reuven Lax, Robert Bradshaw, Robert Burke, Rui Wang, Sam Rohde,
 Siyuan Chen, Sruthi Sree Kumar, Steve Niemitz, Sylvain Veyrié, Tomo Suzuki, Udi Meiri, Valentyn Tymofieiev,
 Vitaly Terentyev, Wenbing, Xinyu Liu, Yichi Zhang, Yifan Mai, Yueyang Qiu, Yunqing Zhou, ajo thomas, brucearctor,
 dmkozh, dpcollins-google, emily, jordan-moore, kileys, lostluck, masahitojp, roger-mike, sychen, tvalentyn,
-vachan-shetty, yoshiki.obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</ [...]
+vachan-shetty, yoshiki.obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.31.0/index.html b/website/generated-content/blog/beam-2.31.0/index.html
index 5546750..9d2500d 100644
--- a/website/generated-content/blog/beam-2.31.0/index.html
+++ b/website/generated-content/blog/beam-2.31.0/index.html
@@ -33,7 +33,7 @@ masahitojp, Matthias Baetens, Maximilian Michels, Milena Bukal,
 Nathan J. Mehl, Pablo Estrada, Peter Sobot, Reuven Lax, Robert Bradshaw,
 Robert Burke, roger-mike, Sam Rohde, Sam Whittle, Stephan Hoyer, Tom Underhill,
 tvalentyn, Uday Singh, Udi Meiri, Vitaly Terentyev, Xinyu Liu, Yichi Zhang,
-Yifan Mai, yoshiki.obata, zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11 [...]
+Yifan Mai, yoshiki.obata, zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>20 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.32.0/index.html b/website/generated-content/blog/beam-2.32.0/index.html
index 330d7ef..7556083 100644
--- a/website/generated-content/blog/beam-2.32.0/index.html
+++ b/website/generated-content/blog/beam-2.32.0/index.html
@@ -38,7 +38,7 @@ and recommend its use for production workloads. We will continue to improve
 the API, guided by your
 <a href=https://beam.apache.org/community/contact-us/>feedback</a>.</li></ul><h2 id=ios>I/Os</h2><ul><li>Added ability to use JdbcIO.Write.withResults without statement and preparedStatementSetter. (<a href=https://issues.apache.org/jira/browse/BEAM-12511>BEAM-12511</a>)</li></ul><ul><li>Added ability to register URI schemes to use the S3 protocol via FileIO. (<a href=https://issues.apache.org/jira/browse/BEAM-12435>BEAM-12435</a>).</li></ul><ul><li>Respect number of shards set in Snowfl [...]
 <code>VARCHAR</code>, <code>NVARCHAR</code>, <code>LONGVARCHAR</code>, <code>LONGNVARCHAR</code>, <code>DATE</code>, <code>TIME</code>
-(Java)(<a href=https://issues.apache.org/jira/browse/BEAM-12385>BEAM-12385</a>).</li><li>Reading from JDBC source by partitions (Java) (<a href=https://issues.apache.org/jira/browse/BEAM-12456>BEAM-12456</a>).</li><li>PubsubIO can now write to a dead-letter topic after a parsing error (Java)(<a href=https://issues.apache.org/jira/browse/BEAM-12474>BEAM-12474</a>).</li><li>New append-only option for Elasticsearch sink (Java) <a href=https://issues.apache.org/jira/browse/BEAM-12601>BEAM-12 [...]
+(Java)(<a href=https://issues.apache.org/jira/browse/BEAM-12385>BEAM-12385</a>).</li><li>Reading from JDBC source by partitions (Java) (<a href=https://issues.apache.org/jira/browse/BEAM-12456>BEAM-12456</a>).</li><li>PubsubIO can now write to a dead-letter topic after a parsing error (Java)(<a href=https://issues.apache.org/jira/browse/BEAM-12474>BEAM-12474</a>).</li><li>New append-only option for Elasticsearch sink (Java) <a href=https://issues.apache.org/jira/browse/BEAM-12601>BEAM-12 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.33.0/index.html b/website/generated-content/blog/beam-2.33.0/index.html
index 678712c..808f356 100644
--- a/website/generated-content/blog/beam-2.33.0/index.html
+++ b/website/generated-content/blog/beam-2.33.0/index.html
@@ -89,7 +89,7 @@ Udi Meiri,
 vachan-shetty,
 Venkatramani Rajgopal,
 Yichi Zhang,
-zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><div class=po [...]
+zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div cla [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.34.0/index.html b/website/generated-content/blog/beam-2.34.0/index.html
index 696c704..2792c22 100644
--- a/website/generated-content/blog/beam-2.34.0/index.html
+++ b/website/generated-content/blog/beam-2.34.0/index.html
@@ -108,7 +108,7 @@ WinsonT,
 Yichi Zhang,
 Yifan Mai,
 Yilei &ldquo;Dolee&rdquo; Yang,
-zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><div class=po [...]
+zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div cla [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.35.0/index.html b/website/generated-content/blog/beam-2.35.0/index.html
index 04d0e6f..92bf770 100644
--- a/website/generated-content/blog/beam-2.35.0/index.html
+++ b/website/generated-content/blog/beam-2.35.0/index.html
@@ -102,7 +102,7 @@ Udi Meiri
 vachan-shetty
 Valentyn Tymofieiev
 Yichi Zhang
-zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><div class=po [...]
+zhoufek</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div cla [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.17.0/index.html b/website/generated-content/blog/beam-2.36.0/index.html
similarity index 65%
copy from website/generated-content/blog/beam-2.17.0/index.html
copy to website/generated-content/blog/beam-2.36.0/index.html
index 6a0e481..6880d90 100644
--- a/website/generated-content/blog/beam-2.17.0/index.html
+++ b/website/generated-content/blog/beam-2.36.0/index.html
@@ -1,44 +1,122 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>Apache Beam 2.17.0</title><meta name=description content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Spe [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>Apache Beam 2.36.0</title><meta name=description content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Spe [...]
 <a class=navbar-link href=/get-started/beam-overview/>Get Started</a>
 <a class=navbar-link href=/documentation/>Documentation</a>
 <button type=button class="navbar-toggle menu-open" aria-expanded=false aria-controls=navbar onclick=openMenu()>
 <span class=sr-only>Toggle navigation</span>
 <span class=icon-bar></span><span class=icon-bar></span><span class=icon-bar></span></button></div><div class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><button type=button class=navbar-toggle aria-expanded=false aria-controls=navbar id=closeMenu>
 <span class=sr-only>Toggle navigation</span>
-<span class=icon-bar></span><span class=icon-bar></span><span class=icon-bar></span></button><ul class="nav navbar-nav"><li><div class=searchBar-mobile><script>(function(){var cx='012923275103528129024:4emlchv9wzi';var gcse=document.createElement('script');gcse.type='text/javascript';gcse.async=true;gcse.src='https://cse.google.com/cse.js?cx='+cx;var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(gcse,s);})();</script><gcse:search></gcse:search></div></li><li><a c [...]
+<span class=icon-bar></span><span class=icon-bar></span><span class=icon-bar></span></button><ul class="nav navbar-nav"><li><div class=searchBar-mobile><script>(function(){var cx='012923275103528129024:4emlchv9wzi';var gcse=document.createElement('script');gcse.type='text/javascript';gcse.async=true;gcse.src='https://cse.google.com/cse.js?cx='+cx;var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(gcse,s);})();</script><gcse:search></gcse:search></div></li><li><a c [...]
 &nbsp;Apache
 <span class=arrow-icon><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><circle cx="10" cy="10" r="10" fill="#ff6d00"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.535 5.28l4.573 4.818-4.573 4.403"/></svg></span></a><ul class="dropdown-menu dropdown-menu-right"><li><a target=_blank href=http://www.apache.org/>ASF Homepage</a></li><li><a target=_blank href=http://www.apache.org/licenses/>License</a> [...]
 <span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="11" fill="none" viewBox="0 0 12 11"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.666 4.535 5.847 9.108 1.444 4.535"/></svg></span></a><ul class=dropdown-menu><li><a class=navbar-dropdown-menu-link href=/documentation/>General</a></li><li><a class=navbar-dropdown-menu-link href=/documentation/sdks/java/>Languages</a></li><li><a class=navbar-dropdown-menu-link href=/documentati [...]
 <a class=navbar-link href=/community/>Community</a>
 <a class=navbar-link href=/contribute/>Contribute</a>
 <a class=navbar-link href=/blog/>Blog</a>
-<a class=navbar-link href=/case-studies/>Case Studies</a></div><div id=iconsBar><a type=button onclick=showSearch()><svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" fill="none" viewBox="0 0 25 24"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.75" d="M10.191 17c3.866.0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zM21.191 21l-6-6"/></svg></a><a target=_blank href=https://github.com/apache/beam/edit/master/website/www/site/content/en [...]
+<a class=navbar-link href=/case-studies/>Case Studies</a></div><div id=iconsBar><a type=button onclick=showSearch()><svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" fill="none" viewBox="0 0 25 24"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.75" d="M10.191 17c3.866.0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zM21.191 21l-6-6"/></svg></a><a target=_blank href=https://github.com/apache/beam/edit/master/website/www/site/content/en [...]
 &nbsp;Apache
 <span class=arrow-icon><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><circle cx="10" cy="10" r="10" fill="#ff6d00"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.535 5.28l4.573 4.818-4.573 4.403"/></svg></span></a><ul class=dropdown-menu><li><a class=navbar-dropdown-menu-link target=_blank href=http://www.apache.org/>ASF Homepage</a></li><li><a class=navbar-dropdown-menu-link target=_blank href=h [...]
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2020/01/06</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.17.0</h1><div class=post-info><span>Mikhail Gryzykhin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>We are happy t [...]
-Users of the MongoDbIO connector are encouraged to upgrade to this release to address a <a href=/security/CVE-2020-1929/>security vulnerability</a>.</p><p>See the <a href=/get-started/downloads/#2170-2020-01-06>download page</a> for this release.</p><p>For more information on changes in 2.17.0, check out the
-<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12345970&projectId=12319527">detailed release notes</a>.</p><h2 id=highlights>Highlights</h2><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-7962>BEAM-7962</a> - Drop support for Flink 1.5 and 1.6</li><li><a href=https://issues.apache.org/jira/browse/BEAM-7635>BEAM-7635</a> - Migrate SnsIO to AWS SDK for Java 2</li><li>Improved usability for portable Flink Runner<ul><li><a href=https://issues.apache.org/ji [...]
-runner broken due to backwards incompatible change since 2.16.0.</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to git shortlog, the following people contributed to the 2.17.0 release. Thank you to all contributors!</p><p>Ahmet Altay, Alan Myrvold, Alexey Romanenko, Andre-Philippe Paquet, Andrew
-Pilloud, angulartist, Ankit Jhalaria, Ankur Goenka, Anton Kedin, Aryan Naraghi,
-Aurélien Geron, B M VISHWAS, Bartok Jozsef, Boyuan Zhang, Brian Hulette, Cerny
-Ondrej, Chad Dombrova, Chamikara Jayalath, ChethanU, cmach, Colm O hEigeartaigh,
-Cyrus Maden, Daniel Oliveira, Daniel Robert, Dante, David Cavazos, David
-Moravek, David Yan, Enrico Canzonieri, Etienne Chauchot, gxercavins, Hai Lu,
-Hannah Jiang, Ian Lance Taylor, Ismaël Mejía, Israel Herraiz, James Wen, Jan
-Lukavský, Jean-Baptiste Onofré, Jeff Klukas, jesusrv1103, Jofre, Kai Jiang,
-Kamil Wasilewski, Kasia Kucharczyk, Kenneth Knowles, Kirill Kozlov,
-kirillkozlov, Kohki YAMAGIWA, Kyle Weaver, Leonardo Alves Miguel, lloigor,
-lostluck, Luis Enrique Ortíz Ramirez, Luke Cwik, Mark Liu, Maximilian Michels,
-Michal Walenia, Mikhail Gryzykhin, mrociorg, Nicolas Delsaux, Ning Kang, NING
-KANG, Pablo Estrada, pabloem, Piotr Szczepanik, rahul8383, Rakesh Kumar, Renat
-Nasyrov, Reuven Lax, Robert Bradshaw, Robert Burke, Rui Wang, Ruslan Altynnikov,
-Ryan Skraba, Salman Raza, Saul Chavez, Sebastian Jambor, sunjincheng121, Tatu
-Saloranta, tchiarato, Thomas Weise, Tomo Suzuki, Tudor Marian, tvalentyn, Udi
-Meiri, Valentyn Tymofieiev, Viola Lyu, Vishwas, Yichi Zhang, Yifan Zou, Yueyang
-Qiu, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><d [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2022/02/07</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.36.0</h1><div class=post-info><span>Emily Ye</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>We are happy to present [...]
+This release includes both improvements and new functionality.
+See the <a href=/get-started/downloads/#2360-2022-02-07>download page</a> for this release.</p><p>For more information on changes in 2.36.0, check out the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12350406">detailed release
+notes</a>.</p><h2 id=ios>I/Os</h2><ul><li>Support for stopReadTime on KafkaIO SDF (Java).(<a href=https://issues.apache.org/jira/browse/BEAM-13171>BEAM-13171</a>).</li></ul><h2 id=new-features--improvements>New Features / Improvements</h2><ul><li>Added support for cloudpickle as a pickling library for Python SDK (<a href=https://issues.apache.org/jira/browse/BEAM-8123>BEAM-8123</a>). To use cloudpickle, set pipeline option: &ndash;pickler_lib=cloudpickle</li><li>Added option to specify t [...]
+(<a href=https://issues.apache.org/jira/browse/BEAM-13421%5D>BEAM-13421</a>).</li></ul><h2 id=known-issues>Known Issues</h2><ul><li>Users may encounter an unexpected java.lang.ArithmeticException when outputting a timestamp
+for an element further than allowedSkew from an allowed DoFN skew set to a value more than
+Integer.MAX_VALUE.</li><li>See a full list of open <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20affectedVersion%20%3D%202.36.0%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC">issues that affect</a> this version.</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to git shortlog, the following people contributed to the 2.36.0 release. Thank you to all contributors!</p><p>Ada Wong
+Ahmet Altay
+Alexander
+Alexander Dahl
+Alexandr Zhuravlev
+Alexey Romanenko
+AlikRodriguez
+Anand Inguva
+Andrew Pilloud
+Andy Ye
+Arkadiusz Gasiński
+Artur Khanin
+Arun Pandian
+Aydar Farrakhov
+Aydar Zainutdinov
+AydarZaynutdinov
+Benjamin Gonzalez
+Brian Hulette
+Chamikara Jayalath
+Daniel Collins
+Daniel Oliveira
+Daniel Thevessen
+Daniela Martín
+David Hinkes
+David Huntsperger
+Emily Ye
+Etienne Chauchot
+Evan Galpin
+Heejong Lee
+Ilya
+Ilya Kozyrev
+In-Ho Yi
+Jack McCluskey
+Janek Bevendorff
+Jarek Potiuk
+Ke Wu
+KevinGG
+Kyle Hersey
+Kyle Weaver
+Luís Bianchin
+Luke Cwik
+Masato Nakamura
+Matthias Baetens
+Mehdi Drissi
+Melissa Pashniak
+Michel Davit
+Miguel Hernandez
+MiguelAnzoWizeline
+Milena Bukal
+Moritz Mack
+Mostafa Aghajani
+Nathan J Mehl
+Niel Markwick
+Ning Kang
+Pablo Estrada
+Pavel Avilov
+Quentin Sommer
+Reuben van Ammers
+Reuven Lax
+Ritesh Ghorse
+Robert Bradshaw
+Robert Burke
+Ryan Thompson
+Sam Whittle
+Sayat
+Sergei Lebedev
+Sergey Kalinin
+Steve Niemitz
+Talat Uyarer
+Thiago Nunes
+Tianyang Hu
+Tim Robertson
+Valentyn Tymofieiev
+Vitaly Ivanov
+Yichi Zhang
+Yiru Tang
+Yu Feng
+Yu ISHIKAWA
+Zachary Houfek
+blais
+daria-malkova
+daria.malkova
+darshan-sj
+dpcollins-google
+emily
+ewianda
+johnjcasey
+kileys
+lam206
+laraschmidt
+mosche
+<a href=mailto:msbukal@google.com>msbukal@google.com</a>
+tvalentyn</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div c [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.5.0/index.html b/website/generated-content/blog/beam-2.5.0/index.html
index 10f4864..d710d9e 100644
--- a/website/generated-content/blog/beam-2.5.0/index.html
+++ b/website/generated-content/blog/beam-2.5.0/index.html
@@ -20,7 +20,7 @@ function endSearch(){var search=document.querySelector(".searchBar");search.clas
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/06/26</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.5.0</h1><div class=post-info><span>Alexey Romanenko [<a href=https://twitter.com/alexromdev>@alexromdev</a>]</span></div></header><div class="arrow-list he [...]
 multiple fixes and new functionalities.</p><p>For more information
-please check the detailed release notes.</p><h1 id=new-features--improvements>New Features / Improvements</h1><h2 id=go-sdk-support>Go SDK support</h2><p>The Go SDK has been officially accepted into the project, after an incubation period and community effort. Go pipelines run on Dataflow runner. More details are <a href=/documentation/sdks/go/>here</a>.</p><h2 id=parquet-support>Parquet support</h2><p>Support for Apache Parquet format was added. It uses Parquet 1.10 release which, thank [...]
+please check the detailed release notes.</p><h1 id=new-features--improvements>New Features / Improvements</h1><h2 id=go-sdk-support>Go SDK support</h2><p>The Go SDK has been officially accepted into the project, after an incubation period and community effort. Go pipelines run on Dataflow runner. More details are <a href=/documentation/sdks/go/>here</a>.</p><h2 id=parquet-support>Parquet support</h2><p>Support for Apache Parquet format was added. It uses Parquet 1.10 release which, thank [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.6.0/index.html b/website/generated-content/blog/beam-2.6.0/index.html
index 93114a2..ecee0c8 100644
--- a/website/generated-content/blog/beam-2.6.0/index.html
+++ b/website/generated-content/blog/beam-2.6.0/index.html
@@ -39,7 +39,7 @@ Lukasz Cwik, Maria Garcia Herrero, Mark Liu, Matthias Feys,
 Pablo Estrada, Rafael Fernandez, Reuven Lax, Robert Bradshaw,
 Robert Burke, Robin Qiu, Ryan Williams, Scott Wegner, Rui Weng,
 Sergei Lebedev, Sindy Li, Thomas Weise, Udi Meiri,
-Valentyn Tymofieiev, XuMingmin, and Yifan Zou.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog< [...]
+Valentyn Tymofieiev, XuMingmin, and Yifan Zou.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p> [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.7.0/index.html b/website/generated-content/blog/beam-2.7.0/index.html
index e2d1c7d..4b98766 100644
--- a/website/generated-content/blog/beam-2.7.0/index.html
+++ b/website/generated-content/blog/beam-2.7.0/index.html
@@ -37,7 +37,7 @@ Melissa Pashniak, Mikhail Gryzykhin, Mikhail Sokolov, mingmxu, Norbert
 Chen, Pablo Estrada, Prateek Chanda, Raghu Angadi, Ravi Pathak, Reuven
 Lax, Robert Bradshaw, Robert Burke, Rui Wang, Ryan Williams, Sindy Li,
 Thomas Weise, Tim Robertson, Tormod Haavi, Udi Meiri, Vaclav Plajt,
-Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-ca [...]
+Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info po [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.8.0/index.html b/website/generated-content/blog/beam-2.8.0/index.html
index 0bdd080..176b1b7 100644
--- a/website/generated-content/blog/beam-2.8.0/index.html
+++ b/website/generated-content/blog/beam-2.8.0/index.html
@@ -44,7 +44,7 @@ Xinyu Liu, XuMingmin, Yifan Zou, Yuan, Yueyang Qiu, aalbatross, amaliujia,
 cclauss, connelloG, daidokoro, deepyaman, djhworld, flyisland, huygaa11,
 jasonkuster, jglezt, kkpoon, mareksimunek, nielm, svXaverius, timrobertson100,
 <a href=mailto:vaclav.plajt@gmail.com>vaclav.plajt@gmail.com</a>, vitaliytv, vvarma, xiliu, xinyuiscool, xitep,
-Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><div c [...]
+Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div>< [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.9.0/index.html b/website/generated-content/blog/beam-2.9.0/index.html
index 19cd230..adf12ee 100644
--- a/website/generated-content/blog/beam-2.9.0/index.html
+++ b/website/generated-content/blog/beam-2.9.0/index.html
@@ -21,7 +21,7 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/12/13</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.9.0</h1><div class=post-info><span>Chamikara Jayalath</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>We are happy t [...]
 See the <a href=/get-started/downloads/#290-2018-12-13>download page</a> for this release.</p><p>For more information on changes in 2.9.0, check out the
 <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12344258">detailed release notes</a>.</p><h2 id=new-features--improvements>New Features / Improvements</h2><h3 id=dependency-upgrades>Dependency Upgrades</h3><ul><li>Update google-api-client libraries to 1.27.0.</li><li>Update byte-buddy to 1.9.3</li><li>Update Flink Runner to 1.5.5</li><li>Upgrade google-apitools to 0.5.24</li></ul><h3 id=portability>Portability</h3><ul><li>Added support for user  [...]
-to the 2.9.0 release. Thank you to all contributors!</p><p>Adam Horky, Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Andrea Foegler, Andrew Fulton, Andrew Pilloud, Ankur Goenka, Anton Kedin, Babu, Ben Song, Bingfeng Shu, Boyuan Zhang, Brian Martin, Brian Quinlan, Chamikara Jayalath, Charles Chen, Christian Schneider, Colm O hEigeartaigh, Cory Brzycki, CraigChambersG, Daniel Oliveira, David Moravek, Dusan Rychnovsky, Etienne Chauchot, Eugene Kirpichov, Fabien Rousseau, Gleb Kan [...]
+to the 2.9.0 release. Thank you to all contributors!</p><p>Adam Horky, Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Andrea Foegler, Andrew Fulton, Andrew Pilloud, Ankur Goenka, Anton Kedin, Babu, Ben Song, Bingfeng Shu, Boyuan Zhang, Brian Martin, Brian Quinlan, Chamikara Jayalath, Charles Chen, Christian Schneider, Colm O hEigeartaigh, Cory Brzycki, CraigChambersG, Daniel Oliveira, David Moravek, Dusan Rychnovsky, Etienne Chauchot, Eugene Kirpichov, Fabien Rousseau, Gleb Kan [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-a-look-back/index.html b/website/generated-content/blog/beam-a-look-back/index.html
index 53f0588..aadceea 100644
--- a/website/generated-content/blog/beam-a-look-back/index.html
+++ b/website/generated-content/blog/beam-a-look-back/index.html
@@ -78,7 +78,7 @@ users to constantly learn new SDKs/APIs and rewrite their workloads to
 benefit from new innovation.</li><li>Benefit big-data engines by <em><strong>growing the pie for everyone</strong></em>: Making it
 easier for users to author, maintain, upgrade and migrate their big-data
 workloads will lead to significant growth in the number of production
-big-data deployments.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p [...]
+big-data deployments.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-first-stable-release/index.html b/website/generated-content/blog/beam-first-stable-release/index.html
index e8cd87c..7f06404 100644
--- a/website/generated-content/blog/beam-first-stable-release/index.html
+++ b/website/generated-content/blog/beam-first-stable-release/index.html
@@ -20,7 +20,7 @@ function endSearch(){var search=document.querySelector(".searchBar");search.clas
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2017/05/17</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam publishes the first stable release</h1><div class=post-info><span>Davor Bonaci [<a href=https://twitter.com/BonaciDavor>@BonaciDavor</a>]
 &
-Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>The Apache Beam community is pleased to <a href=https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12>announce the availability of version 2.0.0</a>. This is the first stable release of Apache Beam, signifying a statement from the community that it intends to maintain API stability with all releases for the foreseeable future, and making Beam suitable for ent [...]
+Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>The Apache Beam community is pleased to <a href=https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12>announce the availability of version 2.0.0</a>. This is the first stable release of Apache Beam, signifying a statement from the community that it intends to maintain API stability with all releases for the foreseeable future, and making Beam suitable for ent [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-graduates/index.html b/website/generated-content/blog/beam-graduates/index.html
index 426fce9..c6b294c 100644
--- a/website/generated-content/blog/beam-graduates/index.html
+++ b/website/generated-content/blog/beam-graduates/index.html
@@ -58,7 +58,7 @@ towards our first release with API stability. If you’d like to try out Apache
 Beam today, check out the latest
 <a href=/get-started/downloads/>0.4.0 release</a>. We welcome
 contribution and participation from anyone through our mailing lists, issue
-tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/ [...]
+tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p> [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-has-a-logo/index.html b/website/generated-content/blog/beam-has-a-logo/index.html
index 8936dd8..f99af5c 100644
--- a/website/generated-content/blog/beam-has-a-logo/index.html
+++ b/website/generated-content/blog/beam-has-a-logo/index.html
@@ -28,7 +28,7 @@ unification of bath and streaming, as beams of light, within the &lsquo;B&rsquo;
 our future website and documentation design around this logo and its coloring. We
 will also make various permutations and resolutions of this logo available in the
 coming weeks. For any questions or comments, send an email to the <code>dev@</code> email list
-for Apache Beam.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><div [...]
+for Apache Beam.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-kata-release/index.html b/website/generated-content/blog/beam-kata-release/index.html
index 06d29c2..de82024 100644
--- a/website/generated-content/blog/beam-kata-release/index.html
+++ b/website/generated-content/blog/beam-kata-release/index.html
@@ -37,7 +37,7 @@ also like to welcome you to <a href=https://github.com/apache/beam>contribute</a
 useful for people to learn more about Apache Beam, and eventually become Beam Masters!</p><br><img src=/images/blog/beam-kata/beam-kata-intellij-edu-1.png alt="Beam Kata - IntelliJ Edu" width=363 height=350>
 <img src=/images/blog/beam-kata/beam-kata-intellij-edu-2.png alt="Beam Kata - IntelliJ Edu" width=455 height=350>
 <img src=/images/blog/beam-kata/beam-kata-pycharm-edu-1.png alt="Beam Kata - PyCharm Edu" width=363 height=350>
-<img src=/images/blog/beam-kata/beam-kata-pycharm-edu-2.png alt="Beam Kata - PyCharm Edu" width=459 height=350></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data- [...]
+<img src=/images/blog/beam-kata/beam-kata-pycharm-edu-2.png alt="Beam Kata - PyCharm Edu" width=459 height=350></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/  [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-katas-kotlin-release/index.html b/website/generated-content/blog/beam-katas-kotlin-release/index.html
index 087953a..49ae3bf 100644
--- a/website/generated-content/blog/beam-katas-kotlin-release/index.html
+++ b/website/generated-content/blog/beam-katas-kotlin-release/index.html
@@ -30,7 +30,7 @@ of engineering teams embracing the two technologies including <a href=https://be
 If you are new to Beam or are an experienced veteran looking for a change of pace, we&rsquo;d encourage you to give
 Kotlin a try.</p><p>You can find the Kotlin and the other excellent Beam Katas below (or by just searching for &ldquo;Beam Katas&rdquo; within
 <a href="https://www.jetbrains.com/education/download/#section=idea">IntelliJ</a> or <a href="https://www.jetbrains.com/education/download/#section=pycharm-edu">PyCharm</a> through <a href=https://plugins.jetbrains.com/plugin/10081-edutools>the EduTools plugin</a>):</p><ul><li><a href=https://stepik.org/course/72488><strong>Kotlin</strong></a></li><li><a href=https://stepik.org/course/54530><strong>Java</strong></a></li><li><a href=https://stepik.org/course/54532><strong>Python</strong>< [...]
-and his support during the review process and making this effort a reality.</p><p><br></p><p><img src=/images/blog/beam-katas-kotlin-release/beam-katas-in-edutools.png alt="Access Beam Katas Kotlin through a JetBrains Educational Product" height=252 width=800></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div> [...]
+and his support during the review process and making this effort a reality.</p><p><br></p><p><img src=/images/blog/beam-katas-kotlin-release/beam-katas-in-edutools.png alt="Access Beam Katas Kotlin through a JetBrains Educational Product" height=252 width=800></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div> [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-kotlin/index.html b/website/generated-content/blog/beam-kotlin/index.html
index ea234cb..d09268f 100644
--- a/website/generated-content/blog/beam-kotlin/index.html
+++ b/website/generated-content/blog/beam-kotlin/index.html
@@ -36,7 +36,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 <span class=o>}</span></code></pre></div></div></div><h3 id=kotlin-2>Kotlin</h3><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>tableRow</span><span class=o>?.</span><span class=na>let</span><span class=o>{</span>
     <span class=n>formatAndInsert</span><span class=o>(</span><span class=n>it</span><span class=o>)</span>  <span class=c1>// No need for null checks
 </span><span class=c1></span><span class=o>}</span></code></pre></div></div></div><h3 id=java-3>Java</h3><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>String</span> <span class=n>tableName</span> <span class=o>=</span> <span class=s>& [...]
-You can find them over here : <a href=https://github.com/apache/beam/tree/master/examples/kotlin>https://github.com/apache/beam/tree/master/examples/kotlin</a></p><p>If you are using Kotlin with Apache Beam already; we would very much appreciate if you went ahead and help us convert the existing samples from Java into Koltin.</p><p>Thank you, and we are looking forward to feedback from you!</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a [...]
+You can find them over here : <a href=https://github.com/apache/beam/tree/master/examples/kotlin>https://github.com/apache/beam/tree/master/examples/kotlin</a></p><p>If you are using Kotlin with Apache Beam already; we would very much appreciate if you went ahead and help us convert the existing samples from Java into Koltin.</p><p>Thank you, and we are looking forward to feedback from you!</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-aftermath/index.html b/website/generated-content/blog/beam-summit-aftermath/index.html
index fb4dcfa..6865ede 100644
--- a/website/generated-content/blog/beam-summit-aftermath/index.html
+++ b/website/generated-content/blog/beam-summit-aftermath/index.html
@@ -19,7 +19,7 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/10/31</p></div><header class=post-header><h2 itemprop="name headline">Inaugural edition of the Beam Summit Europe 2018 - aftermath</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaeten [...]
-Google, Spotify, Talend, Sky, Amazon, Data Artisans, Datatonic, Vente Exclusive, ML6, Flumaion, Plantix, Polidea, Seznam and more!</p><br>#### Topics included using Python to run Beam on Flink:<blockquote class=twitter-tweet data-lang=nl><p lang=en dir=ltr>Don't miss <a href="https://twitter.com/snntrable?ref_src=twsrc%5Etfw">@snntrable</a>'s session at Beam Sumit London, Oct. 2, 2018, about <a href="https://twitter.com/hashtag/Python?src=hash&ref_src=twsrc%5Etfw">#Python</a> Streaming P [...]
+Google, Spotify, Talend, Sky, Amazon, Data Artisans, Datatonic, Vente Exclusive, ML6, Flumaion, Plantix, Polidea, Seznam and more!</p><br>#### Topics included using Python to run Beam on Flink:<blockquote class=twitter-tweet data-lang=nl><p lang=en dir=ltr>Don't miss <a href="https://twitter.com/snntrable?ref_src=twsrc%5Etfw">@snntrable</a>'s session at Beam Sumit London, Oct. 2, 2018, about <a href="https://twitter.com/hashtag/Python?src=hash&ref_src=twsrc%5Etfw">#Python</a> Streaming P [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-digital-2020/index.html b/website/generated-content/blog/beam-summit-digital-2020/index.html
index a92420f..6b87bd8 100644
--- a/website/generated-content/blog/beam-summit-digital-2020/index.html
+++ b/website/generated-content/blog/beam-summit-digital-2020/index.html
@@ -23,7 +23,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]
 ,
 &
-Maximilian Michels [<a href=https://twitter.com/stadtlegende>@stadtlegende</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>As some of you are already aware, the 2020 edition of the Beam Summit will be completely <strong>digital and free</strong>. Beam Summit Digital will take place from <strong>August 24th to 28th</strong>. The conference will be spread across the course of one week with a couple of hours of program each day.</p><p><img class=c [...]
+Maximilian Michels [<a href=https://twitter.com/stadtlegende>@stadtlegende</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>As some of you are already aware, the 2020 edition of the Beam Summit will be completely <strong>digital and free</strong>. Beam Summit Digital will take place from <strong>August 24th to 28th</strong>. The conference will be spread across the course of one week with a couple of hours of program each day.</p><p><img class=c [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-europe-2019/index.html b/website/generated-content/blog/beam-summit-europe-2019/index.html
index a7d13a0..e7fa309 100644
--- a/website/generated-content/blog/beam-summit-europe-2019/index.html
+++ b/website/generated-content/blog/beam-summit-europe-2019/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/05/11</p></div><header class=post-header><h2 itemprop="name headline">Beam community update!</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]</span></div></header><div class [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/05/11</p></div><header class=post-header><h2 itemprop="name headline">Beam community update!</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]</span></div></header><div class [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-europe/index.html b/website/generated-content/blog/beam-summit-europe/index.html
index 2bd7634..277ce4e 100644
--- a/website/generated-content/blog/beam-summit-europe/index.html
+++ b/website/generated-content/blog/beam-summit-europe/index.html
@@ -19,7 +19,7 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/08/21</p></div><header class=post-header><h2 itemprop="name headline">Beam Summit Europe 2018</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]</span></div></header><div clas [...]
-The Events & Meetups Group</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p> [...]
+The Events & Meetups Group</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/1 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-site/index.html b/website/generated-content/blog/beam-summit-site/index.html
index f1d02fd..b1f0ac0 100644
--- a/website/generated-content/blog/beam-summit-site/index.html
+++ b/website/generated-content/blog/beam-summit-site/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/03/18</p></div><header class=post-header><h2 itemprop="name headline">Announcing Beam Summit Site</h1><div class=post-info><span>Aizhamal Nurmamat kyzy [<a href=https://twitter.com/iamaijamal>@iamaijamal</a>]</span></div></header><div clas [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/03/18</p></div><header class=post-header><h2 itemprop="name headline">Announcing Beam Summit Site</h1><div class=post-info><span>Aizhamal Nurmamat kyzy [<a href=https://twitter.com/iamaijamal>@iamaijamal</a>]</span></div></header><div clas [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/capability-matrix/index.html b/website/generated-content/blog/capability-matrix/index.html
index cdabd35..adf8eaa 100644
--- a/website/generated-content/blog/capability-matrix/index.html
+++ b/website/generated-content/blog/capability-matrix/index.html
@@ -169,7 +169,7 @@ Tyler Akidau [<a href=https://twitter.com/takidau>@takidau</a>]</span></div></he
 <b></b></center></td><td width=25% class=cap-summary style=background-color:#fe5;border-color:#ca1><center><b>~</b>
 <b></b></center></td><td width=25% class=cap-summary style=background-color:#fe5;border-color:#ca1><center><b>~</b>
 <b></b></center></td><td width=25% class=cap-summary style=background-color:#ddd;border-color:#ca1><center><b>&#x2715;</b>
-<b></b></center></td></tr><tr class=cap-summary><td class="cap-summary color-blank cap-blank" colspan=5></td></tr></table></div></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/ [...]
+<b></b></center></td></tr><tr class=cap-summary><td class="cap-summary color-blank cap-blank" colspan=5></td></tr></table></div></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card hre [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/dataframe-api-preview-available/index.html b/website/generated-content/blog/dataframe-api-preview-available/index.html
index 53168d7..88a09cc 100644
--- a/website/generated-content/blog/dataframe-api-preview-available/index.html
+++ b/website/generated-content/blog/dataframe-api-preview-available/index.html
@@ -128,7 +128,7 @@ and our <a href=https://2020.beamsummit.org/sessions/simpler-python-pipelines/>B
 presentation</a>.
 From there the best way to help is to knock out some of those not implemented
 operations. We&rsquo;re coordinating that work in
-<a href=https://issues.apache.org/jira/browse/BEAM-9547>BEAM-9547</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info [...]
+<a href=https://issues.apache.org/jira/browse/BEAM-9547>BEAM-9547</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/first-release/index.html b/website/generated-content/blog/first-release/index.html
index eb2f180..768afab 100644
--- a/website/generated-content/blog/first-release/index.html
+++ b/website/generated-content/blog/first-release/index.html
@@ -37,7 +37,7 @@ anticipated, perhaps one every 1-2 months.</p><p>As always, the Beam community w
 the developer experience will be our focus for the next several months. If you
 have any comments or discover any issues, I’d like to invite you to reach out
 to us via <a href=/get-started/support/>user’s mailing list</a> or the
-<a href=https://issues.apache.org/jira/browse/BEAM/>Apache JIRA issue tracker</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div clas [...]
+<a href=https://issues.apache.org/jira/browse/BEAM/>Apache JIRA issue tracker</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/flink-batch-runner-milestone/index.html b/website/generated-content/blog/flink-batch-runner-milestone/index.html
index 5380dfc..034aa6c 100644
--- a/website/generated-content/blog/flink-batch-runner-milestone/index.html
+++ b/website/generated-content/blog/flink-batch-runner-milestone/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/06/13</p></div><header class=post-header><h2 itemprop="name headline">How We Added Windowing to the Apache Flink Batch Runner</h1><div class=post-info><span>Aljoscha Krettek [<a href=https://twitter.com/aljoscha>@aljoscha</a>]</span></div> [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/06/13</p></div><header class=post-header><h2 itemprop="name headline">How We Added Windowing to the Apache Flink Batch Runner</h1><div class=post-info><span>Aljoscha Krettek [<a href=https://twitter.com/aljoscha>@aljoscha</a>]</span></div> [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/go-sdk-release/index.html b/website/generated-content/blog/go-sdk-release/index.html
index a848e28..68c9a12 100644
--- a/website/generated-content/blog/go-sdk-release/index.html
+++ b/website/generated-content/blog/go-sdk-release/index.html
@@ -41,7 +41,7 @@ Major changes will be mentioned in the release notes.
 For example, using <code>beam.WindowInto</code> with Triggers is currently experimental and may have the API changed in a future release.</p><p>Primary user packages include:</p><ul><li>The main beam package <code>github.com/apache/beam/sdks/v2/go/pkg/beam</code></li><li>Sub packages under <code>.../transforms</code>, <code>.../io</code>, <code>.../runners</code>, and <code>.../testing</code>.</li></ul><p>Generally, packages in the module other than the primary user packages are for fram [...]
 Ongoing focus is to bolster streaming focused features, improve existing connectors, and make connectors easier to implement.</p><p>In the nearer term this comes in the form of improvements to side inputs, and providing wrappers and improving ease-of-use for cross language transforms from Java.</p><h2 id=conclusion>Conclusion</h2><p>We hope you find the SDK useful, and it&rsquo;s still early days.
 If you make something with the Go SDK, consider <a href=/community/contact-us/>sharing it with us</a>.
-And remember, <a href=/contribute/>contributions</a> are always welcome.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-in [...]
+And remember, <a href=/contribute/>contributions</a> are always welcome.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="po [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/graduation-media-recap/index.html b/website/generated-content/blog/graduation-media-recap/index.html
index 67f5fba..02578a7 100644
--- a/website/generated-content/blog/graduation-media-recap/index.html
+++ b/website/generated-content/blog/graduation-media-recap/index.html
@@ -36,7 +36,7 @@ as a user or a contributor, as we work towards our first release with API
 stability. If you’d like to try out Apache Beam today, check out the latest
 <a href=/get-started/downloads/>0.4.0 release</a>. We welcome
 contribution and participation from anyone through our mailing lists, issue
-tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/ [...]
+tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p> [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/gsoc-19/index.html b/website/generated-content/blog/gsoc-19/index.html
index 8a1f36f..c08c60c 100644
--- a/website/generated-content/blog/gsoc-19/index.html
+++ b/website/generated-content/blog/gsoc-19/index.html
@@ -36,7 +36,7 @@ I also worked on small issues related to testing.</p><p>This period was marked b
 While working on my project, I was using a pipeline that uses PubSub as a source and BigQuery as a sink to validate my changes. My mentor suggested we add them to the Beam test suite as it would be the ultimate test for BigQueryIO. I also worked on adding this test to Beam.</p><p>You can find the list of PRs I worked on <a href="https://github.com/apache/beam/pulls?utf8=%E2%9C%93&q=is%3Apr+author%3Attanay">here</a>.</p><h2 id=conclusion>Conclusion</h2><p>GSoC has been a lesson in discipl [...]
 I had never worked remotely, so this was a new experience. Although I struggled with it initially, I appreciate the flexibility that it comes with.
 I also had a lot of fun learning about Apache Beam’s internals, and other tools in the same ecosystem.
-This was also the first time I had written code with a test-first approach.</p><p>I thank my mentor - Pablo Estrada, Apache Beam, The Apache Software Foundation and Google Summer of Code for this opportunity. I am also grateful to my mentor for helping me with everything I needed and more, and the Apache Beam community for being supportive and encouraging.</p><p>With the right effort, perseverance, conviction, and a plan, anything is possible. Anything.</p></div></div><div class=blog-con [...]
+This was also the first time I had written code with a test-first approach.</p><p>I thank my mentor - Pablo Estrada, Apache Beam, The Apache Software Foundation and Google Summer of Code for this opportunity. I am also grateful to my mentor for helping me with everything I needed and more, and the Apache Beam community for being supportive and encouraging.</p><p>With the right effort, perseverance, conviction, and a plan, anything is possible. Anything.</p></div></div><div class=blog-con [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/index.html b/website/generated-content/blog/index.html
index 4390b3f..82affa4 100644
--- a/website/generated-content/blog/index.html
+++ b/website/generated-content/blog/index.html
@@ -39,7 +39,7 @@ capability</button>
 <button xx class=category-button id=category-sdk onclick=applyFilter(this)>
 sdk</button>
 <button xx class=category-button id=category-website onclick=applyFilter(this)>
-website</button></div><div class=posts-list><a class="post-card tf-filter-item" href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p><div class=post-summary>We are happy to present the new 2.35.0 release of Apache Beam. This release includes both improvements and new functionality. See the download page for this release.</div></a><a class="pos [...]
+website</button></div><div class=posts-list><a class="post-card tf-filter-item" href=/blog/beam-2.36.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2022/02/07</p></div><p class=post-title>Apache Beam 2.36.0</p><p class=post-info>Emily Ye</p><div class=post-summary>We are happy to present the new 2.36.0 release of Apache Beam. This release includes both improvements and new functionality. See the download page for this release.</div></a><a class="post-card tf-f [...]
 For more information on changes in 2.</div></a><a class="post-card tf-filter-item" href=/blog/beam-2.31.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/07/08</p></div><p class=post-title>Apache Beam 2.31.0</p><p class=post-info>Andrew Pilloud</p><div class=post-summary>We are happy to present the new 2.31.0 release of Beam. This release includes both improvements and new functionality. See the download page for this release.</div></a><a class="post-card tf [...]
                    </p><p>2021/01/15</p></div><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
diff --git a/website/generated-content/blog/index.xml b/website/generated-content/blog/index.xml
index 861bcaa..92defaa 100644
--- a/website/generated-content/blog/index.xml
+++ b/website/generated-content/blog/index.xml
@@ -1,4 +1,140 @@
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Blogs</title><link>/blog/</link><description>Recent content in Blogs on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Wed, 29 Dec 2021 10:11:00 -0800</lastBuildDate><atom:link href="/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Apache Beam 2.35.0</title><link>/blog/beam-2.35.0/</link><pubDate>Wed, 29 Dec 2021 10:11:00 -0800</pubDate><gui [...]
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Blogs</title><link>/blog/</link><description>Recent content in Blogs on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Mon, 07 Feb 2022 10:11:00 -0800</lastBuildDate><atom:link href="/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Apache Beam 2.36.0</title><link>/blog/beam-2.36.0/</link><pubDate>Mon, 07 Feb 2022 10:11:00 -0800</pubDate><gui [...]
+&lt;!--
+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.
+-->
+&lt;p>We are happy to present the new 2.36.0 release of Apache Beam.
+This release includes both improvements and new functionality.
+See the &lt;a href="/get-started/downloads/#2360-2022-02-07">download page&lt;/a> for this release.&lt;/p>
+&lt;p>For more information on changes in 2.36.0, check out the &lt;a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&amp;amp;version=12350406">detailed release
+notes&lt;/a>.&lt;/p>
+&lt;h2 id="ios">I/Os&lt;/h2>
+&lt;ul>
+&lt;li>Support for stopReadTime on KafkaIO SDF (Java).(&lt;a href="https://issues.apache.org/jira/browse/BEAM-13171">BEAM-13171&lt;/a>).&lt;/li>
+&lt;/ul>
+&lt;h2 id="new-features--improvements">New Features / Improvements&lt;/h2>
+&lt;ul>
+&lt;li>Added support for cloudpickle as a pickling library for Python SDK (&lt;a href="https://issues.apache.org/jira/browse/BEAM-8123">BEAM-8123&lt;/a>). To use cloudpickle, set pipeline option: &amp;ndash;pickler_lib=cloudpickle&lt;/li>
+&lt;li>Added option to specify triggering frequency when streaming to BigQuery (Python) (&lt;a href="https://issues.apache.org/jira/browse/BEAM-12865">BEAM-12865&lt;/a>).&lt;/li>
+&lt;li>Added option to enable caching uploaded artifacts across job runs for Python Dataflow jobs (&lt;a href="https://issues.apache.org/jira/browse/BEAM-13459">BEAM-13459&lt;/a>). To enable, set pipeline option: &amp;ndash;enable_artifact_caching, this will be enabled by default in a future release.&lt;/li>
+&lt;/ul>
+&lt;h2 id="breaking-changes">Breaking Changes&lt;/h2>
+&lt;ul>
+&lt;li>Updated the jedis from 3.x to 4.x to Java RedisIO. If you are using RedisIO and using jedis directly, please refer to &lt;a href="https://github.com/redis/jedis/blob/v4.0.0/docs/3to4.md">this page&lt;/a> to update it. (&lt;a href="https://issues.apache.org/jira/browse/BEAM-12092">BEAM-12092&lt;/a>).&lt;/li>
+&lt;li>Datatype of timestamp fields in &lt;code>SqsMessage&lt;/code> for AWS IOs for SDK v2 was changed from &lt;code>String&lt;/code> to &lt;code>long&lt;/code>, visibility of all fields was fixed from &lt;code>package private&lt;/code> to &lt;code>public&lt;/code> &lt;a href="https://issues.apache.org/jira/browse/BEAM-13638">BEAM-13638&lt;/a>.&lt;/li>
+&lt;li>Properly check output timestamps on elements output from DoFns, timers, and onWindowExpiration in Java &lt;a href="https://issues.apache.org/jira/browse/BEAM-12931">BEAM-12931&lt;/a>.&lt;/li>
+&lt;li>Fixed a bug with DeferredDataFrame.xs when used with a non-tuple key
+(&lt;a href="https://issues.apache.org/jira/browse/BEAM-13421%5D">BEAM-13421&lt;/a>).&lt;/li>
+&lt;/ul>
+&lt;h2 id="known-issues">Known Issues&lt;/h2>
+&lt;ul>
+&lt;li>Users may encounter an unexpected java.lang.ArithmeticException when outputting a timestamp
+for an element further than allowedSkew from an allowed DoFN skew set to a value more than
+Integer.MAX_VALUE.&lt;/li>
+&lt;li>See a full list of open &lt;a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20affectedVersion%20%3D%202.36.0%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC">issues that affect&lt;/a> this version.&lt;/li>
+&lt;/ul>
+&lt;h2 id="list-of-contributors">List of Contributors&lt;/h2>
+&lt;p>According to git shortlog, the following people contributed to the 2.36.0 release. Thank you to all contributors!&lt;/p>
+&lt;p>Ada Wong
+Ahmet Altay
+Alexander
+Alexander Dahl
+Alexandr Zhuravlev
+Alexey Romanenko
+AlikRodriguez
+Anand Inguva
+Andrew Pilloud
+Andy Ye
+Arkadiusz Gasiński
+Artur Khanin
+Arun Pandian
+Aydar Farrakhov
+Aydar Zainutdinov
+AydarZaynutdinov
+Benjamin Gonzalez
+Brian Hulette
+Chamikara Jayalath
+Daniel Collins
+Daniel Oliveira
+Daniel Thevessen
+Daniela Martín
+David Hinkes
+David Huntsperger
+Emily Ye
+Etienne Chauchot
+Evan Galpin
+Heejong Lee
+Ilya
+Ilya Kozyrev
+In-Ho Yi
+Jack McCluskey
+Janek Bevendorff
+Jarek Potiuk
+Ke Wu
+KevinGG
+Kyle Hersey
+Kyle Weaver
+Luís Bianchin
+Luke Cwik
+Masato Nakamura
+Matthias Baetens
+Mehdi Drissi
+Melissa Pashniak
+Michel Davit
+Miguel Hernandez
+MiguelAnzoWizeline
+Milena Bukal
+Moritz Mack
+Mostafa Aghajani
+Nathan J Mehl
+Niel Markwick
+Ning Kang
+Pablo Estrada
+Pavel Avilov
+Quentin Sommer
+Reuben van Ammers
+Reuven Lax
+Ritesh Ghorse
+Robert Bradshaw
+Robert Burke
+Ryan Thompson
+Sam Whittle
+Sayat
+Sergei Lebedev
+Sergey Kalinin
+Steve Niemitz
+Talat Uyarer
+Thiago Nunes
+Tianyang Hu
+Tim Robertson
+Valentyn Tymofieiev
+Vitaly Ivanov
+Yichi Zhang
+Yiru Tang
+Yu Feng
+Yu ISHIKAWA
+Zachary Houfek
+blais
+daria-malkova
+daria.malkova
+darshan-sj
+dpcollins-google
+emily
+ewianda
+johnjcasey
+kileys
+lam206
+laraschmidt
+mosche
+&lt;a href="mailto:msbukal@google.com">msbukal@google.com&lt;/a>
+tvalentyn&lt;/p></description></item><item><title>Blog: Apache Beam 2.35.0</title><link>/blog/beam-2.35.0/</link><pubDate>Wed, 29 Dec 2021 10:11:00 -0800</pubDate><guid>/blog/beam-2.35.0/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -4222,36 +4358,4 @@ Melissa Pashniak, Mikhail Gryzykhin, Mikhail Sokolov, mingmxu, Norbert
 Chen, Pablo Estrada, Prateek Chanda, Raghu Angadi, Ravi Pathak, Reuven
 Lax, Robert Bradshaw, Robert Burke, Rui Wang, Ryan Williams, Sindy Li,
 Thomas Weise, Tim Robertson, Tormod Haavi, Udi Meiri, Vaclav Plajt,
-Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.&lt;/p></description></item><item><title>Blog: Beam Summit Europe 2018</title><link>/blog/beam-summit-europe/</link><pubDate>Tue, 21 Aug 2018 00:00:01 -0800</pubDate><guid>/blog/beam-summit-europe/</guid><description>
-&lt;!--
-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.
--->
-&lt;p>With a growing community of contributors and users, the Apache Beam project is organising the first European Beam Summit.&lt;/p>
-&lt;p>We are happy to invite you to this event, which will take place in &lt;strong>London&lt;/strong> on &lt;strong>October 1st and 2nd of 2018&lt;/strong>.&lt;/p>
-&lt;p>&lt;img src="/images/blog/Facebook-AD.png" alt="Beam Summit Europe 2018 flyer" height="360" width="640" >&lt;/p>
-&lt;h3 id="what-is-the-beam-summit-2018">What is the Beam Summit 2018?&lt;/h3>
-&lt;p>The summit is a 2 day, multi-track event.&lt;/p>
-&lt;p>During the first day we’ll host sessions to share use cases from companies using Apache Beam, community driven talks, and a session to discuss the project&amp;rsquo;s roadmap (from the main partners in the project as well as all users planning to contribute to the project and wanting to share their plans). We&amp;rsquo;ll also have break-out sessions that will allow cross team collaboration in multiple sub-topics.&lt;/p>
-&lt;p>The second day will be a &amp;ldquo;hands-on&amp;rdquo; day. We will offer an introductory session to Apache Beam. Additionally, we&amp;rsquo;ll host an advanced track for more advanced users with open-table discussions about more complex and newer Apache Beam features.&lt;/p>
-&lt;p>The agenda will grow and be communicated in the coming month, keep an eye on the page.&lt;/p>
-&lt;h3 id="event-details">Event Details&lt;/h3>
-&lt;ul>
-&lt;li>&lt;strong>Venue&lt;/strong>: &lt;a href="https://goo.gl/maps/LAC4haDzSzR2">Level39, One Canada Square, Canary Wharf, London E14 5AB&lt;/a>&lt;/li>
-&lt;li>&lt;strong>Dates&lt;/strong>: 1-2 October 2018&lt;/li>
-&lt;/ul>
-&lt;h3 id="how-do-i-register">How do I register?&lt;/h3>
-&lt;p>You can register for free on the &lt;a href="https://www.eventbrite.com/e/beam-summit-london-2018-tickets-49100625292#tickets">Eventbrite registration page&lt;/a>.&lt;/p>
-&lt;h3 id="i-am-interested-in-speaking-how-do-i-propose-my-session">I am interested in speaking, how do I propose my session?&lt;/h3>
-&lt;p>With this we are also launching a Call for Papers in case you want to secure a slot for one of the sessions. Please fill out the &lt;a href="https://goo.gl/forms/nrZOCC1JwEfLtKfA2">CfP form&lt;/a>.&lt;/p>
-&lt;h3 id="id-love-to-get-involved-as-a-volunteer-or-sponsor">I&amp;rsquo;d love to get involved as a volunteer or sponsor&lt;/h3>
-&lt;p>Furthermore, in order to keep this event free, we are looking for people to help out at and/or sponsor some parts of the conference. If you (or your company) are interested to help out, please reach out to: &lt;a href="mailto:baetensmatthias@gmail.com">baetensmatthias@gmail.com&lt;/a> or &lt;a href="mailto:alex@vanboxel.be">alex@vanboxel.be&lt;/a>. You can find more info in the &lt;a href="https://drive.google.com/file/d/1RnZ52rGaB6BR-EKneBcabdMcg9Pl7z9M">sponsor booklet&lt;/a>&lt;/p>
-&lt;p>Thanks, and we hope to see you at the event!
-The Events &amp;amp; Meetups Group&lt;/p></description></item></channel></rss>
\ No newline at end of file
+Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.&lt;/p></description></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/blog/kafka-to-pubsub-example/index.html b/website/generated-content/blog/kafka-to-pubsub-example/index.html
index e66287f..8f23dfb 100644
--- a/website/generated-content/blog/kafka-to-pubsub-example/index.html
+++ b/website/generated-content/blog/kafka-to-pubsub-example/index.html
@@ -47,7 +47,7 @@ within <a href=https://github.com/GoogleCloudPlatform/DataflowTemplates>Google C
 repository and can be run with no additional code modifications.</li></ul></li></ol><h1 id=next-steps>Next Steps</h1><p>Give this <strong>Beam end-to-end example</strong> a try. If you are new to Beam, we hope this example will give
 you more understanding on how pipelines work and look like. If you are already using Beam, we hope
 some code samples in it will be useful for your use cases.</p><p>Please
-<a href=https://beam.apache.org/community/contact-us/>let us know</a> if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categorie [...]
+<a href=https://beam.apache.org/community/contact-us/>let us know</a> if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-cate [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/looping-timers/index.html b/website/generated-content/blog/looping-timers/index.html
index 451bce3..6941ed8 100644
--- a/website/generated-content/blog/looping-timers/index.html
+++ b/website/generated-content/blog/looping-timers/index.html
@@ -222,7 +222,7 @@ runners will need to add support for it with all of their more advanced
 feature sets. You can experiment with this pattern today using the
 DirectRunner. For other runners, please look out for their release notes on
 support for dealing with this use case in production.</p><p>(<a href=/documentation/runners/capability-matrix/>Capability Matrix</a>)</p><p>Runner specific notes:
-Google Cloud Dataflow Runners Drain feature does not support looping timers (Link to matrix)</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog [...]
+Google Cloud Dataflow Runners Drain feature does not support looping timers (Link to matrix)</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/pattern-match-beam-sql/index.html b/website/generated-content/blog/pattern-match-beam-sql/index.html
index d69857c..e032036 100644
--- a/website/generated-content/blog/pattern-match-beam-sql/index.html
+++ b/website/generated-content/blog/pattern-match-beam-sql/index.html
@@ -66,7 +66,7 @@ query:</p><div class="language-sql snippet"><div class="notebook-skip code-snipp
 mapped to A and the rest of the rows will be mapped to B. Thus, we will have (1, 5) as the result.</p><blockquote><p>Very important: For my NFA implementation, it slightly breaks the rule in the SQL standard. Since the buffered NFA
 only stores an event to the buffer if the event is a match to some pattern class, There would be no way to get the
 previous event back if the previous row is discarded. So the first row would always be a match (different from the standard)
-if PREV is used.</p></blockquote><h2 id=progress>Progress</h2><ol><li>PRs<ol><li><a href=https://github.com/apache/beam/pull/12232>Support MATCH_RECOGNIZE using regex library</a> (merged)</li><li><a href=https://github.com/apache/beam/pull/12532>Support MATCH_RECOGNIZE using NFA</a> (pending)</li></ol></li><li>Commits<ol><li>partition by: <a href=https://github.com/apache/beam/pull/12232/commits/064ada7257970bcb1d35530be1b88cb3830f242b>commit 064ada7</a></li><li>order by: <a href=https:/ [...]
+if PREV is used.</p></blockquote><h2 id=progress>Progress</h2><ol><li>PRs<ol><li><a href=https://github.com/apache/beam/pull/12232>Support MATCH_RECOGNIZE using regex library</a> (merged)</li><li><a href=https://github.com/apache/beam/pull/12532>Support MATCH_RECOGNIZE using NFA</a> (pending)</li></ol></li><li>Commits<ol><li>partition by: <a href=https://github.com/apache/beam/pull/12232/commits/064ada7257970bcb1d35530be1b88cb3830f242b>commit 064ada7</a></li><li>order by: <a href=https:/ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/presentation-materials/index.html b/website/generated-content/blog/presentation-materials/index.html
index b6fc473..ca08db9 100644
--- a/website/generated-content/blog/presentation-materials/index.html
+++ b/website/generated-content/blog/presentation-materials/index.html
@@ -21,7 +21,7 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>beam & capability
        </p><p>2016/04/03</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam Presentation Materials</h1><div class=post-info><span>Frances Perry [<a href=https://twitter.com/francesjperry>@francesjperry</a>]
 &
-Tyler Akidau [<a href=https://twitter.com/takidau>@takidau</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Are you interested in giving a presentation about Apache Beam? Perhaps you want to talk about Apache Beam at a local Meetup or a convention. Excellent! The Apache Beam community is excited to expand and grow the community. To help kickstart this process, we are excited to announce an initial set of <a href=/contribute/presentation-material [...]
+Tyler Akidau [<a href=https://twitter.com/takidau>@takidau</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Are you interested in giving a presentation about Apache Beam? Perhaps you want to talk about Apache Beam at a local Meetup or a convention. Excellent! The Apache Beam community is excited to expand and grow the community. To help kickstart this process, we are excited to announce an initial set of <a href=/contribute/presentation-material [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-improved-annotations/index.html b/website/generated-content/blog/python-improved-annotations/index.html
index 72e1077..0fa43ff 100644
--- a/website/generated-content/blog/python-improved-annotations/index.html
+++ b/website/generated-content/blog/python-improved-annotations/index.html
@@ -55,7 +55,7 @@ type hints by removing the outer PCollection container.</p><h2 id=pbegin-pdone-n
 </code></pre><h1 id=next-steps>Next Steps</h1><p>What are you waiting for.. start using annotations on your transforms!</p><p>For more background on type hints in Python, see:
 <a href=https://beam.apache.org/documentation/sdks/python-type-safety/>Ensuring Python Type Safety</a>.</p><p>Finally, please
 <a href=https://beam.apache.org/community/contact-us/>let us know</a>
-if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</ [...]
+if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-performance-runtime-type-checking/index.html b/website/generated-content/blog/python-performance-runtime-type-checking/index.html
index a21a01d..02f4837 100644
--- a/website/generated-content/blog/python-performance-runtime-type-checking/index.html
+++ b/website/generated-content/blog/python-performance-runtime-type-checking/index.html
@@ -67,7 +67,7 @@ at the point of declaration rather than the point of exception, saving you valua
 while providing higher quality error messages.</p><p>So what would the same error look like using Performance RTC? It&rsquo;s the exact same string but with one additional line:</p><pre><code>[while running 'ParDo(UpstreamDoFn)']
 </code></pre><p>And that&rsquo;s much more actionable for an investigation :)</p><h1 id=next-steps>Next Steps</h1><p>Go play with the new <code>performance_runtime_type_check</code> feature!</p><p>It&rsquo;s in an experimental state so please
 <a href=https://beam.apache.org/community/contact-us/>let us know</a>
-if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</ [...]
+if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11 [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-sdk-now-public/index.html b/website/generated-content/blog/python-sdk-now-public/index.html
index 8a8e0a9..54105da 100644
--- a/website/generated-content/blog/python-sdk-now-public/index.html
+++ b/website/generated-content/blog/python-sdk-now-public/index.html
@@ -20,7 +20,7 @@ function endSearch(){var search=document.querySelector(".searchBar");search.clas
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>beam, python & sdk
        </p><p>2016/02/25</p></div><header class=post-header><h2 itemprop="name headline">Dataflow Python SDK is now public!</h1><div class=post-info><span>James Malone [<a href=https://twitter.com/chimerasaurus>@chimerasaurus</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>When the Apache Beam project proposed entry into the <a href=http://wiki.apache.org/incubator/BeamProposal>Apache Incubator</a> the proposal
-included the <a href=https://github.com/GoogleCloudPlatform/DataflowJavaSDK>Dataflow Java SDK</a>. In the long term, however, Apache Beam aims to support SDKs implemented in multiple languages, such as Python.</p><p>Today, Google submitted the <a href=http://github.com/GoogleCloudPlatform/DataflowPythonSDK>Dataflow Python (2.x) SDK</a> on GitHub. Google is committed to including the in progress python SDK in Apache Beam and, in that spirit, we&rsquo;ve moved development of the Python SDK [...]
+included the <a href=https://github.com/GoogleCloudPlatform/DataflowJavaSDK>Dataflow Java SDK</a>. In the long term, however, Apache Beam aims to support SDKs implemented in multiple languages, such as Python.</p><p>Today, Google submitted the <a href=http://github.com/GoogleCloudPlatform/DataflowPythonSDK>Dataflow Python (2.x) SDK</a> on GitHub. Google is committed to including the in progress python SDK in Apache Beam and, in that spirit, we&rsquo;ve moved development of the Python SDK [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-sdk-release/index.html b/website/generated-content/blog/python-sdk-release/index.html
index c845744..eab5d00 100644
--- a/website/generated-content/blog/python-sdk-release/index.html
+++ b/website/generated-content/blog/python-sdk-release/index.html
@@ -44,7 +44,7 @@ p = beam.Pipeline()
 
 p.run()
 </code></pre><p>This example estimates Pi by throwing random darts into the unit square and keeping track of the fraction of those darts that fell into the unit circle (see the full <a href=https://github.com/apache/beam/blob/v0.6.0/sdks/python/apache_beam/examples/complete/estimate_pi.py>example</a> for details). If you are curious, you can check the result of our estimation by looking at the output file.</p><pre><code>$ cat pi_estimate.txt*
-</code></pre><h4 id=roadmap>Roadmap</h4><p>The first thing on the Python SDK’s roadmap is to address two of its limitations. First, the existing runners are currently limited to bounded PCollections, and we are looking forward to extending the SDK to support unbounded PCollections (“streaming”). Additionally, we are working on extending support to more Apache Beam runners, and the upcoming Fn API will do the heavy lifting.</p><p>Both of these improvements will enable the Python SDK to fu [...]
+</code></pre><h4 id=roadmap>Roadmap</h4><p>The first thing on the Python SDK’s roadmap is to address two of its limitations. First, the existing runners are currently limited to bounded PCollections, and we are looking forward to extending the SDK to support unbounded PCollections (“streaming”). Additionally, we are working on extending support to more Apache Beam runners, and the upcoming Fn API will do the heavy lifting.</p><p>Both of these improvements will enable the Python SDK to fu [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-typing/index.html b/website/generated-content/blog/python-typing/index.html
index 808ff2d..7db297e 100644
--- a/website/generated-content/blog/python-typing/index.html
+++ b/website/generated-content/blog/python-typing/index.html
@@ -77,7 +77,7 @@ native typing types. Native types have as these are supported by additional tool
 fixed issues with native type support. There may still be bugs and unsupported
 native types. Please
 <a href=https://beam.apache.org/community/contact-us/>let us know</a> if you encounter
-issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><div class=po [...]
+issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div cla [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/review-input-streaming-connectors/index.html b/website/generated-content/blog/review-input-streaming-connectors/index.html
index dadb65c..92f1504 100644
--- a/website/generated-content/blog/review-input-streaming-connectors/index.html
+++ b/website/generated-content/blog/review-input-streaming-connectors/index.html
@@ -20,9 +20,9 @@ function endSearch(){var search=document.querySelector(".searchBar");search.clas
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/08/20</p></div><header class=post-header><h2 itemprop="name headline">A review of input streaming connectors</h1><div class=post-info><span>Leonid Kuligin [<a href=https://twitter.com/lkulighin>@lkulighin</a>]
 &
-Julien Phalip [<a href=https://twitter.com/julienphalip>@julienphalip</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>In this post, you&rsquo;ll learn about the current state of support for input streaming connectors in <a href=/>Apache Beam</a>. For more context, you&rsquo;ll also learn about the corresponding state of support in <a href=https://spark.apache.org/>Apache Spark</a>.</p><p>With batch processing, you might load data from any sourc [...]
-and <a href=https://spark.apache.org/docs/latest/api/java/org/apache/spark/streaming/StreamingContext.html#textFileStream-java.lang.String->textFileStream</a></td></tr><tr><td>S3<br>(Using the <code>s3://</code> URI)</td><td><a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/FileIO.html>FileIO</a> + <a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/aws/options/S3Options.html>S3Options</a></td></tr><tr><td rowspan=3>Messaging Queues [...]
-and <a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream</a></td></tr><tr><td rowspan=2>Object stores</td><td>Google Cloud Storage</td><td><a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.gcsio.html>io.gcp.gcsio</a></td><td rowspan=2><a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream [...]
+Julien Phalip [<a href=https://twitter.com/julienphalip>@julienphalip</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>In this post, you&rsquo;ll learn about the current state of support for input streaming connectors in <a href=/>Apache Beam</a>. For more context, you&rsquo;ll also learn about the corresponding state of support in <a href=https://spark.apache.org/>Apache Spark</a>.</p><p>With batch processing, you might load data from any sourc [...]
+and <a href=https://spark.apache.org/docs/latest/api/java/org/apache/spark/streaming/StreamingContext.html#textFileStream-java.lang.String->textFileStream</a></td></tr><tr><td>S3<br>(Using the <code>s3://</code> URI)</td><td><a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/FileIO.html>FileIO</a> + <a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/aws/options/S3Options.html>S3Options</a></td></tr><tr><td rowspan=3>Messaging Queues [...]
+and <a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream</a></td></tr><tr><td rowspan=2>Object stores</td><td>Google Cloud Storage</td><td><a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.gcsio.html>io.gcp.gcsio</a></td><td rowspan=2><a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/season-of-docs/index.html b/website/generated-content/blog/season-of-docs/index.html
index 344bda4..ec9102f 100644
--- a/website/generated-content/blog/season-of-docs/index.html
+++ b/website/generated-content/blog/season-of-docs/index.html
@@ -19,7 +19,7 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/04/19</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam is applying to Season of Docs</h1><div class=post-info><span>Aizhamal Nurmamat kyzy [<a href=https://twitter.com/iamaijamal>@iamaijamal</a>]</span></div></he [...]
-This project involves a number of <a href=https://issues.apache.org/jira/browse/BEAM-2888>corrections and improvements to the capability matrix</a>; followed by a few larger set of changes, involving:</p><ul><li>Plain english summaries for each runner’s support of the Beam model.</li><li>A paragraph-length description of the production-readiness for each runner.</li><li>Comparisons for non-model differences between runners.</li><li>Comparison for support of the portability framework for  [...]
+This project involves a number of <a href=https://issues.apache.org/jira/browse/BEAM-2888>corrections and improvements to the capability matrix</a>; followed by a few larger set of changes, involving:</p><ul><li>Plain english summaries for each runner’s support of the Beam model.</li><li>A paragraph-length description of the production-readiness for each runner.</li><li>Comparisons for non-model differences between runners.</li><li>Comparison for support of the portability framework for  [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/six-months/index.html b/website/generated-content/blog/six-months/index.html
index 21b3bd0..9ff706d 100644
--- a/website/generated-content/blog/six-months/index.html
+++ b/website/generated-content/blog/six-months/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/08/03</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam: Six Months in Incubation</h1><div class=post-info><span>Frances Perry [<a href=https://twitter.com/francesjperry>@francesjperry</a>]</span></div></header><d [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/08/03</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam: Six Months in Incubation</h1><div class=post-info><span>Frances Perry [<a href=https://twitter.com/francesjperry>@francesjperry</a>]</span></div></header><d [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/splitatfraction-method/index.html b/website/generated-content/blog/splitatfraction-method/index.html
index be0d477..92d915a 100644
--- a/website/generated-content/blog/splitatfraction-method/index.html
+++ b/website/generated-content/blog/splitatfraction-method/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/05/18</p></div><header class=post-header><h2 itemprop="name headline">Dynamic work rebalancing for Beam</h1><div class=post-info><span>Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>This [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/05/18</p></div><header class=post-header><h2 itemprop="name headline">Dynamic work rebalancing for Beam</h1><div class=post-info><span>Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>This [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/splittable-do-fn-is-available/index.html b/website/generated-content/blog/splittable-do-fn-is-available/index.html
index 2cf6d14..847c2a6 100644
--- a/website/generated-content/blog/splittable-do-fn-is-available/index.html
+++ b/website/generated-content/blog/splittable-do-fn-is-available/index.html
@@ -52,7 +52,7 @@ implementation to a splittable DoFn.</li><li><a href=https://github.com/apache/b
 A wrapper which converts an existing <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/UnboundedSource.html>UnboundedSource</a>
 implementation to a splittable DoFn.</li></ul><p><strong>Python Examples</strong></p><ul><li><a href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/python/apache_beam/io/iobase.py#L1375>BoundedSourceWrapper</a>:
 A wrapper which converts an existing <a href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.iobase.html#apache_beam.io.iobase.BoundedSource>BoundedSource</a>
-implementation to a splittable DoFn.</li></ul><p><strong>Go Examples</strong></p><ul><li><a href=https://github.com/apache/beam/blob/ce190e11332469ea59b6c9acf16ee7c673ccefdd/sdks/go/pkg/beam/io/textio/sdf.go#L40>textio.ReadSdf</a> implements reading from text files using a splittable DoFn.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category [...]
+implementation to a splittable DoFn.</li></ul><p><strong>Go Examples</strong></p><ul><li><a href=https://github.com/apache/beam/blob/ce190e11332469ea59b6c9acf16ee7c673ccefdd/sdks/go/pkg/beam/io/textio/sdf.go#L40>textio.ReadSdf</a> implements reading from text files using a splittable DoFn.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/splittable-do-fn/index.html b/website/generated-content/blog/splittable-do-fn/index.html
index 3e44819..da978ca 100644
--- a/website/generated-content/blog/splittable-do-fn/index.html
+++ b/website/generated-content/blog/splittable-do-fn/index.html
@@ -52,20 +52,20 @@ result, the pipeline can suffer from poor performance due to stragglers.</p></li
 with a regular <code>DoFn</code>, because it would need to output an infinite number of
 records per each input element <code>topic, partition</code> <em>(<a href=/blog/2017/02/13/stateful-processing.html>stateful processing</a> comes close, but it
 has other limitations that make it insufficient for this task</em>).</p></li></ul><h2 id=beam-source-api>Beam Source API</h2><p>Apache Beam historically provides a Source API
-(<a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/BoundedSource.html>BoundedSource</a>
+(<a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/BoundedSource.html>BoundedSource</a>
 and
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/UnboundedSource.html>UnboundedSource</a>) which does
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/UnboundedSource.html>UnboundedSource</a>) which does
 not have these limitations and allows development of efficient data sources for
 batch and streaming systems. Pipelines use this API via the
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/Read.html><code>Read.from(Source)</code></a> built-in <code>PTransform</code>.</p><p>The Source API is largely similar to that of most other data processing
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/Read.html><code>Read.from(Source)</code></a> built-in <code>PTransform</code>.</p><p>The Source API is largely similar to that of most other data processing
 frameworks, and allows the system to read data in parallel using multiple
 workers, as well as checkpoint and resume reading from an unbounded data source.
 Additionally, the Beam
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/BoundedSource.html><code>BoundedSource</code></a>
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/BoundedSource.html><code>BoundedSource</code></a>
 API provides advanced features such as progress reporting and <a href=/blog/2016/05/18/splitAtFraction-method.html>dynamic
 rebalancing</a>
 (which together enable autoscaling), and
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/UnboundedSource.html><code>UnboundedSource</code></a> supports
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/UnboundedSource.html><code>UnboundedSource</code></a> supports
 reporting the source&rsquo;s watermark and backlog <em>(until SDF, we believed that
 &ldquo;batch&rdquo; and &ldquo;streaming&rdquo; data sources are fundamentally different and thus
 require fundamentally different APIs)</em>.</p><p>Unfortunately, these features come at a price. Coding against the Source API
@@ -324,7 +324,7 @@ ecosystem more modular:</p><ul><li><p>Use the currently available SDF-based IO c
 bugs, and suggest or implement improvements.</p></li><li><p>Propose or develop a new IO connector based on SDF.</p></li><li><p>Implement or improve support for SDF in your favorite runner.</p></li><li><p>Subscribe and contribute to the occasional SDF-related discussions on
 <a href=mailto:user@beam.apache.org>user@beam.apache.org</a> (mailing list for Beam
 users) and <a href=mailto:dev@beam.apache.org>dev@beam.apache.org</a> (mailing list for
-Beam developers)!</p></li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p [...]
+Beam developers)!</p></li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/stateful-processing/index.html b/website/generated-content/blog/stateful-processing/index.html
index 88e2b06..f401c9e 100644
--- a/website/generated-content/blog/stateful-processing/index.html
+++ b/website/generated-content/blog/stateful-processing/index.html
@@ -400,7 +400,7 @@ matrix</a> to
 see the level of support for this new model feature on your favorite
 backend(s).</p><p>And please do join the community at
 <a href=/get-started/support>user@beam.apache.org</a>. We&rsquo;d love to
-hear from you.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/04</p></div><div c [...]
+hear from you.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div>< [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/strata-hadoop-world-and-beam/index.html b/website/generated-content/blog/strata-hadoop-world-and-beam/index.html
index c4b0ef7..87ea915 100644
--- a/website/generated-content/blog/strata-hadoop-world-and-beam/index.html
+++ b/website/generated-content/blog/strata-hadoop-world-and-beam/index.html
@@ -19,7 +19,7 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>beam & update
-       </p><p>2016/10/11</p></div><header class=post-header><h2 itemprop="name headline">Strata+Hadoop World and Beam</h1><div class=post-info><span>Jesse Anderson [<a href=https://twitter.com/jessetanderson>@jessetanderson</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Tyler Akidau and I gave a <a href=https://conferences.oreilly.com/strata/hadoop-big-data-ny/public/schedule/detail/52129>three-hour tutorial</a> on Apache Beam at Strata+Hadoop [...]
+       </p><p>2016/10/11</p></div><header class=post-header><h2 itemprop="name headline">Strata+Hadoop World and Beam</h1><div class=post-info><span>Jesse Anderson [<a href=https://twitter.com/jessetanderson>@jessetanderson</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Tyler Akidau and I gave a <a href=https://conferences.oreilly.com/strata/hadoop-big-data-ny/public/schedule/detail/52129>three-hour tutorial</a> on Apache Beam at Strata+Hadoop [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/test-stream/index.html b/website/generated-content/blog/test-stream/index.html
index 6bcb861..57b2b2f 100644
--- a/website/generated-content/blog/test-stream/index.html
+++ b/website/generated-content/blog/test-stream/index.html
@@ -55,7 +55,7 @@ configured triggering and allowed lateness of the pipeline. The expected outputs
 of the LeaderBoard pipeline vary depending on when elements arrive in relation
 to the watermark and the progress of processing time, which could not previously
 be controlled within a test.</p><h2 id=writing-deterministic-tests-to-emulate-nondeterminism>Writing Deterministic Tests to Emulate Nondeterminism</h2><p>The Beam testing infrastructure provides the
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/testing/PAssert.html>PAssert</a>
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/testing/PAssert.html>PAssert</a>
 methods, which assert properties about the contents of a PCollection from within
 a pipeline. We have expanded this infrastructure to include
 <a href=https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/TestStream.java>TestStream</a>,
@@ -199,7 +199,7 @@ TestStream.</p><h2 id=summary>Summary</h2><p>The addition of TestStream alongsid
 has enabled the testing of Pipelines which produce speculative and late panes.
 This permits tests for all styles of pipeline to be expressed directly within the
 Java SDK. If you have questions or comments, we’d love to hear them on the
-<a href=/get-started/support/>mailing lists</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info post-category"><p>blo [...]
+<a href=/get-started/support/>mailing lists</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category">< [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/timely-processing/index.html b/website/generated-content/blog/timely-processing/index.html
index fd43efb..54d3fe5 100644
--- a/website/generated-content/blog/timely-processing/index.html
+++ b/website/generated-content/blog/timely-processing/index.html
@@ -378,7 +378,7 @@ you, then great! If not, we want to hear about it. Since this is a new feature,
 please check the <a href=/documentation/runners/capability-matrix/>capability matrix</a> to see the level of support for
 your preferred Beam backend(s).</p><p>And please do join the Beam community at
 <a href=/get-started/support>user@beam.apache.org</a> and follow
-<a href=https://twitter.com/ApacheBeam>@ApacheBeam</a> on Twitter.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info pos [...]
+<a href=https://twitter.com/ApacheBeam>@ApacheBeam</a> on Twitter.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-inf [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/validate-beam-release/index.html b/website/generated-content/blog/validate-beam-release/index.html
index f68652a..8ebaeb2 100644
--- a/website/generated-content/blog/validate-beam-release/index.html
+++ b/website/generated-content/blog/validate-beam-release/index.html
@@ -67,7 +67,7 @@ by requesting the specific pre-release version.</p><p>For example, to request th
 </code></pre><p>With that, the Beam version in your <code>go.mod</code> will be the specified release candidate.
 You can go ahead and run your tests to verify that everything works well.</p><p>You may need to also specify the RC&rsquo;s matching container when running a job.
 Use the <code>--environment_config</code> flag to specify the release candidate container:
-eg. <code>--environment_config=apache/beam_go_sdk:2.34.0_rc1</code></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/11/11</p></div><div class=post><p class=post-title>Apache Beam 2.34.0</p><p class=post-info>Kyle Weaver</p></div></a><a class=post-card href=/blog/go-sdk-release/ data-categories=blog><div class="post-info po [...]
+eg. <code>--environment_config=apache/beam_go_sdk:2.34.0_rc1</code></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.35.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/12/29</p></div><div class=post><p class=post-title>Apache Beam 2.35.0</p><p class=post-info>Valentyn Tymofieiev</p></div></a><a class=post-card href=/blog/beam-2.34.0/ data-categories=blog><div class="post-in [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html b/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html
index 0344ea2..478dee6 100644
--- a/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html
+++ b/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html
@@ -41,7 +41,7 @@ PCollection&lt;O&gt; output = input
     .apply(ParDo.of(...))
     .apply(ExternalLibrary.doStuff(externalLibArgs));
     &nbsp;
-    </pre></td></tr></table><h2 id=configurability>Configurability</h2><p>It makes for a fluent style to let values (PCollections) be the objects passed around and manipulated (i.e. the handles to the deferred execution graph), but it is the operations themselves that need to be composable, configurable, and extendable. Using PCollection methods for the operations doesn&rsquo;t scale well here, especially in a language without default or keyword arguments. For example, a ParDo operation  [...]
+    </pre></td></tr></table><h2 id=configurability>Configurability</h2><p>It makes for a fluent style to let values (PCollections) be the objects passed around and manipulated (i.e. the handles to the deferred execution graph), but it is the operations themselves that need to be composable, configurable, and extendable. Using PCollection methods for the operations doesn&rsquo;t scale well here, especially in a language without default or keyword arguments. For example, a ParDo operation  [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/categories/blog/index.xml b/website/generated-content/categories/blog/index.xml
index ba5572f..007ac83 100644
--- a/website/generated-content/categories/blog/index.xml
+++ b/website/generated-content/categories/blog/index.xml
@@ -1,4 +1,140 @@
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – blog</title><link>/categories/blog/</link><description>Recent content in blog on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Wed, 29 Dec 2021 10:11:00 -0800</lastBuildDate><atom:link href="/categories/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Apache Beam 2.35.0</title><link>/blog/beam-2.35.0/</link><pubDate>Wed, 29 Dec 2021 10:11:00 [...]
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – blog</title><link>/categories/blog/</link><description>Recent content in blog on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Mon, 07 Feb 2022 10:11:00 -0800</lastBuildDate><atom:link href="/categories/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Apache Beam 2.36.0</title><link>/blog/beam-2.36.0/</link><pubDate>Mon, 07 Feb 2022 10:11:00 [...]
+&lt;!--
+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.
+-->
+&lt;p>We are happy to present the new 2.36.0 release of Apache Beam.
+This release includes both improvements and new functionality.
+See the &lt;a href="/get-started/downloads/#2360-2022-02-07">download page&lt;/a> for this release.&lt;/p>
+&lt;p>For more information on changes in 2.36.0, check out the &lt;a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&amp;amp;version=12350406">detailed release
+notes&lt;/a>.&lt;/p>
+&lt;h2 id="ios">I/Os&lt;/h2>
+&lt;ul>
+&lt;li>Support for stopReadTime on KafkaIO SDF (Java).(&lt;a href="https://issues.apache.org/jira/browse/BEAM-13171">BEAM-13171&lt;/a>).&lt;/li>
+&lt;/ul>
+&lt;h2 id="new-features--improvements">New Features / Improvements&lt;/h2>
+&lt;ul>
+&lt;li>Added support for cloudpickle as a pickling library for Python SDK (&lt;a href="https://issues.apache.org/jira/browse/BEAM-8123">BEAM-8123&lt;/a>). To use cloudpickle, set pipeline option: &amp;ndash;pickler_lib=cloudpickle&lt;/li>
+&lt;li>Added option to specify triggering frequency when streaming to BigQuery (Python) (&lt;a href="https://issues.apache.org/jira/browse/BEAM-12865">BEAM-12865&lt;/a>).&lt;/li>
+&lt;li>Added option to enable caching uploaded artifacts across job runs for Python Dataflow jobs (&lt;a href="https://issues.apache.org/jira/browse/BEAM-13459">BEAM-13459&lt;/a>). To enable, set pipeline option: &amp;ndash;enable_artifact_caching, this will be enabled by default in a future release.&lt;/li>
+&lt;/ul>
+&lt;h2 id="breaking-changes">Breaking Changes&lt;/h2>
+&lt;ul>
+&lt;li>Updated the jedis from 3.x to 4.x to Java RedisIO. If you are using RedisIO and using jedis directly, please refer to &lt;a href="https://github.com/redis/jedis/blob/v4.0.0/docs/3to4.md">this page&lt;/a> to update it. (&lt;a href="https://issues.apache.org/jira/browse/BEAM-12092">BEAM-12092&lt;/a>).&lt;/li>
+&lt;li>Datatype of timestamp fields in &lt;code>SqsMessage&lt;/code> for AWS IOs for SDK v2 was changed from &lt;code>String&lt;/code> to &lt;code>long&lt;/code>, visibility of all fields was fixed from &lt;code>package private&lt;/code> to &lt;code>public&lt;/code> &lt;a href="https://issues.apache.org/jira/browse/BEAM-13638">BEAM-13638&lt;/a>.&lt;/li>
+&lt;li>Properly check output timestamps on elements output from DoFns, timers, and onWindowExpiration in Java &lt;a href="https://issues.apache.org/jira/browse/BEAM-12931">BEAM-12931&lt;/a>.&lt;/li>
+&lt;li>Fixed a bug with DeferredDataFrame.xs when used with a non-tuple key
+(&lt;a href="https://issues.apache.org/jira/browse/BEAM-13421%5D">BEAM-13421&lt;/a>).&lt;/li>
+&lt;/ul>
+&lt;h2 id="known-issues">Known Issues&lt;/h2>
+&lt;ul>
+&lt;li>Users may encounter an unexpected java.lang.ArithmeticException when outputting a timestamp
+for an element further than allowedSkew from an allowed DoFN skew set to a value more than
+Integer.MAX_VALUE.&lt;/li>
+&lt;li>See a full list of open &lt;a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20affectedVersion%20%3D%202.36.0%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC">issues that affect&lt;/a> this version.&lt;/li>
+&lt;/ul>
+&lt;h2 id="list-of-contributors">List of Contributors&lt;/h2>
+&lt;p>According to git shortlog, the following people contributed to the 2.36.0 release. Thank you to all contributors!&lt;/p>
+&lt;p>Ada Wong
+Ahmet Altay
+Alexander
+Alexander Dahl
+Alexandr Zhuravlev
+Alexey Romanenko
+AlikRodriguez
+Anand Inguva
+Andrew Pilloud
+Andy Ye
+Arkadiusz Gasiński
+Artur Khanin
+Arun Pandian
+Aydar Farrakhov
+Aydar Zainutdinov
+AydarZaynutdinov
+Benjamin Gonzalez
+Brian Hulette
+Chamikara Jayalath
+Daniel Collins
+Daniel Oliveira
+Daniel Thevessen
+Daniela Martín
+David Hinkes
+David Huntsperger
+Emily Ye
+Etienne Chauchot
+Evan Galpin
+Heejong Lee
+Ilya
+Ilya Kozyrev
+In-Ho Yi
+Jack McCluskey
+Janek Bevendorff
+Jarek Potiuk
+Ke Wu
+KevinGG
+Kyle Hersey
+Kyle Weaver
+Luís Bianchin
+Luke Cwik
+Masato Nakamura
+Matthias Baetens
+Mehdi Drissi
+Melissa Pashniak
+Michel Davit
+Miguel Hernandez
+MiguelAnzoWizeline
+Milena Bukal
+Moritz Mack
+Mostafa Aghajani
+Nathan J Mehl
+Niel Markwick
+Ning Kang
+Pablo Estrada
+Pavel Avilov
+Quentin Sommer
+Reuben van Ammers
+Reuven Lax
+Ritesh Ghorse
+Robert Bradshaw
+Robert Burke
+Ryan Thompson
+Sam Whittle
+Sayat
+Sergei Lebedev
+Sergey Kalinin
+Steve Niemitz
+Talat Uyarer
+Thiago Nunes
+Tianyang Hu
+Tim Robertson
+Valentyn Tymofieiev
+Vitaly Ivanov
+Yichi Zhang
+Yiru Tang
+Yu Feng
+Yu ISHIKAWA
+Zachary Houfek
+blais
+daria-malkova
+daria.malkova
+darshan-sj
+dpcollins-google
+emily
+ewianda
+johnjcasey
+kileys
+lam206
+laraschmidt
+mosche
+&lt;a href="mailto:msbukal@google.com">msbukal@google.com&lt;/a>
+tvalentyn&lt;/p></description></item><item><title>Blog: Apache Beam 2.35.0</title><link>/blog/beam-2.35.0/</link><pubDate>Wed, 29 Dec 2021 10:11:00 -0800</pubDate><guid>/blog/beam-2.35.0/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -4222,36 +4358,4 @@ Melissa Pashniak, Mikhail Gryzykhin, Mikhail Sokolov, mingmxu, Norbert
 Chen, Pablo Estrada, Prateek Chanda, Raghu Angadi, Ravi Pathak, Reuven
 Lax, Robert Bradshaw, Robert Burke, Rui Wang, Ryan Williams, Sindy Li,
 Thomas Weise, Tim Robertson, Tormod Haavi, Udi Meiri, Vaclav Plajt,
-Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.&lt;/p></description></item><item><title>Blog: Beam Summit Europe 2018</title><link>/blog/beam-summit-europe/</link><pubDate>Tue, 21 Aug 2018 00:00:01 -0800</pubDate><guid>/blog/beam-summit-europe/</guid><description>
-&lt;!--
-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.
--->
-&lt;p>With a growing community of contributors and users, the Apache Beam project is organising the first European Beam Summit.&lt;/p>
-&lt;p>We are happy to invite you to this event, which will take place in &lt;strong>London&lt;/strong> on &lt;strong>October 1st and 2nd of 2018&lt;/strong>.&lt;/p>
-&lt;p>&lt;img src="/images/blog/Facebook-AD.png" alt="Beam Summit Europe 2018 flyer" height="360" width="640" >&lt;/p>
-&lt;h3 id="what-is-the-beam-summit-2018">What is the Beam Summit 2018?&lt;/h3>
-&lt;p>The summit is a 2 day, multi-track event.&lt;/p>
-&lt;p>During the first day we’ll host sessions to share use cases from companies using Apache Beam, community driven talks, and a session to discuss the project&amp;rsquo;s roadmap (from the main partners in the project as well as all users planning to contribute to the project and wanting to share their plans). We&amp;rsquo;ll also have break-out sessions that will allow cross team collaboration in multiple sub-topics.&lt;/p>
-&lt;p>The second day will be a &amp;ldquo;hands-on&amp;rdquo; day. We will offer an introductory session to Apache Beam. Additionally, we&amp;rsquo;ll host an advanced track for more advanced users with open-table discussions about more complex and newer Apache Beam features.&lt;/p>
-&lt;p>The agenda will grow and be communicated in the coming month, keep an eye on the page.&lt;/p>
-&lt;h3 id="event-details">Event Details&lt;/h3>
-&lt;ul>
-&lt;li>&lt;strong>Venue&lt;/strong>: &lt;a href="https://goo.gl/maps/LAC4haDzSzR2">Level39, One Canada Square, Canary Wharf, London E14 5AB&lt;/a>&lt;/li>
-&lt;li>&lt;strong>Dates&lt;/strong>: 1-2 October 2018&lt;/li>
-&lt;/ul>
-&lt;h3 id="how-do-i-register">How do I register?&lt;/h3>
-&lt;p>You can register for free on the &lt;a href="https://www.eventbrite.com/e/beam-summit-london-2018-tickets-49100625292#tickets">Eventbrite registration page&lt;/a>.&lt;/p>
-&lt;h3 id="i-am-interested-in-speaking-how-do-i-propose-my-session">I am interested in speaking, how do I propose my session?&lt;/h3>
-&lt;p>With this we are also launching a Call for Papers in case you want to secure a slot for one of the sessions. Please fill out the &lt;a href="https://goo.gl/forms/nrZOCC1JwEfLtKfA2">CfP form&lt;/a>.&lt;/p>
-&lt;h3 id="id-love-to-get-involved-as-a-volunteer-or-sponsor">I&amp;rsquo;d love to get involved as a volunteer or sponsor&lt;/h3>
-&lt;p>Furthermore, in order to keep this event free, we are looking for people to help out at and/or sponsor some parts of the conference. If you (or your company) are interested to help out, please reach out to: &lt;a href="mailto:baetensmatthias@gmail.com">baetensmatthias@gmail.com&lt;/a> or &lt;a href="mailto:alex@vanboxel.be">alex@vanboxel.be&lt;/a>. You can find more info in the &lt;a href="https://drive.google.com/file/d/1RnZ52rGaB6BR-EKneBcabdMcg9Pl7z9M">sponsor booklet&lt;/a>&lt;/p>
-&lt;p>Thanks, and we hope to see you at the event!
-The Events &amp;amp; Meetups Group&lt;/p></description></item></channel></rss>
\ No newline at end of file
+Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.&lt;/p></description></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/categories/index.xml b/website/generated-content/categories/index.xml
index 54d69a8..e66ab47 100644
--- a/website/generated-content/categories/index.xml
+++ b/website/generated-content/categories/index.xml
@@ -1 +1 @@
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Categories</title><link>/categories/</link><description>Recent content in Categories on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Wed, 29 Dec 2021 10:11:00 -0800</lastBuildDate><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
\ No newline at end of file
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Categories</title><link>/categories/</link><description>Recent content in Categories on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Mon, 07 Feb 2022 10:11:00 -0800</lastBuildDate><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/contribute/index.xml b/website/generated-content/contribute/index.xml
index a515639..77a58f9 100644
--- a/website/generated-content/contribute/index.xml
+++ b/website/generated-content/contribute/index.xml
@@ -2532,8 +2532,8 @@ E.g. when expanding a filepattern into files, log what the filepattern was and h
 &lt;p>Do:&lt;/p>
 &lt;ul>
 &lt;li>Generally, follow the rules of &lt;a href="https://semver.org/">semantic versioning&lt;/a>.&lt;/li>
-&lt;li>If the API of the transform is not yet stable, annotate it as &lt;code>@Experimental&lt;/code> (Java) or &lt;code>@experimental&lt;/code> (&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.utils.annotations.html">Python&lt;/a>).&lt;/li>
-&lt;li>If the API deprecated, annotate it as &lt;code>@Deprecated&lt;/code> (Java) or &lt;code>@deprecated&lt;/code> (&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.utils.annotations.html">Python&lt;/a>).&lt;/li>
+&lt;li>If the API of the transform is not yet stable, annotate it as &lt;code>@Experimental&lt;/code> (Java) or &lt;code>@experimental&lt;/code> (&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.utils.annotations.html">Python&lt;/a>).&lt;/li>
+&lt;li>If the API deprecated, annotate it as &lt;code>@Deprecated&lt;/code> (Java) or &lt;code>@deprecated&lt;/code> (&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.utils.annotations.html">Python&lt;/a>).&lt;/li>
 &lt;li>Pay attention to the stability and versioning of third-party classes exposed by the transform&amp;rsquo;s API: if they are unstable or improperly versioned (do not obey &lt;a href="https://semver.org/">semantic versioning&lt;/a>), it is better to wrap them in your own classes.&lt;/li>
 &lt;/ul>
 &lt;p>Do not:&lt;/p>
diff --git a/website/generated-content/contribute/ptransform-style-guide/index.html b/website/generated-content/contribute/ptransform-style-guide/index.html
index cf029fb..86cc2d0 100644
--- a/website/generated-content/contribute/ptransform-style-guide/index.html
+++ b/website/generated-content/contribute/ptransform-style-guide/index.html
@@ -32,7 +32,7 @@ One advantage of putting a parameter into transform configuration is, it can be
 <code>catch(...) { log an error; return null or false or otherwise ignore; }</code>
 <strong>Rule of thumb: if a bundle didn&rsquo;t fail, its output must be correct and complete.</strong>
 For a user, a transform that logged an error but succeeded is silent data loss.</li></ul><h3 id=performance>Performance</h3><p>Many runners optimize chains of <code>ParDo</code>s in ways that improve performance if the <code>ParDo</code>s emit a small to moderate number of elements per input element, or have relatively cheap per-element processing (e.g. Dataflow&rsquo;s &ldquo;fusion&rdquo;), but limit parallelization if these assumptions are violated. In that case you may need a &ldquo; [...]
-E.g. when expanding a filepattern into files, log what the filepattern was and how many parts it was split into; when executing a query, log the query and log how many results it produced.</li></ul><p>Do not:</p><ul><li>Do not log at <code>INFO</code> per element or per bundle. <code>DEBUG</code>/<code>TRACE</code> may be okay because these levels are disabled by default.</li><li>Avoid logging data payloads that may contain sensitive information, or sanitize them before logging (e.g. use [...]
+E.g. when expanding a filepattern into files, log what the filepattern was and how many parts it was split into; when executing a query, log the query and log how many results it produced.</li></ul><p>Do not:</p><ul><li>Do not log at <code>INFO</code> per element or per bundle. <code>DEBUG</code>/<code>TRACE</code> may be okay because these levels are disabled by default.</li><li>Avoid logging data payloads that may contain sensitive information, or sanitize them before logging (e.g. use [...]
 Strive to make such incompatible behavior changes cause a compile error (e.g. it&rsquo;s better to introduce a new transform for a new behavior and deprecate and then delete the old one (in a new major version), than to silently change the behavior of an existing transform), or at least a runtime error.</li><li>If the behavior of the transform stays the same and you&rsquo;re merely changing implementation or API - do not change API of the transform in a way that will make a user&rsquo;s  [...]
   <span class=kd>private</span> <span class=kd>final</span> <span class=n>TupleTag</span><span class=o>&lt;</span><span class=n>Moo</span><span class=o>&gt;</span> <span class=n>mooTag</span> <span class=o>=</span> <span class=k>new</span> <span class=n>TupleTag</span><span class=o>&lt;</span><span class=n>Moo</span><span class=o>&gt;()</span> <span class=o>{};</span>
   <span class=kd>private</span> <span class=kd>final</span> <span class=n>TupleTag</span><span class=o>&lt;</span><span class=n>Blah</span><span class=o>&gt;</span> <span class=n>blahTag</span> <span class=o>=</span> <span class=k>new</span> <span class=n>TupleTag</span><span class=o>&lt;</span><span class=n>Blah</span><span class=o>&gt;()</span> <span class=o>{};</span>
diff --git a/website/generated-content/documentation/dsls/dataframes/differences-from-pandas/index.html b/website/generated-content/documentation/dsls/dataframes/differences-from-pandas/index.html
index f548809..99018e0 100644
--- a/website/generated-content/documentation/dsls/dataframes/differences-from-pandas/index.html
+++ b/website/generated-content/documentation/dsls/dataframes/differences-from-pandas/index.html
@@ -18,12 +18,12 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
-</code></pre><p>This is similar to pandas <a href=https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html>read_csv</a>, but <code>df</code> is a deferred Beam DataFrame representing the contents of the file. The input filename can be any file pattern understood by <a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.fileio.html#apache_beam.io.fileio.MatchFiles>fileio.MatchFiles</a>.</p><p>For an example of using sources and sinks with the DataFrame [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+</code></pre><p>This is similar to pandas <a href=https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html>read_csv</a>, but <code>df</code> is a deferred Beam DataFrame representing the contents of the file. The input filename can be any file pattern understood by <a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.fileio.html#apache_beam.io.fileio.MatchFiles>fileio.MatchFiles</a>.</p><p>For an example of using sources and sinks with the DataFrame [...]
 
 with dataframe.allow_non_parallel_operations():
   quantiles = df.quantile()
-</code></pre><p>Note that this collects the entire input dataset on a single node, so there’s a risk of running out of memory. You should only use this workaround if you’re sure that the input is small enough to process on a single worker.</p><h3 id=operations-that-produce-non-deferred-columns>Operations that produce non-deferred columns</h3><p>Beam DataFrame operations are deferred, but the schemas of the resulting DataFrames are not, meaning that result columns must be computable witho [...]
+</code></pre><p>Note that this collects the entire input dataset on a single node, so there’s a risk of running out of memory. You should only use this workaround if you’re sure that the input is small enough to process on a single worker.</p><h3 id=operations-that-produce-non-deferred-columns>Operations that produce non-deferred columns</h3><p>Beam DataFrame operations are deferred, but the schemas of the resulting DataFrames are not, meaning that result columns must be computable witho [...]
 Run in Colab</a></td></table><p><br><br><br><br></p><p>To get started with Beam in a notebook, see <a href=https://beam.apache.org/get-started/try-apache-beam/>Try Apache Beam</a>.</p></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
diff --git a/website/generated-content/documentation/dsls/dataframes/overview/index.html b/website/generated-content/documentation/dsls/dataframes/overview/index.html
index 2db523d..ebfa070 100644
--- a/website/generated-content/documentation/dsls/dataframes/overview/index.html
+++ b/website/generated-content/documentation/dsls/dataframes/overview/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 Run in Colab</a></td></table><p><br><br><br><br></p><p>The Apache Beam Python SDK provides a DataFrame API for working with pandas-like <a href=https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html>DataFrame</a> objects. The feature lets you convert a PCollection to a DataFrame and then interact with the DataFrame using the standard methods available on the pandas DataFrame API. The DataFrame API is built on top of the pandas implementation, and pandas DataFram [...]
 </code></pre><p>Note that the <em>same</em> <code>pandas</code> version should be installed on workers when executing DataFrame API pipelines on distributed runners. Reference <a href=https://github.com/apache/beam/blob/master/sdks/python/container/py38/base_image_requirements.txt><code>base_image_requirements.txt</code></a> for the Python version and Beam release you are using to see what version of <code>pandas</code> will be used by default on workers.</p><h2 id=using-dataframes>Using [...]
 
diff --git a/website/generated-content/documentation/dsls/sql/calcite/aggregate-functions/index.html b/website/generated-content/documentation/dsls/sql/calcite/aggregate-functions/index.html
index 7538b72..f0a458e 100644
--- a/website/generated-content/documentation/dsls/sql/calcite/aggregate-functions/index.html
+++ b/website/generated-content/documentation/dsls/sql/calcite/aggregate-functions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/dsls/sql/calcite/data-types/index.html b/website/generated-content/documentation/dsls/sql/calcite/data-types/index.html
index 40a2a48..1c4e5a4 100644
--- a/website/generated-content/documentation/dsls/sql/calcite/data-types/index.html
+++ b/website/generated-content/documentation/dsls/sql/calcite/data-types/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 including arrays, maps, and nested rows. This page documents supported
 <a href=https://calcite.apache.org/docs/reference.html#data-types>Apache Calcite data types</a> supported by Beam Calcite SQL.</p><p>In Java, these types are mapped to Java types large enough to hold the
 full range of values.</p><div class=table-wrapper><table><thead><tr><th>SQL Type</th><th>Description</th><th>Java class</th></tr></thead><tbody><tr><td>TINYINT</td><td>1 byte signed integer in range -128 to 127</td><td>java.lang.Byte</td></tr><tr><td>SMALLINT</td><td>2 byte signed integer in range -32768 to 32767</td><td>java.lang.Short</td></tr><tr><td>INTEGER</td><td>4 byte signed integer in range -2147483648 to 2147483647</td><td>java.lang.Integer</td></tr><tr><td>BIGINT</td><td>8 byt [...]
diff --git a/website/generated-content/documentation/dsls/sql/calcite/lexical-structure/index.html b/website/generated-content/documentation/dsls/sql/calcite/lexical-structure/index.html
index cc0f5d4..3656cc0 100644
--- a/website/generated-content/documentation/dsls/sql/calcite/lexical-structure/index.html
+++ b/website/generated-content/documentation/dsls/sql/calcite/lexical-structure/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <em>identifiers,</em> <em>quoted identifiers, literals</em>, <em>keywords</em>, <em>operators</em>,
 and <em>special characters</em>. Tokens can be separated by whitespace (space,
 backspace, tab, newline) or comments.</p><h2 id=identifiers>Identifiers</h2><p>Identifiers are names that are associated with columns, tables, and
diff --git a/website/generated-content/documentation/dsls/sql/calcite/overview/index.html b/website/generated-content/documentation/dsls/sql/calcite/overview/index.html
index fd1f030..052c623 100644
--- a/website/generated-content/documentation/dsls/sql/calcite/overview/index.html
+++ b/website/generated-content/documentation/dsls/sql/calcite/overview/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 big data processing with some streaming enhancements. Beam Calcite SQL is the default Beam SQL dialect.</p><p>Beam SQL has additional extensions leveraging Beam’s unified batch/streaming model and processing complex data types. You can use these extensions with all Beam SQL dialects, including Beam Calcite SQL.</p><h2 id=query-syntax>Query syntax</h2><p>Query statements scan one or more tables or expressions and return the computed result rows. For more information about query statements [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
diff --git a/website/generated-content/documentation/dsls/sql/calcite/query-syntax/index.html b/website/generated-content/documentation/dsls/sql/calcite/query-syntax/index.html
index 9d5695e..3a871c6 100644
--- a/website/generated-content/documentation/dsls/sql/calcite/query-syntax/index.html
+++ b/website/generated-content/documentation/dsls/sql/calcite/query-syntax/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 result rows.</p><p>Generally, the semantics of queries is standard. See the following
 sections to learn about extensions for supporting Beam&rsquo;s unified
 batch/streaming model:</p><ul><li><a href=/documentation/dsls/sql/extensions/joins>Joins</a></li><li><a href=/documentation/dsls/sql/windowing-and-triggering/>Windowing & Triggering</a></li></ul><p>The main functionality of Beam SQL is the <code>SELECT</code> statement. This is how you
diff --git a/website/generated-content/documentation/dsls/sql/calcite/scalar-functions/index.html b/website/generated-content/documentation/dsls/sql/calcite/scalar-functions/index.html
index 0a7dc10..be3f698 100644
--- a/website/generated-content/documentation/dsls/sql/calcite/scalar-functions/index.html
+++ b/website/generated-content/documentation/dsls/sql/calcite/scalar-functions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/dsls/sql/extensions/create-external-table/index.html b/website/generated-content/documentation/dsls/sql/extensions/create-external-table/index.html
index f381416..15ea06e 100644
--- a/website/generated-content/documentation/dsls/sql/extensions/create-external-table/index.html
+++ b/website/generated-content/documentation/dsls/sql/extensions/create-external-table/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <a href=/documentation/io/built-in/>external storage system</a>.
 For some storage systems, <code>CREATE EXTERNAL TABLE</code> does not create a physical table until
 a write occurs. After the physical table exists, you can access the table with
diff --git a/website/generated-content/documentation/dsls/sql/extensions/joins/index.html b/website/generated-content/documentation/dsls/sql/extensions/joins/index.html
index 5bbc68f..d081666 100644
--- a/website/generated-content/documentation/dsls/sql/extensions/joins/index.html
+++ b/website/generated-content/documentation/dsls/sql/extensions/joins/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 with all elements from another input. Due to the fact that both inputs are
 bounded, no windowing or triggering is involved.</p><h2 id=join-unbounded-unbounded>Unbounded JOIN Unbounded</h2><p>Standard join implementation is used. All elements from one input are matched
 with all elements from another input.</p><p><strong>Windowing and Triggering</strong></p><p>The following properties must be satisfied when joining unbounded inputs:</p><ul><li>Inputs must have compatible windows, otherwise <code>IllegalArgumentException</code>
diff --git a/website/generated-content/documentation/dsls/sql/extensions/set/index.html b/website/generated-content/documentation/dsls/sql/extensions/set/index.html
index f4c39fc..9bb0a85 100644
--- a/website/generated-content/documentation/dsls/sql/extensions/set/index.html
+++ b/website/generated-content/documentation/dsls/sql/extensions/set/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 Options</a>
 via the SQL shell. These are the same Pipeline Options passed to other Beam
 applications on the command line in the <code>--&lt;option>=&lt;value></code> format.</p><h2 id=syntax>Syntax</h2><pre><code>SET option = value
diff --git a/website/generated-content/documentation/dsls/sql/extensions/user-defined-functions/index.html b/website/generated-content/documentation/dsls/sql/extensions/user-defined-functions/index.html
index c5fe23c..71fe40d 100644
--- a/website/generated-content/documentation/dsls/sql/extensions/user-defined-functions/index.html
+++ b/website/generated-content/documentation/dsls/sql/extensions/user-defined-functions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 needs, they can be authored in Java and invoked in your SQL query. These
 are commonly called UDF (for scalar functions) and UDAFs (for aggregate functions).</p><h2 id=create-and-specify-a-user-defined-function-udf>Create and specify a User Defined Function (UDF)</h2><p>A UDF can be the following:</p><ul><li>Any Java method that takes zero or more scalar fields and
 returns one scalar value.</li><li>A <code>SerializableFunction</code>.</li></ul><p>Below is an example of UDF and how to use it in DSL:</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=cm>/**
diff --git a/website/generated-content/documentation/dsls/sql/extensions/windowing-and-triggering/index.html b/website/generated-content/documentation/dsls/sql/extensions/windowing-and-triggering/index.html
index 01fae7f..9b82bff 100644
--- a/website/generated-content/documentation/dsls/sql/extensions/windowing-and-triggering/index.html
+++ b/website/generated-content/documentation/dsls/sql/extensions/windowing-and-triggering/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 to a <code>BeamSql</code> transform</li><li>you can use windowing extensions in your windowing query, which will override
 the windowing of your input <code>PCollections</code></li></ul><p>Triggering can only be used by setting it on your input <code>PCollections</code>; there
 are no SQL extensions for specifying triggering.</p><p>This section covers the use of SQL extensions to directly apply windowing.</p><p>Beam SQL supports windowing functions specified in <code>GROUP BY</code> clause.
diff --git a/website/generated-content/documentation/dsls/sql/overview/index.html b/website/generated-content/documentation/dsls/sql/overview/index.html
index a468440..2b6a842 100644
--- a/website/generated-content/documentation/dsls/sql/overview/index.html
+++ b/website/generated-content/documentation/dsls/sql/overview/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 bounded and unbounded <code>PCollections</code> with SQL statements. Your SQL query
 is translated to a <code>PTransform</code>, an encapsulated segment of a Beam pipeline.
 You can freely mix SQL <code>PTransforms</code> and other <code>PTransforms</code> in your pipeline.</p><p>Beam SQL includes the following dialects:</p><ul><li><a href=https://calcite.apache.org>Beam Calcite SQL</a></li><li><a href=https://github.com/google/zetasql>Beam ZetaSQL</a></li></ul><p>Beam Calcite SQL is a variant of Apache Calcite, a dialect widespread in
-big data processing. Beam Calcite SQL is the default Beam SQL dialect. Beam ZetaSQL is more compatible with BigQuery, so it&rsquo;s especially useful in pipelines that <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html>write to or read from BigQuery tables</a>.</p><p>To change dialects, pass <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/extensions/sql/package-summary.html>the dialect&rsquo;s full pac [...]
+big data processing. Beam Calcite SQL is the default Beam SQL dialect. Beam ZetaSQL is more compatible with BigQuery, so it&rsquo;s especially useful in pipelines that <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html>write to or read from BigQuery tables</a>.</p><p>To change dialects, pass <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/extensions/sql/package-summary.html>the dialect&rsquo;s full pac [...]
 the type of elements that Beam SQL operates on. A <code>PCollection&lt;Row></code> plays the role of a table.</li></ul><h2 id=walkthrough>Walkthrough</h2><p>The <a href=/documentation/dsls/sql/walkthrough>SQL pipeline walkthrough</a> works through how to use Beam SQL with example code.</p><h2 id=shell>Shell</h2><p>The Beam SQL shell allows you to write pipelines as SQL queries without using the Java SDK.
 The <a href=/documentation/dsls/sql/shell>Shell page</a> describes how to work with the interactive Beam SQL shell.</p><h2 id=apache-calcite-dialect>Apache Calcite dialect</h2><p>The <a href=/documentation/dsls/sql/calcite/overview>Beam Calcite SQL overview</a> summarizes Apache Calcite operators,
 functions, syntax, and data types supported by Beam Calcite SQL.</p><h2 id=zetasql-dialect>ZetaSQL dialect</h2><p>For more information on the ZetaSQL features in Beam SQL, see the <a href=/documentation/dsls/sql/zetasql/overview>Beam ZetaSQL dialect reference</a>.</p><p>To switch to Beam ZetaSQL, configure the <a href=https://beam.apache.org/releases/javadoc/2.15.0/org/apache/beam/sdk/options/PipelineOptions.html>pipeline options</a> as follows:</p><pre><code>PipelineOptions options = ...;
diff --git a/website/generated-content/documentation/dsls/sql/shell/index.html b/website/generated-content/documentation/dsls/sql/shell/index.html
index d0e4e3d..279c4e2 100644
--- a/website/generated-content/documentation/dsls/sql/shell/index.html
+++ b/website/generated-content/documentation/dsls/sql/shell/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 
 ./sdks/java/extensions/sql/shell/build/install/shell/bin/shell
 </code></pre><p>After you run the commands, the SQL shell starts and you can type queries:</p><pre><code>Welcome to Beam SQL 2.6.0-SNAPSHOT (based on sqlline version 1.4.0)
diff --git a/website/generated-content/documentation/dsls/sql/walkthrough/index.html b/website/generated-content/documentation/dsls/sql/walkthrough/index.html
index a4c8a6d..43454d2 100644
--- a/website/generated-content/documentation/dsls/sql/walkthrough/index.html
+++ b/website/generated-content/documentation/dsls/sql/walkthrough/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 be in <code>Row</code> format. A <code>Row</code> represents a single, immutable record in a Beam SQL
 <code>PCollection</code>. The names and types of the fields/columns in the row are defined
-by its associated <a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/schemas/Schema.html>Schema</a>.
-You can use the <a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/schemas/Schema.html>Schema.builder()</a> to create
+by its associated <a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/schemas/Schema.html>Schema</a>.
+You can use the <a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/schemas/Schema.html>Schema.builder()</a> to create
 <code>Schemas</code>. See <a href=/documentation/dsls/sql/data-types>Data
 Types</a> for more details on supported primitive data types.</p><p>A <code>PCollection&lt;Row></code> can be obtained multiple ways, for example:</p><ul><li><p><strong>From in-memory data</strong> (typically for unit testing).</p><p><strong>Note:</strong> you have to explicitly specify the <code>Row</code> coder. In this example we&rsquo;re doing it by calling <code>Create.of(..)</code>:</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=but [...]
 </span><span class=c1></span>    <span class=n>Schema</span> <span class=n>appSchema</span> <span class=o>=</span>
@@ -81,7 +81,7 @@ Types</a> for more details on supported primitive data types.</p><p>A <code>PCol
 </span><span class=c1></span>              <span class=n>c</span><span class=o>.</span><span class=na>output</span><span class=o>(</span><span class=n>appRow</span><span class=o>);</span>
             <span class=o>}</span>
           <span class=o>})).</span><span class=na>setRowSchema</span><span class=o>(</span><span class=n>appSchema</span><span class=o>);</span>
-    </code></pre></div></div></div></p></li><li><p><strong>As an output of another <code>SqlTransform</code></strong>. Details in the next section.</p></li></ul><p>Once you have a <code>PCollection&lt;Row></code> in hand, you may use <code>SqlTransform</code> to apply SQL queries to it.</p><h2 id=sqltransform>SqlTransform</h2><p><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/extensions/sql/SqlTransform.html><code>SqlTransform.query(queryString)</co [...]
+    </code></pre></div></div></div></p></li><li><p><strong>As an output of another <code>SqlTransform</code></strong>. Details in the next section.</p></li></ul><p>Once you have a <code>PCollection&lt;Row></code> in hand, you may use <code>SqlTransform</code> to apply SQL queries to it.</p><h2 id=sqltransform>SqlTransform</h2><p><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/extensions/sql/SqlTransform.html><code>SqlTransform.query(queryString)</co [...]
 from a string representation of the SQL query. You can apply this <code>PTransform</code>
 to either a single <code>PCollection</code> or a <code>PCollectionTuple</code> which holds multiple
 <code>PCollections</code>:</p><ul><li><p>when applying to a single <code>PCollection</code> it can be referenced via the table name <code>PCOLLECTION</code> in the query:<div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java>    <span class=n>PCollection</s [...]
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/aggregate-functions/index.html b/website/generated-content/documentation/dsls/sql/zetasql/aggregate-functions/index.html
index 39cdeae..1eabe98 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/aggregate-functions/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/aggregate-functions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 </code></pre><p><strong>Description</strong></p><p>Returns the average of non-<code>NULL</code> input values.</p><p><strong>Supported Argument Types</strong></p><p>FLOAT64. Note that, for floating point input types, the return result
 is non-deterministic, which means you might receive a different result each time
 you use this function.</p><p><strong>Returned Data Types</strong></p><ul><li>FLOAT64</li></ul><p><strong>Examples</strong></p><pre><code>SELECT AVG(x) as avg
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/conditional-expressions/index.html b/website/generated-content/documentation/dsls/sql/zetasql/conditional-expressions/index.html
index 14cd691..347e919 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/conditional-expressions/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/conditional-expressions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
   WHEN value THEN result
   [WHEN ...]
   [ELSE else_result]
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/conversion-rules/index.html b/website/generated-content/documentation/dsls/sql/zetasql/conversion-rules/index.html
index 9d09363..02fa3fd 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/conversion-rules/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/conversion-rules/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 automatically under the conditions described below.</li></ul><p>The table below summarizes all possible <code>CAST</code>s and coercions. &ldquo;Coercion To&rdquo; applies to all <em>expressions</em> of a given data type (e.g. a column).</p><div class=table-wrapper><table><thead><tr><th>From Type</th><th>CAST to</th><th>Coercion To</th></tr></thead><tbody><tr><td>INT64</td><td><span>INT64</span><br><span>FLOAT64</span><br><span>STRING</span><br></td><td><span>FLOAT64</span><br></td></tr> [...]
 </code></pre><p>Cast syntax is used in a query to indicate that the result type of an
 expression should be converted to some other type.</p><p>Example:</p><pre><code>CAST(x=1 AS STRING)
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/data-types/index.html b/website/generated-content/documentation/dsls/sql/zetasql/data-types/index.html
index 18c97cb..92dd0a9 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/data-types/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/data-types/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 each property applies to:</p><div class=table-wrapper><table><thead><tr><th>Property</th><th>Description</th><th>Applies To</th></tr></thead><tbody><tr><td>Nullable</td><td nowrap><code>NULL</code> is a valid value.</td><td>All data types, with the following exceptions:<ul><li>ARRAYs cannot be <code>NULL</code>.</li><li><code>NULL ARRAY</code> elements cannot persist to a table.</li><li>Queries cannot handle <code>NULL ARRAY</code> elements.</li></ul></td></tr><tr><td>Orderable</td><td n [...]
 Field names are ignored. Less than and greater than comparisons are not
 supported.</p><p><br><br><br><br>All types that support comparisons
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/lexical/index.html b/website/generated-content/documentation/dsls/sql/zetasql/lexical/index.html
index f2826b7..7fa7fe4 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/lexical/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/lexical/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <em>identifiers,</em> <em>quoted identifiers, literals</em>, <em>keywords</em>, <em>operators</em>, and
 <em>special characters</em>. Tokens can be separated by whitespace (space, backspace,
 tab, newline) or comments.</p><p><a id=identifiers></a></p><h2 id=identifiers>Identifiers</h2><p>Identifiers are names that are associated with columns, tables, and other
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/math-functions/index.html b/website/generated-content/documentation/dsls/sql/zetasql/math-functions/index.html
index 38afc05..bac456f 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/math-functions/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/math-functions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 </code></pre><p><strong>Description</strong></p><p>Modulo function: returns the remainder of the division of X by Y. Returned value
 has the same sign as X.</p><h2 id=ceil>CEIL</h2><pre><code>CEIL(X)
 </code></pre><p><strong>Description</strong></p><p>Returns the smallest integral value (with FLOAT64
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/operators/index.html b/website/generated-content/documentation/dsls/sql/zetasql/operators/index.html
index 4213eda..d11d0a9 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/operators/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/operators/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 function call syntax. An operator manipulates any number of data inputs, also
 called operands, and returns a result.</p><p>Common conventions:</p><ul><li>Unless otherwise specified, all operators return <code>NULL</code> when one of the
 operands is <code>NULL</code>.</li></ul><p>The following table lists all supported operators from highest to
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/overview/index.html b/website/generated-content/documentation/dsls/sql/zetasql/overview/index.html
index 2c16455..734f502 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/overview/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/overview/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/query-syntax/index.html b/website/generated-content/documentation/dsls/sql/zetasql/query-syntax/index.html
index 3e1ea74..48bb531 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/query-syntax/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/query-syntax/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 the computed result rows.</p><h2 id=sql-syntax>SQL Syntax</h2><pre>
 <span class=var>query_statement</span>:
     <span class=var>query_expr</span>
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/string-functions/index.html b/website/generated-content/documentation/dsls/sql/zetasql/string-functions/index.html
index 2a3b4d3..bcaa4fa 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/string-functions/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/string-functions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 canonical equivalence.</p><div class=table-wrapper><table><thead><tr><th>Operator syntax</th><th>Description</th></tr></thead><tbody><tr><td><a href=#char_length>CHAR_LENGTH(value)</a></td><td>Returns the length of the string in characters</td></tr><tr><td><a href=#character_length>CHARACTER_LENGTH(value)</a></td><td>Synonym for CHAR_LENGTH</td></tr><tr><td><a href=#concat>CONCAT(value1[, &mldr;])</a></td><td>Concatenates up to five values into a single result</td></tr><tr><td><a href=#e [...]
 </code></pre><p><strong>Description</strong></p><p>Returns the length of the STRING in characters.</p><p><strong>Return type</strong></p><p>INT64</p><p><strong>Examples</strong></p><pre><code>
 Table example:
diff --git a/website/generated-content/documentation/dsls/sql/zetasql/syntax/index.html b/website/generated-content/documentation/dsls/sql/zetasql/syntax/index.html
index c7e11ff..b78b240 100644
--- a/website/generated-content/documentation/dsls/sql/zetasql/syntax/index.html
+++ b/website/generated-content/documentation/dsls/sql/zetasql/syntax/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 operand and the other operand is another numeric type, both operands are
 converted to FLOAT64 before the function is
 evaluated.</p></li><li><p>If an operand is <code>NULL</code>, the result is <code>NULL</code>, with the exception of the
diff --git a/website/generated-content/documentation/index.xml b/website/generated-content/documentation/index.xml
index 6783119..917d54e 100644
--- a/website/generated-content/documentation/index.xml
+++ b/website/generated-content/documentation/index.xml
@@ -716,7 +716,7 @@ the implementation of your custom I/O depends on your use case. Before you
 start, read the &lt;a href="/documentation/io/developing-io-overview/">new I/O connector overview&lt;/a>
 for an overview of developing a new I/O connector, the available implementation
 options, and how to choose the right option for your use case.&lt;/p>
-&lt;p>This guide covers using the &lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.iobase.html">Source and FileBasedSink interfaces&lt;/a>
+&lt;p>This guide covers using the &lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.iobase.html">Source and FileBasedSink interfaces&lt;/a>
 for Python. The Java SDK offers the same functionality, but uses a slightly
 different API. See &lt;a href="/documentation/io/developing-io-java/">Developing I/O connectors for Java&lt;/a>
 for information specific to the Java SDK.&lt;/p>
@@ -769,7 +769,7 @@ why you should avoid exposing your sources, and walks through how to create
 a wrapper.&lt;/li>
 &lt;/ul>
 &lt;p>You can find these classes in the
-&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.iobase.html">apache_beam.io.iobase module&lt;/a>.&lt;/p>
+&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.iobase.html">apache_beam.io.iobase module&lt;/a>.&lt;/p>
 &lt;h3 id="implementing-the-boundedsource-subclass">Implementing the BoundedSource subclass&lt;/h3>
 &lt;p>&lt;code>BoundedSource&lt;/code> represents a finite data set from which the service reads, possibly in parallel. &lt;code>BoundedSource&lt;/code> contains a set of methods that the service uses to split the data set for reading by multiple remote workers.&lt;/p>
 &lt;p>To implement a &lt;code>BoundedSource&lt;/code>, your subclass must override the following methods:&lt;/p>
@@ -916,7 +916,7 @@ demonstrated in the example above. Use a wrapping &lt;code>PTransform&lt;/code>
 &lt;a href="#ptransform-wrappers">PTransform wrappers&lt;/a> discusses why you should avoid
 exposing your sources, and walks through how to create a wrapper.&lt;/p>
 &lt;h2 id="using-the-filebasedsink-abstraction">Using the FileBasedSink abstraction&lt;/h2>
-&lt;p>If your data source uses files, you can implement the &lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.filebasedsink.html">FileBasedSink&lt;/a>
+&lt;p>If your data source uses files, you can implement the &lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.filebasedsink.html">FileBasedSink&lt;/a>
 abstraction to create a file-based sink. For other sinks, use &lt;code>ParDo&lt;/code>,
 &lt;code>GroupByKey&lt;/code>, and other transforms offered by the Beam SDK for Python. See the
 &lt;a href="/documentation/io/developing-io-overview/">developing I/O connectors overview&lt;/a>
@@ -1758,21 +1758,21 @@ to &lt;a href="https://parquet.apache.org">Apache Parquet&lt;/a> files.&lt;/p>
 &lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
 &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
 &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">sdks&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">parquet&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class=" [...]
-&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">35&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">0&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">36&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">0&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
 &lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;p class="language-java">Additional resources:&lt;/p>
 &lt;span class="language-java">&lt;ul>
 &lt;li>&lt;a href="https://github.com/apache/beam/blob/master/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java">ParquetIO source code&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/parquet/ParquetIO.html">ParquetIO Javadoc&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/parquet/ParquetIO.html">ParquetIO Javadoc&lt;/a>&lt;/li>
 &lt;/ul>&lt;/span>
 &lt;!-- Python specific -->
-&lt;p class="language-py">ParquetIO comes preinstalled with the Apache Beam python sdk..2.35.0&lt;/p>
+&lt;p class="language-py">ParquetIO comes preinstalled with the Apache Beam python sdk..2.36.0&lt;/p>
 &lt;p class="language-py">Additional resources:&lt;/p>
 &lt;span class="language-py">&lt;ul>
 &lt;li>&lt;a href="https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/parquetio.py">ParquetIO source code&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.parquetio.html">ParquetIO Pydoc&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.parquetio.html">ParquetIO Pydoc&lt;/a>&lt;/li>
 &lt;/ul>&lt;/span>
 &lt;p class="language-java">&lt;h4 id="using-parquetio-with-spark-before-24">Using ParquetIO with Spark before 2.4&lt;/h4>&lt;/p>
 &lt;p class="language-java">&lt;code>ParquetIO&lt;/code> depends on an API introduced in Apache Parquet 1.10.0. &lt;strong>Spark 2.4.x is compatible and no additional steps are necessary&lt;/strong>. Older versions of Spark will not work out of the box since a pre-installed version of Parquet libraries will take precedence during execution. The following workaround should be applied.&lt;/p>
@@ -1864,54 +1864,130 @@ limitations under the License.
 &lt;p>&lt;a href="/documentation/io/built-in/">Built-in I/O Transforms&lt;/a>&lt;/p>
 &lt;h1 id="snowflake-io">Snowflake I/O&lt;/h1>
 &lt;p>Pipeline options and general information about using and running Snowflake IO.&lt;/p>
+&lt;h2 id="before-you-start">Before you start&lt;/h2>
+&lt;p>To use SnowflakeIO, add the Maven artifact dependency to your &lt;code>pom.xml&lt;/code> file.&lt;/p>
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;pre>&lt;code>&amp;lt;dependency&amp;gt;
+&amp;lt;groupId&amp;gt;org.apache.beam&amp;lt;/groupId&amp;gt;
+&amp;lt;artifactId&amp;gt;beam-sdks-java-io-snowflake&amp;lt;/artifactId&amp;gt;
+&amp;lt;version&amp;gt;2.36.0&amp;lt;/version&amp;gt;
+&amp;lt;/dependency&amp;gt;&lt;/code>&lt;/pre>
+&lt;/div>
+&lt;/div>
+&lt;p>Additional resources:&lt;/p>
+&lt;ul>
+&lt;li>&lt;a href="https://github.com/apache/beam/tree/master/sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake">SnowflakeIO source code&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/snowflake/SnowflakeIO.html">SnowflakeIO Javadoc&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://docs.snowflake.com/en/">Snowflake documentation&lt;/a>&lt;/li>
+&lt;/ul>
 &lt;h2 id="authentication">Authentication&lt;/h2>
-&lt;p>All authentication methods available for the Snowflake JDBC Driver are possible to use with the IO transforms:&lt;/p>
+&lt;p>Reading and batch writing supports the following authentication methods:&lt;/p>
 &lt;ul>
 &lt;li>Username and password&lt;/li>
 &lt;li>Key pair&lt;/li>
 &lt;li>OAuth token&lt;/li>
 &lt;/ul>
-&lt;p>Passing credentials is done via Pipeline options.&lt;/p>
-&lt;p>Passing credentials is done via Pipeline options used to instantiate &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code>:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;p>Streaming writing supports only key pair authentication. For details, see: &lt;a href="https://issues.apache.org/jira/browse/BEAM-3304">BEAM-3304&lt;/a>.&lt;/p>
+&lt;p>Passing credentials is done via Pipeline options used to instantiate &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code> class. Each authentication method has different ways to configure this class.&lt;/p>
+&lt;h3 id="username-and-password">Username and password&lt;/h3>
+&lt;p>To use username/password authentication in SnowflakeIO, invoke your pipeline with the following Pipeline options:
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">SnowflakePipelineOptions&lt;/span> &lt;span class="n">options&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">PipelineOptionsFactory&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">fromArgs&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">args&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withValidation&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">as&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">SnowflakePipelineOptions&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">class&lt;/span>&lt;span class="o">);&lt;/span>
-&lt;span class="n">SnowflakeCredentials&lt;/span> &lt;span class="n">credentials&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">SnowflakeCredentialsFactory&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">of&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">);&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">DataSourceConfiguration&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">create&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">credentials&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.(&lt;/span>&lt;span class="n">other&lt;/span> &lt;span class="n">DataSourceConfiguration&lt;/span> &lt;span class="n">options&lt;/span>&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>--username=&amp;lt;USERNAME&amp;gt; --password=&amp;lt;PASSWORD&amp;gt;&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
-&lt;h3 id="username-and-password">Username and password&lt;/h3>
-&lt;p>To use username/password authentication in SnowflakeIO, invoke your pipeline with the following Pipeline options:
+&lt;p>Passing credentials is done via Pipeline options used to instantiate &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code> class.
 &lt;div class="snippet">
 &lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>--username=&amp;lt;USERNAME&amp;gt; --password=&amp;lt;PASSWORD&amp;gt;&lt;/code>&lt;/pre>
+&lt;pre>&lt;code>SnowflakeIO.DataSourceConfiguration datasource = SnowflakeIO.DataSourceConfiguration.create()
+.withUsernamePasswordAuth(
+options.getUsername(),
+options.getPassword())
+.withServerName(options.getServerName())
+.withDatabase(options.getDatabase())
+.withRole(options.getRole())
+.withWarehouse(options.getWarehouse())
+.withSchema(options.getSchema());&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
 &lt;h3 id="key-pair">Key pair&lt;/h3>
-&lt;p>To use this authentication method, you must first generate a key pair and associate the public key with the Snowflake user that will connect using the IO transform. For instructions, see the &lt;a href="https://docs.snowflake.com/en/user-guide/jdbc-configure.html">Snowflake documentation&lt;/a>.&lt;/p>
-&lt;p>To use key pair authentication with SnowflakeIO, invoke your pipeline with one of the following set of Pipeline options:
+&lt;p>To use this authentication method, you must first generate a key pair and associate the public key with the Snowflake user that will connect using the IO transform. For instructions, see the &lt;a href="https://docs.snowflake.com/en/user-guide/key-pair-auth.html">Key Pair Authentication &amp;amp; Key Pair Rotation&lt;/a> in Snowflake documentation.&lt;/p>
+&lt;p>To use key pair authentication with SnowflakeIO, invoke your pipeline with one of the following set of Pipeline options:&lt;/p>
+&lt;ul>
+&lt;li>with passing the key as a path:
 &lt;div class="snippet">
 &lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>--username=&amp;lt;USERNAME&amp;gt; --privateKeyPath=&amp;lt;PATH_TO_P8_FILE&amp;gt; --privateKeyPassphrase=&amp;lt;PASSWORD_FOR_KEY&amp;gt;
---username=&amp;lt;USERNAME&amp;gt; --rawPrivateKey=&amp;lt;PRIVATE_KEY&amp;gt; --privateKeyPassphrase=&amp;lt;PASSWORD_FOR_KEY&amp;gt;&lt;/code>&lt;/pre>
+&lt;pre>&lt;code> --username=&amp;lt;USERNAME&amp;gt; --privateKeyPath=&amp;lt;PATH_TO_P8_FILE&amp;gt; --privateKeyPassphrase=&amp;lt;PASSWORD_FOR_KEY&amp;gt;
+&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
-&lt;/p>
+The initialization of an &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code> class may be as follows:
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;pre>&lt;code> SnowflakeIO.DataSourceConfiguration datasource = SnowflakeIO.DataSourceConfiguration.create()
+.withKeyPairPathAuth(
+options.getUsername(),
+options.getPrivateKeyPath(),
+options.getPrivateKeyPassphrase())
+.withServerName(options.getServerName())
+.withDatabase(options.getDatabase())
+.withRole(options.getRole())
+.withWarehouse(options.getWarehouse())
+.withSchema(options.getSchema());
+&lt;/code>&lt;/pre>
+&lt;/div>
+&lt;/div>
+&lt;/li>
+&lt;li>with passing the key as a value:
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;pre>&lt;code> --username=&amp;lt;USERNAME&amp;gt; --rawPrivateKey=&amp;lt;PRIVATE_KEY&amp;gt; --privateKeyPassphrase=&amp;lt;PASSWORD_FOR_KEY&amp;gt;
+&lt;/code>&lt;/pre>
+&lt;/div>
+&lt;/div>
+The initialization of an &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code> class may be as follows:
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;pre>&lt;code> SnowflakeIO.DataSourceConfiguration datasource = SnowflakeIO.DataSourceConfiguration.create()
+.withKeyPairRawAuth(
+options.getUsername(),
+options.getRawPrivateKey(),
+options.getPrivateKeyPassphrase())
+.withServerName(options.getServerName())
+.withDatabase(options.getDatabase())
+.withRole(options.getRole())
+.withWarehouse(options.getWarehouse())
+.withSchema(options.getSchema());
+&lt;/code>&lt;/pre>
+&lt;/div>
+&lt;/div>
+&lt;/li>
+&lt;/ul>
+&lt;p>&lt;strong>Important notice&lt;/strong>: Only encrypted private key are supported. Unencrypted (without pasphrase) private key are not supported. For details, see: &lt;a href="https://issues.apache.org/jira/browse/BEAM-13818">BEAM-13818&lt;/a>.&lt;/p>
 &lt;h3 id="oauth-token">OAuth token&lt;/h3>
 &lt;p>SnowflakeIO also supports OAuth token.&lt;/p>
 &lt;p>&lt;strong>IMPORTANT&lt;/strong>: SnowflakeIO requires a valid OAuth access token. It will neither be able to refresh the token nor obtain it using a web-based flow. For information on configuring an OAuth integration and obtaining the token, see the &lt;a href="https://docs.snowflake.com/en/user-guide/oauth-intro.html">Snowflake documentation&lt;/a>.&lt;/p>
@@ -1924,23 +2000,38 @@ limitations under the License.
 &lt;pre>&lt;code>--oauthToken=&amp;lt;TOKEN&amp;gt;&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
+The initialization of an &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code> class may be as follows:
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;pre>&lt;code> SnowflakeIO.DataSourceConfiguration datasource = SnowflakeIO.DataSourceConfiguration
+.create()
+.withUrl(options.getUrl())
+.withServerName(options.getServerName())
+.withDatabase(options.getDatabase())
+.withWarehouse(options.getWarehouse())
+.withSchema(options.getSchema());&lt;/code>&lt;/pre>
+&lt;/div>
+&lt;/div>
 &lt;/p>
 &lt;h2 id="datasource-configuration">DataSource Configuration&lt;/h2>
 &lt;p>DataSource configuration is required in both read and write object for configuring Snowflake connection properties for IO purposes.&lt;/p>
 &lt;h3 id="general-usage">General usage&lt;/h3>
 &lt;p>Create the DataSource configuration:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java"> &lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">DataSourceConfiguration&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">create&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withUrl&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">getUrl&lt;/span>&lt;span class="o">())&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withServerName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">getServerName&lt;/span>&lt;span class="o">())&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDatabase&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">getDatabase&lt;/span>&lt;span class="o">())&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withWarehouse&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">getWarehouse&lt;/span>&lt;span class="o">())&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withSchema&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">getSchema&lt;/span>&lt;span class="o">());&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code> SnowflakeIO.DataSourceConfiguration
+.create()
+.withUrl(options.getUrl())
+.withServerName(options.getServerName())
+.withDatabase(options.getDatabase())
+.withWarehouse(options.getWarehouse())
+.withSchema(options.getSchema());&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 Where parameters can be:&lt;/p>
@@ -2072,7 +2163,7 @@ Example: --region=us-east-1
 Example: --appName=my_job&amp;#34;&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
-Then in the code it is possible to access the parameters with arguments using the options.getStagingBucketName(); command.&lt;/p>
+Then in the code it is possible to access the parameters with arguments using the &lt;code>options.getStagingBucketName()&lt;/code> command.&lt;/p>
 &lt;h3 id="running-test-command-with-pipeline-options">Running test command with Pipeline options&lt;/h3>
 &lt;p>To pass Pipeline options via the command line, use &lt;code>-DintegrationTestPipelineOptions&lt;/code> in a gradle command as follows:
 &lt;div class="snippet">
@@ -2270,29 +2361,29 @@ Example: --tempLocation=gs://bucket/temp/
 &lt;p>One of the functions of SnowflakeIO is writing to Snowflake tables. This transformation enables you to finish the Beam pipeline with an output operation that sends the user&amp;rsquo;s &lt;a href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/values/PCollection.html">PCollection&lt;/a> to your Snowflake database.&lt;/p>
 &lt;h3 id="batch-write-from-a-bounded-source">Batch write (from a bounded source)&lt;/h3>
 &lt;p>The basic .&lt;code>write()&lt;/code> operation usage is as follows:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apply&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&amp;lt;&lt;/span>&lt;span class="n">type&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDataSourceConfiguration&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">dc&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">toTable&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;MY_TABLE&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStagingBucketName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;BUCKET&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStorageIntegrationName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;STORAGE INTEGRATION NAME&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withUserDataMapper&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">mapper&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>data.apply(
+SnowflakeIO.&amp;lt;type&amp;gt;write()
+.withDataSourceConfiguration(dc)
+.to(&amp;#34;MY_TABLE&amp;#34;)
+.withStagingBucketName(&amp;#34;BUCKET&amp;#34;)
+.withStorageIntegrationName(&amp;#34;STORAGE INTEGRATION NAME&amp;#34;)
+.withUserDataMapper(mapper)
+)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
-Replace type with the data type of the PCollection object to write; for example, SnowflakeIO.&lt;String> for an input PCollection of Strings.&lt;/p>
+Replace type with the data type of the &lt;code>PCollection&lt;/code> object to write; for example, &lt;code>SnowflakeIO.&amp;lt;String&amp;gt;&lt;/code> for an input &lt;code>PCollection&lt;/code> of Strings.&lt;/p>
 &lt;p>All the below parameters are required:&lt;/p>
 &lt;ul>
 &lt;li>
 &lt;p>&lt;code>.withDataSourceConfiguration()&lt;/code> Accepts a DatasourceConfiguration object.&lt;/p>
 &lt;/li>
 &lt;li>
-&lt;p>&lt;code>.toTable()&lt;/code> Accepts the target Snowflake table name.&lt;/p>
+&lt;p>&lt;code>.to()&lt;/code> Accepts the target Snowflake table name.&lt;/p>
 &lt;/li>
 &lt;li>
 &lt;p>&lt;code>.withStagingBucketName()&lt;/code> Accepts a cloud bucket path ended with slash.
@@ -2305,7 +2396,7 @@ Replace type with the data type of the PCollection object to write; for example,
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>CREATE OR REPLACE STORAGE INTEGRATION test_integration
+&lt;pre>&lt;code>CREATE OR REPLACE STORAGE INTEGRATION &amp;#34;test_integration&amp;#34;
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = GCS
 ENABLED = TRUE
@@ -2317,7 +2408,7 @@ STORAGE_ALLOWED_LOCATIONS = (&amp;#39;gcs://bucket/&amp;#39;);&lt;/code>&lt;/pre
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>CREATE STORAGE INTEGRATION test_integration
+&lt;pre>&lt;code>CREATE STORAGE INTEGRATION &amp;#34;test_integration&amp;#34;
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = S3
 ENABLED = TRUE
@@ -2331,7 +2422,7 @@ Then:
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>.withStorageIntegrationName(test_integration)&lt;/code>&lt;/pre>
+&lt;pre>&lt;code>.withStorageIntegrationName(&amp;#34;test_integration&amp;#34;)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2341,7 +2432,7 @@ Then:
 &lt;/li>
 &lt;/ul>
 &lt;p>&lt;strong>Note&lt;/strong>:
-SnowflakeIO uses COPY statements behind the scenes to write (using &lt;a href="https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html">COPY to table&lt;/a>). StagingBucketName will be used to save CSV files which will end up in Snowflake. Those CSV files will be saved under the “stagingBucketName” path.&lt;/p>
+SnowflakeIO uses &lt;code>COPY&lt;/code> statements behind the scenes to write (using &lt;a href="https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html">COPY to table&lt;/a>). StagingBucketName will be used to save CSV files which will end up in Snowflake. Those CSV files will be saved under the “stagingBucketName” path.&lt;/p>
 &lt;p>&lt;strong>Optional&lt;/strong> for batching:&lt;/p>
 &lt;ul>
 &lt;li>&lt;code>.withQuotationMark()&lt;/code>
@@ -2352,24 +2443,24 @@ SnowflakeIO uses COPY statements behind the scenes to write (using &lt;a href="h
 &lt;/ul>
 &lt;/li>
 &lt;/ul>
-&lt;h3 id="streaming-write--from-unbounded-source">Streaming write (from unbounded source)&lt;/h3>
-&lt;p>It is required to create a &lt;a href="https://docs.snowflake.com/en/user-guide/data-load-snowpipe.html">SnowPipe&lt;/a> in the Snowflake console. SnowPipe should use the same integration and the same bucket as specified by .withStagingBucketName and .withStorageIntegrationName methods. The write operation might look as follows:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;h3 id="streaming-write-from-unbounded-source">Streaming write (from unbounded source)&lt;/h3>
+&lt;p>It is required to create a &lt;a href="https://docs.snowflake.com/en/user-guide/data-load-snowpipe.html">SnowPipe&lt;/a> in the Snowflake console. SnowPipe should use the same integration and the same bucket as specified by &lt;code>.withStagingBucketName&lt;/code> and &lt;code>.withStorageIntegrationName&lt;/code> methods. The write operation might look as follows:
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apply&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&amp;lt;&lt;/span>&lt;span class="n">type&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStagingBucketName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;BUCKET&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStorageIntegrationName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;STORAGE INTEGRATION NAME&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDataSourceConfiguration&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">dc&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withUserDataMapper&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">mapper&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withSnowPipe&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;MY_SNOW_PIPE&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withFlushTimeLimit&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">Duration&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">millis&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">time&lt;/span>&lt;span class="o">))&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withFlushRowLimit&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">rowsNumber&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withShardsNumber&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">shardsNumber&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>data.apply(
+SnowflakeIO.&amp;lt;type&amp;gt;write()
+.withStagingBucketName(&amp;#34;BUCKET&amp;#34;)
+.withStorageIntegrationName(&amp;#34;STORAGE INTEGRATION NAME&amp;#34;)
+.withDataSourceConfiguration(dc)
+.withUserDataMapper(mapper)
+.withSnowPipe(&amp;#34;MY_SNOW_PIPE&amp;#34;)
+.withFlushTimeLimit(Duration.millis(time))
+.withFlushRowLimit(rowsNumber)
+.withShardsNumber(shardsNumber)
+)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2383,10 +2474,10 @@ SnowflakeIO uses COPY statements behind the scenes to write (using &lt;a href="h
 &lt;/ul>
 &lt;/li>
 &lt;li>
-&lt;p>&lt;code>.toTable()&lt;/code>&lt;/p>
+&lt;p>&lt;code>.to()&lt;/code>&lt;/p>
 &lt;ul>
 &lt;li>Accepts the target Snowflake table name.&lt;/li>
-&lt;li>Example: &lt;code>.toTable(&amp;quot;MY_TABLE&amp;quot;)&lt;/code>&lt;/li>
+&lt;li>Example: &lt;code>.to(&amp;quot;MY_TABLE&amp;quot;)&lt;/code>&lt;/li>
 &lt;/ul>
 &lt;/li>
 &lt;li>
@@ -2406,7 +2497,7 @@ SnowflakeIO uses COPY statements behind the scenes to write (using &lt;a href="h
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>CREATE OR REPLACE STORAGE INTEGRATION test_integration
+&lt;pre>&lt;code>CREATE OR REPLACE STORAGE INTEGRATION &amp;#34;test_integration&amp;#34;
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = GCS
 ENABLED = TRUE
@@ -2418,7 +2509,7 @@ STORAGE_ALLOWED_LOCATIONS = (&amp;#39;gcs://bucket/&amp;#39;);&lt;/code>&lt;/pre
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>CREATE STORAGE INTEGRATION test_integration
+&lt;pre>&lt;code>CREATE STORAGE INTEGRATION &amp;#34;test_integration&amp;#34;
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = S3
 ENABLED = TRUE
@@ -2432,7 +2523,7 @@ Then:
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>.withStorageIntegrationName(test_integration)&lt;/code>&lt;/pre>
+&lt;pre>&lt;code>.withStorageIntegrationName(&amp;#34;test_integration&amp;#34;)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/li>
@@ -2449,7 +2540,7 @@ Example:
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>CREATE OR REPLACE PIPE test_database.public.test_gcs_pipe
+&lt;pre>&lt;code>CREATE OR REPLACE PIPE &amp;#34;test_database&amp;#34;.&amp;#34;public&amp;#34;.&amp;#34;test_gcs_pipe&amp;#34;
 AS COPY INTO stream_table from @streamstage;&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
@@ -2462,7 +2553,7 @@ AS COPY INTO stream_table from @streamstage;&lt;/code>&lt;/pre>
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;pre>&lt;code>.withSnowPipe(test_gcs_pipe)&lt;/code>&lt;/pre>
+&lt;pre>&lt;code>.withSnowPipe(&amp;#34;test_gcs_pipe&amp;#34;)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2529,21 +2620,25 @@ SnowflakeIO is not going to delete created CSV files from path under the “stag
 &lt;/ul>
 &lt;/li>
 &lt;/ul>
-&lt;p>&lt;strong>Important notice&lt;/strong>: Streaming accepts only &lt;strong>key pair authentication&lt;/strong>.&lt;/p>
+&lt;p>&lt;strong>Important noticse&lt;/strong>:&lt;/p>
+&lt;ol>
+&lt;li>Streaming accepts only &lt;strong>key pair authentication&lt;/strong>. For details, see: &lt;a href="https://issues.apache.org/jira/browse/BEAM-13817">BEAM-13817&lt;/a>.&lt;/li>
+&lt;li>The role parameter configured in &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code> object is ignored for streaming writing. For details, see: &lt;a href="https://issues.apache.org/jira/browse/BEAM-13819">BEAM-13819&lt;/a>&lt;/li>
+&lt;/ol>
 &lt;h4 id="flush-time-duration--number-of-rows">Flush time: duration &amp;amp; number of rows&lt;/h4>
 &lt;p>Duration: streaming write will write periodically files on stage according to time duration specified in flush time limit (for example. every 1 minute).&lt;/p>
 &lt;p>Number of rows: files staged for write will have number of rows specified in flush row limit unless the flush time limit will be reached (for example if the limit is 1000 rows and buffor collected 99 rows and the 1 minute flush time passes, the rows will be sent to SnowPipe for insertion).&lt;/p>
 &lt;p>Size of staged files will depend on the rows size and used compression (GZIP).&lt;/p>
 &lt;h3 id="userdatamapper-function">UserDataMapper function&lt;/h3>
-&lt;p>The UserDataMapper function is required to map data from a PCollection to an array of String values before the &lt;code>write()&lt;/code> operation saves the data to temporary .csv files. For example:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;p>The &lt;code>UserDataMapper&lt;/code> function is required to map data from a &lt;code>PCollection&lt;/code> to an array of String values before the &lt;code>write()&lt;/code> operation saves the data to temporary &lt;code>.csv&lt;/code> files. For example:
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="kd">public&lt;/span> &lt;span class="kd">static&lt;/span> &lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">UserDataMapper&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Long&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="nf">getCsvMapper&lt;/span>&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
-&lt;span class="k">return&lt;/span> &lt;span class="o">(&lt;/span>&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">UserDataMapper&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Long&lt;/span>&lt;span class="o">&amp;gt;)&lt;/span> &lt;span class="n">recordLine&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">String&lt;/span>&lt;span class="o">[]&lt;/span> &lt;span class="o">{&lt; [...]
-&lt;span class="o">}&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>public static SnowflakeIO.UserDataMapper&amp;lt;Long&amp;gt; getCsvMapper() {
+return (SnowflakeIO.UserDataMapper&amp;lt;Long&amp;gt;) recordLine -&amp;gt; new String[] {recordLine.toString()};
+}&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2551,21 +2646,21 @@ SnowflakeIO is not going to delete created CSV files from path under the “stag
 &lt;h4 id="transformation-query">Transformation query&lt;/h4>
 &lt;p>The &lt;code>.withQueryTransformation()&lt;/code> option for the &lt;code>write()&lt;/code> operation accepts a SQL query as a String value, which will be performed while transfering data staged in CSV files directly to the target Snowflake table. For information about the transformation SQL syntax, see the &lt;a href="https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html#transformation-parameters">Snowflake Documentation&lt;/a>.&lt;/p>
 &lt;p>Usage:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">String&lt;/span> &lt;span class="n">query&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;SELECT t.$1 from YOUR_TABLE;&amp;#34;&lt;/span>&lt;span class="o">;&lt;/span>
-&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apply&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&amp;lt;~&amp;gt;&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDataSourceConfiguration&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">dc&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">toTable&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;MY_TABLE&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStagingBucketName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;BUCKET&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStorageIntegrationName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;STORAGE INTEGRATION NAME&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withUserDataMapper&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">mapper&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withQueryTransformation&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">query&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>String query = &amp;#34;SELECT t.$1 from YOUR_TABLE;&amp;#34;;
+data.apply(
+SnowflakeIO.&amp;lt;~&amp;gt;write()
+.withDataSourceConfiguration(dc)
+.to(&amp;#34;MY_TABLE&amp;#34;)
+.withStagingBucketName(&amp;#34;BUCKET&amp;#34;)
+.withStorageIntegrationName(&amp;#34;STORAGE INTEGRATION NAME&amp;#34;)
+.withUserDataMapper(mapper)
+.withQueryTransformation(query)
+)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2573,30 +2668,30 @@ SnowflakeIO is not going to delete created CSV files from path under the “stag
 &lt;p>Define the write behaviour based on the table where data will be written to by specifying the &lt;code>.withWriteDisposition(...)&lt;/code> option for the &lt;code>write()&lt;/code> operation. The following values are supported:&lt;/p>
 &lt;ul>
 &lt;li>
-&lt;p>APPEND - Default behaviour. Written data is added to the existing rows in the table,&lt;/p>
+&lt;p>&lt;code>APPEND&lt;/code> - Default behaviour. Written data is added to the existing rows in the table,&lt;/p>
 &lt;/li>
 &lt;li>
-&lt;p>EMPTY - The target table must be empty; otherwise, the write operation fails,&lt;/p>
+&lt;p>&lt;code>EMPTY&lt;/code> - The target table must be empty; otherwise, the write operation fails,&lt;/p>
 &lt;/li>
 &lt;li>
-&lt;p>TRUNCATE - The write operation deletes all rows from the target table before writing to it.&lt;/p>
+&lt;p>&lt;code>TRUNCATE&lt;/code> - The write operation deletes all rows from the target table before writing to it.&lt;/p>
 &lt;/li>
 &lt;/ul>
 &lt;p>Example of usage:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apply&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&amp;lt;~&amp;gt;&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDataSourceConfiguration&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">dc&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">toTable&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;MY_TABLE&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStagingBucketName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;BUCKET&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStorageIntegrationName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;STORAGE INTEGRATION NAME&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withUserDataMapper&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">mapper&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withWriteDisposition&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">TRUNCATE&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>data.apply(
+SnowflakeIO.&amp;lt;~&amp;gt;write()
+.withDataSourceConfiguration(dc)
+.to(&amp;#34;MY_TABLE&amp;#34;)
+.withStagingBucketName(&amp;#34;BUCKET&amp;#34;)
+.withStorageIntegrationName(&amp;#34;STORAGE INTEGRATION NAME&amp;#34;)
+.withUserDataMapper(mapper)
+.withWriteDisposition(TRUNCATE)
+)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2604,53 +2699,53 @@ SnowflakeIO is not going to delete created CSV files from path under the “stag
 &lt;p>The &lt;code>.withCreateDisposition()&lt;/code> option defines the behavior of the write operation if the target table does not exist . The following values are supported:&lt;/p>
 &lt;ul>
 &lt;li>
-&lt;p>CREATE_IF_NEEDED - default behaviour. The write operation checks whether the specified target table exists; if it does not, the write operation attempts to create the table Specify the schema for the target table using the &lt;code>.withTableSchema()&lt;/code> option.&lt;/p>
+&lt;p>&lt;code>CREATE_IF_NEEDED&lt;/code> - default behaviour. The write operation checks whether the specified target table exists; if it does not, the write operation attempts to create the table Specify the schema for the target table using the &lt;code>.withTableSchema()&lt;/code> option.&lt;/p>
 &lt;/li>
 &lt;li>
-&lt;p>CREATE_NEVER - The write operation fails if the target table does not exist.&lt;/p>
+&lt;p>&lt;code>CREATE_NEVER&lt;/code> - The write operation fails if the target table does not exist.&lt;/p>
 &lt;/li>
 &lt;/ul>
 &lt;p>Usage:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apply&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&amp;lt;~&amp;gt;&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDataSourceConfiguration&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">dc&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">toTable&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;MY_TABLE&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStagingBucketName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;BUCKET&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStorageIntegrationName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;STORAGE INTEGRATION NAME&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withUserDataMapper&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">mapper&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withCreateDisposition&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">CREATE_NEVER&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>data.apply(
+SnowflakeIO.&amp;lt;~&amp;gt;write()
+.withDataSourceConfiguration(dc)
+.to(&amp;#34;MY_TABLE&amp;#34;)
+.withStagingBucketName(&amp;#34;BUCKET&amp;#34;)
+.withStorageIntegrationName(&amp;#34;STORAGE INTEGRATION NAME&amp;#34;)
+.withUserDataMapper(mapper)
+.withCreateDisposition(CREATE_NEVER)
+)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
 &lt;h4 id="table-schema-disposition">Table schema disposition&lt;/h4>
-&lt;p>When the &lt;code>.withCreateDisposition()&lt;/code> .option is set to &lt;code>CREATE_IF_NEEDED&lt;/code>, the &lt;code>.withTableSchema()&lt;/code> option enables specifying the schema for the created target table.
-A table schema is a list of &lt;code>SFColumn&lt;/code> objects with name and type corresponding to column type for each column in the table.&lt;/p>
+&lt;p>When the &lt;code>.withCreateDisposition()&lt;/code> option is set to &lt;code>CREATE_IF_NEEDED&lt;/code>, the &lt;code>.withTableSchema()&lt;/code> option enables specifying the schema for the created target table.
+A table schema is a list of &lt;code>SnowflakeColumn&lt;/code> objects with name and type corresponding to column type for each column in the table.&lt;/p>
 &lt;p>Usage:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">SFTableSchema&lt;/span> &lt;span class="n">tableSchema&lt;/span> &lt;span class="o">=&lt;/span>
-&lt;span class="k">new&lt;/span> &lt;span class="n">SFTableSchema&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SFColumn&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">of&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;my_date&amp;#34;&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">SFDate&lt;/span>&lt;span class="o">(),&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="o">),&lt;/span>
-&lt;span class="k">new&lt;/span> &lt;span class="n">SFColumn&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;id&amp;#34;&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">SFNumber&lt;/span>&lt;span class="o">()),&lt;/span>
-&lt;span class="n">SFColumn&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">of&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">SFText&lt;/span>&lt;span class="o">(),&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="o">));&lt;/span>
-&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apply&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&amp;lt;~&amp;gt;&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDataSourceConfiguration&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">dc&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">toTable&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;MY_TABLE&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStagingBucketName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;BUCKET&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStorageIntegrationName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;STORAGE INTEGRATION NAME&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withUserDataMapper&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">mapper&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withTableSchema&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">tableSchema&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>SnowflakeTableSchema tableSchema =
+new SnowflakeTableSchema(
+SnowflakeColumn.of(&amp;#34;my_date&amp;#34;, new SnowflakeDate(), true),
+new SnowflakeColumn(&amp;#34;id&amp;#34;, new SnowflakeNumber()),
+SnowflakeColumn.of(&amp;#34;name&amp;#34;, new SnowflakeText(), true));
+data.apply(
+SnowflakeIO.&amp;lt;~&amp;gt;write()
+.withDataSourceConfiguration(dc)
+.to(&amp;#34;MY_TABLE&amp;#34;)
+.withStagingBucketName(&amp;#34;BUCKET&amp;#34;)
+.withStorageIntegrationName(&amp;#34;STORAGE INTEGRATION NAME&amp;#34;)
+.withUserDataMapper(mapper)
+.withTableSchema(tableSchema)
+)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2658,20 +2753,20 @@ A table schema is a list of &lt;code>SFColumn&lt;/code> objects with name and ty
 &lt;p>One of the functions of SnowflakeIO is reading Snowflake tables - either full tables via table name or custom data via query. Output of the read transform is a &lt;a href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/values/PCollection.html">PCollection&lt;/a> of user-defined data type.&lt;/p>
 &lt;h3 id="general-usage-1">General usage&lt;/h3>
 &lt;p>The basic &lt;code>.read()&lt;/code> operation usage:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">PCollection&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">USER_DATA_TYPE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">items&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pipeline&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apply&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&amp;lt;&lt;/span>&lt;span class="n">USER_DATA_TYPE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="o">()&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withDataSourceConfiguration&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">dc&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">fromTable&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;MY_TABLE&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span> &lt;span class="c1">// or .fromQuery(&amp;#34;QUERY&amp;#34;)
-&lt;/span>&lt;span class="c1">&lt;/span> &lt;span class="o">.&lt;/span>&lt;span class="na">withStagingBucketName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;BUCKET&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withStorageIntegrationName&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;STORAGE INTEGRATION NAME&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withCsvMapper&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">mapper&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">withCoder&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">coder&lt;/span>&lt;span class="o">));&lt;/span>
-&lt;span class="o">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>PCollection&amp;lt;USER_DATA_TYPE&amp;gt; items = pipeline.apply(
+SnowflakeIO.&amp;lt;USER_DATA_TYPE&amp;gt;read()
+.withDataSourceConfiguration(dc)
+.fromTable(&amp;#34;MY_TABLE&amp;#34;) // or .fromQuery(&amp;#34;QUERY&amp;#34;)
+.withStagingBucketName(&amp;#34;BUCKET&amp;#34;)
+.withStorageIntegrationName(&amp;#34;STORAGE INTEGRATION NAME&amp;#34;)
+.withCsvMapper(mapper)
+.withCoder(coder));
+)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 Where all below parameters are required:&lt;/p>
@@ -2749,26 +2844,26 @@ Then:
 &lt;/li>
 &lt;/ul>
 &lt;p>&lt;strong>Note&lt;/strong>:
-SnowflakeIO uses COPY statements behind the scenes to read (using &lt;a href="https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-location.html">COPY to location&lt;/a>) files staged in cloud storage.StagingBucketName will be used as a temporary location for storing CSV files. Those temporary directories will be named &lt;code>sf_copy_csv_DATE_TIME_RANDOMSUFFIX&lt;/code> and they will be removed automatically once Read operation finishes.&lt;/p>
+SnowflakeIO uses &lt;code>COPY&lt;/code> statements behind the scenes to read (using &lt;a href="https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-location.html">COPY to location&lt;/a>) files staged in cloud storage.StagingBucketName will be used as a temporary location for storing CSV files. Those temporary directories will be named &lt;code>sf_copy_csv_DATE_TIME_RANDOMSUFFIX&lt;/code> and they will be removed automatically once Read operation finishes.&lt;/p>
 &lt;h3 id="csvmapper">CSVMapper&lt;/h3>
 &lt;p>SnowflakeIO uses a &lt;a href="https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-location.html">COPY INTO &lt;location>&lt;/a> statement to move data from a Snowflake table to GCS/S3 as CSV files. These files are then downloaded via &lt;a href="https://beam.apache.org/releases/javadoc/current/index.html?org/apache/beam/sdk/io/FileIO.html">FileIO&lt;/a> and processed line by line. Each line is split into an array of Strings using the &lt;a href="http://opencsv.sourcefor [...]
 &lt;p>The CSVMapper’s job is to give the user the possibility to convert the array of Strings to a user-defined type, ie. GenericRecord for Avro or Parquet files, or custom POJO.&lt;/p>
 &lt;p>Example implementation of CsvMapper for GenericRecord:
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="kd">static&lt;/span> &lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">CsvMapper&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">GenericRecord&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="nf">getCsvMapper&lt;/span>&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
-&lt;span class="k">return&lt;/span> &lt;span class="o">(&lt;/span>&lt;span class="n">SnowflakeIO&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">CsvMapper&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">GenericRecord&lt;/span>&lt;span class="o">&amp;gt;)&lt;/span>
-&lt;span class="n">parts&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="o">{&lt;/span>
-&lt;span class="k">return&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">GenericRecordBuilder&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">PARQUET_SCHEMA&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">set&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;ID&amp;#34;&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="n">Long&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">valueOf&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">parts&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">0&lt;/span>&lt;span class="o">]))&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">set&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;NAME&amp;#34;&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="n">parts&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">1&lt;/span>&lt;span class="o">])&lt;/span>
-&lt;span class="o">[...]&lt;/span>
-&lt;span class="o">.&lt;/span>&lt;span class="na">build&lt;/span>&lt;span class="o">();&lt;/span>
-&lt;span class="o">};&lt;/span>
-&lt;span class="o">}&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>static SnowflakeIO.CsvMapper&amp;lt;GenericRecord&amp;gt; getCsvMapper() {
+return (SnowflakeIO.CsvMapper&amp;lt;GenericRecord&amp;gt;)
+parts -&amp;gt; {
+return new GenericRecordBuilder(PARQUET_SCHEMA)
+.set(&amp;#34;ID&amp;#34;, Long.valueOf(parts[0]))
+.set(&amp;#34;NAME&amp;#34;, parts[1])
+[...]
+.build();
+};
+}&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2779,47 +2874,47 @@ SnowflakeIO uses COPY statements behind the scenes to read (using &lt;a href="ht
 with &lt;code>AwsAccessKey&lt;/code> and &lt;code>AwsSecretKey&lt;/code> options. Example:&lt;/li>
 &lt;/ol>
 &lt;p>
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="kd">public&lt;/span> &lt;span class="kd">interface&lt;/span> &lt;span class="nc">AwsPipelineOptions&lt;/span> &lt;span class="kd">extends&lt;/span> &lt;span class="n">SnowflakePipelineOptions&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="n">S3Options&lt;/span> &lt;span class="o">{&lt;/span>
-&lt;span class="nd">@Description&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;AWS Access Key&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="nd">@Default.String&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;access_key&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="n">String&lt;/span> &lt;span class="nf">getAwsAccessKey&lt;/span>&lt;span class="o">();&lt;/span>
-&lt;span class="kt">void&lt;/span> &lt;span class="nf">setAwsAccessKey&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">String&lt;/span> &lt;span class="n">awsAccessKey&lt;/span>&lt;span class="o">);&lt;/span>
-&lt;span class="nd">@Description&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;AWS secret key&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="nd">@Default.String&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s">&amp;#34;secret_key&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
-&lt;span class="n">String&lt;/span> &lt;span class="nf">getAwsSecretKey&lt;/span>&lt;span class="o">();&lt;/span>
-&lt;span class="kt">void&lt;/span> &lt;span class="nf">setAwsSecretKey&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">String&lt;/span> &lt;span class="n">awsSecretKey&lt;/span>&lt;span class="o">);&lt;/span>
-&lt;span class="o">}&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>public interface AwsPipelineOptions extends SnowflakePipelineOptions, S3Options {
+@Description(&amp;#34;AWS Access Key&amp;#34;)
+@Default.String(&amp;#34;access_key&amp;#34;)
+String getAwsAccessKey();
+void setAwsAccessKey(String awsAccessKey);
+@Description(&amp;#34;AWS secret key&amp;#34;)
+@Default.String(&amp;#34;secret_key&amp;#34;)
+String getAwsSecretKey();
+void setAwsSecretKey(String awsSecretKey);
+}&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 2. Set &lt;code>AwsCredentialsProvider&lt;/code> option by using &lt;code>AwsAccessKey&lt;/code> and &lt;code>AwsSecretKey&lt;/code> options.&lt;/p>
 &lt;p>
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">setAwsCredentialsProvider&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="k">new&lt;/span> &lt;span class="n">AWSStaticCredentialsProvider&lt;/span>&lt;span class="o">(&lt;/span>
-&lt;span class="k">new&lt;/span> &lt;span class="n">BasicAWSCredentials&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">getAwsAccessKey&lt;/span>&lt;span class="o">(),&lt;/span> &lt;span class="n">options&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">getAwsSecretKey&lt;/span>&lt;span class="o">())&lt;/span>
-&lt;span class="o">)&lt;/span>
-&lt;span class="o">);&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>options.setAwsCredentialsProvider(
+new AWSStaticCredentialsProvider(
+new BasicAWSCredentials(options.getAwsAccessKey(), options.getAwsSecretKey())
+)
+);&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 3. Create pipeline&lt;/p>
-&lt;div class='language-java snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="n">Pipeline&lt;/span> &lt;span class="n">p&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Pipeline&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">create&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">);&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>Pipeline p = Pipeline.create(options);&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
-&lt;p>note: remember to set &lt;code>awsRegion&lt;/code> from &lt;a href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/aws/options/S3Options.html">S3Options&lt;/a>.&lt;/p>
+&lt;p>&lt;strong>Note&lt;/strong>: Remember to set &lt;code>awsRegion&lt;/code> from &lt;a href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/aws/options/S3Options.html">S3Options&lt;/a>.&lt;/p>
 &lt;h2 id="using-snowflakeio-in-python-sdk">Using SnowflakeIO in Python SDK&lt;/h2>
 &lt;h3 id="intro">Intro&lt;/h3>
 &lt;p>Snowflake cross-language implementation is supporting both reading and writing operations for Python programming language, thanks to
@@ -2827,19 +2922,25 @@ cross-language which is part of &lt;a href="https://beam.apache.org/roadmap/port
 across the Beam ecosystem. From a developer perspective it means the possibility of combining transforms written in different languages(Java/Python/Go).&lt;/p>
 &lt;p>For more information about cross-language please see &lt;a href="https://beam.apache.org/roadmap/connectors-multi-sdk/">multi sdk efforts&lt;/a>
 and &lt;a href="https://beam.apache.org/roadmap/connectors-multi-sdk/#cross-language-transforms-api-and-expansion-service">Cross-language transforms API and expansion service&lt;/a> articles.&lt;/p>
+&lt;p>Additional resources:&lt;/p>
+&lt;ul>
+&lt;li>&lt;a href="https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/snowflake.py">SnowflakeIO source code&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.snowflake.html">SnowflakeIO Pydoc&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://docs.snowflake.com/en">Snowflake documentation&lt;/a>&lt;/li>
+&lt;/ul>
 &lt;h3 id="reading-from-snowflake-1">Reading from Snowflake&lt;/h3>
 &lt;p>One of the functions of SnowflakeIO is reading Snowflake tables - either full tables via table name or custom data via query. Output of the read transform is a &lt;a href="https://beam.apache.org/releases/pydoc/current/apache_beam.pvalue.html#apache_beam.pvalue.PCollection">PCollection&lt;/a> of user-defined data type.&lt;/p>
 &lt;h4 id="general-usage-2">General usage&lt;/h4>
-&lt;div class='language-py snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-py" data-lang="py">&lt;span class="n">OPTIONS&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;--runner=FlinkRunner&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
-&lt;span class="k">with&lt;/span> &lt;span class="n">TestPipeline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">PipelineOptions&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">OPTIONS&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">:&lt;/span>
-&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>
-&lt;span class="o">|&lt;/span> &lt;span class="n">ReadFromSnowflake&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">...&lt;/span>&lt;span class="p">)&lt;/span>
-&lt;span class="o">|&lt;/span> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">FURTHER&lt;/span> &lt;span class="n">TRANSFORMS&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">)&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>OPTIONS = [&amp;#34;--runner=FlinkRunner&amp;#34;]
+with TestPipeline(options=PipelineOptions(OPTIONS)) as p:
+(p
+| ReadFromSnowflake(...)
+| &amp;lt;FURTHER TRANSFORMS&amp;gt;)&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;h4 id="required-parameters">Required parameters&lt;/h4>
@@ -2862,13 +2963,13 @@ and &lt;a href="https://beam.apache.org/roadmap/connectors-multi-sdk/#cross-lang
 &lt;li>
 &lt;p>&lt;code>csv_mapper&lt;/code> Specifies a function which must translate user-defined object to array of strings. SnowflakeIO uses a &lt;a href="https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-location.html">COPY INTO &lt;location>&lt;/a> statement to move data from a Snowflake table to GCS/S3 as CSV files. These files are then downloaded via &lt;a href="https://beam.apache.org/releases/javadoc/current/index.html?org/apache/beam/sdk/io/FileIO.html">FileIO&lt;/a> and p [...]
 Example:
-&lt;div class='language-py snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-py" data-lang="py">&lt;span class="k">def&lt;/span> &lt;span class="nf">csv_mapper&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">strings_array&lt;/span>&lt;span class="p">):&lt;/span>
-&lt;span class="k">return&lt;/span> &lt;span class="n">User&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">strings_array&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">strings_array&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])))&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>def csv_mapper(strings_array):
+return User(strings_array[0], int(strings_array[1])))&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -2908,36 +3009,36 @@ Example:
 &lt;h3 id="writing-to-snowflake">Writing to Snowflake&lt;/h3>
 &lt;p>One of the functions of SnowflakeIO is writing to Snowflake tables. This transformation enables you to finish the Beam pipeline with an output operation that sends the user&amp;rsquo;s &lt;a href="https://beam.apache.org/releases/pydoc/current/apache_beam.pvalue.html#apache_beam.pvalue.PCollection">PCollection&lt;/a> to your Snowflake database.&lt;/p>
 &lt;h4 id="general-usage-3">General usage&lt;/h4>
-&lt;div class='language-py snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-py" data-lang="py">&lt;span class="n">OPTIONS&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;--runner=FlinkRunner&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
-&lt;span class="k">with&lt;/span> &lt;span class="n">TestPipeline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">options&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">PipelineOptions&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">OPTIONS&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">:&lt;/span>
-&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>
-&lt;span class="o">|&lt;/span> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">SOURCE&lt;/span> &lt;span class="n">OF&lt;/span> &lt;span class="n">DATA&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
-&lt;span class="o">|&lt;/span> &lt;span class="n">WriteToSnowflake&lt;/span>&lt;span class="p">(&lt;/span>
-&lt;span class="n">server_name&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">SERVER&lt;/span> &lt;span class="n">NAME&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">username&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">USERNAME&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">password&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">PASSWORD&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">o_auth_token&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">OAUTH&lt;/span> &lt;span class="n">TOKEN&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">private_key_path&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">PATH&lt;/span> &lt;span class="n">TO&lt;/span> &lt;span class="n">P8&lt;/span> &lt;span class="n">FILE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">raw_private_key&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">PRIVATE_KEY&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
-&lt;span class="n">private_key_passphrase&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">PASSWORD&lt;/span> &lt;span class="n">FOR&lt;/span> &lt;span class="n">KEY&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">schema&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">SCHEMA&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">database&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">DATABASE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">staging_bucket_name&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">GCS&lt;/span> &lt;span class="n">OR&lt;/span> &lt;span class="n">S3&lt;/span> &lt;span class="n">BUCKET&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">storage_integration_name&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">STORAGE&lt;/span> &lt;span class="n">INTEGRATION&lt;/span> &lt;span class="n">NAME&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">create_disposition&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">CREATE&lt;/span> &lt;span class="n">DISPOSITION&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">write_disposition&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">WRITE&lt;/span> &lt;span class="n">DISPOSITION&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">table_schema&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">TABLE&lt;/span> &lt;span class="n">SCHEMA&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">user_data_mapper&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">USER&lt;/span> &lt;span class="n">DATA&lt;/span> &lt;span class="n">MAPPER&lt;/span> &lt;span class="n">FUNCTION&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">table&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">TABLE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">query&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">IF&lt;/span> &lt;span class="n">NOT&lt;/span> &lt;span class="n">TABLE&lt;/span> &lt;span class="n">THEN&lt;/span> &lt;span class="n">QUERY&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">role&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">ROLE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">warehouse&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">SNOWFLAKE&lt;/span> &lt;span class="n">WAREHOUSE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">expansion_service&lt;/span>&lt;span class="o">=&amp;lt;&lt;/span>&lt;span class="n">EXPANSION&lt;/span> &lt;span class="n">SERVICE&lt;/span> &lt;span class="n">ADDRESS&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">))&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>OPTIONS = [&amp;#34;--runner=FlinkRunner&amp;#34;]
+with TestPipeline(options=PipelineOptions(OPTIONS)) as p:
+(p
+| &amp;lt;SOURCE OF DATA&amp;gt;
+| WriteToSnowflake(
+server_name=&amp;lt;SNOWFLAKE SERVER NAME&amp;gt;,
+username=&amp;lt;SNOWFLAKE USERNAME&amp;gt;,
+password=&amp;lt;SNOWFLAKE PASSWORD&amp;gt;,
+o_auth_token=&amp;lt;OAUTH TOKEN&amp;gt;,
+private_key_path=&amp;lt;PATH TO P8 FILE&amp;gt;,
+raw_private_key=&amp;lt;PRIVATE_KEY&amp;gt;
+private_key_passphrase=&amp;lt;PASSWORD FOR KEY&amp;gt;,
+schema=&amp;lt;SNOWFLAKE SCHEMA&amp;gt;,
+database=&amp;lt;SNOWFLAKE DATABASE&amp;gt;,
+staging_bucket_name=&amp;lt;GCS OR S3 BUCKET&amp;gt;,
+storage_integration_name=&amp;lt;SNOWFLAKE STORAGE INTEGRATION NAME&amp;gt;,
+create_disposition=&amp;lt;CREATE DISPOSITION&amp;gt;,
+write_disposition=&amp;lt;WRITE DISPOSITION&amp;gt;,
+table_schema=&amp;lt;SNOWFLAKE TABLE SCHEMA&amp;gt;,
+user_data_mapper=&amp;lt;USER DATA MAPPER FUNCTION&amp;gt;,
+table=&amp;lt;SNOWFLAKE TABLE&amp;gt;,
+query=&amp;lt;IF NOT TABLE THEN QUERY&amp;gt;,
+role=&amp;lt;SNOWFLAKE ROLE&amp;gt;,
+warehouse=&amp;lt;SNOWFLAKE WAREHOUSE&amp;gt;,
+expansion_service=&amp;lt;EXPANSION SERVICE ADDRESS&amp;gt;))&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;h4 id="required-parameters-1">Required parameters&lt;/h4>
@@ -2960,13 +3061,13 @@ Example:
 &lt;li>
 &lt;p>&lt;code>user_data_mapper&lt;/code> Specifies a function which maps data from a PCollection to an array of String values before the write operation saves the data to temporary .csv files.
 Example:
-&lt;div class='language-py snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-py" data-lang="py">&lt;span class="k">def&lt;/span> &lt;span class="nf">user_data_mapper&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">user&lt;/span>&lt;span class="p">):&lt;/span>
-&lt;span class="k">return&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">user&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">user&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">age&lt;/span>&lt;span class="p">)]&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>def user_data_mapper(user):
+return [user.name, str(user.age)]&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 &lt;/p>
@@ -3002,33 +3103,33 @@ Example:
 &lt;li>
 &lt;p>&lt;code>create_disposition&lt;/code> Defines the behaviour of the write operation if the target table does not exist. The following values are supported:&lt;/p>
 &lt;ul>
-&lt;li>CREATE_IF_NEEDED - default behaviour. The write operation checks whether the specified target table exists; if it does not, the write operation attempts to create the table Specify the schema for the target table using the table_schema parameter.&lt;/li>
-&lt;li>CREATE_NEVER - The write operation fails if the target table does not exist.&lt;/li>
+&lt;li>&lt;code>CREATE_IF_NEEDED&lt;/code> - default behaviour. The write operation checks whether the specified target table exists; if it does not, the write operation attempts to create the table Specify the schema for the target table using the table_schema parameter.&lt;/li>
+&lt;li>&lt;code>CREATE_NEVER&lt;/code> - The write operation fails if the target table does not exist.&lt;/li>
 &lt;/ul>
 &lt;/li>
 &lt;li>
 &lt;p>&lt;code>write_disposition&lt;/code> Defines the write behaviour based on the table where data will be written to. The following values are supported:&lt;/p>
 &lt;ul>
-&lt;li>APPEND - Default behaviour. Written data is added to the existing rows in the table,&lt;/li>
-&lt;li>EMPTY - The target table must be empty; otherwise, the write operation fails,&lt;/li>
-&lt;li>TRUNCATE - The write operation deletes all rows from the target table before writing to it.&lt;/li>
+&lt;li>&lt;code>APPEND&lt;/code> - Default behaviour. Written data is added to the existing rows in the table,&lt;/li>
+&lt;li>&lt;code>EMPTY&lt;/code> - The target table must be empty; otherwise, the write operation fails,&lt;/li>
+&lt;li>&lt;code>TRUNCATE&lt;/code> - The write operation deletes all rows from the target table before writing to it.&lt;/li>
 &lt;/ul>
 &lt;/li>
 &lt;li>
 &lt;p>&lt;code>table_schema&lt;/code> When the &lt;code>create_disposition&lt;/code> parameter is set to CREATE_IF_NEEDED, the table_schema parameter enables specifying the schema for the created target table. A table schema is a JSON array with the following structure:
-&lt;div class='language-py snippet'>
-&lt;div class="notebook-skip code-snippet">
+&lt;div class="snippet">
+&lt;div class="notebook-skip code-snippet without_switcher">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
 &lt;img src="/images/copy-icon.svg"/>
 &lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-py" data-lang="py">&lt;span class="p">{&lt;/span>&lt;span class="s2">&amp;#34;schema&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
-&lt;span class="p">{&lt;/span>
-&lt;span class="s2">&amp;#34;dataType&amp;#34;&lt;/span>&lt;span class="p">:{&lt;/span>&lt;span class="s2">&amp;#34;type&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="s2">&amp;#34;&amp;lt;COLUMN DATA TYPE&amp;gt;&amp;#34;&lt;/span>&lt;span class="p">},&lt;/span>
-&lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="s2">&amp;#34;&amp;lt;COLUMN NAME&amp;gt; &amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="s2">&amp;#34;nullable&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">NULLABLE&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
-&lt;span class="p">},&lt;/span>
-&lt;span class="o">...&lt;/span>
-&lt;span class="p">]}&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;pre>&lt;code>{&amp;#34;schema&amp;#34;: [
+{
+&amp;#34;dataType&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;&amp;lt;COLUMN DATA TYPE&amp;gt;&amp;#34;},
+&amp;#34;name&amp;#34;:&amp;#34;&amp;lt;COLUMN NAME&amp;gt; &amp;#34;,
+&amp;#34;nullable&amp;#34;: &amp;lt;NULLABLE&amp;gt;
+},
+...
+]}&lt;/code>&lt;/pre>
 &lt;/div>
 &lt;/div>
 All supported data types:
@@ -3068,7 +3169,20 @@ You can read about Snowflake data types at &lt;a href="https://docs.snowflake.co
 &lt;li>
 &lt;p>&lt;code>expansion_service&lt;/code> Specifies URL of expansion service.&lt;/p>
 &lt;/li>
-&lt;/ul></description></item><item><title>Documentation: ApproximateQuantiles</title><link>/documentation/transforms/java/aggregation/approximatequantiles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/documentation/transforms/java/aggregation/approximatequantiles/</guid><description>
+&lt;/ul>
+&lt;h2 id="limitations">Limitations&lt;/h2>
+&lt;p>SnowflakeIO currently has the following limitations.&lt;/p>
+&lt;ol>
+&lt;li>
+&lt;p>Streaming writing supports only pair key authentication. For details, see: &lt;a href="https://issues.apache.org/jira/browse/BEAM-13817">BEAM-13817&lt;/a>.&lt;/p>
+&lt;/li>
+&lt;li>
+&lt;p>Only encrypted private key are supported. Unencrypted private key are not supported. For details, see: &lt;a href="https://issues.apache.org/jira/browse/BEAM-13818">BEAM-13818&lt;/a>.&lt;/p>
+&lt;/li>
+&lt;li>
+&lt;p>The role parameter configured in &lt;code>SnowflakeIO.DataSourceConfiguration&lt;/code> object is ignored for streaming writing. For details, see: &lt;a href="https://issues.apache.org/jira/browse/BEAM-13819">BEAM-13819&lt;/a>&lt;/p>
+&lt;/li>
+&lt;/ol></description></item><item><title>Documentation: ApproximateQuantiles</title><link>/documentation/transforms/java/aggregation/approximatequantiles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/documentation/transforms/java/aggregation/approximatequantiles/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -4186,7 +4300,7 @@ asynchronous &amp;ldquo;job&amp;rdquo; (or equivalent) on that back-end.&lt;/p>
 &lt;h2 id="creating-a-pipeline">2. Creating a pipeline&lt;/h2>
 &lt;p>The &lt;code>Pipeline&lt;/code> abstraction encapsulates all the data and steps in your data
 processing task. Your Beam driver program typically starts by constructing a
-&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/Pipeline.html">Pipeline&lt;/a>&lt;/span>
+&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/Pipeline.html">Pipeline&lt;/a>&lt;/span>
 &lt;span class="language-py">&lt;a href="https://github.com/apache/beam/blob/master/sdks/python/apache_beam/pipeline.py">Pipeline&lt;/a>&lt;/span>
 &lt;span class="language-go">&lt;a href="https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/pipeline.go#L62">Pipeline&lt;/a>&lt;/span>
 object, and then using that object as the basis for creating the pipeline&amp;rsquo;s data
@@ -4405,7 +4519,7 @@ with &lt;code>PipelineOptionsFactory&lt;/code>:&lt;/p>
 &lt;/div>
 &lt;p>Now your pipeline can accept &lt;code>--input=value&lt;/code> and &lt;code>--output=value&lt;/code> as command-line arguments.&lt;/p>
 &lt;h2 id="pcollections">3. PCollections&lt;/h2>
-&lt;p>The &lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/values/PCollection.html">PCollection&lt;/a>&lt;/span>
+&lt;p>The &lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/values/PCollection.html">PCollection&lt;/a>&lt;/span>
 &lt;span class="language-py">&lt;code>PCollection&lt;/code>&lt;/span>
 &lt;span class="language-go">&lt;a href="https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/pcollection.go#L39">PCollection&lt;/a>&lt;/span>
 abstraction represents a
@@ -5610,7 +5724,7 @@ parameters maps to the ordering of the &lt;code>CoGroupByKey&lt;/code> inputs.&l
 &lt;/div>
 &lt;/div>
 &lt;h4 id="combine">4.2.4. Combine&lt;/h4>
-&lt;p>&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/Combine.html">&lt;code>Combine&lt;/code>&lt;/a>&lt;/span>
+&lt;p>&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/Combine.html">&lt;code>Combine&lt;/code>&lt;/a>&lt;/span>
 &lt;span class="language-py">&lt;a href="https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/core.py">&lt;code>Combine&lt;/code>&lt;/a>&lt;/span>
 &lt;span class="language-go">&lt;a href="https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/combine.go#L27">&lt;code>Combine&lt;/code>&lt;/a>&lt;/span>
 is a Beam transform for combining collections of elements or values in your
@@ -6003,7 +6117,7 @@ PerKey must be an associative reduction function or a
 &lt;/div>
 &lt;/div>
 &lt;h4 id="flatten">4.2.5. Flatten&lt;/h4>
-&lt;p>&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/Flatten.html">&lt;code>Flatten&lt;/code>&lt;/a>&lt;/span>
+&lt;p>&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/Flatten.html">&lt;code>Flatten&lt;/code>&lt;/a>&lt;/span>
 &lt;span class="language-py">&lt;a href="https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/core.py">&lt;code>Flatten&lt;/code>&lt;/a>&lt;/span>
 &lt;span class="language-go">&lt;a href="https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/flatten.go">&lt;code>Flatten&lt;/code>&lt;/a>&lt;/span>
 is a Beam transform for &lt;code>PCollection&lt;/code> objects that store the same data type.
@@ -6064,7 +6178,7 @@ fixed windows or 4-minute sliding windows starting every 30 seconds.&lt;/p>
 incompatible windows, Beam generates an &lt;code>IllegalStateException&lt;/code> error when your
 pipeline is constructed.&lt;/p>
 &lt;h4 id="partition">4.2.6. Partition&lt;/h4>
-&lt;p>&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/Partition.html">&lt;code>Partition&lt;/code>&lt;/a>&lt;/span>
+&lt;p>&lt;span class="language-java">&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/Partition.html">&lt;code>Partition&lt;/code>&lt;/a>&lt;/span>
 &lt;span class="language-py">&lt;a href="https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/core.py">&lt;code>Partition&lt;/code>&lt;/a>&lt;/span>
 &lt;span class="language-go">&lt;a href="https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/partition.go">&lt;code>Partition&lt;/code>&lt;/a>&lt;/span>
 is a Beam transform for &lt;code>PCollection&lt;/code> objects that store the same data
@@ -6818,8 +6932,8 @@ transform can make your code more modular and easier to understand.&lt;/p>
 &lt;p>The Beam SDK comes packed with many useful composite transforms. See the API
 reference pages for a list of transforms:&lt;/p>
 &lt;ul>
-&lt;li>&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/package-summary.html">Pre-written Beam transforms for Java&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.transforms.html">Pre-written Beam transforms for Python&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/package-summary.html">Pre-written Beam transforms for Java&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.transforms.html">Pre-written Beam transforms for Python&lt;/a>&lt;/li>
 &lt;li>&lt;a href="https://github.com/apache/beam/tree/master/sdks/go/pkg/beam/transforms">Pre-written Beam transforms for Go&lt;/a>&lt;/li>
 &lt;/ul>
 &lt;h4 id="composite-transform-example">4.6.1. An example composite transform&lt;/h4>
@@ -8956,7 +9070,7 @@ all the elements are by default part of a single, global window.&lt;/p>
 &lt;p>To use windowing with fixed data sets, you can assign your own timestamps to
 each element. To assign timestamps to elements, use a &lt;code>ParDo&lt;/code> transform with a
 &lt;code>DoFn&lt;/code> that outputs each element with a new timestamp (for example, the
-&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/WithTimestamps.html">WithTimestamps&lt;/a>
+&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/WithTimestamps.html">WithTimestamps&lt;/a>
 transform in the Beam SDK for Java).&lt;/p>
 &lt;p>To illustrate how windowing with a bounded &lt;code>PCollection&lt;/code> can affect how your
 pipeline processes data, consider the following pipeline:&lt;/p>
@@ -12804,6 +12918,16 @@ SnowflakeIO
 &lt;div>&lt;a target="_blank" href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/snowflake/SnowflakeIO.html">org.apache.beam.sdk.io.snowflake.SnowflakeIO&lt;/a>&lt;/div>
 &lt;/td>
 &lt;/tr>
+&lt;tr class="language-py">
+&lt;td>
+SnowflakeIO
+&lt;a href="/documentation/io/built-in/snowflake"> (guide)&lt;/a>
+&lt;/td>
+&lt;td>Experimental Transforms for reading from and writing to &lt;a href="https://www.snowflake.com/">Snowflake&lt;/a>.&lt;/td>
+&lt;td style="word-break: break-all;">
+&lt;div>&lt;a target="_blank" href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.snowflake.html">apache_beam.io.snowflake&lt;/a>&lt;/div>
+&lt;/td>
+&lt;/tr>
 &lt;tr class="language-java">
 &lt;td>
 SpannerIO
@@ -16586,14 +16710,14 @@ to &lt;a href="https://cloud.google.com/bigquery">Google BigQuery&lt;/a> tables.
 &lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
 &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
 &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">sdks&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">google&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">cloud&lt;/span>&lt;span class="o">-&lt;/span> [...]
-&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">35&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">0&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">36&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">0&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
 &lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;p class="language-java">Additional resources:&lt;/p>
 &lt;span class="language-java">&lt;ul>
 &lt;li>&lt;a href="https://github.com/apache/beam/tree/master/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery">BigQueryIO source code&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html">BigQueryIO Javadoc&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html">BigQueryIO Javadoc&lt;/a>&lt;/li>
 &lt;li>&lt;a href="https://cloud.google.com/bigquery/docs">Google BigQuery documentation&lt;/a>&lt;/li>
 &lt;/ul>&lt;/span>
 &lt;!-- Python specific -->
@@ -16602,7 +16726,7 @@ running &lt;code>pip install apache-beam[gcp]&lt;/code>.&lt;/p>
 &lt;p class="language-py">Additional resources:&lt;/p>
 &lt;span class="language-py">&lt;ul>
 &lt;li>&lt;a href="https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/gcp/bigquery.py">BigQueryIO source code&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.bigquery.html">BigQueryIO Pydoc&lt;/a>&lt;/li>
+&lt;li>&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.bigquery.html">BigQueryIO Pydoc&lt;/a>&lt;/li>
 &lt;li>&lt;a href="https://cloud.google.com/bigquery/docs">Google BigQuery documentation&lt;/a>&lt;/li>
 &lt;/ul>&lt;/span>
 &lt;h2 id="bigquery-basics">BigQuery basics&lt;/h2>
@@ -16652,10 +16776,10 @@ table name.&lt;/p>
 &lt;p>You can also omit &lt;code>project_id&lt;/code> and use the &lt;code>[dataset_id].[table_id]&lt;/code> format. If
 you omit the project ID, Beam uses the default project ID from your
 &lt;span class="language-java">
-&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html">pipeline options&lt;/a>.
+&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html">pipeline options&lt;/a>.
 &lt;/span>
 &lt;span class="language-py">
-&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.GoogleCloudOptions">pipeline options&lt;/a>.
+&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.GoogleCloudOptions">pipeline options&lt;/a>.
 &lt;/span>&lt;/p>
 &lt;div class='language-java snippet'>
 &lt;div class="notebook-skip code-snippet">
@@ -16702,7 +16826,7 @@ the three parts of the BigQuery table name.&lt;/p>
 &lt;/div>
 &lt;/div>
 &lt;!-- Java specific -->
-&lt;p class="language-java">The Beam SDK for Java also provides the &lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers.html">&lt;code>parseTableSpec&lt;/code>&lt;/a>
+&lt;p class="language-java">The Beam SDK for Java also provides the &lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers.html">&lt;code>parseTableSpec&lt;/code>&lt;/a>
 helper method, which constructs a &lt;code>TableReference&lt;/code> object from a String that
 contains the fully-qualified BigQuery table name. However, the static factory
 methods for BigQueryIO transforms accept the table name as a String and
@@ -17449,11 +17573,11 @@ and &lt;a href="https://cloud.google.com/bigquery/streaming-data-into-bigquery">
 for more information about these tradeoffs.&lt;/p>
 &lt;p class="language-java">BigQueryIO chooses a default insertion method based on the input &lt;code>PCollection&lt;/code>.
 You can use &lt;code>withMethod&lt;/code> to specify the desired insertion method. See
-&lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.Write.Method.html">&lt;code>Write.Method&lt;/code>&lt;/a>
+&lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.Write.Method.html">&lt;code>Write.Method&lt;/code>&lt;/a>
 for the list of the available methods and their restrictions.&lt;/p>
 &lt;p class="language-py">BigQueryIO chooses a default insertion method based on the input &lt;code>PCollection&lt;/code>.
 You can use &lt;code>method&lt;/code> to specify the desired insertion method. See
-&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.bigquery.html#apache_beam.io.gcp.bigquery.WriteToBigQuery">&lt;code>WriteToBigQuery&lt;/code>&lt;/a>
+&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.bigquery.html#apache_beam.io.gcp.bigquery.WriteToBigQuery">&lt;code>WriteToBigQuery&lt;/code>&lt;/a>
 for the list of the available methods and their restrictions.&lt;/p>
 &lt;p>BigQueryIO uses load jobs in the following situations:&lt;/p>
 &lt;span class="language-java">&lt;ul>
diff --git a/website/generated-content/documentation/io/built-in/google-bigquery/index.html b/website/generated-content/documentation/io/built-in/google-bigquery/index.html
index 236e539..48c6535 100644
--- a/website/generated-content/documentation/io/built-in/google-bigquery/index.html
+++ b/website/generated-content/documentation/io/built-in/google-bigquery/index.html
@@ -22,9 +22,9 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
 to <a href=https://cloud.google.com/bigquery>Google BigQuery</a> tables.</p><h2 id=before-you-start>Before you start</h2><p class=language-java>To use BigQueryIO, add the Maven artifact dependency to your <code>pom.xml</code> file.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code cl [...]
     <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
     <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>sdks</span><span class=o>-</span><span class=n>java</span><span class=o>-</span><span class=n>io</span><span class=o>-</span><span class=n>google</span><span class=o>-</span><span class=n>cloud</span><span class=o>-</span><span class=n>platform</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-    <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
-<span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><p class=language-java>Additional resources:</p><span class=language-java><ul><li><a href=https://github.com/apache/beam/tree/master/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery>BigQueryIO source code</a></li><li><a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html>BigQueryIO Javadoc [...]
-running <code>pip install apache-beam[gcp]</code>.</p><p class=language-py>Additional resources:</p><span class=language-py><ul><li><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/gcp/bigquery.py>BigQueryIO source code</a></li><li><a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.bigquery.html>BigQueryIO Pydoc</a></li><li><a href=https://cloud.google.com/bigquery/docs>Google BigQuery documentation</a></li></ul></span><h2 id=bigquery-ba [...]
+    <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+<span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><p class=language-java>Additional resources:</p><span class=language-java><ul><li><a href=https://github.com/apache/beam/tree/master/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery>BigQueryIO source code</a></li><li><a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html>BigQueryIO Javadoc [...]
+running <code>pip install apache-beam[gcp]</code>.</p><p class=language-py>Additional resources:</p><span class=language-py><ul><li><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/gcp/bigquery.py>BigQueryIO source code</a></li><li><a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.bigquery.html>BigQueryIO Pydoc</a></li><li><a href=https://cloud.google.com/bigquery/docs>Google BigQuery documentation</a></li></ul></span><h2 id=bigquery-ba [...]
 BigQuery table name (for example, <code>bigquery-public-data:github_repos.sample_contents</code>).
 A fully-qualified BigQuery table name consists of three parts:</p><ul><li><strong>Project ID</strong>: The ID for your Google Cloud Project. The default value comes
 from your pipeline options object.</li><li><strong>Dataset ID</strong>: The BigQuery dataset ID, which is unique within a given Cloud
@@ -38,8 +38,8 @@ object.</p><h4 id=using-a-string>Using a string</h4><p>To specify a table with a
 table name.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>String</span> <span class=n>tableSpec</span> <span class=o>=</span> <span class=s>&#34;clouddataflow-readonly:samples.weather_stations&#34;</span><span class=o>;</span></cod [...]
 <span class=n>table_spec</span> <span class=o>=</span> <span class=s1>&#39;clouddataflow-readonly:samples.weather_stations&#39;</span></code></pre></div></div></div><p>You can also omit <code>project_id</code> and use the <code>[dataset_id].[table_id]</code> format. If
 you omit the project ID, Beam uses the default project ID from your
-<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html>pipeline options</a>.</span>
-<span class=language-py><a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.GoogleCloudOptions>pipeline options</a>.</span></p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang [...]
+<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html>pipeline options</a>.</span>
+<span class=language-py><a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.GoogleCloudOptions>pipeline options</a>.</span></p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang [...]
 <span class=n>table_spec</span> <span class=o>=</span> <span class=s1>&#39;samples.weather_stations&#39;</span></code></pre></div></div></div><h4 id=using-a-tablereference>Using a TableReference</h4><p>To specify a table with a <code>TableReference</code>, create a new <code>TableReference</code> using
 the three parts of the BigQuery table name.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>TableReference</span> <span class=n>tableSpec</span> <span class=o>=</span>
     <span class=k>new</span> <span class=n>TableReference</span><span class=o>()</span>
@@ -50,7 +50,7 @@ the three parts of the BigQuery table name.</p><div class="language-java snippet
 <span class=n>table_spec</span> <span class=o>=</span> <span class=n>bigquery</span><span class=o>.</span><span class=n>TableReference</span><span class=p>(</span>
     <span class=n>projectId</span><span class=o>=</span><span class=s1>&#39;clouddataflow-readonly&#39;</span><span class=p>,</span>
     <span class=n>datasetId</span><span class=o>=</span><span class=s1>&#39;samples&#39;</span><span class=p>,</span>
-    <span class=n>tableId</span><span class=o>=</span><span class=s1>&#39;weather_stations&#39;</span><span class=p>)</span></code></pre></div></div></div><p class=language-java>The Beam SDK for Java also provides the <a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers.html><code>parseTableSpec</code></a>
+    <span class=n>tableId</span><span class=o>=</span><span class=s1>&#39;weather_stations&#39;</span><span class=p>)</span></code></pre></div></div></div><p class=language-java>The Beam SDK for Java also provides the <a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers.html><code>parseTableSpec</code></a>
 helper method, which constructs a <code>TableReference</code> object from a String that
 contains the fully-qualified BigQuery table name. However, the static factory
 methods for BigQueryIO transforms accept the table name as a String and
@@ -506,10 +506,10 @@ quota, and data consistency. See the BigQuery documentation for
 and <a href=https://cloud.google.com/bigquery/streaming-data-into-bigquery>streaming inserts</a>)
 for more information about these tradeoffs.</p><p class=language-java>BigQueryIO chooses a default insertion method based on the input <code>PCollection</code>.
 You can use <code>withMethod</code> to specify the desired insertion method. See
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.Write.Method.html><code>Write.Method</code></a>
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.Write.Method.html><code>Write.Method</code></a>
 for the list of the available methods and their restrictions.</p><p class=language-py>BigQueryIO chooses a default insertion method based on the input <code>PCollection</code>.
 You can use <code>method</code> to specify the desired insertion method. See
-<a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.bigquery.html#apache_beam.io.gcp.bigquery.WriteToBigQuery><code>WriteToBigQuery</code></a>
+<a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.bigquery.html#apache_beam.io.gcp.bigquery.WriteToBigQuery><code>WriteToBigQuery</code></a>
 for the list of the available methods and their restrictions.</p><p>BigQueryIO uses load jobs in the following situations:</p><span class=language-java><ul><li>When you apply a BigQueryIO write transform to a bounded <code>PCollection</code>.</li><li>When you specify load jobs as the insertion method using
 <code>BigQueryIO.write().withMethod(FILE_LOADS)</code>.</li></ul></span><span class=language-py><ul><li>When you apply a BigQueryIO write transform to a bounded <code>PCollection</code>.</li><li>When you specify load jobs as the insertion method using
 <code>WriteToBigQuery(method='FILE_LOADS')</code>.</li></ul></span><p><em><strong>Note:</strong></em> If you use batch loads in a streaming pipeline:</p><p class=language-java>You must use <code>withTriggeringFrequency</code> to specify a triggering frequency for
diff --git a/website/generated-content/documentation/io/built-in/index.html b/website/generated-content/documentation/io/built-in/index.html
index 326917f..f23369d 100644
--- a/website/generated-content/documentation/io/built-in/index.html
+++ b/website/generated-content/documentation/io/built-in/index.html
@@ -34,7 +34,8 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
 <a href=/documentation/io/built-in/google-bigquery/>(guide)</a></td><td>Read from and write to <a href=https://cloud.google.com/bigquery>Google Cloud BigQuery</a>.</td><td style=word-break:break-all><div><a target=_blank href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html>org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO</a></div></td></tr><tr class=language-py><td>BigQueryIO
 <a href=/documentation/io/built-in/google-bigquery/>(guide)</a></td><td>Read from and write to <a href=https://cloud.google.com/bigquery>Google Cloud BigQuery</a>.</td><td style=word-break:break-all><div><a target=_blank href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.gcp.bigquery.html>apache_beam.io.gcp.bigquery</a></div></td></tr><tr class=language-go><td>BigQueryIO
 <a href=/documentation/io/built-in/google-bigquery/>(guide)</a></td><td>Read from and write to <a href=https://cloud.google.com/bigquery>Google Cloud BigQuery</a>.</td><td style=word-break:break-all><div><a target=_blank href=https://godoc.org/github.com/apache/beam/sdks/go/pkg/beam/io/bigqueryio>github.com/apache/beam/sdks/go/pkg/beam/io/bigqueryio</a></div></td></tr><tr class=language-java><td>BigTableIO</td><td>Read from (only for Java SDK) and write to <a href=https://cloud.google.co [...]
-<a href=/documentation/io/built-in/snowflake>(guide)</a></td><td>Experimental Transforms for reading from and writing to <a href=https://www.snowflake.com/>Snowflake</a>.</td><td style=word-break:break-all><div><a target=_blank href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/snowflake/SnowflakeIO.html>org.apache.beam.sdk.io.snowflake.SnowflakeIO</a></div></td></tr><tr class=language-java><td>SpannerIO</td><td>Experimental Transforms for reading from and writi [...]
+<a href=/documentation/io/built-in/snowflake>(guide)</a></td><td>Experimental Transforms for reading from and writing to <a href=https://www.snowflake.com/>Snowflake</a>.</td><td style=word-break:break-all><div><a target=_blank href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/snowflake/SnowflakeIO.html>org.apache.beam.sdk.io.snowflake.SnowflakeIO</a></div></td></tr><tr class=language-py><td>SnowflakeIO
+<a href=/documentation/io/built-in/snowflake>(guide)</a></td><td>Experimental Transforms for reading from and writing to <a href=https://www.snowflake.com/>Snowflake</a>.</td><td style=word-break:break-all><div><a target=_blank href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.snowflake.html>apache_beam.io.snowflake</a></div></td></tr><tr class=language-java><td>SpannerIO</td><td>Experimental Transforms for reading from and writing to <a href=https://cloud.google.com/spa [...]
 <span class=language-py>pydoc</span>
 <span class=language-go>Godoc</span></th></tr><tr class=language-py><td>FlinkStreamingImpulseSource</td><td>A PTransform that provides an unbounded, streaming source of empty byte arrays. This can only be used with the Flink runner.</td><td style=word-break:break-all><div><a target=_blank href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.flink.flink_streaming_impulse_source.html>apache_beam.io.flink.flink_streaming_impulse_source</a></div></td></tr><tr class=language-jav [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
diff --git a/website/generated-content/documentation/io/built-in/parquet/index.html b/website/generated-content/documentation/io/built-in/parquet/index.html
index 7f6cfae..ec927be 100644
--- a/website/generated-content/documentation/io/built-in/parquet/index.html
+++ b/website/generated-content/documentation/io/built-in/parquet/index.html
@@ -22,8 +22,8 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
 to <a href=https://parquet.apache.org>Apache Parquet</a> files.</p><h2 id=before-you-start>Before you start</h2><p class=language-java>To use ParquetIO, add the Maven artifact dependency to your <code>pom.xml</code> file.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=langua [...]
     <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
     <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>sdks</span><span class=o>-</span><span class=n>java</span><span class=o>-</span><span class=n>io</span><span class=o>-</span><span class=n>parquet</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-    <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
-<span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><p class=language-java>Additional resources:</p><span class=language-java><ul><li><a href=https://github.com/apache/beam/blob/master/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java>ParquetIO source code</a></li><li><a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/io/parquet/ParquetIO.html>ParquetIO Javadoc</a></li></u [...]
+    <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+<span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><p class=language-java>Additional resources:</p><span class=language-java><ul><li><a href=https://github.com/apache/beam/blob/master/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java>ParquetIO source code</a></li><li><a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/parquet/ParquetIO.html>ParquetIO Javadoc</a></li></u [...]
 The Parquet files that are consumed or generated by this Beam connector should remain interoperable with the other tools on your cluster.</p></blockquote></p><p class=language-java>Include the Parquet artifact normally and ensure that it brings in the correct version of Parquet as a transitive dependency.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img sr [...]
     <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
     <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>sdks</span><span class=o>-</span><span class=n>java</span><span class=o>-</span><span class=n>io</span><span class=o>-</span><span class=n>parquet</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
diff --git a/website/generated-content/documentation/io/built-in/snowflake/index.html b/website/generated-content/documentation/io/built-in/snowflake/index.html
index 9002a6c..a4d5ae3 100644
--- a/website/generated-content/documentation/io/built-in/snowflake/index.html
+++ b/website/generated-content/documentation/io/built-in/snowflake/index.html
@@ -18,21 +18,55 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Documentation</span></li><li><a href=/documentation>Using the Documentation</a></li><li class=section-nav-item--collapsible><span class=section-nav-lis [...]
-        <span class=o>.</span><span class=na>fromArgs</span><span class=o>(</span><span class=n>args</span><span class=o>)</span>
-        <span class=o>.</span><span class=na>withValidation</span><span class=o>()</span>
-        <span class=o>.</span><span class=na>as</span><span class=o>(</span><span class=n>SnowflakePipelineOptions</span><span class=o>.</span><span class=na>class</span><span class=o>);</span>
-<span class=n>SnowflakeCredentials</span> <span class=n>credentials</span> <span class=o>=</span> <span class=n>SnowflakeCredentialsFactory</span><span class=o>.</span><span class=na>of</span><span class=o>(</span><span class=n>options</span><span class=o>);</span>
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Documentation</span></li><li><a href=/documentation>Using the Documentation</a></li><li class=section-nav-item--collapsible><span class=section-nav-lis [...]
+    &lt;groupId&gt;org.apache.beam&lt;/groupId&gt;
+    &lt;artifactId&gt;beam-sdks-java-io-snowflake&lt;/artifactId&gt;
+    &lt;version&gt;2.36.0&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><p>Additional resources:</p><ul><li><a href=https://github.com/apache/beam/tree/master/sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake>SnowflakeIO source code</a></li><li><a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/io/snowflake/SnowflakeIO.html>SnowflakeIO Javadoc</a></li><li><a href=https://docs.snowflake.com/en/>Snowflake documentation</a></li></ul><h2 id=authentication>Authentication</h2> [...]
+        .withUsernamePasswordAuth(
+                options.getUsername(),
+                options.getPassword())
+        .withServerName(options.getServerName())
+        .withDatabase(options.getDatabase())
+        .withRole(options.getRole())
+        .withWarehouse(options.getWarehouse())
+        .withSchema(options.getSchema());</code></pre></div></div></p><h3 id=key-pair>Key pair</h3><p>To use this authentication method, you must first generate a key pair and associate the public key with the Snowflake user that will connect using the IO transform. For instructions, see the <a href=https://docs.snowflake.com/en/user-guide/key-pair-auth.html>Key Pair Authentication & Key Pair Rotation</a> in Snowflake documentation.</p><p>To use key pair authentication with SnowflakeIO,  [...]
+  </code></pre></div></div>The initialization of an <code>SnowflakeIO.DataSourceConfiguration</code> class may be as follows:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>  SnowflakeIO.DataSourceConfiguration datasource = SnowflakeIO.DataSourceConfiguration.create()
+          .withKeyPairPathAuth(
+                  options.getUsername(),
+                  options.getPrivateKeyPath(),
+                  options.getPrivateKeyPassphrase())
+          .withServerName(options.getServerName())
+          .withDatabase(options.getDatabase())
+          .withRole(options.getRole())
+          .withWarehouse(options.getWarehouse())
+          .withSchema(options.getSchema());
 
-<span class=n>SnowflakeIO</span><span class=o>.</span><span class=na>DataSourceConfiguration</span><span class=o>.</span><span class=na>create</span><span class=o>(</span><span class=n>credentials</span><span class=o>)</span>
-        <span class=o>.(</span><span class=n>other</span> <span class=n>DataSourceConfiguration</span> <span class=n>options</span><span class=o>)</span></code></pre></div></div></div></p><h3 id=username-and-password>Username and password</h3><p>To use username/password authentication in SnowflakeIO, invoke your pipeline with the following Pipeline options:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs- [...]
---username=&lt;USERNAME&gt; --rawPrivateKey=&lt;PRIVATE_KEY&gt; --privateKeyPassphrase=&lt;PASSWORD_FOR_KEY&gt;</code></pre></div></div></p><h3 id=oauth-token>OAuth token</h3><p>SnowflakeIO also supports OAuth token.</p><p><strong>IMPORTANT</strong>: SnowflakeIO requires a valid OAuth access token. It will neither be able to refresh the token nor obtain it using a web-based flow. For information on configuring an OAuth integration and obtaining the token, see the <a href=https://docs.sno [...]
-            <span class=o>.</span><span class=na>create</span><span class=o>()</span>
-            <span class=o>.</span><span class=na>withUrl</span><span class=o>(</span><span class=n>options</span><span class=o>.</span><span class=na>getUrl</span><span class=o>())</span>
-            <span class=o>.</span><span class=na>withServerName</span><span class=o>(</span><span class=n>options</span><span class=o>.</span><span class=na>getServerName</span><span class=o>())</span>
-            <span class=o>.</span><span class=na>withDatabase</span><span class=o>(</span><span class=n>options</span><span class=o>.</span><span class=na>getDatabase</span><span class=o>())</span>
-            <span class=o>.</span><span class=na>withWarehouse</span><span class=o>(</span><span class=n>options</span><span class=o>.</span><span class=na>getWarehouse</span><span class=o>())</span>
-            <span class=o>.</span><span class=na>withSchema</span><span class=o>(</span><span class=n>options</span><span class=o>.</span><span class=na>getSchema</span><span class=o>());</span></code></pre></div></div></div>Where parameters can be:</p><ul><li><code>.withUrl(...)</code><ul><li>JDBC-like URL for your Snowflake account, including account name and region, without any parameters.</li><li>Example: <code>.withUrl("jdbc:snowflake://account.snowflakecomputing.com")</code></li></ [...]
+  </code></pre></div></div></li><li>with passing the key as a value:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>  --username=&lt;USERNAME&gt; --rawPrivateKey=&lt;PRIVATE_KEY&gt; --privateKeyPassphrase=&lt;PASSWORD_FOR_KEY&gt;
+  </code></pre></div></div>The initialization of an <code>SnowflakeIO.DataSourceConfiguration</code> class may be as follows:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>  SnowflakeIO.DataSourceConfiguration datasource = SnowflakeIO.DataSourceConfiguration.create()
+          .withKeyPairRawAuth(
+                  options.getUsername(),
+                  options.getRawPrivateKey(),
+                  options.getPrivateKeyPassphrase())
+          .withServerName(options.getServerName())
+          .withDatabase(options.getDatabase())
+          .withRole(options.getRole())
+          .withWarehouse(options.getWarehouse())
+          .withSchema(options.getSchema());
+
+  </code></pre></div></div></li></ul><p><strong>Important notice</strong>: Only encrypted private key are supported. Unencrypted (without pasphrase) private key are not supported. For details, see: <a href=https://issues.apache.org/jira/browse/BEAM-13818>BEAM-13818</a>.</p><h3 id=oauth-token>OAuth token</h3><p>SnowflakeIO also supports OAuth token.</p><p><strong>IMPORTANT</strong>: SnowflakeIO requires a valid OAuth access token. It will neither be able to refresh the token nor obtain it [...]
+            .create()
+            .withUrl(options.getUrl())
+            .withServerName(options.getServerName())
+            .withDatabase(options.getDatabase())
+            .withWarehouse(options.getWarehouse())
+            .withSchema(options.getSchema());</code></pre></div></div></p><h2 id=datasource-configuration>DataSource Configuration</h2><p>DataSource configuration is required in both read and write object for configuring Snowflake connection properties for IO purposes.</p><h3 id=general-usage>General usage</h3><p>Create the DataSource configuration:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placemen [...]
+            .create()
+            .withUrl(options.getUrl())
+            .withServerName(options.getServerName())
+            .withDatabase(options.getDatabase())
+            .withWarehouse(options.getWarehouse())
+            .withSchema(options.getSchema());</code></pre></div></div>Where parameters can be:</p><ul><li><code>.withUrl(...)</code><ul><li>JDBC-like URL for your Snowflake account, including account name and region, without any parameters.</li><li>Example: <code>.withUrl("jdbc:snowflake://account.snowflakecomputing.com")</code></li></ul></li><li><code>.withServerName(...)</code><ul><li>Server Name - full server name with account, zone and domain.</li><li>Example: <code>.withServerName(" [...]
     --args=&#34;
         --serverName=&lt;SNOWFLAKE SERVER NAME&gt;
            Example: --serverName=account.region.gcp.snowflakecomputing.com
@@ -62,7 +96,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
         --region=&lt;FOR DATAFLOW RUNNER: GCP REGION&gt;
            Example: --region=us-east-1
         --appName=&lt;OPTIONAL: DATAFLOW JOB NAME PREFIX&gt;
-           Example: --appName=my_job&#34;</code></pre></div></div>Then in the code it is possible to access the parameters with arguments using the options.getStagingBucketName(); command.</p><h3 id=running-test-command-with-pipeline-options>Running test command with Pipeline options</h3><p>To pass Pipeline options via the command line, use <code>-DintegrationTestPipelineOptions</code> in a gradle command as follows:<div class=snippet><div class="notebook-skip code-snippet without_switch [...]
+           Example: --appName=my_job&#34;</code></pre></div></div>Then in the code it is possible to access the parameters with arguments using the <code>options.getStagingBucketName()</code> command.</p><h3 id=running-test-command-with-pipeline-options>Running test command with Pipeline options</h3><p>To pass Pipeline options via the command line, use <code>-DintegrationTestPipelineOptions</code> in a gradle command as follows:<div class=snippet><div class="notebook-skip code-snippet wi [...]
 -DintegrationTestPipelineOptions=&#39;[
   &#34;--serverName=&lt;SNOWFLAKE SERVER NAME&gt;&#34;,
       Example: --serverName=account.region.gcp.snowflakecomputing.com
@@ -82,98 +116,98 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
       Example: --stagingBucketName={gs,s3}://bucket
   &#34;--externalLocation=&lt;GCS BUCKET URL STARTING WITH GS://&gt;&#34;,
       Example: --tempLocation=gs://bucket/temp/
-]&#39; --no-build-cache</code></pre></div></div></p><p>Where all parameters are starting with “&ndash;”, they are surrounded with double quotation and separated with comma:</p><ul><li><p><code>--serverName=&lt;SNOWFLAKE SERVER NAME></code></p><ul><li>Specifies the full name of your account (provided by Snowflake). Note that your full account name might include additional segments that identify the region and cloud platform where your account is hosted.</li><li>Example: <code>--serverName [...]
-   <span class=n>SnowflakeIO</span><span class=o>.&lt;</span><span class=n>type</span><span class=o>&gt;</span><span class=n>write</span><span class=o>()</span>
-       <span class=o>.</span><span class=na>withDataSourceConfiguration</span><span class=o>(</span><span class=n>dc</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>toTable</span><span class=o>(</span><span class=s>&#34;MY_TABLE&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStagingBucketName</span><span class=o>(</span><span class=s>&#34;BUCKET&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStorageIntegrationName</span><span class=o>(</span><span class=s>&#34;STORAGE INTEGRATION NAME&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withUserDataMapper</span><span class=o>(</span><span class=n>mapper</span><span class=o>)</span>
-<span class=o>)</span></code></pre></div></div></div>Replace type with the data type of the PCollection object to write; for example, SnowflakeIO.<string> for an input PCollection of Strings.</p><p>All the below parameters are required:</p><ul><li><p><code>.withDataSourceConfiguration()</code> Accepts a DatasourceConfiguration object.</p></li><li><p><code>.toTable()</code> Accepts the target Snowflake table name.</p></li><li><p><code>.withStagingBucketName()</code> Accepts a cloud bucket [...]
--Example: <code>.withStagingBucketName("{gs,s3}://bucket/my/dir/")</code></p></li><li><p><code>.withStorageIntegrationName()</code> Accepts a name of a Snowflake storage integration object created according to Snowflake documentation. Examples:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE OR REPLACE STORAGE  [...]
+]&#39; --no-build-cache</code></pre></div></div></p><p>Where all parameters are starting with “&ndash;”, they are surrounded with double quotation and separated with comma:</p><ul><li><p><code>--serverName=&lt;SNOWFLAKE SERVER NAME></code></p><ul><li>Specifies the full name of your account (provided by Snowflake). Note that your full account name might include additional segments that identify the region and cloud platform where your account is hosted.</li><li>Example: <code>--serverName [...]
+   SnowflakeIO.&lt;type&gt;write()
+       .withDataSourceConfiguration(dc)
+       .to(&#34;MY_TABLE&#34;)
+       .withStagingBucketName(&#34;BUCKET&#34;)
+       .withStorageIntegrationName(&#34;STORAGE INTEGRATION NAME&#34;)
+       .withUserDataMapper(mapper)
+)</code></pre></div></div>Replace type with the data type of the <code>PCollection</code> object to write; for example, <code>SnowflakeIO.&lt;String></code> for an input <code>PCollection</code> of Strings.</p><p>All the below parameters are required:</p><ul><li><p><code>.withDataSourceConfiguration()</code> Accepts a DatasourceConfiguration object.</p></li><li><p><code>.to()</code> Accepts the target Snowflake table name.</p></li><li><p><code>.withStagingBucketName()</code> Accepts a cl [...]
+-Example: <code>.withStagingBucketName("{gs,s3}://bucket/my/dir/")</code></p></li><li><p><code>.withStorageIntegrationName()</code> Accepts a name of a Snowflake storage integration object created according to Snowflake documentation. Examples:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE OR REPLACE STORAGE  [...]
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = GCS
 ENABLED = TRUE
-STORAGE_ALLOWED_LOCATIONS = (&#39;gcs://bucket/&#39;);</code></pre></div></div><div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE STORAGE INTEGRATION test_integration
+STORAGE_ALLOWED_LOCATIONS = (&#39;gcs://bucket/&#39;);</code></pre></div></div><div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE STORAGE INTEGRATION &#34;test_integration&#34;
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = S3
 ENABLED = TRUE
 STORAGE_AWS_ROLE_ARN = &#39;&lt;ARN ROLE NAME&gt;&#39;
-STORAGE_ALLOWED_LOCATIONS = (&#39;s3://bucket/&#39;)</code></pre></div></div>Then:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>.withStorageIntegrationName(test_integration)</code></pre></div></div></p></li><li><p><code>.withUserDataMapper()</code> Accepts the UserDataMapper function that will map a user&rsquo;s PC [...]
-SnowflakeIO uses COPY statements behind the scenes to write (using <a href=https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html>COPY to table</a>). StagingBucketName will be used to save CSV files which will end up in Snowflake. Those CSV files will be saved under the “stagingBucketName” path.</p><p><strong>Optional</strong> for batching:</p><ul><li><code>.withQuotationMark()</code><ul><li>Default value: <code>‘</code> (single quotation mark).</li><li>Accepts String  [...]
-   <span class=n>SnowflakeIO</span><span class=o>.&lt;</span><span class=n>type</span><span class=o>&gt;</span><span class=n>write</span><span class=o>()</span>
-      <span class=o>.</span><span class=na>withStagingBucketName</span><span class=o>(</span><span class=s>&#34;BUCKET&#34;</span><span class=o>)</span>
-      <span class=o>.</span><span class=na>withStorageIntegrationName</span><span class=o>(</span><span class=s>&#34;STORAGE INTEGRATION NAME&#34;</span><span class=o>)</span>
-      <span class=o>.</span><span class=na>withDataSourceConfiguration</span><span class=o>(</span><span class=n>dc</span><span class=o>)</span>
-      <span class=o>.</span><span class=na>withUserDataMapper</span><span class=o>(</span><span class=n>mapper</span><span class=o>)</span>
-      <span class=o>.</span><span class=na>withSnowPipe</span><span class=o>(</span><span class=s>&#34;MY_SNOW_PIPE&#34;</span><span class=o>)</span>
-      <span class=o>.</span><span class=na>withFlushTimeLimit</span><span class=o>(</span><span class=n>Duration</span><span class=o>.</span><span class=na>millis</span><span class=o>(</span><span class=n>time</span><span class=o>))</span>
-      <span class=o>.</span><span class=na>withFlushRowLimit</span><span class=o>(</span><span class=n>rowsNumber</span><span class=o>)</span>
-      <span class=o>.</span><span class=na>withShardsNumber</span><span class=o>(</span><span class=n>shardsNumber</span><span class=o>)</span>
-<span class=o>)</span></code></pre></div></div></div></p><h4 id=parameters>Parameters</h4><p><strong>Required</strong> for streaming:</p><ul><li><p><code>.withDataSourceConfiguration()</code></p><ul><li>Accepts a DatasourceConfiguration object.</li></ul></li><li><p><code>.toTable()</code></p><ul><li>Accepts the target Snowflake table name.</li><li>Example: <code>.toTable("MY_TABLE")</code></li></ul></li><li><p><code>.withStagingBucketName()</code></p><ul><li>Accepts a cloud bucket path e [...]
+STORAGE_ALLOWED_LOCATIONS = (&#39;s3://bucket/&#39;)</code></pre></div></div>Then:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>.withStorageIntegrationName(&#34;test_integration&#34;)</code></pre></div></div></p></li><li><p><code>.withUserDataMapper()</code> Accepts the UserDataMapper function that will map a user& [...]
+SnowflakeIO uses <code>COPY</code> statements behind the scenes to write (using <a href=https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html>COPY to table</a>). StagingBucketName will be used to save CSV files which will end up in Snowflake. Those CSV files will be saved under the “stagingBucketName” path.</p><p><strong>Optional</strong> for batching:</p><ul><li><code>.withQuotationMark()</code><ul><li>Default value: <code>‘</code> (single quotation mark).</li><li>Ac [...]
+   SnowflakeIO.&lt;type&gt;write()
+      .withStagingBucketName(&#34;BUCKET&#34;)
+      .withStorageIntegrationName(&#34;STORAGE INTEGRATION NAME&#34;)
+      .withDataSourceConfiguration(dc)
+      .withUserDataMapper(mapper)
+      .withSnowPipe(&#34;MY_SNOW_PIPE&#34;)
+      .withFlushTimeLimit(Duration.millis(time))
+      .withFlushRowLimit(rowsNumber)
+      .withShardsNumber(shardsNumber)
+)</code></pre></div></div></p><h4 id=parameters>Parameters</h4><p><strong>Required</strong> for streaming:</p><ul><li><p><code>.withDataSourceConfiguration()</code></p><ul><li>Accepts a DatasourceConfiguration object.</li></ul></li><li><p><code>.to()</code></p><ul><li>Accepts the target Snowflake table name.</li><li>Example: <code>.to("MY_TABLE")</code></li></ul></li><li><p><code>.withStagingBucketName()</code></p><ul><li>Accepts a cloud bucket path ended with slash.</li><li>Example: <co [...]
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = GCS
 ENABLED = TRUE
-STORAGE_ALLOWED_LOCATIONS = (&#39;gcs://bucket/&#39;);</code></pre></div></div><div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE STORAGE INTEGRATION test_integration
+STORAGE_ALLOWED_LOCATIONS = (&#39;gcs://bucket/&#39;);</code></pre></div></div><div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE STORAGE INTEGRATION &#34;test_integration&#34;
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = S3
 ENABLED = TRUE
 STORAGE_AWS_ROLE_ARN = &#39;&lt;ARN ROLE NAME&gt;&#39;
-STORAGE_ALLOWED_LOCATIONS = (&#39;s3://bucket/&#39;)</code></pre></div></div>Then:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>.withStorageIntegrationName(test_integration)</code></pre></div></div></li></ul></li><li><p><code>.withSnowPipe()</code></p><ul><li><p>Accepts the target SnowPipe name. <code>.withSnowPipe [...]
-Example:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE OR REPLACE PIPE test_database.public.test_gcs_pipe
-AS COPY INTO stream_table from @streamstage;</code></pre></div></div></p></li><li><p>Then:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>.withSnowPipe(test_gcs_pipe)</code></pre></div></div></p></li></ul></li></ul><p><strong>Note</strong>: this is important to provide <strong>schema</strong> and <strong>database</st [...]
+STORAGE_ALLOWED_LOCATIONS = (&#39;s3://bucket/&#39;)</code></pre></div></div>Then:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>.withStorageIntegrationName(&#34;test_integration&#34;)</code></pre></div></div></li></ul></li><li><p><code>.withSnowPipe()</code></p><ul><li><p>Accepts the target SnowPipe name. <code>.wi [...]
+Example:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>CREATE OR REPLACE PIPE &#34;test_database&#34;.&#34;public&#34;.&#34;test_gcs_pipe&#34;
+AS COPY INTO stream_table from @streamstage;</code></pre></div></div></p></li><li><p>Then:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>.withSnowPipe(&#34;test_gcs_pipe&#34;)</code></pre></div></div></p></li></ul></li></ul><p><strong>Note</strong>: this is important to provide <strong>schema</strong> and <strong>da [...]
 behind the scenes for writing from unbounded sources. StagingBucketName will be used to save CSV files which will end up in Snowflake.
-SnowflakeIO is not going to delete created CSV files from path under the “stagingBucketName” either during or after finishing streaming.</p><p><strong>Optional</strong> for streaming:</p><ul><li><p><code>.withFlushTimeLimit()</code></p><ul><li>Default value: 30 seconds</li><li>Accepts Duration objects with the specified time after each the streaming write will be repeated</li><li>Example: <code>.withFlushTimeLimit(Duration.millis(180000))</code></li></ul></li><li><p><code>.withFlushRowLi [...]
-    <span class=k>return</span> <span class=o>(</span><span class=n>SnowflakeIO</span><span class=o>.</span><span class=na>UserDataMapper</span><span class=o>&lt;</span><span class=n>Long</span><span class=o>&gt;)</span> <span class=n>recordLine</span> <span class=o>-&gt;</span> <span class=k>new</span> <span class=n>String</span><span class=o>[]</span> <span class=o>{</span><span class=n>recordLine</span><span class=o>.</span><span class=na>toString</span><span class=o>()};</span>
-<span class=o>}</span></code></pre></div></div></div></p><h3 id=additional-write-options>Additional write options</h3><h4 id=transformation-query>Transformation query</h4><p>The <code>.withQueryTransformation()</code> option for the <code>write()</code> operation accepts a SQL query as a String value, which will be performed while transfering data staged in CSV files directly to the target Snowflake table. For information about the transformation SQL syntax, see the <a href=https://docs. [...]
-<span class=n>data</span><span class=o>.</span><span class=na>apply</span><span class=o>(</span>
-   <span class=n>SnowflakeIO</span><span class=o>.&lt;~&gt;</span><span class=n>write</span><span class=o>()</span>
-       <span class=o>.</span><span class=na>withDataSourceConfiguration</span><span class=o>(</span><span class=n>dc</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>toTable</span><span class=o>(</span><span class=s>&#34;MY_TABLE&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStagingBucketName</span><span class=o>(</span><span class=s>&#34;BUCKET&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStorageIntegrationName</span><span class=o>(</span><span class=s>&#34;STORAGE INTEGRATION NAME&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withUserDataMapper</span><span class=o>(</span><span class=n>mapper</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withQueryTransformation</span><span class=o>(</span><span class=n>query</span><span class=o>)</span>
-<span class=o>)</span></code></pre></div></div></div></p><h4 id=write-disposition>Write disposition</h4><p>Define the write behaviour based on the table where data will be written to by specifying the <code>.withWriteDisposition(...)</code> option for the <code>write()</code> operation. The following values are supported:</p><ul><li><p>APPEND - Default behaviour. Written data is added to the existing rows in the table,</p></li><li><p>EMPTY - The target table must be empty; otherwise, the [...]
-   <span class=n>SnowflakeIO</span><span class=o>.&lt;~&gt;</span><span class=n>write</span><span class=o>()</span>
-       <span class=o>.</span><span class=na>withDataSourceConfiguration</span><span class=o>(</span><span class=n>dc</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>toTable</span><span class=o>(</span><span class=s>&#34;MY_TABLE&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStagingBucketName</span><span class=o>(</span><span class=s>&#34;BUCKET&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStorageIntegrationName</span><span class=o>(</span><span class=s>&#34;STORAGE INTEGRATION NAME&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withUserDataMapper</span><span class=o>(</span><span class=n>mapper</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withWriteDisposition</span><span class=o>(</span><span class=n>TRUNCATE</span><span class=o>)</span>
-<span class=o>)</span></code></pre></div></div></div></p><h4 id=create-disposition>Create disposition</h4><p>The <code>.withCreateDisposition()</code> option defines the behavior of the write operation if the target table does not exist . The following values are supported:</p><ul><li><p>CREATE_IF_NEEDED - default behaviour. The write operation checks whether the specified target table exists; if it does not, the write operation attempts to create the table Specify the schema for the tar [...]
-   <span class=n>SnowflakeIO</span><span class=o>.&lt;~&gt;</span><span class=n>write</span><span class=o>()</span>
-       <span class=o>.</span><span class=na>withDataSourceConfiguration</span><span class=o>(</span><span class=n>dc</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>toTable</span><span class=o>(</span><span class=s>&#34;MY_TABLE&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStagingBucketName</span><span class=o>(</span><span class=s>&#34;BUCKET&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStorageIntegrationName</span><span class=o>(</span><span class=s>&#34;STORAGE INTEGRATION NAME&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withUserDataMapper</span><span class=o>(</span><span class=n>mapper</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withCreateDisposition</span><span class=o>(</span><span class=n>CREATE_NEVER</span><span class=o>)</span>
-<span class=o>)</span></code></pre></div></div></div></p><h4 id=table-schema-disposition>Table schema disposition</h4><p>When the <code>.withCreateDisposition()</code> .option is set to <code>CREATE_IF_NEEDED</code>, the <code>.withTableSchema()</code> option enables specifying the schema for the created target table.
-A table schema is a list of <code>SFColumn</code> objects with name and type corresponding to column type for each column in the table.</p><p>Usage:<div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>SFTableSchema</span> <span class=n>table [...]
-    <span class=k>new</span> <span class=n>SFTableSchema</span><span class=o>(</span>
-        <span class=n>SFColumn</span><span class=o>.</span><span class=na>of</span><span class=o>(</span><span class=s>&#34;my_date&#34;</span><span class=o>,</span> <span class=k>new</span> <span class=n>SFDate</span><span class=o>(),</span> <span class=kc>true</span><span class=o>),</span>
-        <span class=k>new</span> <span class=n>SFColumn</span><span class=o>(</span><span class=s>&#34;id&#34;</span><span class=o>,</span> <span class=k>new</span> <span class=n>SFNumber</span><span class=o>()),</span>
-        <span class=n>SFColumn</span><span class=o>.</span><span class=na>of</span><span class=o>(</span><span class=s>&#34;name&#34;</span><span class=o>,</span> <span class=k>new</span> <span class=n>SFText</span><span class=o>(),</span> <span class=kc>true</span><span class=o>));</span>
+SnowflakeIO is not going to delete created CSV files from path under the “stagingBucketName” either during or after finishing streaming.</p><p><strong>Optional</strong> for streaming:</p><ul><li><p><code>.withFlushTimeLimit()</code></p><ul><li>Default value: 30 seconds</li><li>Accepts Duration objects with the specified time after each the streaming write will be repeated</li><li>Example: <code>.withFlushTimeLimit(Duration.millis(180000))</code></li></ul></li><li><p><code>.withFlushRowLi [...]
+    return (SnowflakeIO.UserDataMapper&lt;Long&gt;) recordLine -&gt; new String[] {recordLine.toString()};
+}</code></pre></div></div></p><h3 id=additional-write-options>Additional write options</h3><h4 id=transformation-query>Transformation query</h4><p>The <code>.withQueryTransformation()</code> option for the <code>write()</code> operation accepts a SQL query as a String value, which will be performed while transfering data staged in CSV files directly to the target Snowflake table. For information about the transformation SQL syntax, see the <a href=https://docs.snowflake.net/manuals/sql-r [...]
+data.apply(
+   SnowflakeIO.&lt;~&gt;write()
+       .withDataSourceConfiguration(dc)
+       .to(&#34;MY_TABLE&#34;)
+       .withStagingBucketName(&#34;BUCKET&#34;)
+       .withStorageIntegrationName(&#34;STORAGE INTEGRATION NAME&#34;)
+       .withUserDataMapper(mapper)
+       .withQueryTransformation(query)
+)</code></pre></div></div></p><h4 id=write-disposition>Write disposition</h4><p>Define the write behaviour based on the table where data will be written to by specifying the <code>.withWriteDisposition(...)</code> option for the <code>write()</code> operation. The following values are supported:</p><ul><li><p><code>APPEND</code> - Default behaviour. Written data is added to the existing rows in the table,</p></li><li><p><code>EMPTY</code> - The target table must be empty; otherwise, the  [...]
+   SnowflakeIO.&lt;~&gt;write()
+       .withDataSourceConfiguration(dc)
+       .to(&#34;MY_TABLE&#34;)
+       .withStagingBucketName(&#34;BUCKET&#34;)
+       .withStorageIntegrationName(&#34;STORAGE INTEGRATION NAME&#34;)
+       .withUserDataMapper(mapper)
+       .withWriteDisposition(TRUNCATE)
+)</code></pre></div></div></p><h4 id=create-disposition>Create disposition</h4><p>The <code>.withCreateDisposition()</code> option defines the behavior of the write operation if the target table does not exist . The following values are supported:</p><ul><li><p><code>CREATE_IF_NEEDED</code> - default behaviour. The write operation checks whether the specified target table exists; if it does not, the write operation attempts to create the table Specify the schema for the target table usin [...]
+   SnowflakeIO.&lt;~&gt;write()
+       .withDataSourceConfiguration(dc)
+       .to(&#34;MY_TABLE&#34;)
+       .withStagingBucketName(&#34;BUCKET&#34;)
+       .withStorageIntegrationName(&#34;STORAGE INTEGRATION NAME&#34;)
+       .withUserDataMapper(mapper)
+       .withCreateDisposition(CREATE_NEVER)
+)</code></pre></div></div></p><h4 id=table-schema-disposition>Table schema disposition</h4><p>When the <code>.withCreateDisposition()</code> option is set to <code>CREATE_IF_NEEDED</code>, the <code>.withTableSchema()</code> option enables specifying the schema for the created target table.
+A table schema is a list of <code>SnowflakeColumn</code> objects with name and type corresponding to column type for each column in the table.</p><p>Usage:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>SnowflakeTableSchema tableSchema =
+    new SnowflakeTableSchema(
+        SnowflakeColumn.of(&#34;my_date&#34;, new SnowflakeDate(), true),
+        new SnowflakeColumn(&#34;id&#34;, new SnowflakeNumber()),
+        SnowflakeColumn.of(&#34;name&#34;, new SnowflakeText(), true));
 
-<span class=n>data</span><span class=o>.</span><span class=na>apply</span><span class=o>(</span>
-   <span class=n>SnowflakeIO</span><span class=o>.&lt;~&gt;</span><span class=n>write</span><span class=o>()</span>
-       <span class=o>.</span><span class=na>withDataSourceConfiguration</span><span class=o>(</span><span class=n>dc</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>toTable</span><span class=o>(</span><span class=s>&#34;MY_TABLE&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStagingBucketName</span><span class=o>(</span><span class=s>&#34;BUCKET&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStorageIntegrationName</span><span class=o>(</span><span class=s>&#34;STORAGE INTEGRATION NAME&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withUserDataMapper</span><span class=o>(</span><span class=n>mapper</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withTableSchema</span><span class=o>(</span><span class=n>tableSchema</span><span class=o>)</span>
-<span class=o>)</span></code></pre></div></div></div></p><h2 id=reading-from-snowflake>Reading from Snowflake</h2><p>One of the functions of SnowflakeIO is reading Snowflake tables - either full tables via table name or custom data via query. Output of the read transform is a <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/values/PCollection.html>PCollection</a> of user-defined data type.</p><h3 id=general-usage-1>General usage</h3><p>The basic <code>.read()< [...]
-   <span class=n>SnowflakeIO</span><span class=o>.&lt;</span><span class=n>USER_DATA_TYPE</span><span class=o>&gt;</span><span class=n>read</span><span class=o>()</span>
-       <span class=o>.</span><span class=na>withDataSourceConfiguration</span><span class=o>(</span><span class=n>dc</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>fromTable</span><span class=o>(</span><span class=s>&#34;MY_TABLE&#34;</span><span class=o>)</span> <span class=c1>// or .fromQuery(&#34;QUERY&#34;)
-</span><span class=c1></span>       <span class=o>.</span><span class=na>withStagingBucketName</span><span class=o>(</span><span class=s>&#34;BUCKET&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withStorageIntegrationName</span><span class=o>(</span><span class=s>&#34;STORAGE INTEGRATION NAME&#34;</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withCsvMapper</span><span class=o>(</span><span class=n>mapper</span><span class=o>)</span>
-       <span class=o>.</span><span class=na>withCoder</span><span class=o>(</span><span class=n>coder</span><span class=o>));</span>
-<span class=o>)</span></code></pre></div></div></div>Where all below parameters are required:</p><ul><li><p><code>.withDataSourceConfiguration(...)</code></p><ul><li>Accepts a DataSourceConfiguration object.</li></ul></li><li><p><code>.fromTable(...) or .fromQuery(...)</code></p><ul><li>Specifies a Snowflake table name or custom SQL query.</li></ul></li><li><p><code>.withStagingBucketName()</code></p><ul><li>Accepts a cloud bucket name.</li></ul></li><li><p><code>.withStorageIntegrationN [...]
+data.apply(
+   SnowflakeIO.&lt;~&gt;write()
+       .withDataSourceConfiguration(dc)
+       .to(&#34;MY_TABLE&#34;)
+       .withStagingBucketName(&#34;BUCKET&#34;)
+       .withStorageIntegrationName(&#34;STORAGE INTEGRATION NAME&#34;)
+       .withUserDataMapper(mapper)
+       .withTableSchema(tableSchema)
+)</code></pre></div></div></p><h2 id=reading-from-snowflake>Reading from Snowflake</h2><p>One of the functions of SnowflakeIO is reading Snowflake tables - either full tables via table name or custom data via query. Output of the read transform is a <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/values/PCollection.html>PCollection</a> of user-defined data type.</p><h3 id=general-usage-1>General usage</h3><p>The basic <code>.read()</code> operation usage:<div [...]
+   SnowflakeIO.&lt;USER_DATA_TYPE&gt;read()
+       .withDataSourceConfiguration(dc)
+       .fromTable(&#34;MY_TABLE&#34;) // or .fromQuery(&#34;QUERY&#34;)
+       .withStagingBucketName(&#34;BUCKET&#34;)
+       .withStorageIntegrationName(&#34;STORAGE INTEGRATION NAME&#34;)
+       .withCsvMapper(mapper)
+       .withCoder(coder));
+)</code></pre></div></div>Where all below parameters are required:</p><ul><li><p><code>.withDataSourceConfiguration(...)</code></p><ul><li>Accepts a DataSourceConfiguration object.</li></ul></li><li><p><code>.fromTable(...) or .fromQuery(...)</code></p><ul><li>Specifies a Snowflake table name or custom SQL query.</li></ul></li><li><p><code>.withStagingBucketName()</code></p><ul><li>Accepts a cloud bucket name.</li></ul></li><li><p><code>.withStorageIntegrationName()</code></p></li><li><p [...]
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = GCS
 ENABLED = TRUE
@@ -183,78 +217,78 @@ STORAGE_PROVIDER = S3
 ENABLED = TRUE
 STORAGE_AWS_ROLE_ARN = &#39;&lt;ARN ROLE NAME&gt;&#39;
 STORAGE_ALLOWED_LOCATIONS = (&#39;s3://bucket/&#39;)</code></pre></div></div>Then:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>.withStorageIntegrationName(test_integration)</code></pre></div></div></p></li><li><p><code>.withCsvMapper(mapper)</code></p><ul><li>Accepts a <a href=https://beam.apache.org/documentation [...]
-SnowflakeIO uses COPY statements behind the scenes to read (using <a href=https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-location.html>COPY to location</a>) files staged in cloud storage.StagingBucketName will be used as a temporary location for storing CSV files. Those temporary directories will be named <code>sf_copy_csv_DATE_TIME_RANDOMSUFFIX</code> and they will be removed automatically once Read operation finishes.</p><h3 id=csvmapper>CSVMapper</h3><p>SnowflakeIO use [...]
-   <span class=k>return</span> <span class=o>(</span><span class=n>SnowflakeIO</span><span class=o>.</span><span class=na>CsvMapper</span><span class=o>&lt;</span><span class=n>GenericRecord</span><span class=o>&gt;)</span>
-           <span class=n>parts</span> <span class=o>-&gt;</span> <span class=o>{</span>
-               <span class=k>return</span> <span class=k>new</span> <span class=n>GenericRecordBuilder</span><span class=o>(</span><span class=n>PARQUET_SCHEMA</span><span class=o>)</span>
-                       <span class=o>.</span><span class=na>set</span><span class=o>(</span><span class=s>&#34;ID&#34;</span><span class=o>,</span> <span class=n>Long</span><span class=o>.</span><span class=na>valueOf</span><span class=o>(</span><span class=n>parts</span><span class=o>[</span><span class=n>0</span><span class=o>]))</span>
-                       <span class=o>.</span><span class=na>set</span><span class=o>(</span><span class=s>&#34;NAME&#34;</span><span class=o>,</span> <span class=n>parts</span><span class=o>[</span><span class=n>1</span><span class=o>])</span>
-                       <span class=o>[...]</span>
-                       <span class=o>.</span><span class=na>build</span><span class=o>();</span>
-           <span class=o>};</span>
-<span class=o>}</span></code></pre></div></div></div></p><h2 id=using-snowflakeio-with-aws-s3>Using SnowflakeIO with AWS S3</h2><p>To be able to use AWS S3 bucket as <code>stagingBucketName</code> is required to:</p><ol><li>Create <code>PipelineOptions</code> interface which is <a href=https://beam.apache.org/documentation/io/built-in/snowflake/#extending-pipeline-options>extending</a> <code>SnowflakePipelineOptions</code> and <a href=https://beam.apache.org/releases/javadoc/current/org/ [...]
-with <code>AwsAccessKey</code> and <code>AwsSecretKey</code> options. Example:</li></ol><p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=kd>public</span> <span class=kd>interface</span> <span class=nc>AwsPipelineOptions</span> <span cla [...]
+SnowflakeIO uses <code>COPY</code> statements behind the scenes to read (using <a href=https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-location.html>COPY to location</a>) files staged in cloud storage.StagingBucketName will be used as a temporary location for storing CSV files. Those temporary directories will be named <code>sf_copy_csv_DATE_TIME_RANDOMSUFFIX</code> and they will be removed automatically once Read operation finishes.</p><h3 id=csvmapper>CSVMapper</h3><p>Sn [...]
+   return (SnowflakeIO.CsvMapper&lt;GenericRecord&gt;)
+           parts -&gt; {
+               return new GenericRecordBuilder(PARQUET_SCHEMA)
+                       .set(&#34;ID&#34;, Long.valueOf(parts[0]))
+                       .set(&#34;NAME&#34;, parts[1])
+                       [...]
+                       .build();
+           };
+}</code></pre></div></div></p><h2 id=using-snowflakeio-with-aws-s3>Using SnowflakeIO with AWS S3</h2><p>To be able to use AWS S3 bucket as <code>stagingBucketName</code> is required to:</p><ol><li>Create <code>PipelineOptions</code> interface which is <a href=https://beam.apache.org/documentation/io/built-in/snowflake/#extending-pipeline-options>extending</a> <code>SnowflakePipelineOptions</code> and <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/aws/opti [...]
+with <code>AwsAccessKey</code> and <code>AwsSecretKey</code> options. Example:</li></ol><p><div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>public interface AwsPipelineOptions extends SnowflakePipelineOptions, S3Options {
 
-    <span class=nd>@Description</span><span class=o>(</span><span class=s>&#34;AWS Access Key&#34;</span><span class=o>)</span>
-    <span class=nd>@Default.String</span><span class=o>(</span><span class=s>&#34;access_key&#34;</span><span class=o>)</span>
-    <span class=n>String</span> <span class=nf>getAwsAccessKey</span><span class=o>();</span>
+    @Description(&#34;AWS Access Key&#34;)
+    @Default.String(&#34;access_key&#34;)
+    String getAwsAccessKey();
 
-    <span class=kt>void</span> <span class=nf>setAwsAccessKey</span><span class=o>(</span><span class=n>String</span> <span class=n>awsAccessKey</span><span class=o>);</span>
+    void setAwsAccessKey(String awsAccessKey);
 
-    <span class=nd>@Description</span><span class=o>(</span><span class=s>&#34;AWS secret key&#34;</span><span class=o>)</span>
-    <span class=nd>@Default.String</span><span class=o>(</span><span class=s>&#34;secret_key&#34;</span><span class=o>)</span>
-    <span class=n>String</span> <span class=nf>getAwsSecretKey</span><span class=o>();</span>
+    @Description(&#34;AWS secret key&#34;)
+    @Default.String(&#34;secret_key&#34;)
+    String getAwsSecretKey();
 
-    <span class=kt>void</span> <span class=nf>setAwsSecretKey</span><span class=o>(</span><span class=n>String</span> <span class=n>awsSecretKey</span><span class=o>);</span>
-<span class=o>}</span></code></pre></div></div></div>2. Set <code>AwsCredentialsProvider</code> option by using <code>AwsAccessKey</code> and <code>AwsSecretKey</code> options.</p><p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>optio [...]
-    <span class=k>new</span> <span class=n>AWSStaticCredentialsProvider</span><span class=o>(</span>
-        <span class=k>new</span> <span class=n>BasicAWSCredentials</span><span class=o>(</span><span class=n>options</span><span class=o>.</span><span class=na>getAwsAccessKey</span><span class=o>(),</span> <span class=n>options</span><span class=o>.</span><span class=na>getAwsSecretKey</span><span class=o>())</span>
-    <span class=o>)</span>
-<span class=o>);</span></code></pre></div></div></div>3. Create pipeline</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>Pipeline</span> <span class=n>p</span> <span class=o>=</span> <span class=n>Pipeline</span><span class=o>.</span [...]
+    void setAwsSecretKey(String awsSecretKey);
+}</code></pre></div></div>2. Set <code>AwsCredentialsProvider</code> option by using <code>AwsAccessKey</code> and <code>AwsSecretKey</code> options.</p><p><div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>options.setAwsCredentialsProvider(
+    new AWSStaticCredentialsProvider(
+        new BasicAWSCredentials(options.getAwsAccessKey(), options.getAwsSecretKey())
+    )
+);</code></pre></div></div>3. Create pipeline</p><div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>Pipeline p = Pipeline.create(options);</code></pre></div></div><p><strong>Note</strong>: Remember to set <code>awsRegion</code> from <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/aws/opti [...]
 cross-language which is part of <a href=https://beam.apache.org/roadmap/portability/>Portability Framework Roadmap</a> which aims to provide full interoperability
 across the Beam ecosystem. From a developer perspective it means the possibility of combining transforms written in different languages(Java/Python/Go).</p><p>For more information about cross-language please see <a href=https://beam.apache.org/roadmap/connectors-multi-sdk/>multi sdk efforts</a>
-and <a href=https://beam.apache.org/roadmap/connectors-multi-sdk/#cross-language-transforms-api-and-expansion-service>Cross-language transforms API and expansion service</a> articles.</p><h3 id=reading-from-snowflake-1>Reading from Snowflake</h3><p>One of the functions of SnowflakeIO is reading Snowflake tables - either full tables via table name or custom data via query. Output of the read transform is a <a href=https://beam.apache.org/releases/pydoc/current/apache_beam.pvalue.html#apac [...]
+and <a href=https://beam.apache.org/roadmap/connectors-multi-sdk/#cross-language-transforms-api-and-expansion-service>Cross-language transforms API and expansion service</a> articles.</p><p>Additional resources:</p><ul><li><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/snowflake.py>SnowflakeIO source code</a></li><li><a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.snowflake.html>SnowflakeIO Pydoc</a></li><li><a href=https://docs.snowfla [...]
 
-<span class=k>with</span> <span class=n>TestPipeline</span><span class=p>(</span><span class=n>options</span><span class=o>=</span><span class=n>PipelineOptions</span><span class=p>(</span><span class=n>OPTIONS</span><span class=p>))</span> <span class=k>as</span> <span class=n>p</span><span class=p>:</span>
-   <span class=p>(</span><span class=n>p</span>
-       <span class=o>|</span> <span class=n>ReadFromSnowflake</span><span class=p>(</span><span class=o>...</span><span class=p>)</span>
-       <span class=o>|</span> <span class=o>&lt;</span><span class=n>FURTHER</span> <span class=n>TRANSFORMS</span><span class=o>&gt;</span><span class=p>)</span></code></pre></div></div></div><h4 id=required-parameters>Required parameters</h4><ul><li><p><code>server_name</code> Full Snowflake server name with an account, zone, and domain.</p></li><li><p><code>schema</code> Name of the Snowflake schema in the database to use.</p></li><li><p><code>database</code> Name of the Snowflake dat [...]
-Example:<div class="language-py snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-py data-lang=py><span class=k>def</span> <span class=nf>csv_mapper</span><span class=p>(</span><span class=n>strings_array</span><span class=p>):</span>
-    <span class=k>return</span> <span class=n>User</span><span class=p>(</span><span class=n>strings_array</span><span class=p>[</span><span class=mi>0</span><span class=p>],</span> <span class=nb>int</span><span class=p>(</span><span class=n>strings_array</span><span class=p>[</span><span class=mi>1</span><span class=p>])))</span></code></pre></div></div></div></p></li><li><p><code>table</code> or <code>query</code> Specifies a Snowflake table name or custom SQL query</p></li></ul><h4 i [...]
+with TestPipeline(options=PipelineOptions(OPTIONS)) as p:
+   (p
+       | ReadFromSnowflake(...)
+       | &lt;FURTHER TRANSFORMS&gt;)</code></pre></div></div><h4 id=required-parameters>Required parameters</h4><ul><li><p><code>server_name</code> Full Snowflake server name with an account, zone, and domain.</p></li><li><p><code>schema</code> Name of the Snowflake schema in the database to use.</p></li><li><p><code>database</code> Name of the Snowflake database to use.</p></li><li><p><code>staging_bucket_name</code> Name of the Google Cloud Storage bucket or AWS S3 bucket. Bucket will  [...]
+Example:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>def csv_mapper(strings_array):
+    return User(strings_array[0], int(strings_array[1])))</code></pre></div></div></p></li><li><p><code>table</code> or <code>query</code> Specifies a Snowflake table name or custom SQL query</p></li></ul><h4 id=authentication-parameters>Authentication parameters</h4><p>It’s required to pass one of the following combinations of valid parameters for authentication:</p><ul><li><p><code>username</code> and <code>password</code> Specifies username and password for username/password authentic [...]
 
-<span class=k>with</span> <span class=n>TestPipeline</span><span class=p>(</span><span class=n>options</span><span class=o>=</span><span class=n>PipelineOptions</span><span class=p>(</span><span class=n>OPTIONS</span><span class=p>))</span> <span class=k>as</span> <span class=n>p</span><span class=p>:</span>
-   <span class=p>(</span><span class=n>p</span>
-       <span class=o>|</span> <span class=o>&lt;</span><span class=n>SOURCE</span> <span class=n>OF</span> <span class=n>DATA</span><span class=o>&gt;</span>
-       <span class=o>|</span> <span class=n>WriteToSnowflake</span><span class=p>(</span>
-           <span class=n>server_name</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>SERVER</span> <span class=n>NAME</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>username</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>USERNAME</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>password</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>PASSWORD</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>o_auth_token</span><span class=o>=&lt;</span><span class=n>OAUTH</span> <span class=n>TOKEN</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>private_key_path</span><span class=o>=&lt;</span><span class=n>PATH</span> <span class=n>TO</span> <span class=n>P8</span> <span class=n>FILE</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>raw_private_key</span><span class=o>=&lt;</span><span class=n>PRIVATE_KEY</span><span class=o>&gt;</span>
-           <span class=n>private_key_passphrase</span><span class=o>=&lt;</span><span class=n>PASSWORD</span> <span class=n>FOR</span> <span class=n>KEY</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>schema</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>SCHEMA</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>database</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>DATABASE</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>staging_bucket_name</span><span class=o>=&lt;</span><span class=n>GCS</span> <span class=n>OR</span> <span class=n>S3</span> <span class=n>BUCKET</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>storage_integration_name</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>STORAGE</span> <span class=n>INTEGRATION</span> <span class=n>NAME</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>create_disposition</span><span class=o>=&lt;</span><span class=n>CREATE</span> <span class=n>DISPOSITION</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>write_disposition</span><span class=o>=&lt;</span><span class=n>WRITE</span> <span class=n>DISPOSITION</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>table_schema</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>TABLE</span> <span class=n>SCHEMA</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>user_data_mapper</span><span class=o>=&lt;</span><span class=n>USER</span> <span class=n>DATA</span> <span class=n>MAPPER</span> <span class=n>FUNCTION</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>table</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>TABLE</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>query</span><span class=o>=&lt;</span><span class=n>IF</span> <span class=n>NOT</span> <span class=n>TABLE</span> <span class=n>THEN</span> <span class=n>QUERY</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>role</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>ROLE</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>warehouse</span><span class=o>=&lt;</span><span class=n>SNOWFLAKE</span> <span class=n>WAREHOUSE</span><span class=o>&gt;</span><span class=p>,</span>
-           <span class=n>expansion_service</span><span class=o>=&lt;</span><span class=n>EXPANSION</span> <span class=n>SERVICE</span> <span class=n>ADDRESS</span><span class=o>&gt;</span><span class=p>))</span></code></pre></div></div></div><h4 id=required-parameters-1>Required parameters</h4><ul><li><p><code>server_name</code> Full Snowflake server name with account, zone and domain.</p></li><li><p><code>schema</code> Name of the Snowflake schema in the database to use.</p></li><li><p> [...]
-Example:<div class="language-py snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-py data-lang=py><span class=k>def</span> <span class=nf>user_data_mapper</span><span class=p>(</span><span class=n>user</span><span class=p>):</span>
-    <span class=k>return</span> <span class=p>[</span><span class=n>user</span><span class=o>.</span><span class=n>name</span><span class=p>,</span> <span class=nb>str</span><span class=p>(</span><span class=n>user</span><span class=o>.</span><span class=n>age</span><span class=p>)]</span></code></pre></div></div></div></p></li><li><p><code>table</code> or <code>query</code> Specifies a Snowflake table name or custom SQL query</p></li></ul><h4 id=authentication-parameters-1>Authenticatio [...]
-    <span class=p>{</span>
-      <span class=s2>&#34;dataType&#34;</span><span class=p>:{</span><span class=s2>&#34;type&#34;</span><span class=p>:</span><span class=s2>&#34;&lt;COLUMN DATA TYPE&gt;&#34;</span><span class=p>},</span>
-      <span class=s2>&#34;name&#34;</span><span class=p>:</span><span class=s2>&#34;&lt;COLUMN  NAME&gt; &#34;</span><span class=p>,</span>
-      <span class=s2>&#34;nullable&#34;</span><span class=p>:</span> <span class=o>&lt;</span><span class=n>NULLABLE</span><span class=o>&gt;</span>
-    <span class=p>},</span>
-        <span class=o>...</span>
-  <span class=p>]}</span></code></pre></div></div></div>All supported data types:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>{&#34;type&#34;:&#34;date&#34;},
+with TestPipeline(options=PipelineOptions(OPTIONS)) as p:
+   (p
+       | &lt;SOURCE OF DATA&gt;
+       | WriteToSnowflake(
+           server_name=&lt;SNOWFLAKE SERVER NAME&gt;,
+           username=&lt;SNOWFLAKE USERNAME&gt;,
+           password=&lt;SNOWFLAKE PASSWORD&gt;,
+           o_auth_token=&lt;OAUTH TOKEN&gt;,
+           private_key_path=&lt;PATH TO P8 FILE&gt;,
+           raw_private_key=&lt;PRIVATE_KEY&gt;
+           private_key_passphrase=&lt;PASSWORD FOR KEY&gt;,
+           schema=&lt;SNOWFLAKE SCHEMA&gt;,
+           database=&lt;SNOWFLAKE DATABASE&gt;,
+           staging_bucket_name=&lt;GCS OR S3 BUCKET&gt;,
+           storage_integration_name=&lt;SNOWFLAKE STORAGE INTEGRATION NAME&gt;,
+           create_disposition=&lt;CREATE DISPOSITION&gt;,
+           write_disposition=&lt;WRITE DISPOSITION&gt;,
+           table_schema=&lt;SNOWFLAKE TABLE SCHEMA&gt;,
+           user_data_mapper=&lt;USER DATA MAPPER FUNCTION&gt;,
+           table=&lt;SNOWFLAKE TABLE&gt;,
+           query=&lt;IF NOT TABLE THEN QUERY&gt;,
+           role=&lt;SNOWFLAKE ROLE&gt;,
+           warehouse=&lt;SNOWFLAKE WAREHOUSE&gt;,
+           expansion_service=&lt;EXPANSION SERVICE ADDRESS&gt;))</code></pre></div></div><h4 id=required-parameters-1>Required parameters</h4><ul><li><p><code>server_name</code> Full Snowflake server name with account, zone and domain.</p></li><li><p><code>schema</code> Name of the Snowflake schema in the database to use.</p></li><li><p><code>database</code> Name of the Snowflake database to use.</p></li><li><p><code>staging_bucket_name</code> Path to Google Cloud Storage bucket or AWS S [...]
+Example:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>def user_data_mapper(user):
+    return [user.name, str(user.age)]</code></pre></div></div></p></li><li><p><code>table</code> or <code>query</code> Specifies a Snowflake table name or custom SQL query</p></li></ul><h4 id=authentication-parameters-1>Authentication parameters</h4><p>It’s required to pass one of the following combination of valid parameters for authentication:</p><ul><li><p><code>username</code> and <code>password</code> Specifies username/password authentication method.</p></li><li><p><code>private_ke [...]
+    {
+      &#34;dataType&#34;:{&#34;type&#34;:&#34;&lt;COLUMN DATA TYPE&gt;&#34;},
+      &#34;name&#34;:&#34;&lt;COLUMN  NAME&gt; &#34;,
+      &#34;nullable&#34;: &lt;NULLABLE&gt;
+    },
+        ...
+  ]}</code></pre></div></div>All supported data types:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre><code>{&#34;type&#34;:&#34;date&#34;},
 {&#34;type&#34;:&#34;datetime&#34;},
 {&#34;type&#34;:&#34;time&#34;},
 {&#34;type&#34;:&#34;timestamp&#34;},
@@ -277,7 +311,7 @@ Example:<div class="language-py snippet"><div class="notebook-skip code-snippet"
 {&#34;type&#34;:&#34;string&#34;,&#34;length&#34;:null},
 {&#34;type&#34;:&#34;text&#34;,&#34;length&#34;:null},
 {&#34;type&#34;:&#34;varbinary&#34;,&#34;size&#34;:null},
-{&#34;type&#34;:&#34;varchar&#34;,&#34;length&#34;:100}]</code></pre></div></div>You can read about Snowflake data types at <a href=https://docs.snowflake.com/en/sql-reference/data-types.html>Snowflake data types</a>.</p></li><li><p><code>expansion_service</code> Specifies URL of expansion service.</p></li></ul><div class=feedback><p class=update>Last updated on 2020/12/11</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is ther [...]
+{&#34;type&#34;:&#34;varchar&#34;,&#34;length&#34;:100}]</code></pre></div></div>You can read about Snowflake data types at <a href=https://docs.snowflake.com/en/sql-reference/data-types.html>Snowflake data types</a>.</p></li><li><p><code>expansion_service</code> Specifies URL of expansion service.</p></li></ul><h2 id=limitations>Limitations</h2><p>SnowflakeIO currently has the following limitations.</p><ol><li><p>Streaming writing supports only pair key authentication. For details, see: [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/io/developing-io-python/index.html b/website/generated-content/documentation/io/developing-io-python/index.html
index 83d776b..6eee88f 100644
--- a/website/generated-content/documentation/io/developing-io-python/index.html
+++ b/website/generated-content/documentation/io/developing-io-python/index.html
@@ -25,7 +25,7 @@ source and a sink. All Beam sources and sinks are composite transforms; however,
 the implementation of your custom I/O depends on your use case. Before you
 start, read the <a href=/documentation/io/developing-io-overview/>new I/O connector overview</a>
 for an overview of developing a new I/O connector, the available implementation
-options, and how to choose the right option for your use case.</p><p>This guide covers using the <a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.iobase.html>Source and FileBasedSink interfaces</a>
+options, and how to choose the right option for your use case.</p><p>This guide covers using the <a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.iobase.html>Source and FileBasedSink interfaces</a>
 for Python. The Java SDK offers the same functionality, but uses a slightly
 different API. See <a href=/documentation/io/developing-io-java/>Developing I/O connectors for Java</a>
 for information specific to the Java SDK.</p><h2 id=basic-code-reqs>Basic code requirements</h2><p>Beam runners use the classes you provide to read and/or write data using
@@ -52,7 +52,7 @@ manage a range for a given position type.</li><li>One or more user-facing wrappe
 wrap read operations. <a href=#ptransform-wrappers>PTransform wrappers</a> discusses
 why you should avoid exposing your sources, and walks through how to create
 a wrapper.</li></ul><p>You can find these classes in the
-<a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.iobase.html>apache_beam.io.iobase module</a>.</p><h3 id=implementing-the-boundedsource-subclass>Implementing the BoundedSource subclass</h3><p><code>BoundedSource</code> represents a finite data set from which the service reads, possibly in parallel. <code>BoundedSource</code> contains a set of methods that the service uses to split the data set for reading by multiple remote workers.</p><p>To implement a <code>BoundedS [...]
+<a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.iobase.html>apache_beam.io.iobase module</a>.</p><h3 id=implementing-the-boundedsource-subclass>Implementing the BoundedSource subclass</h3><p><code>BoundedSource</code> represents a finite data set from which the service reads, possibly in parallel. <code>BoundedSource</code> contains a set of methods that the service uses to split the data set for reading by multiple remote workers.</p><p>To implement a <code>BoundedS [...]
   def __init__(self, count):
     self.records_read = Metrics.counter(self.__class__, &#39;recordsRead&#39;)
     self._count = count
@@ -95,7 +95,7 @@ a wrapper.</li></ul><p>You can find these classes in the
 recommended that you do not expose the code for the source itself as
 demonstrated in the example above. Use a wrapping <code>PTransform</code> instead.
 <a href=#ptransform-wrappers>PTransform wrappers</a> discusses why you should avoid
-exposing your sources, and walks through how to create a wrapper.</p><h2 id=using-the-filebasedsink-abstraction>Using the FileBasedSink abstraction</h2><p>If your data source uses files, you can implement the <a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.filebasedsink.html>FileBasedSink</a>
+exposing your sources, and walks through how to create a wrapper.</p><h2 id=using-the-filebasedsink-abstraction>Using the FileBasedSink abstraction</h2><p>If your data source uses files, you can implement the <a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.filebasedsink.html>FileBasedSink</a>
 abstraction to create a file-based sink. For other sinks, use <code>ParDo</code>,
 <code>GroupByKey</code>, and other transforms offered by the Beam SDK for Python. See the
 <a href=/documentation/io/developing-io-overview/>developing I/O connectors overview</a>
diff --git a/website/generated-content/documentation/pipelines/test-your-pipeline/index.html b/website/generated-content/documentation/pipelines/test-your-pipeline/index.html
index 67c0054..7c94d8a 100644
--- a/website/generated-content/documentation/pipelines/test-your-pipeline/index.html
+++ b/website/generated-content/documentation/pipelines/test-your-pipeline/index.html
@@ -19,7 +19,7 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Documentation</span></li><li><a href=/documentation>Using the Documentation</a></li><li class=section-nav-item--collapsible><span class=section-nav-lis [...]
-    <span class=o>...</span></code></pre></div></div></div><blockquote><p><strong>Note:</strong> Read about testing unbounded pipelines in Beam in <a href=/blog/2016/10/20/test-stream.html>this blog post</a>.</p></blockquote><h3 id=using-the-create-transform>Using the Create Transform</h3><p>You can use the <code>Create</code> transform to create a <code>PCollection</code> out of a standard in-memory collection class, such as Java or Python <code>List</code>. See <a href=/documentation/p [...]
+    <span class=o>...</span></code></pre></div></div></div><blockquote><p><strong>Note:</strong> Read about testing unbounded pipelines in Beam in <a href=/blog/2016/10/20/test-stream.html>this blog post</a>.</p></blockquote><h3 id=using-the-create-transform>Using the Create Transform</h3><p>You can use the <code>Create</code> transform to create a <code>PCollection</code> out of a standard in-memory collection class, such as Java or Python <code>List</code>. See <a href=/documentation/p [...]
 
 <span class=c1>// Check whether a PCollection contains some elements in any order.
 </span><span class=c1></span><span class=n>PAssert</span><span class=o>.</span><span class=na>that</span><span class=o>(</span><span class=n>output</span><span class=o>)</span>
@@ -39,7 +39,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
     <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>hamcrest</span><span class=o>-</span><span class=n>all</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
     <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>1</span><span class=o>.</span><span class=na>3</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
     <span class=o>&lt;</span><span class=n>scope</span><span class=o>&gt;</span><span class=n>test</span><span class=o>&lt;/</span><span class=n>scope</span><span class=o>&gt;</span>
-<span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><p>For more information on how these classes work, see the <a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/testing/package-summary.html>org.apache.beam.sdk.testing</a> package documentation.</p><h3 id=an-example-test-for-a-composite-transform>An Example Test for a Composite Transform</h3><p>The following code shows a complete test for a c [...]
+<span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><p>For more information on how these classes work, see the <a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/testing/package-summary.html>org.apache.beam.sdk.testing</a> package documentation.</p><h3 id=an-example-test-for-a-composite-transform>An Example Test for a Composite Transform</h3><p>The following code shows a complete test for a c [...]
 
   <span class=c1>// Our static input data, which will make up the initial PCollection.
 </span><span class=c1></span>  <span class=kd>static</span> <span class=kd>final</span> <span class=n>String</span><span class=o>[]</span> <span class=n>WORDS_ARRAY</span> <span class=o>=</span> <span class=k>new</span> <span class=n>String</span><span class=o>[]</span> <span class=o>{</span>
diff --git a/website/generated-content/documentation/programming-guide/index.html b/website/generated-content/documentation/programming-guide/index.html
index 19afa80..caca6af 100644
--- a/website/generated-content/documentation/programming-guide/index.html
+++ b/website/generated-content/documentation/programming-guide/index.html
@@ -70,7 +70,7 @@ objects you&rsquo;ve created and transforms that you&rsquo;ve applied. That grap
 executed using the appropriate distributed processing back-end, becoming an
 asynchronous &ldquo;job&rdquo; (or equivalent) on that back-end.</p><h2 id=creating-a-pipeline>2. Creating a pipeline</h2><p>The <code>Pipeline</code> abstraction encapsulates all the data and steps in your data
 processing task. Your Beam driver program typically starts by constructing a
-<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/Pipeline.html>Pipeline</a></span>
+<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/Pipeline.html>Pipeline</a></span>
 <span class=language-py><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/pipeline.py>Pipeline</a></span>
 <span class=language-go><a href=https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/pipeline.go#L62>Pipeline</a></span>
 object, and then using that object as the basis for creating the pipeline&rsquo;s data
@@ -165,7 +165,7 @@ compatible with all other registered options.</p><p class=language-java>The foll
 with <code>PipelineOptionsFactory</code>:</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>PipelineOptionsFactory</span><span class=o>.</span><span class=na>register</span><span class=o>(</span><span class=n>MyOptions</span><span clas [...]
 <span class=n>MyOptions</span> <span class=n>options</span> <span class=o>=</span> <span class=n>PipelineOptionsFactory</span><span class=o>.</span><span class=na>fromArgs</span><span class=o>(</span><span class=n>args</span><span class=o>)</span>
                                                 <span class=o>.</span><span class=na>withValidation</span><span class=o>()</span>
-                                                <span class=o>.</span><span class=na>as</span><span class=o>(</span><span class=n>MyOptions</span><span class=o>.</span><span class=na>class</span><span class=o>);</span></code></pre></div></div></div><p>Now your pipeline can accept <code>--input=value</code> and <code>--output=value</code> as command-line arguments.</p><h2 id=pcollections>3. PCollections</h2><p>The <span class=language-java><a href=https://beam.apache.org/releases/javadoc/ [...]
+                                                <span class=o>.</span><span class=na>as</span><span class=o>(</span><span class=n>MyOptions</span><span class=o>.</span><span class=na>class</span><span class=o>);</span></code></pre></div></div></div><p>Now your pipeline can accept <code>--input=value</code> and <code>--output=value</code> as command-line arguments.</p><h2 id=pcollections>3. PCollections</h2><p>The <span class=language-java><a href=https://beam.apache.org/releases/javadoc/ [...]
 <span class=language-py><code>PCollection</code></span>
 <span class=language-go><a href=https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/pcollection.go#L39>PCollection</a></span>
 abstraction represents a
@@ -902,7 +902,7 @@ parameters maps to the ordering of the <code>CoGroupByKey</code> inputs.</p><div
 	<span class=s>&#34;carl; [&#39;carl@email.com&#39;, &#39;carl@example.com&#39;]; [&#39;444-555-6666&#39;]&#34;</span><span class=p>,</span>
 	<span class=s>&#34;james; []; [&#39;222-333-4444&#39;]&#34;</span><span class=p>,</span>
 	<span class=s>&#34;julia; [&#39;julia@example.com&#39;]; []&#34;</span><span class=p>,</span>
-<span class=p>}</span></code></pre></div></div></div><h4 id=combine>4.2.4. Combine</h4><p><span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/Combine.html><code>Combine</code></a></span>
+<span class=p>}</span></code></pre></div></div></div><h4 id=combine>4.2.4. Combine</h4><p><span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/Combine.html><code>Combine</code></a></span>
 <span class=language-py><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/core.py><code>Combine</code></a></span>
 <span class=language-go><a href=https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/combine.go#L27><code>Combine</code></a></span>
 is a Beam transform for combining collections of elements or values in your
@@ -1151,7 +1151,7 @@ PerKey must be an associative reduction function or a
 </span><span class=c1></span>
 <span class=nx>avgAccuracyPerPlayer</span> <span class=o>:=</span> <span class=nx>stats</span><span class=p>.</span><span class=nf>MeanPerKey</span><span class=p>(</span><span class=nx>s</span><span class=p>,</span> <span class=nx>playerAccuracies</span><span class=p>)</span>
 
-<span class=o>//</span> <span class=nx>avgAccuracyPerPlayer</span> <span class=nx>is</span> <span class=nx>a</span> <span class=nx>PCollection</span><span class=p>&lt;</span><span class=kt>string</span><span class=p>,</span><span class=kt>float64</span><span class=p>&gt;</span></code></pre></div></div></div><h4 id=flatten>4.2.5. Flatten</h4><p><span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/Flatten.html><code>Fla [...]
+<span class=o>//</span> <span class=nx>avgAccuracyPerPlayer</span> <span class=nx>is</span> <span class=nx>a</span> <span class=nx>PCollection</span><span class=p>&lt;</span><span class=kt>string</span><span class=p>,</span><span class=kt>float64</span><span class=p>&gt;</span></code></pre></div></div></div><h4 id=flatten>4.2.5. Flatten</h4><p><span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/Flatten.html><code>Fla [...]
 <span class=language-py><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/core.py><code>Flatten</code></a></span>
 <span class=language-go><a href=https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/flatten.go><code>Flatten</code></a></span>
 is a Beam transform for <code>PCollection</code> objects that store the same data type.
@@ -1182,7 +1182,7 @@ compatible windowing strategy and window sizing. For example, all the
 collections you&rsquo;re merging must all use (hypothetically) identical 5-minute
 fixed windows or 4-minute sliding windows starting every 30 seconds.</p><p>If your pipeline attempts to use <code>Flatten</code> to merge <code>PCollection</code> objects with
 incompatible windows, Beam generates an <code>IllegalStateException</code> error when your
-pipeline is constructed.</p><h4 id=partition>4.2.6. Partition</h4><p><span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/Partition.html><code>Partition</code></a></span>
+pipeline is constructed.</p><h4 id=partition>4.2.6. Partition</h4><p><span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/Partition.html><code>Partition</code></a></span>
 <span class=language-py><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/core.py><code>Partition</code></a></span>
 <span class=language-go><a href=https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/partition.go><code>Partition</code></a></span>
 is a Beam transform for <code>PCollection</code> objects that store the same data
@@ -1723,7 +1723,7 @@ multiple simpler transforms (such as more than one <code>ParDo</code>, <code>Com
 <code>GroupByKey</code>, or even other composite transforms). These transforms are called
 composite transforms. Nesting multiple transforms inside a single composite
 transform can make your code more modular and easier to understand.</p><p>The Beam SDK comes packed with many useful composite transforms. See the API
-reference pages for a list of transforms:</p><ul><li><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/package-summary.html>Pre-written Beam transforms for Java</a></li><li><a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.transforms.html>Pre-written Beam transforms for Python</a></li><li><a href=https://github.com/apache/beam/tree/master/sdks/go/pkg/beam/transforms>Pre-written Beam transforms for Go</a></li></ul><h4 id=comp [...]
+reference pages for a list of transforms:</p><ul><li><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/package-summary.html>Pre-written Beam transforms for Java</a></li><li><a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.transforms.html>Pre-written Beam transforms for Python</a></li><li><a href=https://github.com/apache/beam/tree/master/sdks/go/pkg/beam/transforms>Pre-written Beam transforms for Go</a></li></ul><h4 id=comp [...]
 is an example of a composite transform. <code>CountWords</code> is a <code>PTransform</code>
 <span class="language-java language-py">subclass</span> that consists
 of multiple nested transforms.</p><p><span class="language-java language-py">In its <code>expand</code> method, the</span>
@@ -2546,7 +2546,7 @@ each element of a <code>PCollection</code>, and data sources that create fixed d
 all the elements are by default part of a single, global window.</p><p>To use windowing with fixed data sets, you can assign your own timestamps to
 each element. To assign timestamps to elements, use a <code>ParDo</code> transform with a
 <code>DoFn</code> that outputs each element with a new timestamp (for example, the
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/transforms/WithTimestamps.html>WithTimestamps</a>
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/transforms/WithTimestamps.html>WithTimestamps</a>
 transform in the Beam SDK for Java).</p><p>To illustrate how windowing with a bounded <code>PCollection</code> can affect how your
 pipeline processes data, consider the following pipeline:</p><p><img src=/images/unwindowed-pipeline-bounded.svg alt="Diagram of GroupByKey and ParDo without windowing, on a bounded collection"></p><p><strong>Figure 4:</strong> <code>GroupByKey</code> and <code>ParDo</code> without windowing, on a bounded collection.</p><p>In the above pipeline, we create a bounded <code>PCollection</code> by reading lines from a
 file using <code>TextIO</code>. We then group the collection using <code>GroupByKey</code>,
diff --git a/website/generated-content/documentation/runners/dataflow/index.html b/website/generated-content/documentation/runners/dataflow/index.html
index 999e905..2883030 100644
--- a/website/generated-content/documentation/runners/dataflow/index.html
+++ b/website/generated-content/documentation/runners/dataflow/index.html
@@ -26,7 +26,7 @@ Manager. You may need to enable additional APIs (such as BigQuery, Cloud
 Pub/Sub, or Cloud Datastore) if you use them in your pipeline code.</li><li>Authenticate with Google Cloud Platform.</li><li>Install the Google Cloud SDK.</li><li>Create a Cloud Storage bucket.</li></ol><h3 id=dependency>Specify your dependency</h3><p><span class=language-java>When using Java, you must specify your dependency on the Cloud Dataflow Runner in your <code>pom.xml</code>.</span><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=butto [...]
   <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>runners</span><span class=o>-</span><span class=n>google</span><span class=o>-</span><span class=n>cloud</span><span class=o>-</span><span class=n>dataflow</span><span class=o>-</span><span class=n>java</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>scope</span><span class=o>&gt;</span><span class=n>runtime</span><span class=o>&lt;/</span><span class=n>scope</span><span class=o>&gt;</span>
 <span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div></p><p><span class=language-py>This section is not applicable to the Beam SDK for Python.</span></p><h3 id=self-executing-jar>Self executing JAR</h3><p class=language-py>This section is not applicable to the Beam SDK for Python.</p><p class=language-java>In some cases, such as starting a pipeline using a scheduler such as <a href=https://airflow.apache.org>Apache AirFlow</a>,  [...]
     <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
@@ -58,8 +58,8 @@ Path for temporary files. Must be a valid Google Cloud Storage URL that begins w
 <span class=language-java>If set, <code>tempLocation</code> is used as the default value for <code>gcpTempLocation</code>.</span></td><td>No default value.</td></tr><tr class=language-java><td><code>gcpTempLocation</code></td><td>Cloud Storage bucket path for temporary files. Must be a valid Cloud Storage URL that begins with <code>gs://</code>.</td><td>If not set, defaults to the value of <code>tempLocation</code>, provided that <code>tempLocation</code> is a valid Cloud Storage URL. If [...]
 <span class=language-py><code>staging_location</code></span></td><td>Optional. Cloud Storage bucket path for staging your binary and any temporary files. Must be a valid Cloud Storage URL that begins with <code>gs://</code>.</td><td><span class=language-java>If not set, defaults to a staging directory within <code>gcpTempLocation</code>.</span>
 <span class=language-py>If not set, defaults to a staging directory within <code>temp_location</code>.</span></td></tr><tr class=language-py><td><code>save_main_session</code></td><td>Save the main session state so that pickled functions and classes defined in <code>__main__</code> (e.g. interactive session) can be unpickled. Some workflows do not need the session state if, for instance, all of their functions/classes are defined in proper modules (not <code>__main__</code>) and the modu [...]
-<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/runners/dataflow/options/DataflowPipelineOptions.html>DataflowPipelineOptions</a></span>
-<span class=language-py><a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.PipelineOptions><code>PipelineOptions</code></a></span>
+<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/runners/dataflow/options/DataflowPipelineOptions.html>DataflowPipelineOptions</a></span>
+<span class=language-py><a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.PipelineOptions><code>PipelineOptions</code></a></span>
 interface (and any subinterfaces) for additional pipeline configuration options.</p><h2 id=additional-info>Additional information and caveats</h2><h3 id=monitoring>Monitoring your job</h3><p>While your pipeline executes, you can monitor the job&rsquo;s progress, view details on execution, and receive updates on the pipeline&rsquo;s results by using the <a href=https://cloud.google.com/dataflow/pipelines/dataflow-monitoring-intf>Dataflow Monitoring Interface</a> or the <a href=https://clo [...]
 You can cancel your streaming job from the <a href=https://cloud.google.com/dataflow/pipelines/stopping-a-pipeline>Dataflow Monitoring Interface</a>
 or with the <a href=https://cloud.google.com/dataflow/pipelines/dataflow-command-line-intf>Dataflow Command-line Interface</a>
diff --git a/website/generated-content/documentation/runners/direct/index.html b/website/generated-content/documentation/runners/direct/index.html
index f0e92b8..fbfc701 100644
--- a/website/generated-content/documentation/runners/direct/index.html
+++ b/website/generated-content/documentation/runners/direct/index.html
@@ -18,15 +18,15 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Runners</span></li><li><a href=/documentation/runners/capability-matrix/>Capability Matrix</a></li><li><a href=/documentation/runners/direct/>Direct Ru [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Runners</span></li><li><a href=/documentation/runners/capability-matrix/>Capability Matrix</a></li><li><a href=/documentation/runners/direct/>Direct Ru [...]
    <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
    <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>runners</span><span class=o>-</span><span class=n>direct</span><span class=o>-</span><span class=n>java</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-   <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+   <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
    <span class=o>&lt;</span><span class=n>scope</span><span class=o>&gt;</span><span class=n>runtime</span><span class=o>&lt;/</span><span class=n>scope</span><span class=o>&gt;</span>
 <span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div></p><p><span class=language-py>This section is not applicable to the Beam SDK for Python.</span></p><h2 id=pipeline-options-for-the-direct-runner>Pipeline options for the Direct Runner</h2><p>For general instructions on how to set pipeline options, see the <a href=/documentation/programming-guide/#configuring-pipeline-options>programming guide</a>.</p><p>When executing your pi [...]
-<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/runners/direct/DirectOptions.html><code>DirectOptions</code></a></span>
-<span class=language-py><a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.DirectOptions><code>DirectOptions</code></a></span>
-interface for defaults and additional pipeline configuration options.</p><h2 id=additional-information-and-caveats>Additional information and caveats</h2><h3 id=memory-considerations>Memory considerations</h3><p>Local execution is limited by the memory available in your local environment. It is highly recommended that you run your pipeline with data sets small enough to fit in local memory. You can create a small in-memory data set using a <span class=language-java><a href=https://beam.a [...]
+<span class=language-java><a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/runners/direct/DirectOptions.html><code>DirectOptions</code></a></span>
+<span class=language-py><a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.options.pipeline_options.html#apache_beam.options.pipeline_options.DirectOptions><code>DirectOptions</code></a></span>
+interface for defaults and additional pipeline configuration options.</p><h2 id=additional-information-and-caveats>Additional information and caveats</h2><h3 id=memory-considerations>Memory considerations</h3><p>Local execution is limited by the memory available in your local environment. It is highly recommended that you run your pipeline with data sets small enough to fit in local memory. You can create a small in-memory data set using a <span class=language-java><a href=https://beam.a [...]
 By default, <code>targetParallelism</code> is the greater of the number of available processors and 3.</p><p class=language-py>Number of threads or subprocesses is defined by setting the <code>direct_num_workers</code> pipeline option.
 From 2.22.0, <code>direct_num_workers = 0</code> is supported. When <code>direct_num_workers</code> is set to 0, it will set the number of threads/subprocess to the number of cores of the machine where the pipeline is running.</p><p class=language-py><strong>Setting running mode</strong></p><p class=language-py>In Beam 2.19.0 and newer, you can use the <code>direct_running_mode</code> pipeline option to set the running mode.
 <code>direct_running_mode</code> can be one of [<code>'in_memory'</code>, <code>'multi_threading'</code>, <code>'multi_processing'</code>].</p><p class=language-py><b>in_memory</b>: Runner and workers&rsquo; communication happens in memory (not through gRPC). This is a default mode.</p><p class=language-py><b>multi_threading</b>: Runner and workers communicate through gRPC and each worker runs in a thread.</p><p class=language-py><b>multi_processing</b>: Runner and workers communicate th [...]
diff --git a/website/generated-content/documentation/runners/flink/index.html b/website/generated-content/documentation/runners/flink/index.html
index fb48832..7499d4e 100644
--- a/website/generated-content/documentation/runners/flink/index.html
+++ b/website/generated-content/documentation/runners/flink/index.html
@@ -42,7 +42,7 @@ in your <code>pom.xml</code> or <code>build.gradle</code>. Use the Beam version
 from the <a href=#flink-version-compatibility>compatibility table</a> below. For example:</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=o>&lt;</span><span class=n>dependency</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>runners</span><span class=o>-</span><span class=n>flink</span><span class=o>-</span><span class=n>1</span><span class=o>.</span><span class=na>13</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
 <span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><p class=language-py>You will need Docker to be installed in your execution environment.
 To run an embedded flink cluster or use the Flink runner for Python &lt; 3.6
 you will also need to have java available in your execution environment.</p><p class=language-portable>You will need Docker to be installed in your execution environment.</p><h3 id=executing-a-beam-pipeline-on-a-flink-cluster>Executing a Beam pipeline on a Flink Cluster</h3><p class=language-java>For executing a pipeline on a Flink cluster you need to package your program
@@ -102,9 +102,9 @@ with beam.Pipeline(options=options) as p:
 and will not work on remote clusters.
 See <a href=/documentation/runtime/sdk-harness-config/>here</a> for details.</p><h2 id=additional-information-and-caveats>Additional information and caveats</h2><h3 id=monitoring-your-job>Monitoring your job</h3><p>You can monitor a running Flink job using the Flink JobManager Dashboard or its Rest interfaces. By default, this is available at port <code>8081</code> of the JobManager node. If you have a Flink installation on your local machine that would be <code>http://localhost:8081</co [...]
 Many sources like <code>PubSubIO</code> rely on their checkpoints to be acknowledged which can only be done when checkpointing is enabled for the <code>FlinkRunner</code>. To enable checkpointing, please set <span class=language-java><code>checkpointingInterval</code></span><span class=language-py><code>checkpointing_interval</code></span> to the desired checkpointing interval in milliseconds.</p><h2 id=pipeline-options-for-the-flink-runner>Pipeline options for the Flink Runner</h2><p>Wh [...]
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/runners/flink/FlinkPipelineOptions.html>FlinkPipelineOptions</a>
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/runners/flink/FlinkPipelineOptions.html>FlinkPipelineOptions</a>
 reference class:</p><div class=language-java><table class="table table-bordered"><tr><td><code>allowNonRestoredState</code></td><td>Flag indicating whether non restored state is allowed if the savepoint contains state for an operator that is no longer part of the pipeline.</td><td>Default: <code>false</code></td></tr><tr><td><code>autoBalanceWriteFilesShardingEnabled</code></td><td>Flag indicating whether auto-balance sharding for WriteFiles transform should be enabled. This might prove  [...]
-<a href=https://beam.apache.org/releases/javadoc/2.35.0/index.html?org/apache/beam/sdk/options/PipelineOptions.html>PipelineOptions</a>
+<a href=https://beam.apache.org/releases/javadoc/2.36.0/index.html?org/apache/beam/sdk/options/PipelineOptions.html>PipelineOptions</a>
 reference.</p><h2 id=flink-version-compatibility>Flink Version Compatibility</h2><p>The Flink cluster version has to match the minor version used by the FlinkRunner.
 The minor version is the first two numbers in the version string, e.g. in <code>1.13.0</code> the
 minor version is <code>1.13</code>.</p><p>We try to track the latest version of Apache Flink at the time of the Beam release.
diff --git a/website/generated-content/documentation/runners/jstorm/index.html b/website/generated-content/documentation/runners/jstorm/index.html
index f7e2a32..38fc072 100644
--- a/website/generated-content/documentation/runners/jstorm/index.html
+++ b/website/generated-content/documentation/runners/jstorm/index.html
@@ -21,7 +21,7 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Documentation</span></li><li><a href=/documentation>Using the Documentation</a></li><li class=section-nav-item--collapsible><span class=section-nav-lis [...]
   <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>runners</span><span class=o>-</span><span class=n>jstorm</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
 <span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><h3 id=deploying-jstorm-with-your-application>Deploying JStorm with your application</h3><p>To run against a Standalone cluster, you can package your program with all Beam dependencies into a fat jar, and then submit the topology with the following command.</p><pre><code>jstorm jar WordCount.jar org.apache.beam.examples.WordCount --runner=org.apache.beam.runners.jstorm.JStormRunner
 </code></pre><p>If you don&rsquo;t want to package a fat jar, you can upload the Beam dependencies onto all cluster nodes(<code>$JSTORM_HOME/lib/ext/beam</code>) first.
 When you submit a topology with argument <code>"--external-libs beam"</code>, JStorm will load the Beam dependencies automatically.</p><pre><code>jstorm jar WordCount.jar org.apache.beam.examples.WordCount --external-libs beam  --runner=org.apache.beam.runners.jstorm.JStormRunner
diff --git a/website/generated-content/documentation/runners/mapreduce/index.html b/website/generated-content/documentation/runners/mapreduce/index.html
index fa3304c..0f5f870 100644
--- a/website/generated-content/documentation/runners/mapreduce/index.html
+++ b/website/generated-content/documentation/runners/mapreduce/index.html
@@ -21,7 +21,7 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Runners</span></li><li><a href=/documentation/runners/capability-matrix/>Capability Matrix</a></li><li><a href=/documentation/runners/direct/>Direct Ru [...]
   &lt;groupId&gt;org.apache.beam&lt;/groupId&gt;
   &lt;artifactId&gt;beam-runners-mapreduce&lt;/artifactId&gt;
-  &lt;version&gt;2.35.0&lt;/version&gt;
+  &lt;version&gt;2.36.0&lt;/version&gt;
 &lt;/dependency&gt;
 </code></pre><h2 id=deploying-apache-hadoop-mapreduce-with-your-application>Deploying Apache Hadoop MapReduce with your application</h2><p>To execute in a local Hadoop environment, use this command:</p><pre><code>$ mvn exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
     -Pmapreduce-runner \
diff --git a/website/generated-content/documentation/runners/samza/index.html b/website/generated-content/documentation/runners/samza/index.html
index b3ad423..b0d985e 100644
--- a/website/generated-content/documentation/runners/samza/index.html
+++ b/website/generated-content/documentation/runners/samza/index.html
@@ -21,7 +21,7 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Runners</span></li><li><a href=/documentation/runners/capability-matrix/>Capability Matrix</a></li><li><a href=/documentation/runners/direct/>Direct Ru [...]
   <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>runners</span><span class=o>-</span><span class=n>samza</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>scope</span><span class=o>&gt;</span><span class=n>runtime</span><span class=o>&lt;/</span><span class=n>scope</span><span class=o>&gt;</span>
 <span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span>
 
diff --git a/website/generated-content/documentation/runners/spark/index.html b/website/generated-content/documentation/runners/spark/index.html
index 75011cb..91ba403 100644
--- a/website/generated-content/documentation/runners/spark/index.html
+++ b/website/generated-content/documentation/runners/spark/index.html
@@ -30,7 +30,7 @@ the portable Runner. For more information on portability, please visit the
 <a href=/roadmap/portability/>Portability page</a>.</p><nav class=language-switcher><strong>Adapt for:</strong><ul><li data-type=language-java>Non portable (Java)</li><li data-type=language-py>Portable (Java/Python/Go)</li></ul></nav><h2 id=spark-runner-prerequisites-and-setup>Spark Runner prerequisites and setup</h2><p>The Spark runner currently supports Spark&rsquo;s 2.x branch, and more specifically any version greater than 2.4.0.</p><p class=language-java>You can add a dependency on  [...]
   <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>runners</span><span class=o>-</span><span class=n>spark</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
-  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>35</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+  <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>36</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
 <span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span></code></pre></div></div></div><h3 id=deploying-spark-with-your-application>Deploying Spark with your application</h3><p class=language-java>In some cases, such as running in local mode/Standalone, your (self-contained) application would be required to pack Spark by explicitly adding the following dependencies in your pom.xml:</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a  [...]
   <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>spark</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
   <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>spark</span><span class=o>-</span><span class=n>core_2</span><span class=o>.</span><span class=na>11</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
diff --git a/website/generated-content/documentation/sdks/feature-comparison/index.html b/website/generated-content/documentation/sdks/feature-comparison/index.html
index 1a8d51a..b921dbe 100644
--- a/website/generated-content/documentation/sdks/feature-comparison/index.html
+++ b/website/generated-content/documentation/sdks/feature-comparison/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/sdks/go/index.html b/website/generated-content/documentation/sdks/go/index.html
index 6e2dc7c..8a33382 100644
--- a/website/generated-content/documentation/sdks/go/index.html
+++ b/website/generated-content/documentation/sdks/go/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 It is based on the following <a href=https://s.apache.org/beam-go-sdk-design-rfc>design</a>.</p><h2 id=get-started-with-the-go-sdk>Get Started with the Go SDK</h2><p>Get started with the <a href=/get-started/quickstart-go>Beam Go SDK quickstart</a> to set up your development environment and run an example pipeline. Then, read through the <a href=/documentation/programming-guide>Beam programming guide</a> to learn the basic concepts that apply to all SDKs in Beam.</p><p>See the <a href=ht [...]
 It&rsquo;s possible to write many kinds of transforms, but specific built in transforms may still be missing.</p><p>Requests for specific transforms may be filed to the <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Idea%2C%20%22Under%20Discussion%22%2C%20%22In%20Implementation%22%2C%20%22Triage%20Needed%22)%20AND%20component%20%3D%20sdk-go%20ORDER%20BY%20updated%20DESC"><code>sdk-go</code> component in J [...]
 Contributions are welcome.</p></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols__col><di [...]
diff --git a/website/generated-content/documentation/sdks/java-dependencies/index.html b/website/generated-content/documentation/sdks/java-dependencies/index.html
index 4417e8c..a108849 100644
--- a/website/generated-content/documentation/sdks/java-dependencies/index.html
+++ b/website/generated-content/documentation/sdks/java-dependencies/index.html
@@ -18,12 +18,12 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 import additional dependencies. Version collisions can result in unexpected
 behavior in the service. If you are using any of these packages in your code, be
 aware that some libraries are not forward-compatible and you may need to pin to
 the listed versions that will be in scope during execution.</p><p>Compile and runtime dependencies for your Beam SDK version are listed in <code>BeamModulePlugin.groovy</code> in the Beam repository. To view them, perform the following steps:</p><ol><li><p>Open <code>BeamModulePlugin.groovy</code>.</p><pre><code>https://raw.githubusercontent.com/apache/beam/v&lt;VERSION_NUMBER&gt;/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
-</code></pre><p>Replace <code>&lt;VERSION_NUMBER></code> with the major.minor.patch version of the SDK. For example, <a href=https://raw.githubusercontent.com/apache/beam/v2.35.0/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy>https://raw.githubusercontent.com/apache/beam/v2.35.0/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy</a> will provide the dependencies for the 2.35.0 release.</p></li><li><p>Review the list under <code>project.ext.li [...]
+</code></pre><p>Replace <code>&lt;VERSION_NUMBER></code> with the major.minor.patch version of the SDK. For example, <a href=https://raw.githubusercontent.com/apache/beam/v2.36.0/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy>https://raw.githubusercontent.com/apache/beam/v2.36.0/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy</a> will provide the dependencies for the 2.36.0 release.</p></li><li><p>Review the list under <code>project.ext.li [...]
 export JAVA_VERSION=11
 </code></pre></li><li><p>Create the project.</p><pre><code>mvn archetype:generate \
     -DinteractiveMode=false \
diff --git a/website/generated-content/documentation/sdks/java-extensions/index.html b/website/generated-content/documentation/sdks/java-extensions/index.html
index 94cda3f3..69dc8d8 100644
--- a/website/generated-content/documentation/sdks/java-extensions/index.html
+++ b/website/generated-content/documentation/sdks/java-extensions/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 is to simplify the most common cases of join to a simple function call.</p><p>The functions are generic and support joins of any Beam-supported types.
 Input to the join functions are <code>PCollections</code> of <code>Key</code> / <code>Value</code>s. Both
 the left and right <code>PCollection</code>s need the same type for the key. All the join
diff --git a/website/generated-content/documentation/sdks/java-multi-language-pipelines/index.html b/website/generated-content/documentation/sdks/java-multi-language-pipelines/index.html
index 224e473..06e49fe 100644
--- a/website/generated-content/documentation/sdks/java-multi-language-pipelines/index.html
+++ b/website/generated-content/documentation/sdks/java-multi-language-pipelines/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
     <span class=kd>private</span> <span class=kd>static</span> <span class=kd>final</span> <span class=n>String</span> <span class=n>URN</span> <span class=o>=</span> <span class=s>&#34;beam:transforms:xlang:pythontransform&#34;</span><span class=o>;</span>
 
     <span class=kd>private</span> <span class=kd>static</span> <span class=n>String</span> <span class=n>expansionAddress</span><span class=o>;</span>
diff --git a/website/generated-content/documentation/sdks/java-thirdparty/index.html b/website/generated-content/documentation/sdks/java-thirdparty/index.html
index 48ecd69..50bd78a 100644
--- a/website/generated-content/documentation/sdks/java-thirdparty/index.html
+++ b/website/generated-content/documentation/sdks/java-thirdparty/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 the webserver. The format of these log files is a configuration option in the Apache HTTPD server so parsing this
 into useful data elements is normally very hard to do.</p><p>To solve this problem in an easy way a library was created that works in combination with Apache Beam
 and is capable of doing this for both the Apache HTTPD and NGINX.</p><p>The basic idea is that the logformat specification is the schema used to create the line.
diff --git a/website/generated-content/documentation/sdks/java/euphoria/index.html b/website/generated-content/documentation/sdks/java/euphoria/index.html
index 11fbcdc..d004803 100644
--- a/website/generated-content/documentation/sdks/java/euphoria/index.html
+++ b/website/generated-content/documentation/sdks/java/euphoria/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 In 2015, <a href=https://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf>DataFlow whitepaper</a> inspired original authors to go one step further and also provide the unified API for both stream and batch processing.
 The API has been open-sourced in 2016 and is still in active development. As the Beam&rsquo;s community goal was very similar, we decided to contribute
 the API as a high level DSL over Beam Java SDK and share our effort with the community.</p><p>Euphoria DSL integration is still work in progress and is tracked as part of <a href=https://issues.apache.org/jira/browse/BEAM-3900>BEAM-3900</a>.</p><h2 id=wordcount-example>WordCount Example</h2><p>Lets start with the small example.<div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to [...]
diff --git a/website/generated-content/documentation/sdks/java/index.html b/website/generated-content/documentation/sdks/java/index.html
index 13e952f..9e08120 100644
--- a/website/generated-content/documentation/sdks/java/index.html
+++ b/website/generated-content/documentation/sdks/java/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/sdks/java/testing/nexmark/index.html b/website/generated-content/documentation/sdks/java/testing/nexmark/index.html
index 6bb0845..e8e0861 100644
--- a/website/generated-content/documentation/sdks/java/testing/nexmark/index.html
+++ b/website/generated-content/documentation/sdks/java/testing/nexmark/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 queries in <a href=https://web.archive.org/web/20100620010601/http://datalab.cs.pdx.edu/niagaraST/NEXMark/>Nexmark research
 paper</a></p><p>These are multiple queries over a three entities model representing on online
 auction system:</p><ul><li><strong>Person</strong> represents a person submitting an item for auction and/or making
@@ -86,7 +86,7 @@ or may be published to Pub/Sub or Kafka.</p><p>The query results may be:</p><ul>
 --stagingLocation=gs://&lt;a gs path for staging&gt; \
 --runner=DataflowRunner \
 --tempLocation=gs://&lt;a gs path for temporary files&gt; \
---filesToStage=target/beam-sdks-java-nexmark-2.35.0.jar
+--filesToStage=target/beam-sdks-java-nexmark-2.36.0.jar
 </code></pre><h3 id=direct-runner-specific-configuration>Direct runner specific configuration</h3><pre><code>--manageResources=false --monitorJobs=true \
 --enforceEncodability=false --enforceImmutability=false
 </code></pre><h3 id=flink-runner-specific-configuration>Flink runner specific configuration</h3><pre><code>--manageResources=false --monitorJobs=true \
@@ -207,7 +207,7 @@ PUBSUB_TOPCI=&lt;existing pubsub topic&gt;
     --driver-memory 512m \
     --executor-memory 512m \
     --executor-cores 1 \
-    sdks/java/testing/nexmark/build/libs/beam-sdks-java-nexmark-2.35.0-spark.jar \
+    sdks/java/testing/nexmark/build/libs/beam-sdks-java-nexmark-2.36.0-spark.jar \
         --runner=SparkRunner \
         --query=0 \
         --streamTimeout=60 \
diff --git a/website/generated-content/documentation/sdks/python-dependencies/index.html b/website/generated-content/documentation/sdks/python-dependencies/index.html
index de6e1a3..d9fa818 100644
--- a/website/generated-content/documentation/sdks/python-dependencies/index.html
+++ b/website/generated-content/documentation/sdks/python-dependencies/index.html
@@ -18,12 +18,12 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 import additional dependencies. Version collisions can result in unexpected
 behavior in the service. If you are using any of these packages in your code, be
 aware that some libraries are not forward-compatible and you may need to pin to
 the listed versions that will be in scope during execution.</p><p>Dependencies for your Beam SDK version are listed in <code>setup.py</code> in the Beam repository. To view them, perform the following steps:</p><ol><li><p>Open <code>setup.py</code>.</p><pre><code>https://raw.githubusercontent.com/apache/beam/v&lt;VERSION_NUMBER&gt;/sdks/python/setup.py
-</code></pre><p>Replace <code>&lt;VERSION_NUMBER></code> with the major.minor.patch version of the SDK. For example, <a href=ttps://raw.githubusercontent.com/apache/beam/v2.35.0/sdks/python/setup.py target=_blank><a href=https://raw.githubusercontent.com/apache/beam/v2.35.0/sdks/python/setup.py>https://raw.githubusercontent.com/apache/beam/v2.35.0/sdks/python/setup.py</a></a> will provide the dependencies for the 2.35.0 release.</p></li><li><p>Review the core dependency list under <code> [...]
+</code></pre><p>Replace <code>&lt;VERSION_NUMBER></code> with the major.minor.patch version of the SDK. For example, <a href=ttps://raw.githubusercontent.com/apache/beam/v2.36.0/sdks/python/setup.py target=_blank><a href=https://raw.githubusercontent.com/apache/beam/v2.36.0/sdks/python/setup.py>https://raw.githubusercontent.com/apache/beam/v2.36.0/sdks/python/setup.py</a></a> will provide the dependencies for the 2.36.0 release.</p></li><li><p>Review the core dependency list under <code> [...]
 </code></pre></li><li><p><a href=/get-started/quickstart-py/#download-and-install>Install the Beam Python SDK</a>.</p></li><li><p>Retrieve the list of dependencies.</p><pre><code>$ pip install pipdeptree &amp;&amp; pipdeptree -p apache-beam
 </code></pre></li></ol></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols__col><div class [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
diff --git a/website/generated-content/documentation/sdks/python-multi-language-pipelines/index.html b/website/generated-content/documentation/sdks/python-multi-language-pipelines/index.html
index 7d998b0..7266ac7 100644
--- a/website/generated-content/documentation/sdks/python-multi-language-pipelines/index.html
+++ b/website/generated-content/documentation/sdks/python-multi-language-pipelines/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 
   <span class=kd>final</span> <span class=n>String</span> <span class=n>prefix</span><span class=o>;</span>
 
diff --git a/website/generated-content/documentation/sdks/python-pipeline-dependencies/index.html b/website/generated-content/documentation/sdks/python-pipeline-dependencies/index.html
index 438eeac..cde3623 100644
--- a/website/generated-content/documentation/sdks/python-pipeline-dependencies/index.html
+++ b/website/generated-content/documentation/sdks/python-pipeline-dependencies/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 </code></pre><p>This command creates a <code>requirements.txt</code> file that lists all packages that are installed on your machine, regardless of where they were installed from.</p></li><li><p>Edit the <code>requirements.txt</code> file and leave only the packages that were installed from PyPI and are used in the workflow source. Delete all packages that are not relevant to your code.</p></li><li><p>Run your pipeline with the following command-line option:</p><pre><code> --requirements [...]
 </code></pre><p>The runner will use the <code>requirements.txt</code> file to install your additional dependencies onto the remote workers.</p></li></ol><p><strong>Important:</strong> Remote workers will install all packages listed in the <code>requirements.txt</code> file. Because of this, it&rsquo;s very important that you delete non-PyPI packages from the <code>requirements.txt</code> file, as stated in step 2. If you don&rsquo;t remove non-PyPI packages, the remote workers will fail  [...]
 </code></pre><p>This command lists all packages that are installed on your machine, regardless of where they were installed from.</p></li><li><p>Run your pipeline with the following command-line option:</p><pre><code> --extra_package /path/to/package/package-name
diff --git a/website/generated-content/documentation/sdks/python-streaming/index.html b/website/generated-content/documentation/sdks/python-streaming/index.html
index 6f07001..087e8c2 100644
--- a/website/generated-content/documentation/sdks/python-streaming/index.html
+++ b/website/generated-content/documentation/sdks/python-streaming/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 <a href=#unsupported-features>limitations</a>) starting with Beam SDK version 2.5.0.</p><h2 id=why-use-streaming-execution>Why use streaming execution?</h2><p>Beam creates an unbounded PCollection if your pipeline reads from a streaming or
 continously-updating data source (such as Cloud Pub/Sub). A runner must
 process an unbounded PCollection using a streaming job that runs continuously,
diff --git a/website/generated-content/documentation/sdks/python-type-safety/index.html b/website/generated-content/documentation/sdks/python-type-safety/index.html
index 5aaf08f..2e6533f 100644
--- a/website/generated-content/documentation/sdks/python-type-safety/index.html
+++ b/website/generated-content/documentation/sdks/python-type-safety/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 The Beam SDK for Python implements a subset of <a href=https://www.python.org/dev/peps/pep-0484/>PEP 484</a> and aims to follow it as closely as possible in its own typehints module.</p><p>These flags control Beam type safety:</p><ul><li><p><code>--no_pipeline_type_check</code></p><p>Disables type checking during pipeline construction.
 Default is to perform these checks.</p></li><li><p><code>--runtime_type_check</code></p><p>Enables runtime type checking of every element.
 This may affect pipeline performance, so the default is to skip these checks.</p></li><li><p><code>--type_check_additional</code></p><p>Enables additional type checks. These are no enabled by default to preserve
diff --git a/website/generated-content/documentation/sdks/python/index.html b/website/generated-content/documentation/sdks/python/index.html
index d54c3be..0f1b62d 100644
--- a/website/generated-content/documentation/sdks/python/index.html
+++ b/website/generated-content/documentation/sdks/python/index.html
@@ -18,7 +18,7 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Languages</span></li><li><span class=section-nav-list-title>Java</span><ul class=section-nav-list><li><a href=/documentation/sdks/java/>Java SDK overvi [...]
 is experimentally available (with some <a href=/documentation/sdks/python-streaming/#unsupported-features>limitations</a>)
 starting with Beam SDK version 2.5.0.</p><h2 id=python-type-safety>Python type safety</h2><p>Python is a dynamically-typed language with no static type checking. The Beam SDK for Python uses type hints during pipeline construction and runtime to try to emulate the correctness guarantees achieved by true static typing. <a href=/documentation/sdks/python-type-safety>Ensuring Python Type Safety</a> walks through how to use type hints, which help you to catch potential bugs up front with the [...]
 new I/O connectors. See the <a href=/documentation/io/developing-io-overview>Developing I/O connectors overview</a>
diff --git a/website/generated-content/feed.xml b/website/generated-content/feed.xml
index 0bf7c9e..1a076e5 100644
--- a/website/generated-content/feed.xml
+++ b/website/generated-content/feed.xml
@@ -1,4 +1,140 @@
-<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Apache Beam</title><description>Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number [...]
+<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Apache Beam</title><description>Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number [...]
+&lt;!--
+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.
+-->
+&lt;p>We are happy to present the new 2.36.0 release of Apache Beam.
+This release includes both improvements and new functionality.
+See the &lt;a href="/get-started/downloads/#2360-2022-02-07">download page&lt;/a> for this release.&lt;/p>
+&lt;p>For more information on changes in 2.36.0, check out the &lt;a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&amp;amp;version=12350406">detailed release
+notes&lt;/a>.&lt;/p>
+&lt;h2 id="ios">I/Os&lt;/h2>
+&lt;ul>
+&lt;li>Support for stopReadTime on KafkaIO SDF (Java).(&lt;a href="https://issues.apache.org/jira/browse/BEAM-13171">BEAM-13171&lt;/a>).&lt;/li>
+&lt;/ul>
+&lt;h2 id="new-features--improvements">New Features / Improvements&lt;/h2>
+&lt;ul>
+&lt;li>Added support for cloudpickle as a pickling library for Python SDK (&lt;a href="https://issues.apache.org/jira/browse/BEAM-8123">BEAM-8123&lt;/a>). To use cloudpickle, set pipeline option: &amp;ndash;pickler_lib=cloudpickle&lt;/li>
+&lt;li>Added option to specify triggering frequency when streaming to BigQuery (Python) (&lt;a href="https://issues.apache.org/jira/browse/BEAM-12865">BEAM-12865&lt;/a>).&lt;/li>
+&lt;li>Added option to enable caching uploaded artifacts across job runs for Python Dataflow jobs (&lt;a href="https://issues.apache.org/jira/browse/BEAM-13459">BEAM-13459&lt;/a>). To enable, set pipeline option: &amp;ndash;enable_artifact_caching, this will be enabled by default in a future release.&lt;/li>
+&lt;/ul>
+&lt;h2 id="breaking-changes">Breaking Changes&lt;/h2>
+&lt;ul>
+&lt;li>Updated the jedis from 3.x to 4.x to Java RedisIO. If you are using RedisIO and using jedis directly, please refer to &lt;a href="https://github.com/redis/jedis/blob/v4.0.0/docs/3to4.md">this page&lt;/a> to update it. (&lt;a href="https://issues.apache.org/jira/browse/BEAM-12092">BEAM-12092&lt;/a>).&lt;/li>
+&lt;li>Datatype of timestamp fields in &lt;code>SqsMessage&lt;/code> for AWS IOs for SDK v2 was changed from &lt;code>String&lt;/code> to &lt;code>long&lt;/code>, visibility of all fields was fixed from &lt;code>package private&lt;/code> to &lt;code>public&lt;/code> &lt;a href="https://issues.apache.org/jira/browse/BEAM-13638">BEAM-13638&lt;/a>.&lt;/li>
+&lt;li>Properly check output timestamps on elements output from DoFns, timers, and onWindowExpiration in Java &lt;a href="https://issues.apache.org/jira/browse/BEAM-12931">BEAM-12931&lt;/a>.&lt;/li>
+&lt;li>Fixed a bug with DeferredDataFrame.xs when used with a non-tuple key
+(&lt;a href="https://issues.apache.org/jira/browse/BEAM-13421%5D">BEAM-13421&lt;/a>).&lt;/li>
+&lt;/ul>
+&lt;h2 id="known-issues">Known Issues&lt;/h2>
+&lt;ul>
+&lt;li>Users may encounter an unexpected java.lang.ArithmeticException when outputting a timestamp
+for an element further than allowedSkew from an allowed DoFN skew set to a value more than
+Integer.MAX_VALUE.&lt;/li>
+&lt;li>See a full list of open &lt;a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20affectedVersion%20%3D%202.36.0%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC">issues that affect&lt;/a> this version.&lt;/li>
+&lt;/ul>
+&lt;h2 id="list-of-contributors">List of Contributors&lt;/h2>
+&lt;p>According to git shortlog, the following people contributed to the 2.36.0 release. Thank you to all contributors!&lt;/p>
+&lt;p>Ada Wong
+Ahmet Altay
+Alexander
+Alexander Dahl
+Alexandr Zhuravlev
+Alexey Romanenko
+AlikRodriguez
+Anand Inguva
+Andrew Pilloud
+Andy Ye
+Arkadiusz Gasiński
+Artur Khanin
+Arun Pandian
+Aydar Farrakhov
+Aydar Zainutdinov
+AydarZaynutdinov
+Benjamin Gonzalez
+Brian Hulette
+Chamikara Jayalath
+Daniel Collins
+Daniel Oliveira
+Daniel Thevessen
+Daniela Martín
+David Hinkes
+David Huntsperger
+Emily Ye
+Etienne Chauchot
+Evan Galpin
+Heejong Lee
+Ilya
+Ilya Kozyrev
+In-Ho Yi
+Jack McCluskey
+Janek Bevendorff
+Jarek Potiuk
+Ke Wu
+KevinGG
+Kyle Hersey
+Kyle Weaver
+Luís Bianchin
+Luke Cwik
+Masato Nakamura
+Matthias Baetens
+Mehdi Drissi
+Melissa Pashniak
+Michel Davit
+Miguel Hernandez
+MiguelAnzoWizeline
+Milena Bukal
+Moritz Mack
+Mostafa Aghajani
+Nathan J Mehl
+Niel Markwick
+Ning Kang
+Pablo Estrada
+Pavel Avilov
+Quentin Sommer
+Reuben van Ammers
+Reuven Lax
+Ritesh Ghorse
+Robert Bradshaw
+Robert Burke
+Ryan Thompson
+Sam Whittle
+Sayat
+Sergei Lebedev
+Sergey Kalinin
+Steve Niemitz
+Talat Uyarer
+Thiago Nunes
+Tianyang Hu
+Tim Robertson
+Valentyn Tymofieiev
+Vitaly Ivanov
+Yichi Zhang
+Yiru Tang
+Yu Feng
+Yu ISHIKAWA
+Zachary Houfek
+blais
+daria-malkova
+daria.malkova
+darshan-sj
+dpcollins-google
+emily
+ewianda
+johnjcasey
+kileys
+lam206
+laraschmidt
+mosche
+&lt;a href="mailto:msbukal@google.com">msbukal@google.com&lt;/a>
+tvalentyn&lt;/p></description><link>/blog/beam-2.36.0/</link><pubDate>Mon, 07 Feb 2022 10:11:00 -0800</pubDate><guid>/blog/beam-2.36.0/</guid><category>blog</category></item><item><title>Apache Beam 2.35.0</title><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -931,81 +1067,4 @@ Williams, Robert Bradshaw, Robert Burke, Rui Wang, Sam Rohde, Sam Whittle,
 Shehzaad Nakhoda, Shehzaad Nakhoda, Siyuan Chen, Sonam Ramchand, Steve Niemitz,
 sychen, Sylvain Veyrié, Tim Robertson, Tobias Kaymak, Tomasz Szerszeń, Tomasz
 Szerszeń, Tomo Suzuki, Tyson Hamilton, Udi Meiri, Valentyn Tymofieiev, Yichi
-Zhang, Yifan Mai, Yixing Zhang, Yoshiki Obata&lt;/p></description><link>/blog/beam-2.29.0/</link><pubDate>Thu, 29 Apr 2021 09:00:00 -0700</pubDate><guid>/blog/beam-2.29.0/</guid><category>blog</category></item><item><title>Apache Beam 2.28.0</title><description>
-&lt;!--
-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.
--->
-&lt;p>We are happy to present the new 2.28.0 release of Apache Beam. This release includes both improvements and new functionality.
-See the &lt;a href="/get-started/downloads/#2280-2021-02-13">download page&lt;/a> for this release.
-For more information on changes in 2.28.0, check out the
-&lt;a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&amp;amp;version=12349499">detailed release notes&lt;/a>.&lt;/p>
-&lt;h2 id="highlights">Highlights&lt;/h2>
-&lt;ul>
-&lt;li>Many improvements related to Parquet support (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11460">BEAM-11460&lt;/a>, &lt;a href="https://issues.apache.org/jira/browse/BEAM-8202">BEAM-8202&lt;/a>, and &lt;a href="https://issues.apache.org/jira/browse/BEAM-11526">BEAM-11526&lt;/a>)&lt;/li>
-&lt;li>Hash Functions in BeamSQL (&lt;a href="https://issues.apache.org/jira/browse/BEAM-10074">BEAM-10074&lt;/a>)&lt;/li>
-&lt;li>Hash functions in ZetaSQL (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11624">BEAM-11624&lt;/a>)&lt;/li>
-&lt;li>Create ApproximateDistinct using HLL Impl (&lt;a href="https://issues.apache.org/jira/browse/BEAM-10324">BEAM-10324&lt;/a>)&lt;/li>
-&lt;/ul>
-&lt;h2 id="ios">I/Os&lt;/h2>
-&lt;ul>
-&lt;li>SpannerIO supports using BigDecimal for Numeric fields (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11643">BEAM-11643&lt;/a>)&lt;/li>
-&lt;li>Add Beam schema support to ParquetIO (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11526">BEAM-11526&lt;/a>)&lt;/li>
-&lt;li>Support ParquetTable Writer (&lt;a href="https://issues.apache.org/jira/browse/BEAM-8202">BEAM-8202&lt;/a>)&lt;/li>
-&lt;li>GCP BigQuery sink (streaming inserts) uses runner determined sharding (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11408">BEAM-11408&lt;/a>)&lt;/li>
-&lt;li>PubSub support types: TIMESTAMP, DATE, TIME, DATETIME (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11533">BEAM-11533&lt;/a>)&lt;/li>
-&lt;/ul>
-&lt;h2 id="new-features--improvements">New Features / Improvements&lt;/h2>
-&lt;ul>
-&lt;li>ParquetIO add methods &lt;em>readGenericRecords&lt;/em> and &lt;em>readFilesGenericRecords&lt;/em> can read files with an unknown schema. See &lt;a href="https://github.com/apache/beam/pull/13554">PR-13554&lt;/a> and (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11460">BEAM-11460&lt;/a>)&lt;/li>
-&lt;li>Added support for thrift in KafkaTableProvider (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11482">BEAM-11482&lt;/a>)&lt;/li>
-&lt;li>Added support for HadoopFormatIO to skip key/value clone (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11457">BEAM-11457&lt;/a>)&lt;/li>
-&lt;li>Support Conversion to GenericRecords in Convert.to transform (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11571">BEAM-11571&lt;/a>).&lt;/li>
-&lt;li>Support writes for Parquet Tables in Beam SQL (&lt;a href="https://issues.apache.org/jira/browse/BEAM-8202">BEAM-8202&lt;/a>).&lt;/li>
-&lt;li>Support reading Parquet files with unknown schema (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11460">BEAM-11460&lt;/a>)&lt;/li>
-&lt;li>Support user configurable Hadoop Configuration flags for ParquetIO (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11527">BEAM-11527&lt;/a>)&lt;/li>
-&lt;li>Expose commit_offset_in_finalize and timestamp_policy to ReadFromKafka (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11677">BEAM-11677&lt;/a>)&lt;/li>
-&lt;li>S3 options does not provided to boto3 client while using FlinkRunner and Beam worker pool container (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11799">BEAM-11799&lt;/a>)&lt;/li>
-&lt;li>HDFS not deduplicating identical configuration paths (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11329">BEAM-11329&lt;/a>)&lt;/li>
-&lt;li>Hash Functions in BeamSQL (&lt;a href="https://issues.apache.org/jira/browse/BEAM-10074">BEAM-10074&lt;/a>)&lt;/li>
-&lt;li>Create ApproximateDistinct using HLL Impl (&lt;a href="https://issues.apache.org/jira/browse/BEAM-10324">BEAM-10324&lt;/a>)&lt;/li>
-&lt;li>Add Beam schema support to ParquetIO (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11526">BEAM-11526&lt;/a>)&lt;/li>
-&lt;li>Add a Deque Encoder (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11538">BEAM-11538&lt;/a>)&lt;/li>
-&lt;li>Hash functions in ZetaSQL (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11624">BEAM-11624&lt;/a>)&lt;/li>
-&lt;li>Refactor ParquetTableProvider (&lt;a href="https://issues.apache.org/jira/browse/">&lt;/a>)&lt;/li>
-&lt;li>Add JVM properties to JavaJobServer (&lt;a href="https://issues.apache.org/jira/browse/BEAM-8344">BEAM-8344&lt;/a>)&lt;/li>
-&lt;li>Single source of truth for supported Flink versions (&lt;a href="https://issues.apache.org/jira/browse/">&lt;/a>)&lt;/li>
-&lt;li>Use metric for Python BigQuery streaming insert API latency logging (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11018">BEAM-11018&lt;/a>)&lt;/li>
-&lt;li>Use metric for Java BigQuery streaming insert API latency logging (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11032">BEAM-11032&lt;/a>)&lt;/li>
-&lt;li>Upgrade Flink runner to Flink versions 1.12.1 and 1.11.3 (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11697">BEAM-11697&lt;/a>)&lt;/li>
-&lt;li>Upgrade Beam base image to use Tensorflow 2.4.1 (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11762">BEAM-11762&lt;/a>)&lt;/li>
-&lt;li>Create Beam GCP BOM (&lt;a href="https://issues.apache.org/jira/browse/BEAM-11665">BEAM-11665&lt;/a>)&lt;/li>
-&lt;/ul>
-&lt;h2 id="breaking-changes">Breaking Changes&lt;/h2>
-&lt;ul>
-&lt;li>The Java artifacts &amp;ldquo;beam-sdks-java-io-kinesis&amp;rdquo;, &amp;ldquo;beam-sdks-java-io-google-cloud-platform&amp;rdquo;, and
-&amp;ldquo;beam-sdks-java-extensions-sql-zetasql&amp;rdquo; declare Guava 30.1-jre dependency (It was 25.1-jre in Beam 2.27.0).
-This new Guava version may introduce dependency conflicts if your project or dependencies rely
-on removed APIs. If affected, ensure to use an appropriate Guava version via &lt;code>dependencyManagement&lt;/code> in Maven and
-&lt;code>force&lt;/code> in Gradle.&lt;/li>
-&lt;/ul>
-&lt;h2 id="list-of-contributors">List of Contributors&lt;/h2>
-&lt;p>According to git shortlog, the following people contributed to the 2.28.0 release. Thank you to all contributors!&lt;/p>
-&lt;p>Ahmet Altay, Alex Amato, Alexey Romanenko, Allen Pradeep Xavier, Anant Damle, Artur Khanin,
-Boyuan Zhang, Brian Hulette, Chamikara Jayalath, Chris Roth, Costi Ciudatu, Damon Douglas,
-Daniel Collins, Daniel Oliveira, David Cavazos, David Huntsperger, Elliotte Rusty Harold,
-Emily Ye, Etienne Chauchot, Etta Rapp, Evan Palmer, Eyal, Filip Krakowski, Fokko Driesprong,
-Heejong Lee, Ismaël Mejía, janeliulwq, Jan Lukavský, John Edmonds, Jozef Vilcek, Kenneth Knowles
-Ke Wu, kileys, Kyle Weaver, MabelYC, masahitojp, Masato Nakamura, Milena Bukal, Miraç Vuslat Başaran,
-Nelson Osacky, Niel Markwick, Ning Kang, omarismail94, Pablo Estrada, Piotr Szuberski,
-ramazan-yapparov, Reuven Lax, Reza Rokni, rHermes, Robert Bradshaw, Robert Burke, Robert Gruener,
-Romster, Rui Wang, Sam Whittle, shehzaadn-vd, Siyuan Chen, Sonam Ramchand, Tobiasz Kędzierski,
-Tomo Suzuki, tszerszen, tvalentyn, Tyson Hamilton, Udi Meiri, Xinbin Huang, Yichi Zhang,
-Yifan Mai, yoshiki.obata, Yueyang Qiu, Yusaku Matsuki&lt;/p></description><link>/blog/beam-2.28.0/</link><pubDate>Mon, 22 Feb 2021 12:00:00 -0800</pubDate><guid>/blog/beam-2.28.0/</guid><category>blog</category></item></channel></rss>
\ No newline at end of file
+Zhang, Yifan Mai, Yixing Zhang, Yoshiki Obata&lt;/p></description><link>/blog/beam-2.29.0/</link><pubDate>Thu, 29 Apr 2021 09:00:00 -0700</pubDate><guid>/blog/beam-2.29.0/</guid><category>blog</category></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/get-started/downloads/index.html b/website/generated-content/get-started/downloads/index.html
index 099a7cb..5418705 100644
--- a/website/generated-content/get-started/downloads/index.html
+++ b/website/generated-content/get-started/downloads/index.html
@@ -18,22 +18,22 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Get started</span></li><li><a href=/get-started/beam-overview/>Beam Overview</a></li><li><a href=/get-started/tour-of-beam/>Tour of Beam</a></li><li><s [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Get started</span></li><li><a href=/get-started/beam-overview/>Beam Overview</a></li><li><a href=/get-started/tour-of-beam/>Tour of Beam</a></li><li><s [...]
 central repository. The Java SDK is available on <a href=https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.beam%22>Maven Central Repository</a>,
 and the Python SDK is available on <a href=https://pypi.python.org/pypi/apache-beam>PyPI</a>.</p><p>For example, if you are developing using Maven and want to use the SDK for Java
 with the <code>DirectRunner</code>, add the following dependencies to your <code>pom.xml</code> file:</p><pre><code>&lt;dependency&gt;
   &lt;groupId&gt;org.apache.beam&lt;/groupId&gt;
   &lt;artifactId&gt;beam-sdks-java-core&lt;/artifactId&gt;
-  &lt;version&gt;2.35.0&lt;/version&gt;
+  &lt;version&gt;2.36.0&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
   &lt;groupId&gt;org.apache.beam&lt;/groupId&gt;
   &lt;artifactId&gt;beam-runners-direct-java&lt;/artifactId&gt;
-  &lt;version&gt;2.35.0&lt;/version&gt;
+  &lt;version&gt;2.36.0&lt;/version&gt;
   &lt;scope&gt;runtime&lt;/scope&gt;
 &lt;/dependency&gt;
 </code></pre><p>Similarly in Python, if you are using PyPI and want to use the SDK for Python
-with <code>DirectRunner</code>, add the following requirement to your <code>setup.py</code> file:</p><pre><code>apache-beam==2.35.0
+with <code>DirectRunner</code>, add the following requirement to your <code>setup.py</code> file:</p><pre><code>apache-beam==2.36.0
 </code></pre><p>Additionally, you may want to depend on additional SDK modules, such as IO
 connectors or other extensions, and additional runners to execute your pipeline
 at scale.</p><h2 id=downloading-source-code>Downloading source code</h2><p>You can download the source code package for a release from the links in the
@@ -46,9 +46,12 @@ every release file (or SHA-1 and MD5 checksums for older releases). After you
 download the file, you should calculate a checksum for your download, and make
 sure it is the same as ours.</p><h2 id=api-stability>API stability</h2><p>Apache Beam generally follows the rules of
 <a href=https://semver.org/>semantic versioning</a> with exceptions. Version numbers use
-the form <code>major.minor.patch</code> and are incremented as follows:</p><ul><li>major version for incompatible API changes</li><li>minor version for new functionality added in a backward-compatible manner, infrequent incompatible API changes</li><li>patch version for forward-compatible bug fixes</li></ul><p>Please note that APIs marked <a href=https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/annotations/Experimental.html><code>@Experimental</code></a>
+the form <code>major.minor.patch</code> and are incremented as follows:</p><ul><li>major version for incompatible API changes</li><li>minor version for new functionality added in a backward-compatible manner, infrequent incompatible API changes</li><li>patch version for forward-compatible bug fixes</li></ul><p>Please note that APIs marked <a href=https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/annotations/Experimental.html><code>@Experimental</code></a>
 may change at any point and are not guaranteed to remain compatible across versions.</p><p>Additionally, any API may change before the first stable release, i.e., between
-versions denoted <code>0.x.y</code>.</p><h2 id=releases>Releases</h2><h3 id=2350-2021-12-29>2.35.0 (2021-12-29)</h3><p>Official <a href=https://www.apache.org/dyn/closer.cgi/beam/2.35.0/apache-beam-2.35.0-source-release.zip>source code download</a>.
+versions denoted <code>0.x.y</code>.</p><h2 id=releases>Releases</h2><h3 id=2360-2021-02-07>2.36.0 (2021-02-07)</h3><p>Official <a href=https://www.apache.org/dyn/closer.cgi/beam/2.36.0/apache-beam-2.36.0-source-release.zip>source code download</a>.
+<a href=https://downloads.apache.org/beam/2.36.0/apache-beam-2.36.0-source-release.zip.sha512>SHA-512</a>.
+<a href=https://downloads.apache.org/beam/2.36.0/apache-beam-2.36.0-source-release.zip.asc>signature</a>.</p><p><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12350407">Release notes</a>
+<a href=/blog/beam-2.36.0>Blog post</a>.</p><h3 id=2350-2021-12-29>2.35.0 (2021-12-29)</h3><p>Official <a href=https://www.apache.org/dyn/closer.cgi/beam/2.35.0/apache-beam-2.35.0-source-release.zip>source code download</a>.
 <a href=https://downloads.apache.org/beam/2.35.0/apache-beam-2.35.0-source-release.zip.sha512>SHA-512</a>.
 <a href=https://downloads.apache.org/beam/2.35.0/apache-beam-2.35.0-source-release.zip.asc>signature</a>.</p><p><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12350406">Release notes</a>
 <a href=/blog/beam-2.35.0>Blog post</a>.</p><h3 id=2340-2021-11-11>2.34.0 (2021-11-11)</h3><p>Official <a href=https://www.apache.org/dyn/closer.cgi/beam/2.34.0/apache-beam-2.34.0-source-release.zip>source code download</a>.
@@ -157,7 +160,7 @@ versions denoted <code>0.x.y</code>.</p><h2 id=releases>Releases</h2><h3 id=2350
 <a href=https://archive.apache.org/dist/beam/2.1.0/apache-beam-2.1.0-source-release.zip.asc>signature</a>.</p><p><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12340528">Release notes</a>.</p><h3 id=200-2017-05-17>2.0.0 (2017-05-17)</h3><p>Official <a href=https://archive.apache.org/dist/beam/2.0.0/apache-beam-2.0.0-source-release.zip>source code download</a>.
 <a href=https://archive.apache.org/dist/beam/2.0.0/apache-beam-2.0.0-source-release.zip.sha1>SHA-1</a>.
 <a href=https://archive.apache.org/dist/beam/2.0.0/apache-beam-2.0.0-source-release.zip.md5>MD5</a>.
-<a href=https://archive.apache.org/dist/beam/2.0.0/apache-beam-2.0.0-source-release.zip.asc>signature</a>.</p><p><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12339746">Release notes</a>.</p><div class=feedback><p class=update>Last updated on 2021/12/29</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is there anything that you would like to change? Let us know!</p><button class=load- [...]
+<a href=https://archive.apache.org/dist/beam/2.0.0/apache-beam-2.0.0-source-release.zip.asc>signature</a>.</p><p><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12339746">Release notes</a>.</p><div class=feedback><p class=update>Last updated on 2022/02/07</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is there anything that you would like to change? Let us know!</p><button class=load- [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/get-started/index.xml b/website/generated-content/get-started/index.xml
index 162b278..6f280c7 100644
--- a/website/generated-content/get-started/index.xml
+++ b/website/generated-content/get-started/index.xml
@@ -1165,7 +1165,7 @@ limitations under the License.
 &lt;pre>&lt;code class="language-unix" data-lang="unix">$ mvn archetype:generate \
 -DarchetypeGroupId=org.apache.beam \
 -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
--DarchetypeVersion=2.35.0 \
+-DarchetypeVersion=2.36.0 \
 -DgroupId=org.example \
 -DartifactId=word-count-beam \
 -Dversion=&amp;#34;0.1&amp;#34; \
@@ -1181,7 +1181,7 @@ limitations under the License.
 &lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-powerShell" data-lang="powerShell">&lt;span class="n">PS&lt;/span>&lt;span class="p">&amp;gt;&lt;/span> &lt;span class="n">mvn&lt;/span> &lt;span class="n">archetype&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="n">generate&lt;/span> &lt;span class="p">`&lt;/span>
 &lt;span class="n">-D&lt;/span> &lt;span class="n">archetypeGroupId&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">apache&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">beam&lt;/span> &lt;span class="p">`&lt;/span>
 &lt;span class="n">-D&lt;/span> &lt;span class="n">archetypeArtifactId&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">beam-sdks-java-maven-archetypes-examples&lt;/span> &lt;span class="p">`&lt;/span>
-&lt;span class="n">-D&lt;/span> &lt;span class="n">archetypeVersion&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">35&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">0&lt;/span> &lt;span class="p">`&lt;/span>
+&lt;span class="n">-D&lt;/span> &lt;span class="n">archetypeVersion&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">36&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">0&lt;/span> &lt;span class="p">`&lt;/span>
 &lt;span class="n">-D&lt;/span> &lt;span class="n">groupId&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">example&lt;/span> &lt;span class="p">`&lt;/span>
 &lt;span class="n">-D&lt;/span> &lt;span class="n">artifactId&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">word-count-beam&lt;/span> &lt;span class="p">`&lt;/span>
 &lt;span class="n">-D&lt;/span> &lt;span class="n">version&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;0.1&amp;#34;&lt;/span> &lt;span class="p">`&lt;/span>
@@ -2025,7 +2025,7 @@ limitations under the License.
 -->
 &lt;h1 id="apache-beam8482-downloads">Apache Beam™ Downloads&lt;/h1>
 &lt;blockquote>
-&lt;p>Beam SDK 2.35.0 is the latest released version.&lt;/p>
+&lt;p>Beam SDK 2.36.0 is the latest released version.&lt;/p>
 &lt;/blockquote>
 &lt;h2 id="using-a-central-repository">Using a central repository&lt;/h2>
 &lt;p>The easiest way to use Apache Beam is via one of the released versions in a
@@ -2036,18 +2036,18 @@ with the &lt;code>DirectRunner&lt;/code>, add the following dependencies to your
 &lt;pre>&lt;code>&amp;lt;dependency&amp;gt;
 &amp;lt;groupId&amp;gt;org.apache.beam&amp;lt;/groupId&amp;gt;
 &amp;lt;artifactId&amp;gt;beam-sdks-java-core&amp;lt;/artifactId&amp;gt;
-&amp;lt;version&amp;gt;2.35.0&amp;lt;/version&amp;gt;
+&amp;lt;version&amp;gt;2.36.0&amp;lt;/version&amp;gt;
 &amp;lt;/dependency&amp;gt;
 &amp;lt;dependency&amp;gt;
 &amp;lt;groupId&amp;gt;org.apache.beam&amp;lt;/groupId&amp;gt;
 &amp;lt;artifactId&amp;gt;beam-runners-direct-java&amp;lt;/artifactId&amp;gt;
-&amp;lt;version&amp;gt;2.35.0&amp;lt;/version&amp;gt;
+&amp;lt;version&amp;gt;2.36.0&amp;lt;/version&amp;gt;
 &amp;lt;scope&amp;gt;runtime&amp;lt;/scope&amp;gt;
 &amp;lt;/dependency&amp;gt;
 &lt;/code>&lt;/pre>
 &lt;p>Similarly in Python, if you are using PyPI and want to use the SDK for Python
 with &lt;code>DirectRunner&lt;/code>, add the following requirement to your &lt;code>setup.py&lt;/code> file:&lt;/p>
-&lt;pre>&lt;code>apache-beam==2.35.0
+&lt;pre>&lt;code>apache-beam==2.36.0
 &lt;/code>&lt;/pre>
 &lt;p>Additionally, you may want to depend on additional SDK modules, such as IO
 connectors or other extensions, and additional runners to execute your pipeline
@@ -2073,11 +2073,17 @@ the form &lt;code>major.minor.patch&lt;/code> and are incremented as follows:&lt
 &lt;li>minor version for new functionality added in a backward-compatible manner, infrequent incompatible API changes&lt;/li>
 &lt;li>patch version for forward-compatible bug fixes&lt;/li>
 &lt;/ul>
-&lt;p>Please note that APIs marked &lt;a href="https://beam.apache.org/releases/javadoc/2.35.0/org/apache/beam/sdk/annotations/Experimental.html">&lt;code>@Experimental&lt;/code>&lt;/a>
+&lt;p>Please note that APIs marked &lt;a href="https://beam.apache.org/releases/javadoc/2.36.0/org/apache/beam/sdk/annotations/Experimental.html">&lt;code>@Experimental&lt;/code>&lt;/a>
 may change at any point and are not guaranteed to remain compatible across versions.&lt;/p>
 &lt;p>Additionally, any API may change before the first stable release, i.e., between
 versions denoted &lt;code>0.x.y&lt;/code>.&lt;/p>
 &lt;h2 id="releases">Releases&lt;/h2>
+&lt;h3 id="2360-2021-02-07">2.36.0 (2021-02-07)&lt;/h3>
+&lt;p>Official &lt;a href="https://www.apache.org/dyn/closer.cgi/beam/2.36.0/apache-beam-2.36.0-source-release.zip">source code download&lt;/a>.
+&lt;a href="https://downloads.apache.org/beam/2.36.0/apache-beam-2.36.0-source-release.zip.sha512">SHA-512&lt;/a>.
+&lt;a href="https://downloads.apache.org/beam/2.36.0/apache-beam-2.36.0-source-release.zip.asc">signature&lt;/a>.&lt;/p>
+&lt;p>&lt;a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&amp;amp;version=12350407">Release notes&lt;/a>
+&lt;a href="/blog/beam-2.36.0">Blog post&lt;/a>.&lt;/p>
 &lt;h3 id="2350-2021-12-29">2.35.0 (2021-12-29)&lt;/h3>
 &lt;p>Official &lt;a href="https://www.apache.org/dyn/closer.cgi/beam/2.35.0/apache-beam-2.35.0-source-release.zip">source code download&lt;/a>.
 &lt;a href="https://downloads.apache.org/beam/2.35.0/apache-beam-2.35.0-source-release.zip.sha512">SHA-512&lt;/a>.
@@ -4161,7 +4167,7 @@ python -m apache_beam.examples.streaming_wordcount \
 &lt;h3 id="reading-an-unbounded-dataset">Reading an unbounded dataset&lt;/h3>
 &lt;p>This example uses an unbounded dataset as input. The code reads Pub/Sub
 messages from a Pub/Sub subscription or topic using
-&lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.ReadFromPubSub">&lt;code>beam.io.ReadFromPubSub&lt;/code>&lt;/a>.&lt;/p>
+&lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.ReadFromPubSub">&lt;code>beam.io.ReadFromPubSub&lt;/code>&lt;/a>.&lt;/p>
 &lt;div class='language-java snippet'>
 &lt;div class="notebook-skip code-snippet">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
@@ -4199,7 +4205,7 @@ support only bounded output, while others support both bounded and unbounded
 outputs.&lt;/p>
 &lt;p>This example uses an unbounded &lt;code>PCollection&lt;/code> and streams the results to
 Google Pub/Sub. The code formats the results and writes them to a Pub/Sub topic
-using &lt;a href="https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.WriteToPubSub">&lt;code>beam.io.WriteToPubSub&lt;/code>&lt;/a>.&lt;/p>
+using &lt;a href="https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.WriteToPubSub">&lt;code>beam.io.WriteToPubSub&lt;/code>&lt;/a>.&lt;/p>
 &lt;div class='language-java snippet'>
 &lt;div class="notebook-skip code-snippet">
 &lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
diff --git a/website/generated-content/get-started/quickstart-java/index.html b/website/generated-content/get-started/quickstart-java/index.html
index 4a0cd47..52da62a 100644
--- a/website/generated-content/get-started/quickstart-java/index.html
+++ b/website/generated-content/get-started/quickstart-java/index.html
@@ -21,7 +21,7 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Get started</span></li><li><a href=/get-started/beam-overview/>Beam Overview</a></li><li><a href=/get-started/tour-of-beam/>Tour of Beam</a></li><li><s [...]
       -DarchetypeGroupId=org.apache.beam \
       -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
-      -DarchetypeVersion=2.35.0 \
+      -DarchetypeVersion=2.36.0 \
       -DgroupId=org.example \
       -DartifactId=word-count-beam \
       -Dversion=&#34;0.1&#34; \
@@ -29,7 +29,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
       -DinteractiveMode=false</code></pre></div></div><div class="shell-powerShell snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-powerShell data-lang=powerShell><span class=n>PS</span><span class=p>&gt;</span> <span class=n>mvn</span> <span class=n>archetype</span><span class=err>:</span><span [...]
  <span class=n>-D</span> <span class=n>archetypeGroupId</span><span class=p>=</span><span class=n>org</span><span class=p>.</span><span class=n>apache</span><span class=p>.</span><span class=n>beam</span> <span class=p>`</span>
  <span class=n>-D</span> <span class=n>archetypeArtifactId</span><span class=p>=</span><span class=n>beam-sdks-java-maven-archetypes-examples</span> <span class=p>`</span>
- <span class=n>-D</span> <span class=n>archetypeVersion</span><span class=p>=</span><span class=n>2</span><span class=p>.</span><span class=n>35</span><span class=p>.</span><span class=n>0</span> <span class=p>`</span>
+ <span class=n>-D</span> <span class=n>archetypeVersion</span><span class=p>=</span><span class=n>2</span><span class=p>.</span><span class=n>36</span><span class=p>.</span><span class=n>0</span> <span class=p>`</span>
  <span class=n>-D</span> <span class=n>groupId</span><span class=p>=</span><span class=n>org</span><span class=p>.</span><span class=n>example</span> <span class=p>`</span>
  <span class=n>-D</span> <span class=n>artifactId</span><span class=p>=</span><span class=n>word-count-beam</span> <span class=p>`</span>
  <span class=n>-D</span> <span class=n>version</span><span class=p>=</span><span class=s2>&#34;0.1&#34;</span> <span class=p>`</span>
diff --git a/website/generated-content/get-started/wordcount-example/index.html b/website/generated-content/get-started/wordcount-example/index.html
index 16b3fb6..226e271 100644
--- a/website/generated-content/get-started/wordcount-example/index.html
+++ b/website/generated-content/get-started/wordcount-example/index.html
@@ -588,7 +588,7 @@ python -m apache_beam.examples.streaming_wordcount \
 <strong><a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/streaming_wordcount.py>streaming_wordcount.py</a>.</strong></p><p><strong>To run this example in Go:</strong></p><blockquote><p><strong>Note:</strong> StreamingWordCount is not yet available for the Go SDK. There is an open issue for this
 (<a href=https://issues.apache.org/jira/browse/BEAM-4292>BEAM-4292</a>).</p></blockquote><h3 id=reading-an-unbounded-dataset>Reading an unbounded dataset</h3><p>This example uses an unbounded dataset as input. The code reads Pub/Sub
 messages from a Pub/Sub subscription or topic using
-<a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.ReadFromPubSub><code>beam.io.ReadFromPubSub</code></a>.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java>  <span class=o>//</span> <span  [...]
+<a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.ReadFromPubSub><code>beam.io.ReadFromPubSub</code></a>.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java>  <span class=o>//</span> <span  [...]
   <span class=k>if</span> <span class=n>known_args</span><span class=o>.</span><span class=n>input_subscription</span><span class=p>:</span>
     <span class=n>data</span> <span class=o>=</span> <span class=n>p</span> <span class=o>|</span> <span class=n>beam</span><span class=o>.</span><span class=n>io</span><span class=o>.</span><span class=n>ReadFromPubSub</span><span class=p>(</span>
         <span class=n>subscription</span><span class=o>=</span><span class=n>known_args</span><span class=o>.</span><span class=n>input_subscription</span><span class=p>)</span>
@@ -599,7 +599,7 @@ such, you must make sure to choose an appropriate I/O for the results. Some I/Os
 support only bounded output, while others support both bounded and unbounded
 outputs.</p><p>This example uses an unbounded <code>PCollection</code> and streams the results to
 Google Pub/Sub. The code formats the results and writes them to a Pub/Sub topic
-using <a href=https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.WriteToPubSub><code>beam.io.WriteToPubSub</code></a>.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java>  <span class=o>//</span> <s [...]
+using <a href=https://beam.apache.org/releases/pydoc/2.36.0/apache_beam.io.gcp.pubsub.html#apache_beam.io.gcp.pubsub.WriteToPubSub><code>beam.io.WriteToPubSub</code></a>.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java>  <span class=o>//</span> <s [...]
   <span class=n>_</span> <span class=o>=</span> <span class=p>(</span><span class=n>output</span>
     <span class=o>|</span> <span class=s1>&#39;EncodeString&#39;</span> <span class=o>&gt;&gt;</span> <span class=n>Map</span><span class=p>(</span><span class=k>lambda</span> <span class=n>s</span><span class=p>:</span> <span class=n>s</span><span class=o>.</span><span class=n>encode</span><span class=p>(</span><span class=s1>&#39;utf-8&#39;</span><span class=p>))</span>
     <span class=o>|</span> <span class=n>beam</span><span class=o>.</span><span class=n>io</span><span class=o>.</span><span class=n>WriteToPubSub</span><span class=p>(</span><span class=n>known_args</span><span class=o>.</span><span class=n>output_topic</span><span class=p>))</span></code></pre></div></div></div><div class="language-go snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img [...]
diff --git a/website/generated-content/index.html b/website/generated-content/index.html
index 8a725bf..303746b 100644
--- a/website/generated-content/index.html
+++ b/website/generated-content/index.html
@@ -25,7 +25,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 <img src=/images/model-ellipse.svg>
 <img src=/images/model-sinks-icon.svg class=icon></div><div class=row><div class=column><img src=/images/model-sources-icon.svg class="icon mobile"><h4>Sources</h4><p>Beam reads your data from a diverse set of supported sources, no matter if it’s on-prem or in the cloud.</p></div><div class=column><img src=/images/model-processing-icon.svg class="icon mobile"><h4>Processing</h4><p>Beam executes your business logic for Batch and Streaming use cases.</p></div><div class=column><img src=/im [...]
 <img src=/images/logos/runners/spark.png></div><p class=more>& MORE</p><div><h4>Choose your runner</h4><p>A Beam pipeline can execute in the most popular distributed data processing systems such as Spark, Flink or Samza.</p></div></div><div class=column><div class=logos-row><img class=first_logo src=/images/logos/sdks/python-logo.png>
-<img src=/images/logos/sdks/go.png></div><p class=more>& MORE</p><div><h4>Choose your language</h4><p>You can write Apache Beam pipelines in your programming language of choice: Java, Python and Go. Learn More.</p></div></div></div></div></div><div class=calendar><h2 class=calendar-title>Stay up to date with Beam</h2><div class=calendar-content><div class="calendar-card-big calendar-card-big-left"><div class=desktop><a class=twitter-timeline data-width=381 data-height=460 href="https://t [...]
+<img src=/images/logos/sdks/go.png></div><p class=more>& MORE</p><div><h4>Choose your language</h4><p>You can write Apache Beam pipelines in your programming language of choice: Java, Python and Go. Learn More.</p></div></div></div></div></div><div class=calendar><h2 class=calendar-title>Stay up to date with Beam</h2><div class=calendar-content><div class="calendar-card-big calendar-card-big-left"><div class=desktop><a class=twitter-timeline data-width=381 data-height=460 href="https://t [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></div><script src=/js/hero/lottie-light.min.min.a950edd525eba16dd54da3844c6ec190bc2a233e1b59d405bd01a99fdbf43096.js></script><script src=/js/hero/he [...]
\ No newline at end of file
diff --git a/website/generated-content/sitemap.xml b/website/generated-content/sitemap.xml
index 3cc3873..4d95835 100644
--- a/website/generated-content/sitemap.xml
+++ b/website/generated-content/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/beam-2.35.0/</loc><lastmod>2021-12-29T17:49:39-08:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2021-12-29T17:49:39-08:00</lastmod></url><url><loc>/blog/</loc><lastmod>2021-12-29T17:49:39-08:00</lastmod></url><url><loc>/categories/</loc><lastmod>2021-12-29T17:49:39-08:00</lastmod></url><url><loc>/blog/b [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/beam-2.36.0/</loc><lastmod>2022-02-07T15:54:59-08:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2022-02-07T15:54:59-08:00</lastmod></url><url><loc>/blog/</loc><lastmod>2022-02-07T15:54:59-08:00</lastmod></url><url><loc>/categories/</loc><lastmod>2022-02-07T15:54:59-08:00</lastmod></url><url><loc>/blog/b [...]
\ No newline at end of file