Go to file
kstich 33994de6be Fix various link and changelog issues 2020-05-04 13:04:51 -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 Fix various link and changelog issues 2020-05-04 13:04:51 -07:00
smithy-aws-iam-traits Fix various link and changelog issues 2020-05-04 13:04:51 -07:00
smithy-aws-protocol-tests Fix various link and changelog issues 2020-05-04 13:04:51 -07:00
smithy-aws-traits Fix various link and changelog issues 2020-05-04 13:04:51 -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 Fix various link and changelog issues 2020-05-04 13:04:51 -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.