Go to file
Michael Dowling 89e292edff Emit no rel from enum/intEnum to Unit 2022-08-10 16:15:08 -07:00
.github Upload test artifacts when tests fail 2022-08-10 16:15:08 -07:00
config Add resource properties structure and validation (#1213) 2022-08-10 16:15:08 -07:00
designs Leave Primitive* prelude shapes in 2.0 2022-08-10 16:15:08 -07:00
docs Explicitly model and constrain members 2022-08-10 16:15:08 -07:00
gradle/wrapper gradle 7.3.3 2022-02-08 11:51:49 +01:00
smithy-aws-apigateway-openapi Add support for custom default values 2022-08-10 16:15:08 -07:00
smithy-aws-apigateway-traits Add support for custom default values 2022-08-10 16:15:08 -07:00
smithy-aws-cloudformation Tighten grammar 2022-08-10 16:15:08 -07:00
smithy-aws-cloudformation-traits Add resource properties structure and validation (#1213) 2022-08-10 16:15:08 -07:00
smithy-aws-iam-traits Add documentation to IAM trait enums 2022-08-10 16:15:08 -07:00
smithy-aws-protocol-tests Add support for custom default values 2022-08-10 16:15:08 -07:00
smithy-aws-traits Tighten grammar 2022-08-10 16:15:08 -07:00
smithy-build Simplify model loading 2022-08-10 16:15:08 -07:00
smithy-cli Explicitly model and constrain members 2022-08-10 16:15:08 -07:00
smithy-codegen-core Implement default value handling for IDL 2.0 2022-08-10 16:15:08 -07:00
smithy-diff Add support for custom default values 2022-08-10 16:15:08 -07:00
smithy-jmespath Add ability to serialize the JMESPath AST (#1059) 2022-01-18 16:08:54 -08:00
smithy-jsonschema Fix some deprecations in 2.0 2022-08-10 16:15:08 -07:00
smithy-linters Add support for custom default values 2022-08-10 16:15:08 -07:00
smithy-model Emit no rel from enum/intEnum to Unit 2022-08-10 16:15:08 -07:00
smithy-mqtt-traits Convert enumValue to a document trait 2022-08-10 16:15:08 -07:00
smithy-openapi Add support for custom default values 2022-08-10 16:15:08 -07:00
smithy-protocol-test-traits Fix some deprecations in 2.0 2022-08-10 16:15:08 -07:00
smithy-utils Allow mixins on all shape types 2022-08-10 16:15:08 -07:00
smithy-validation-model Implement default value handling for IDL 2.0 2022-08-10 16:15:08 -07:00
smithy-waiters Add support for custom default values 2022-08-10 16:15:08 -07:00
.gitignore Move from Kotlin to Groovy for Gradle 2020-08-31 12:10:52 -07:00
CHANGELOG.md Fix release date for 1.22.0 2022-06-30 13:48:10 -07:00
CODE_OF_CONDUCT.md Create initial file from template 2019-03-23 13:14:06 -07:00
CONTRIBUTING.md Refer to main branch 2021-01-08 11:14:40 -08:00
Dockerfile chore: Spawn fewer gradle daemons 2022-03-23 15:20:13 -07:00
LICENSE Create initial file from template 2019-03-23 13:14:06 -07:00
NOTICE Update doc dependencies 2021-10-27 11:31:42 +02:00
README.md Make IDL commas whitespace and newlines optional 2022-08-10 16:15:08 -07:00
VERSION Bump version to 1.22.0 2022-06-30 13:23:35 -07:00
build.gradle Copy maven metadata on local publish (#1280) 2022-06-17 14:42:25 -06:00
gradle.properties Initial code commit 2019-03-23 21:58:14 -07:00
gradlew chore: upgrade to Gradle 7.2 2021-10-19 18:40:42 +02:00
gradlew.bat Update gradle to 6.8 2021-01-22 10:48:10 -08:00
mkdocs Fix mkdocs 2022-05-02 17:41:16 +02:00
settings.gradle Add mavenCentral as plugin reposiroty 2022-04-13 17:05:51 -07:00

README.md

Smithy 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.6.0")
}

Finally, create your first model model/main.smithy:

namespace com.example

service ExampleService {
    version: "2020-05-27"
}

Find out more about building artifacts of your Smithy model in the Building Smithy Models guide. For more examples, see the examples directory of the Smithy Gradle Plugin repository.

License

This library is licensed under the Apache 2.0 License.