Go to file
Michael Dowling 20d10458ac Emit node validation events with locations
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.
2020-05-04 12:53:26 -07:00
.github Create initial file from template 2019-03-23 13:14:06 -07:00
config Add reverse neighbors, remove `:of` 2020-05-01 10:48:13 -07:00
docs Remove legacy alias functionalities 2020-05-02 00:11:39 -07:00
gradle/wrapper Update to Gradle 5.4.1 2019-05-16 15:53:11 -07:00
smithy-aws-apigateway-openapi Add more args to OpenAPI converters 2020-05-04 11:29:17 -07:00
smithy-aws-apigateway-traits Lock down APIs with final, unstable, and internal 2020-05-04 09:45:12 -07:00
smithy-aws-iam-traits Lock down APIs with final, unstable, and internal 2020-05-04 09:45:12 -07:00
smithy-aws-protocol-tests Move validation into core 2020-04-24 09:54:56 -07:00
smithy-aws-traits Lock down APIs with final, unstable, and internal 2020-05-04 09:45:12 -07:00
smithy-build Improve validators through a trait index on model 2020-05-04 12:53:26 -07:00
smithy-cli Lock down APIs with final, unstable, and internal 2020-05-04 09:45:12 -07:00
smithy-codegen-core Lock down APIs with final, unstable, and internal 2020-05-04 09:45:12 -07:00
smithy-diff Improve validators through a trait index on model 2020-05-04 12:53:26 -07:00
smithy-jsonschema Remove allowing true for annotation traits 2020-04-21 17:15:05 -07:00
smithy-linters Remove non-idiomatic ShapeVisitor builder 2020-05-04 09:45:57 -07:00
smithy-model Emit node validation events with locations 2020-05-04 12:53:26 -07:00
smithy-mqtt-traits Improve validators through a trait index on model 2020-05-04 12:53:26 -07:00
smithy-openapi Add more args to OpenAPI converters 2020-05-04 11:29:17 -07:00
smithy-protocol-test-traits Lock down APIs with final, unstable, and internal 2020-05-04 09:45:12 -07:00
smithy-utils Make neighbor traversal lazy 2020-05-01 11:52:32 -07:00
.gitignore Initial code commit 2019-03-23 21:58:14 -07:00
.travis.yml Add log-tests project property 2020-01-08 21:39:36 -08:00
CHANGELOG.md Improve validators through a trait index on model 2020-05-04 12:53:26 -07:00
CODE_OF_CONDUCT.md Create initial file from template 2019-03-23 13:14:06 -07:00
CONTRIBUTING.md Update contributing guide 2019-06-13 13:51:18 -07:00
LICENSE Create initial file from template 2019-03-23 13:14:06 -07:00
NOTICE Replace jackson-core with vendored minimal-json 2020-04-21 17:01:59 -07:00
README.md Update README 2020-05-01 17:23:18 -07:00
VERSION Version the spec and javadocs 2020-05-01 14:24:40 -07:00
build.gradle.kts Version the spec and javadocs 2020-05-01 14:24:40 -07:00
gradle.properties Initial code commit 2019-03-23 21:58:14 -07:00
gradlew Initial code commit 2019-03-23 21:58:14 -07:00
gradlew.bat Initial code commit 2019-03-23 21:58:14 -07:00
mkdocs Version the spec and javadocs 2020-05-01 14:24:40 -07:00
settings.gradle.kts Remove the smithy-codegen-freemarker package 2020-04-21 17:15:05 -07:00

README.md

Smithy

Build Status

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.