1 2<!DOCTYPE html> 3 4 5<html lang="en" data-content_root="../" > 6 7 <head> 8 <meta charset="utf-8" /> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> 10 11 <title>Guides — Smithy 2.0</title> 12 13 14 15
15<script data-cfasync="false"> 16 document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; 17 document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; 18 </script>
18 19 <!-- 20 this give us a css class that will be invisible only if js is disabled 21 --> 22 <noscript> 23 <style> 24 .pst-js-only { display: none !important; } 25 26 </style> 27 </noscript> 28 29 <!-- Loaded before other Sphinx assets --> 30 <link href="../_static/styles/theme.css?digest=90905a2f556bf617f1a9" rel="stylesheet" /> 31<link href="../_static/styles/pydata-sphinx-theme.css?digest=90905a2f556bf617f1a9" rel="stylesheet" /> 32 33 <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=8f2a1f02" /> 34 <link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=4418a689" /> 35 <link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" /> 36 <link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=4c969af8" /> 37 <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=f465e7c3" /> 38 39 <!-- So that users can add custom icons --> 40
40<script defer src="../_static/scripts/fontawesome.js?digest=90905a2f556bf617f1a9"></script>
40 41 <!-- Pre-loaded scripts that we'll load fully later --> 42 <link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=90905a2f556bf617f1a9" /> 43<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=90905a2f556bf617f1a9" /> 44 45
45<script src="../_static/documentation_options.js?v=60dbed4a"></script>
45 46
46<script src="../_static/doctools.js?v=fd6eb6e6"></script>
46 47
47<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
47 48
48<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
48 49
49<script src="../_static/copybutton.js?v=6b89569b"></script>
49 50
50<script src="../_static/tabs.js?v=3ee01567"></script>
50 51
51<script src="../_static/scripts/sphinx-book-theme.js?v=fab101a9"></script>
51 52
52<script>DOCUMENTATION_OPTIONS.pagename = 'guides/index';</script>
52 53
53<script>DOCUMENTATION_OPTIONS.search_as_you_type = false;</script>
53 54
54<script src="../_static/custom.js?v=0fa699fc"></script>
54 55 <link rel="icon" href="../_static/favicon.svg"/> 56 <link rel="index" title="Index" href="../genindex.html" /> 57 <link rel="search" title="Search" href="../search.html" /> 58 <link rel="next" title="The Smithy CLI" href="smithy-cli/index.html" /> 59 <link rel="prev" title="Trait index" href="../trait-index.html" /> 60 <meta name="viewport" content="width=device-width, initial-scale=1"/> 61 <meta name="docsearch:language" content="en"/> 62 <meta name="docsearch:version" content="2.0" /> 63 64 65
65<script src="../_static/searchtools.js"></script>
65 66
66<script src="../_static/language_data.js"></script>
66 67
67<script src="../searchindex.js"></script>
67 68
69<script src="https://a0.awsstatic.com/s_code/js/3.0/awshome_s_code.js"></script>
vendor: 1 bytes, line 69
69
70<script src="https://d2c.aws.amazon.com/client/loader/v1/d2c-load.js"></script>
70 71<!-- Match the landing page typography: Schibsted Grotesk + JetBrains Mono. --> 72<link rel="preconnect" href="https://fonts.googleapis.com" /> 73<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 74<link href="https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet" /> 75 </head> 76 <body data-default-mode=""> 77 78 79 <div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div> 80 81 82 <div id="pst-scroll-pixel-helper"></div> 83 84 <button type="button" class="btn rounded-pill" id="pst-back-to-top"> 85 <i class="fa-solid fa-arrow-up"></i>Back to top</button> 86 87 88 89 90 <dialog id="pst-search-dialog"> 91 92<form class="bd-search d-flex align-items-center" 93 action="../search.html" 94 method="get"> 95 <i class="fa-solid fa-magnifying-glass"></i> 96 <input type="search" 97 class="form-control" 98 name="q" 99 placeholder="Search..." 100 aria-label="Search..." 101 autocomplete="off" 102 autocorrect="off" 103 autocapitalize="off" 104 spellcheck="false"/> 105 <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span> 106</form> 107 </dialog> 108 109 <div class="pst-async-banner-revealer d-none"> 110 <aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside> 111</div> 112 113 114 <header id="pst-header" class="bd-header navbar navbar-expand-lg bd-navbar d-print-none"> 115<div class="bd-header__inner bd-page-width"> 116 <button class="pst-navbar-icon sidebar-toggle primary-toggle" aria-label="Site navigation"> 117 <span class="fa-solid fa-bars"></span> 118 </button> 119 120 121 <div class=" navbar-header-items__start"> 122 123 <div class="navbar-item"> 124 125 126 127<a class="navbar-brand logo" href="/"> 128 129 130 131 132 133 134 135 136 137 138 <img src="../_static/smithy.svg" class="logo__image only-light" alt="Smithy 2.0 - Home"/> 139 <img src="../_static/smithy-dark.svg" class="logo__image only-dark pst-js-only" alt="Smithy 2.0 - Home"/> 140 141 142</a></div> 143 144 </div> 145 146 <div class=" navbar-header-items"> 147 148 <div class="me-auto navbar-header-items__center"> 149 150 <div class="navbar-item"> 151<nav class="bd-navbar-elements navbar-nav"> 152 <ul class="bd-navbar-elements navbar-nav"> 153 <li class="nav-item"> 154 <a class="nav-link nav-internal" href="../index.html">Documentation</a> 155 </li> 156 <li class="nav-item"> 157 <a class="nav-link nav-external" href="https://github.com/smithy-lang/smithy-examples">Examples</a> 158 </li> 159 <li class="nav-item"> 160 <a class="nav-link nav-external" href="https://github.com/smithy-lang/awesome-smithy">Awesome Smithy</a> 161 </li> 162 </ul> 163</nav></div> 164 165 </div> 166 167 168 <div class="navbar-header-items__end"> 169 170 <div class="navbar-item navbar-persistent--container"> 171 172 173<button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> 174 <i class="fa-solid fa-magnifying-glass"></i> 175 <span class="search-button__default-text">Search</span> 176 <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> 177</button> 178 </div> 179 180 181 <div class="navbar-item"> 182 183<div class="theme-switch-container dropdown pst-js-only" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Color mode"> 184 <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button dropdown-toggle" aria-label="Color mode" data-bs-toggle="dropdown"> 185 <i class="theme-switch fa-solid fa-sun fa-lg fa-fw" data-mode="light" title="Light"></i> 186 <i class="theme-switch fa-solid fa-moon fa-lg fa-fw" data-mode="dark" title="Dark"></i> 187 <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg fa-fw" data-mode="auto" title="System Settings"></i> 188 </button> 189 <ul class="dropdown-menu dropdown-menu-end"> 190 <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg fa-fw me-1"></i>System Settings</button></li> 191 <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="light"><i class="fa-solid fa-sun fa-lg fa-fw me-1"></i>Light</button></li> 192 <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="dark"><i class="fa-solid fa-moon fa-lg fa-fw me-1"></i>Dark</button></li> 193 </ul> 194</div></div> 195 196 <div class="navbar-item"><ul class="navbar-icon-links" 197 aria-label="Icon Links"> 198 <li class="nav-item"> 199 200 201 202 203 204 205 206 207 <a href="https://github.com/smithy-lang/smithy" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-github fa-lg" aria-hidden="true"></i><span class="visually-hidden">GitHub</span></a> 208 </li> 209</ul></div> 210 211 </div> 212 213 </div> 214 215 216 <div class="navbar-persistent--mobile"> 217 218<button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> 219 <i class="fa-solid fa-magnifying-glass"></i> 220 <span class="search-button__default-text">Search</span> 221 <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> 222</button> 223 </div> 224 225 226 227</div> 228 229 </header> 230 231 232 <div class="bd-container"> 233 <div class="bd-container__inner bd-page-width"> 234 235 236 237 <dialog id="pst-primary-sidebar-modal"></dialog> 238 <div id="pst-primary-sidebar" class="bd-sidebar-primary bd-sidebar"> 239 240 241 242 <div class="sidebar-header-items sidebar-primary__section"> 243 244 245 <div class="sidebar-header-items__center"> 246 247 248 249 <div class="navbar-item"> 250<nav class="bd-navbar-elements navbar-nav"> 251 <ul class="bd-navbar-elements navbar-nav"> 252 <li class="nav-item"> 253 <a class="nav-link nav-internal" href="../index.html">Documentation</a> 254 </li> 255 <li class="nav-item"> 256 <a class="nav-link nav-external" href="https://github.com/smithy-lang/smithy-examples">Examples</a> 257 </li> 258 <li class="nav-item"> 259 <a class="nav-link nav-external" href="https://github.com/smithy-lang/awesome-smithy">Awesome Smithy</a> 260 </li> 261 </ul> 262</nav></div> 263 264 265 </div> 266 267 268 269 <div class="sidebar-header-items__end"> 270 271 <div class="navbar-item"> 272 273<div class="theme-switch-container dropdown pst-js-only" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Color mode"> 274 <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button dropdown-toggle" aria-label="Color mode" data-bs-toggle="dropdown"> 275 <i class="theme-switch fa-solid fa-sun fa-lg fa-fw" data-mode="light" title="Light"></i> 276 <i class="theme-switch fa-solid fa-moon fa-lg fa-fw" data-mode="dark" title="Dark"></i> 277 <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg fa-fw" data-mode="auto" title="System Settings"></i> 278 </button> 279 <ul class="dropdown-menu dropdown-menu-end"> 280 <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg fa-fw me-1"></i>System Settings</button></li> 281 <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="light"><i class="fa-solid fa-sun fa-lg fa-fw me-1"></i>Light</button></li> 282 <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="dark"><i class="fa-solid fa-moon fa-lg fa-fw me-1"></i>Dark</button></li> 283 </ul> 284</div></div> 285 286 <div class="navbar-item"><ul class="navbar-icon-links" 287 aria-label="Icon Links"> 288 <li class="nav-item"> 289 290 291 292 293 294 295 296 297 <a href="https://github.com/smithy-lang/smithy" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-github fa-lg" aria-hidden="true"></i><span class="visually-hidden">GitHub</span></a> 298 </li> 299</ul></div> 300 301 </div> 302 303 </div> 304 305 <div class="sidebar-primary-items__start sidebar-primary__section"> 306 <div class="sidebar-primary-item"><nav class="bd-links bd-docs-nav" aria-label="Main"> 307 <div class="bd-toc-item navbar-nav active"> 308 <ul class="current nav bd-sidenav"> 309<li class="toctree-l1"><a class="reference internal" href="../quickstart.html">Quick start</a></li> 310<li class="toctree-l1 has-children"><a class="reference internal" href="../spec/index.html">Smithy specification</a>
310<details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 311<li class="toctree-l2"><a class="reference internal" href="../spec/model.html">The Smithy model</a></li> 312<li class="toctree-l2"><a class="reference internal" href="../spec/simple-types.html">Simple types</a></li> 313<li class="toctree-l2"><a class="reference internal" href="../spec/aggregate-types.html">Aggregate types</a></li> 314<li class="toctree-l2"><a class="reference internal" href="../spec/service-types.html">Service types</a></li> 315<li class="toctree-l2"><a class="reference internal" href="../spec/mixins.html">Mixins</a></li> 316<li class="toctree-l2"><a class="reference internal" href="../spec/constraint-traits.html">Constraint traits</a></li> 317<li class="toctree-l2"><a class="reference internal" href="../spec/type-refinement-traits.html">Type refinement traits</a></li> 318<li class="toctree-l2"><a class="reference internal" href="../spec/documentation-traits.html">Documentation traits</a></li> 319<li class="toctree-l2"><a class="reference internal" href="../spec/behavior-traits.html">Behavior traits</a></li> 320<li class="toctree-l2"><a class="reference internal" href="../spec/resource-traits.html">Resource traits</a></li> 321<li class="toctree-l2"><a class="reference internal" href="../spec/authentication-traits.html">Authentication traits</a></li> 322<li class="toctree-l2"><a class="reference internal" href="../spec/protocol-traits.html">Serialization and Protocol traits</a></li> 323<li class="toctree-l2"><a class="reference internal" href="../spec/streaming.html">Streaming</a></li> 324<li class="toctree-l2"><a class="reference internal" href="../spec/http-bindings.html">HTTP bindings</a></li> 325<li class="toctree-l2"><a class="reference internal" href="../spec/endpoint-traits.html">Endpoint traits</a></li> 326<li class="toctree-l2"><a class="reference internal" href="../spec/selectors.html">Selectors</a></li> 327<li class="toctree-l2"><a class="reference internal" href="../spec/model-validation.html">Model validation</a></li> 328<li class="toctree-l2"><a class="reference internal" href="../spec/shape-closures.html">Shape closures</a></li> 329<li class="toctree-l2"><a class="reference internal" href="../spec/idl.html">Smithy IDL</a></li> 330<li class="toctree-l2"><a class="reference internal" href="../spec/json-ast.html">JSON AST</a></li> 331</ul> 332</details></li> 333<li class="toctree-l1"><a class="reference internal" href="../trait-index.html">Trait index</a></li> 334<li class="toctree-l1 current active has-children"><a class="current reference internal" href="#">Guides</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 335<li class="toctree-l2 has-children"><a class="reference internal" href="smithy-cli/index.html">The Smithy CLI</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 336<li class="toctree-l3"><a class="reference internal" href="smithy-cli/cli_installation.html">Installation</a></li> 337</ul> 338</details></li> 339<li class="toctree-l2"><a class="reference internal" href="smithy-build-json.html">smithy-build.json</a></li> 340<li class="toctree-l2 has-children"><a class="reference internal" href="gradle-plugin/index.html">Smithy Gradle Plugins</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 341<li class="toctree-l3"><a class="reference internal" href="gradle-plugin/gradle-migration-guide.html">Migrating to Gradle plugin version 0.10.0+</a></li> 342</ul> 343</details></li> 344<li class="toctree-l2 has-children"><a class="reference internal" href="using-code-generation/index.html">Code Generation</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 345<li class="toctree-l3"><a class="reference internal" href="using-code-generation/update-model.html">Updating the Smithy Model</a></li> 346<li class="toctree-l3"><a class="reference internal" href="using-code-generation/generating-a-client.html">Generating a client</a></li> 347</ul> 348</details></li> 349<li class="toctree-l2"><a class="reference internal" href="model-linters.html">Linting Models</a></li> 350<li class="toctree-l2"><a class="reference internal" href="model-validation-examples.html">Model Validation Examples</a></li> 351<li class="toctree-l2"><a class="reference internal" href="evolving-models.html">Evolving Models</a></li> 352<li class="toctree-l2"><a class="reference internal" href="wire-protocol-selection.html">Wire protocol selection</a></li> 353<li class="toctree-l2"><a class="reference internal" href="style-guide.html">Style Guide</a></li> 354<li class="toctree-l2 has-children"><a class="reference internal" href="model-translations/index.html">Model Translations</a>
354<details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 355<li class="toctree-l3"><a class="reference internal" href="model-translations/converting-to-openapi.html">Converting Smithy to OpenAPI</a></li> 356<li class="toctree-l3"><a class="reference internal" href="model-translations/migrating-idl-1-to-2.html">Smithy IDL 1.0 to 2.0 Migration Guide</a></li> 357<li class="toctree-l3"><a class="reference internal" href="model-translations/generating-cloudformation-resources.html">Generating CloudFormation Resource Schemas from Smithy</a></li> 358</ul> 359</details></li> 360<li class="toctree-l2 has-children"><a class="reference internal" href="building-codegen/index.html">Creating a Code Generator</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 361<li class="toctree-l3"><a class="reference internal" href="building-codegen/overview-and-concepts.html">Overview and Concepts</a></li> 362<li class="toctree-l3"><a class="reference internal" href="building-codegen/mapping-shapes-to-languages.html">Mapping Smithy Shapes to Your Language</a></li> 363<li class="toctree-l3"><a class="reference internal" href="building-codegen/creating-codegen-repo.html">Creating a Codegen Repo</a></li> 364<li class="toctree-l3"><a class="reference internal" href="building-codegen/configuring-the-generator.html">Configuring the Generator</a></li> 365<li class="toctree-l3"><a class="reference internal" href="building-codegen/implementing-the-generator.html">Implementing the Generator</a></li> 366<li class="toctree-l3"><a class="reference internal" href="building-codegen/making-codegen-pluggable.html">Making Codegen Pluggable</a></li> 367<li class="toctree-l3"><a class="reference internal" href="building-codegen/generating-code.html">Generating Code</a></li> 368<li class="toctree-l3"><a class="reference internal" href="building-codegen/decoupling-codegen-with-symbols.html">Decoupling Codegen with Symbols</a></li> 369<li class="toctree-l3"><a class="reference internal" href="building-codegen/using-the-semantic-model.html">Using the Semantic Model</a></li> 370</ul> 371</details></li> 372<li class="toctree-l2 has-children"><a class="reference internal" href="client-guidance/index.html">Smithy Client Guidance</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 373<li class="toctree-l3 has-children"><a class="reference internal" href="client-guidance/application-protocols/index.html">Application Protocols</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 374<li class="toctree-l4"><a class="reference internal" href="client-guidance/application-protocols/http.html">HTTP</a></li> 375</ul> 376</details></li> 377<li class="toctree-l3"><a class="reference internal" href="client-guidance/context.html">Context</a></li> 378<li class="toctree-l3"><a class="reference internal" href="client-guidance/retries.html">Retrying Requests</a></li> 379<li class="toctree-l3"><a class="reference internal" href="client-guidance/endpoints.html">Endpoint Resolution</a></li> 380<li class="toctree-l3"><a class="reference internal" href="client-guidance/identity-auth.html">Identity and Authentication</a></li> 381<li class="toctree-l3"><a class="reference internal" href="client-guidance/plugins.html">Client Plugins</a></li> 382<li class="toctree-l3"><a class="reference internal" href="client-guidance/interceptors.html">Interceptors</a></li> 383</ul> 384</details></li> 385<li class="toctree-l2"><a class="reference internal" href="glossary.html">Glossary</a></li> 386</ul> 387</details></li> 388<li class="toctree-l1 has-children"><a class="reference internal" href="../tutorials/index.html">Tutorials</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 389<li class="toctree-l2"><a class="reference internal" href="../tutorials/full-stack-tutorial.html">Full Stack Application</a></li> 390</ul> 391</details></li> 392<li class="toctree-l1 has-children"><a class="reference internal" href="../additional-specs/index.html">Additional specs</a>
392<details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 393<li class="toctree-l2"><a class="reference internal" href="../additional-specs/ai-traits.html">Smithy AI Traits</a></li> 394<li class="toctree-l2"><a class="reference internal" href="../additional-specs/contract-traits.html">Contract traits</a></li> 395<li class="toctree-l2"><a class="reference internal" href="../additional-specs/http-protocol-compliance-tests.html">HTTP Protocol Compliance Tests</a></li> 396<li class="toctree-l2"><a class="reference internal" href="../additional-specs/event-stream-protocol-compliance-tests.html">Event Stream Protocol Compliance Tests</a></li> 397<li class="toctree-l2"><a class="reference internal" href="../additional-specs/smoke-tests.html">Smoke Tests</a></li> 398<li class="toctree-l2"><a class="reference internal" href="../additional-specs/waiters.html">Waiters</a></li> 399<li class="toctree-l2"><a class="reference internal" href="../additional-specs/mqtt.html">MQTT Protocol Bindings</a></li> 400<li class="toctree-l2 has-children"><a class="reference internal" href="../additional-specs/rules-engine/index.html">Rules engine</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 401<li class="toctree-l3"><a class="reference internal" href="../additional-specs/rules-engine/specification.html">Rules engine specification</a></li> 402<li class="toctree-l3"><a class="reference internal" href="../additional-specs/rules-engine/parameters.html">Rules engine parameters</a></li> 403<li class="toctree-l3"><a class="reference internal" href="../additional-specs/rules-engine/standard-library.html">Rules engine standard library</a></li> 404</ul> 405</details></li> 406<li class="toctree-l2 has-children"><a class="reference internal" href="../additional-specs/protocols/index.html">Protocols</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 407<li class="toctree-l3"><a class="reference internal" href="../additional-specs/protocols/smithy-rpc-v2-cbor.html">Smithy RPC v2 CBOR protocol</a></li> 408<li class="toctree-l3"><a class="reference internal" href="../additional-specs/protocols/smithy-rpc-v2-json.html">Smithy RPC v2 JSON protocol</a></li> 409</ul> 410</details></li> 411</ul> 412</details></li> 413<li class="toctree-l1 has-children"><a class="reference internal" href="../aws/index.html">AWS integrations</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 414<li class="toctree-l2"><a class="reference internal" href="../aws/aws-core.html">AWS Core Specification</a></li> 415<li class="toctree-l2"><a class="reference internal" href="../aws/aws-auth.html">AWS Authentication Traits</a></li> 416<li class="toctree-l2"><a class="reference internal" href="../aws/aws-endpoints-region.html">AWS Declarative Endpoint Traits</a></li> 417<li class="toctree-l2"><a class="reference internal" href="../aws/aws-iam.html">AWS IAM traits</a></li> 418<li class="toctree-l2"><a class="reference internal" href="../aws/amazon-apigateway.html">Amazon API Gateway traits</a></li> 419<li class="toctree-l2"><a class="reference internal" href="../aws/aws-cloudformation.html">AWS CloudFormation Traits</a></li> 420<li class="toctree-l2"><a class="reference internal" href="../aws/amazon-eventstream.html">Amazon Event Stream Specification</a></li> 421<li class="toctree-l2 has-children"><a class="reference internal" href="../aws/protocols/index.html">AWS Protocols</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 422<li class="toctree-l3"><a class="reference internal" href="../aws/protocols/aws-restjson1-protocol.html">AWS restJson1 protocol</a></li> 423<li class="toctree-l3"><a class="reference internal" href="../aws/protocols/aws-json-1_0-protocol.html">AWS JSON 1.0 protocol</a></li> 424<li class="toctree-l3"><a class="reference internal" href="../aws/protocols/aws-json-1_1-protocol.html">AWS JSON 1.1 protocol</a></li> 425<li class="toctree-l3"><a class="reference internal" href="../aws/protocols/aws-restxml-protocol.html">AWS restXml protocol</a></li> 426<li class="toctree-l3"><a class="reference internal" href="../aws/protocols/aws-query-protocol.html">AWS query protocol</a></li> 427<li class="toctree-l3"><a class="reference internal" href="../aws/protocols/aws-ec2-query-protocol.html">AWS EC2 query protocol</a></li> 428</ul> 429</details></li> 430<li class="toctree-l2 has-children"><a class="reference internal" href="../aws/customizations/index.html">AWS Service Customizations</a>
430<details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 431<li class="toctree-l3"><a class="reference internal" href="../aws/customizations/apigateway-customizations.html">Amazon API Gateway Customizations</a></li> 432<li class="toctree-l3"><a class="reference internal" href="../aws/customizations/glacier-customizations.html">Amazon Glacier Customizations</a></li> 433<li class="toctree-l3"><a class="reference internal" href="../aws/customizations/machinelearning-customizations.html">Amazon Machine Learning Customizations</a></li> 434<li class="toctree-l3"><a class="reference internal" href="../aws/customizations/s3-customizations.html">Amazon S3 Customizations</a></li> 435</ul> 436</details></li> 437<li class="toctree-l2 has-children"><a class="reference internal" href="../aws/rules-engine/index.html">AWS rules engine extensions</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 438<li class="toctree-l3"><a class="reference internal" href="../aws/rules-engine/built-ins.html">AWS rules engine built-ins</a></li> 439<li class="toctree-l3"><a class="reference internal" href="../aws/rules-engine/library-functions.html">AWS rules engine library functions</a></li> 440<li class="toctree-l3"><a class="reference internal" href="../aws/rules-engine/auth-schemes.html">AWS rules engine authentication scheme validators</a></li> 441</ul> 442</details></li> 443</ul> 444</details></li> 445</ul> 446<p aria-level="2" class="caption" role="heading"><span class="caption-text">Languages</span></p> 447<ul class="nav bd-sidenav"> 448<li class="toctree-l1 has-children"><a class="reference internal" href="../languages/java/index.html">Java</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 449<li class="toctree-l2"><a class="reference internal" href="../languages/java/quickstart.html">Java Quickstart</a></li> 450<li class="toctree-l2 has-children"><a class="reference internal" href="../languages/java/client/index.html">Client User Guide</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 451<li class="toctree-l3"><a class="reference internal" href="../languages/java/client/generating-clients.html">Generating Clients</a></li> 452<li class="toctree-l3"><a class="reference internal" href="../languages/java/client/configuration.html">Configuring Clients</a></li> 453<li class="toctree-l3"><a class="reference internal" href="../languages/java/client/customization.html">Customizing Client Behavior</a></li> 454<li class="toctree-l3"><a class="reference internal" href="../languages/java/client/plugins.html">Client Plugins</a></li> 455<li class="toctree-l3"><a class="reference internal" href="../languages/java/client/dynamic-client.html">Dynamic Client</a></li> 456</ul> 457</details></li> 458<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-java">Source code</a></li> 459<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-java/tree/1.6.1/examples">Smithy Java Examples</a></li> 460</ul> 461</details></li> 462<li class="toctree-l1 has-children"><a class="reference internal" href="../languages/typescript/index.html">TypeScript</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 463<li class="toctree-l2"><a class="reference internal" href="../languages/typescript/quickstart.html">TypeScript Quickstart</a></li> 464<li class="toctree-l2 has-children"><a class="reference internal" href="../languages/typescript/ts-ssdk/index.html">Server Generator for TypeScript</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 465<li class="toctree-l3"><a class="reference internal" href="../languages/typescript/ts-ssdk/introduction.html">Introduction to the Smithy Server Generator for TypeScript</a></li> 466<li class="toctree-l3"><a class="reference internal" href="../languages/typescript/ts-ssdk/handlers.html">
466Smithy Server Generator for TypeScript handlers</a></li> 467<li class="toctree-l3"><a class="reference internal" href="../languages/typescript/ts-ssdk/validation.html">Smithy Server Generator for TypeScript validation</a></li> 468<li class="toctree-l3"><a class="reference internal" href="../languages/typescript/ts-ssdk/error-handling.html">Smithy Server Generator for TypeScript error handling</a></li> 469<li class="toctree-l3"><a class="reference internal" href="../languages/typescript/ts-ssdk/supported-endpoints.html">Smithy Server Generator for TypeScript supported endpoints</a></li> 470</ul> 471</details></li> 472<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-typescript">Source code</a></li> 473<li class="toctree-l2"><a class="reference internal" href="../tutorials/full-stack-tutorial.html">Smithy Full Stack Application</a></li> 474</ul> 475</details></li> 476<li class="toctree-l1 has-children"><a class="reference internal" href="../languages/rust/index.html">Rust</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 477<li class="toctree-l2"><a class="reference external" href="https://smithy-lang.github.io/smithy-rs/design/">Design Documentation</a></li> 478<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-rs">Source code</a></li> 479</ul> 480</details></li> 481<li class="toctree-l1 has-children"><a class="reference internal" href="../languages/python/index.html">Python</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 482<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-python">Source code</a></li> 483</ul> 484</details></li> 485<li class="toctree-l1 has-children"><a class="reference internal" href="../languages/kotlin/index.html">Kotlin</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 486<li class="toctree-l2"><a class="reference internal" href="../languages/kotlin/quickstart.html">Kotlin Quickstart</a></li> 487<li class="toctree-l2 has-children"><a class="reference internal" href="../languages/kotlin/client/index.html">Client User Guide</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 488<li class="toctree-l3"><a class="reference internal" href="../languages/kotlin/client/generating-clients.html">Generating Clients</a></li> 489</ul> 490</details></li> 491<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-kotlin">Source code</a></li> 492<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-examples/tree/main/smithy-kotlin-examples">Smithy Kotlin Examples</a></li> 493<li class="toctree-l2"><a class="reference external" href="https://github.com/smithy-lang/smithy-kotlin/tree/main/docs/design">Smithy Kotlin Design Docs</a></li> 494</ul> 495</details></li> 496<li class="toctree-l1 has-children"><a class="reference internal" href="../languages/golang/index.html">GoLang</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 497<li class="toctree-l2"><a class="reference external" href="https://github.com/aws/smithy-go">Source code</a></li> 498</ul> 499</details></li> 500<li class="toctree-l1 has-children"><a class="reference internal" href="../languages/scala/index.html">Scala</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> 501<li class="toctree-l2"><a class="reference external" href="https://disneystreaming.github.io/smithy4s/">Documentation</a></li> 502<li class="toctree-l2"><a class="reference external" href="https://github.com/disneystreaming/smithy4s">Source code</a></li> 503</ul> 504</details></li> 505</ul> 506<p aria-level="2" class="caption" role="heading"><span class="caption-text">Project</span></p> 507<ul class="nav bd-sidenav"> 508<li class="toctree-l1"><a class="reference external" href="https://github.com/smithy-lang/smithy">Source code</a></li> 509<li class="toctree-l1"><a class="reference external" href="https://github.com/smithy-lang/awesome-smithy">Awesome Smithy</a></li> 510<li class="toctree-l1"><a class="reference external" href="https://github.com/smithy-lang/smithy-examples">Smithy Examples</a></li> 511<li class="toctree-l1">
511<a class="reference external" href="https://smithy.io/1.0/">1.0 Documentation</a></li> 512</ul> 513 514 </div> 515</nav></div> 516 </div> 517 518 519 <div class="sidebar-primary-items__end sidebar-primary__section"> 520 <div class="sidebar-primary-item"> 521<div id="ethical-ad-placement" 522 class="flat" 523 data-ea-publisher="readthedocs" 524 data-ea-type="readthedocs-sidebar" 525 data-ea-manual="true"> 526</div></div> 527 </div> 528 529 530 </div> 531 532 <main id="main-content" class="bd-main" role="main"> 533 534 535 536<div class="sbt-scroll-pixel-helper"></div> 537 538 <div class="bd-content"> 539 <div class="bd-article-container"> 540 541 <div class="bd-header-article d-print-none"> 542<div class="header-article-items header-article__inner"> 543 544 545 <div class="header-article-items__end"> 546 547 <div class="header-article-item"> 548 549 550<div class="article-header-buttons"> 551 552 553 554 555 556<div class="dropdown dropdown-source-buttons"> 557 <button class="btn dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Source repositories"> 558 <i class="fab fa-github"></i> 559 </button> 560 <ul class="dropdown-menu"> 561 562 563 564 <li><a href="https://github.com/smithy-lang/smithy" target="_blank" 565 class="btn btn-sm btn-source-repository-button dropdown-item" 566 title="Source repository" 567 data-bs-placement="left" data-bs-toggle="tooltip" 568> 569 570 571<span class="btn__icon-container"> 572 <i class="fab fa-github"></i> 573 </span> 574<span class="btn__text-container">Repository</span> 575</a> 576</li> 577 578 579 580 581 <li><a href="https://github.com/smithy-lang/smithy/edit/main/docs/source-2.0/guides/index.rst" target="_blank" 582 class="btn btn-sm btn-source-edit-button dropdown-item" 583 title="Suggest edit" 584 data-bs-placement="left" data-bs-toggle="tooltip" 585> 586 587 588<span class="btn__icon-container"> 589 <i class="fas fa-pencil-alt"></i> 590 </span> 591<span class="btn__text-container">Suggest edit</span> 592</a> 593</li> 594 595 596 597 598 <li><a href="https://github.com/smithy-lang/smithy/issues/new?title=Issue%20on%20page%20%2Fguides/index.html&body=Your%20issue%20content%20here." target="_blank" 599 class="btn btn-sm btn-source-issues-button dropdown-item" 600 title="Open an issue" 601 data-bs-placement="left" data-bs-toggle="tooltip" 602> 603 604 605<span class="btn__icon-container"> 606 <i class="fas fa-lightbulb"></i> 607 </span> 608<span class="btn__text-container">Open issue</span> 609</a> 610</li> 611 612 </ul> 613</div> 614 615 616 617<a href="../_sources/guides/index.rst.txt" target="_blank" 618 class="btn btn-sm btn-source-file-button" 619 title="View page source" 620 data-bs-placement="bottom" data-bs-toggle="tooltip" 621> 622 623 624<span class="btn__icon-container"> 625 <i class="fas fa-code"></i> 626 </span> 627 628</a> 629 630</div></div> 631 632 </div> 633 634</div> 635</div> 636 637 638 639<div id="jb-print-docs-body" class="onlyprint"> 640 <h1>Guides</h1> 641 <!-- Table of contents --> 642 <div id="print-main-content"> 643 <div id="jb-print-toc"> 644 645 </div> 646 </div> 647</div> 648 649 650 651<div id="searchbox"></div> 652 <article class="bd-article"> 653 654 <section id="guides"> 655<h1>Guides<a class="headerlink" href="#guides" title="Link to this heading">#</a></h1> 656<div class="toctree-wrapper compound"> 657<ul> 658<li class="toctree-l1"><a class="reference internal" href="smithy-cli/index.html">The Smithy CLI</a></li> 659<li class="toctree-l1"><a class="reference internal" href="smithy-build-json.html">smithy-build.json</a></li> 660<li class="toctree-l1"><a class="reference internal" href="gradle-plugin/index.html">Smithy Gradle Plugins</a></li> 661<li class="toctree-l1"><a class="reference internal" href="using-code-generation/index.html">Code Generation</a></li> 662<li class="toctree-l1"><a class="reference internal" href="model-linters.html">Linting Models</a></li> 663<li class="toctree-l1"><a class="reference internal" href="model-validation-examples.html">Model Validation Examples</a></li> 664<li class="toctree-l1"><a class="reference internal" href="evolving-models.html">Evolving Models</a></li> 665<li class="toctree-l1"><a class="reference internal" href="wire-protocol-selection.html">Wire protocol selection</a></li> 666<li class="toctree-l1"><a class="reference internal" href="style-guide.html">Style Guide</a></li> 667<li class="toctree-l1"><a class="reference internal" href="model-translations/index.html">Model Translations</a></li> 668<li class="toctree-l1"><a class="reference internal" href="building-codegen/index.html">Creating a Code Generator</a></li> 669<li class="toctree-l1"><a class="reference internal" href="client-guidance/index.html">Smithy Client Guidance</a></li> 670<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li> 671</ul> 672</div> 673</section> 674 675 676 </article> 677 678 679 680 681 682 683 <footer class="prev-next-footer d-print-none"> 684 685<div class="prev-next-area"> 686 <a class="left-prev" 687 href="../trait-index.html" 688 title="previous page"> 689 <i class="fa-solid fa-angle-left"></i> 690 <div class="prev-next-info"> 691 <p class="prev-next-subtitle">previous</p> 692 <p class="prev-next-title">Trait index</p> 693 </div> 694 </a> 695 <a class="right-next" 696 href="smithy-cli/index.html" 697 title="next page"> 698 <div class="prev-next-info"> 699 <p class="prev-next-subtitle">next</p> 700 <p class="prev-next-title">The Smithy CLI</p> 701 </div> 702 <i class="fa-solid fa-angle-right"></i> 703 </a> 704</div> 705 </footer> 706 707 </div> 708 709 710 711 712 </div> 713 <footer class="bd-footer-content"> 714 715<div class="bd-footer-content__inner container"> 716 717 <div class="footer-item"> 718 719<p class="component-author"> 720By Amazon Web Services 721</p> 722 723 </div> 724 725 <div class="footer-item"> 726 727 728 <p class="copyright"> 729 730 © Copyright 2022, Amazon Web Services. 731 <br/> 732 733 </p> 734 735 </div> 736 737 <div class="footer-item"> 738 739 </div> 740 741 <div class="footer-item"> 742 743 </div> 744 745</div> 746 </footer> 747 748 749 </main> 750 </div> 751 </div> 752 753 <!-- Scripts loaded after <body> so the DOM is not blocked --> 754
754<script defer src="../_static/scripts/bootstrap.js?digest=90905a2f556bf617f1a9"></script>
vendor: 1 bytes, line 754
754
755<script defer src="../_static/scripts/pydata-sphinx-theme.js?digest=90905a2f556bf617f1a9"></script>
755 756 757 <footer class="bd-footer"> 758 </footer> 759 </body> 760</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.