Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Customize cookie preferences

We use cookies and similar tools (collectively, "cookies") for the following purposes.

Essential

Essential cookies are necessary to provide our site and services and cannot be deactivated. They are usually set in response to your actions on the site, such as setting your privacy preferences, signing in, or filling in forms.

Performance

Performance cookies provide anonymous statistics about how customers navigate our site so we can improve site experience and performance. Approved third parties may perform analytics on our behalf, but they cannot use the data for their own purposes.

Allowed

Functional

Functional cookies help us provide useful site features, remember your preferences, and display relevant content. Approved third parties may set these cookies to provide certain site features. If you do not allow these cookies, then some or all of these services may not function properly.

Allowed

Advertising

Advertising cookies may be set through our site by us or our advertising partners and help us deliver relevant marketing content. If you do not allow these cookies, you will experience less relevant advertising.

Allowed

Blocking some types of cookies may impact your experience of our sites. You may review and change your choices at any time by selecting Cookie preferences in the footer of this site. We and selected third-parties use cookies or similar technologies as specified in the AWS Cookie Notice.

Your privacy choices

We and our advertising partners (“we”) may use information we collect from or about you to show you ads on other websites and online services. Under certain laws, this activity is referred to as “cross-context behavioral advertising” or “targeted advertising.”

To opt out of our use of cookies or similar technologies to engage in these activities, select “Opt out of cross-context behavioral ads” and “Save preferences” below. If you clear your browser cookies or visit this site from a different device or browser, you will need to make your selection again. For more information about cookies and how we use them, read our Cookie Notice.

To opt out of the use of other identifiers, such as contact information, for these activities, fill out the form here.

For more information about how AWS handles your information, read the AWS Privacy Notice.

Unable to save cookie preferences

We will only store essential cookies at this time, because we were unable to save your cookie preferences.

If you want to change your cookie preferences, try again later using the link in the AWS console footer, or contact support if the problem persists.

Contents Menu Expand Light mode Dark mode Auto light/dark mode
Smithy 2.0
Light Logo Dark Logo
  • Quick start
  • Smithy specification
    • 1. The Smithy model
    • 2. Simple types
    • 3. Aggregate types
    • 4. Service types
    • 5. Mixins
    • 6. Constraint traits
    • 7. Type refinement traits
    • 8. Documentation traits
    • 9. Behavior traits
    • 10. Resource traits
    • 11. Authentication traits
    • 12. Serialization and Protocol traits
    • 13. Streaming
    • 14. HTTP bindings
    • 15. Endpoint traits
    • 16. Selectors
    • 17. Model validation
    • 18. Smithy IDL
    • 19. JSON AST
  • Trait index
  • Guides
    • The Smithy CLI
      • Installation
    • smithy-build.json
    • Smithy Gradle Plugins
      • Migrating to Gradle plugin version 0.10.0+
    • Code Generation
      • Updating the Smithy Model
      • Generating a client
    • Linting Models
    • Model Validation Examples
    • Evolving Models
    • Style Guide
    • Model Translations
      • Converting Smithy to OpenAPI
      • Smithy IDL 1.0 to 2.0 Migration Guide
      • Generating CloudFormation Resource Schemas from Smithy
    • Creating a Code Generator
      • Overview and Concepts
      • Mapping Smithy Shapes to Your Language
      • Creating a Codegen Repo
      • Configuring the Generator
      • Implementing the Generator
      • Making Codegen Pluggable
      • Generating Code
      • Decoupling Codegen with Symbols
      • Using the Semantic Model
    • Glossary
  • Tutorials
    • Full Stack Application
  • Additional specs
    • HTTP Protocol Compliance Tests
    • Smoke Tests
    • Waiters
    • MQTT Protocol Bindings
    • Rules engine
      • Rules engine specification
      • Rules engine parameters
      • Rules engine standard library
    • Protocols
      • Smithy RPC v2 CBOR protocol
  • AWS integrations
    • AWS Core Specification
    • AWS Authentication Traits
    • AWS Declarative Endpoint Traits
    • AWS IAM traits
    • Amazon API Gateway traits
    • AWS CloudFormation Traits
    • Amazon Event Stream Specification
    • AWS Protocols
      • AWS restJson1 protocol
      • AWS JSON 1.0 protocol
      • AWS JSON 1.1 protocol
      • AWS restXml protocol
      • AWS query protocol
      • AWS EC2 query protocol
    • AWS Service Customizations
      • Amazon API Gateway Customizations
      • Amazon Glacier Customizations
      • Amazon Machine Learning Customizations
      • Amazon S3 Customizations
    • AWS rules engine extensions
      • AWS rules engine built-ins
      • AWS rules engine library functions
      • AWS rules engine authentication scheme validators

Languages

  • Java
    • Java Quickstart
    • Client User Guide
      • Generating Clients
      • Configuring Clients
      • Customizing Client Behavior
      • Client Plugins
      • Dynamic Client
      • Codegen Integrations
    • Source code
    • Smithy Java Examples
  • TypeScript
    • TypeScript Quickstart
    • Server Generator for TypeScript
      • Introduction to the Smithy Server Generator for TypeScript
      • Smithy Server Generator for TypeScript handlers
      • Smithy Server Generator for TypeScript validation
      • Smithy Server Generator for TypeScript error handling
      • Smithy Server Generator for TypeScript supported endpoints
    • Source code
    • Smithy Full Stack Application
  • Rust
    • Design Documentation
    • Source code
  • Python
    • Source code
  • Kotlin
    • Source code
  • GoLang
    • Source code
  • Scala
    • Documentation
    • Source code

Project

  • Source code
  • Awesome Smithy
  • Smithy Examples
  • 1.0 Documentation
Back to top
Edit this page

Guides#

  • The Smithy CLI
  • smithy-build.json
  • Smithy Gradle Plugins
  • Code Generation
  • Linting Models
  • Model Validation Examples
  • Evolving Models
  • Style Guide
  • Model Translations
  • Creating a Code Generator
  • Glossary
Next
The Smithy CLI
Previous
Trait index
Copyright © 2022, Amazon Web Services
Made with Sphinx and @pradyunsg's Furo