Smithy
Smithy defines and generates clients, services, and documentation for
any protocol.
Smithy IDL
Smithy models define a service as a collection of resources, operations, and
shapes.
$version: "2"
namespace example.weather
service Weather {
version: "2006-03-01"
resources: [City]
operations: [GetCurrentTime]
}
resource City {
identifiers: { cityId: CityId }
read: GetCity
list: ListCities
resources: [Forecast]
}
// See the full example at https://smithy.io/2.0/quickstart.html#complete-example
Find out more about modeling a service with Smithy in the Quick Start
guide.
Building Smithy models
[!IMPORTANT]
Before you proceed, make sure you have the Smithy CLI installed.
The Smithy CLI is the easiest way to get started with building Smithy models. First, create a smithy-build.json
file:
{
"version": "1.0",
"sources": ["model"]
}
Next, create your first model model/main.smithy
:
$version: "2"
namespace com.example
service ExampleService {
version: "2020-05-27"
}
Finally, run smithy build
to build the model with the Smithy CLI.
Find out more about building artifacts of your Smithy model in the Building
Smithy Models guide. For more examples, see the
examples repository
License
This library is licensed under the Apache 2.0 License.