Go to file
JordonPhillips 8c7094fb37 Use team for CODEOWNERS file
This updates the codeowners config to use a team so we don't have
to keep chaning this file.
2021-09-14 14:35:40 -07:00
.github Use team for CODEOWNERS file 2021-09-14 14:35:40 -07:00
config Synchronize NeighborProviderIndex caches 2021-05-18 14:20:02 -07:00
docs Revert "Add removeUriPrefix to OpenAPI converter" 2021-09-13 11:51:29 -07:00
gradle/wrapper Setup cross platform builds of the CLI 2021-06-14 10:16:37 -07:00
smithy-aws-apigateway-openapi Add local tests for openapi protocol headers 2021-08-03 11:29:23 +02:00
smithy-aws-apigateway-traits Undo changes to createNode for Traits that used NodeMapper 2021-07-21 12:13:49 +02:00
smithy-aws-cloudformation Fix bug with cloudformation unions 2021-05-11 17:30:04 +02:00
smithy-aws-cloudformation-traits Undo changes to createNode for Traits that used NodeMapper 2021-07-21 12:13:49 +02:00
smithy-aws-iam-traits Fix createTrait to carry forward the sourceLocation 2021-07-21 12:13:49 +02:00
smithy-aws-protocol-tests Fix misconfigured malformed request tests 2021-09-14 19:02:45 +02:00
smithy-aws-traits Fix createTrait to carry forward the sourceLocation 2021-07-21 12:13:49 +02:00
smithy-build Set baseImportPath to . when config parent is empty 2021-06-01 16:52:55 +02:00
smithy-cli Setup cross platform builds of the CLI 2021-06-14 10:16:37 -07:00
smithy-codegen-core Fix building and testing on Windows 2020-12-14 18:06:00 +01:00
smithy-diff Clarify meaning of 'inserted' to be 'inserted before the end of the list of existing values' 2021-08-02 09:48:57 -07:00
smithy-jmespath Setup cross platform builds of the CLI 2021-06-14 10:16:37 -07:00
smithy-jsonschema Support non-numerics in range checks 2021-06-17 15:47:07 +02:00
smithy-linters Stop validation on critical loading errors 2021-04-19 08:57:39 -07:00
smithy-model Simplify type replacement validation logic 2021-09-02 16:00:20 +02:00
smithy-mqtt-traits Add methods to get shapes by type and trait 2021-05-18 14:20:02 -07:00
smithy-openapi Revert "Add removeUriPrefix to OpenAPI converter" 2021-09-13 11:51:29 -07:00
smithy-protocol-test-traits Anchor the id pattern for HTTP protocol tests 2021-08-03 13:44:35 -07:00
smithy-utils Add mutli-character newlines support in CodeWriter 2021-08-16 09:18:26 -07:00
smithy-validation-model Add a model for validation errors 2021-06-11 14:58:36 -07:00
smithy-waiters Add missing shape documentation for waiters 2021-02-10 11:55:30 -08:00
.gitignore Move from Kotlin to Groovy for Gradle 2020-08-31 12:10:52 -07:00
CHANGELOG.md Bump version to 1.11.0 2021-08-03 13:54:58 -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 Setup cross platform builds of the CLI 2021-06-14 10:16:37 -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 Point README.md links to the 1.0 Smithy guide 2021-06-22 13:52:09 -07:00
VERSION Bump version to 1.11.0 2021-08-03 13:54:58 -07:00
build.gradle Update to build with JDK 16 and upgrade plugins 2021-06-14 10:16:37 -07:00
gradle.properties Initial code commit 2019-03-23 21:58:14 -07:00
gradlew Update gradle to 6.8 2021-01-22 10:48:10 -08:00
gradlew.bat Update gradle to 6.8 2021-01-22 10:48:10 -08:00
mkdocs Clean up mkdocs doc gen 2020-05-06 15:03:14 -07:00
settings.gradle Add a model for validation errors 2021-06-11 14:58:36 -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.5.3")
}

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.