Go to file
JordonPhillips 5730772b1c Fill out documentation in aws traits 2022-08-10 16:15:08 -07:00
.github Upload test artifacts when tests fail 2022-08-10 16:15:08 -07:00
config Implement default value handling for IDL 2.0 2022-08-10 16:15:08 -07:00
designs Clarify enum value defaulting 2022-08-10 16:15:08 -07:00
docs Omit commas to match codestyle 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 Implement default value handling for IDL 2.0 2022-08-10 16:15:08 -07:00
smithy-aws-apigateway-traits Fill out documentation in aws traits 2022-08-10 16:15:08 -07:00
smithy-aws-cloudformation Implement default value handling for IDL 2.0 2022-08-10 16:15:08 -07:00
smithy-aws-cloudformation-traits Convert enumValue to a document trait 2022-08-10 16:15:08 -07:00
smithy-aws-iam-traits Convert enumValue to a document trait 2022-08-10 16:15:08 -07:00
smithy-aws-protocol-tests Convert enumValue to a document trait 2022-08-10 16:15:08 -07:00
smithy-aws-traits Fill out documentation in aws traits 2022-08-10 16:15:08 -07:00
smithy-build Move ChangeShapeTypeOption out of ModelTransformer 2022-08-10 16:15:08 -07:00
smithy-cli Add 1-to-2 migration functionality 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 @required and @default smithy-diff support 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 Update mixins to use square brackets 2022-08-10 16:15:08 -07:00
smithy-linters Update non-inclusive terms tests to 2.0 models 2022-08-10 16:15:08 -07:00
smithy-model Update trait change enums to use enum shapes 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 Update mixins to use square brackets 2022-08-10 16:15:08 -07:00
smithy-protocol-test-traits Convert enumValue to a document trait 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 Convert enumValue to a document trait 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.