20d10458ac
This commit rewrites a lot of NodeValidationVisitors to now emit events from validation plugins and then allow the visitor to associate the right context, shape, and severity. This allows the events emitted to the visitor to contain a more specific source location than N/A. |
||
---|---|---|
.github | ||
config | ||
docs | ||
gradle/wrapper | ||
smithy-aws-apigateway-openapi | ||
smithy-aws-apigateway-traits | ||
smithy-aws-iam-traits | ||
smithy-aws-protocol-tests | ||
smithy-aws-traits | ||
smithy-build | ||
smithy-cli | ||
smithy-codegen-core | ||
smithy-diff | ||
smithy-jsonschema | ||
smithy-linters | ||
smithy-model | ||
smithy-mqtt-traits | ||
smithy-openapi | ||
smithy-protocol-test-traits | ||
smithy-utils | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
NOTICE | ||
README.md | ||
VERSION | ||
build.gradle.kts | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
mkdocs | ||
settings.gradle.kts |
README.md
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.
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://awslabs.github.io/smithy/quickstart.html#complete-example
Find out more about modeling a service with Smithy in the Quick Start guide.
Building Smithy models
The Smithy Gradle Plugin is the best way to get started with building a
Smithy model. First, create a smithy-build.json
file:
{
"version": "1.0"
}
Then, apply the Smithy Gradle Plugin in your build.gradle.kts
file and run
gradle build
:
plugins {
id("software.amazon.smithy").version("0.4.3")
}
Find out more about building artifacts of your Smithy model in the Building Smithy Models guide.
License
This library is licensed under the Apache 2.0 License.