Go to file
Chase Coalwell 87d12179f5 Amend changelog for 1.26.3 2022-11-16 14:30:17 -08:00
.github Bump actions/setup-java from 1 to 3 (#1483) 2022-11-08 11:09:05 -08:00
config Simplify ShapeId caching 2022-09-16 17:22:44 -07:00
designs Add some clarifications to revised default value design doc 2022-09-19 16:08:52 -07:00
docs Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
gradle/wrapper gradle 7.3.3 2022-02-08 11:51:49 +01:00
smithy-aws-apigateway-openapi Add support for missing authorizer members (#1426) 2022-10-03 17:28:14 -03:00
smithy-aws-apigateway-traits Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
smithy-aws-cloudformation Fix cfn-mutability for inherited identifiers (#1465) 2022-11-10 14:28:20 -08:00
smithy-aws-cloudformation-traits Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
smithy-aws-iam-traits Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
smithy-aws-protocol-tests Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
smithy-aws-traits Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
smithy-build Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
smithy-cli Fix 1-2 command, add tests, reduce diff noise 2022-09-11 09:14:20 -07:00
smithy-codegen-core Add custom codegen hook before shape generation 2022-10-27 12:41:12 +02:00
smithy-diff Add support for hierarchical event IDs 2022-10-27 15:43:11 -07:00
smithy-jmespath Add ability to serialize the JMESPath AST (#1059) 2022-01-18 16:08:54 -08:00
smithy-jsonschema Move useIntegerType to jsonschema 2022-11-14 19:34:35 +01:00
smithy-linters Sensitive validator branch (#1364) 2022-11-14 16:18:07 -08:00
smithy-model Lower resource identifier collisions to warning 2022-10-28 15:55:42 -07:00
smithy-mqtt-traits Convert enumValue to a document trait 2022-08-10 16:15:08 -07:00
smithy-openapi Move useIntegerType to jsonschema 2022-11-14 19:34:35 +01:00
smithy-protocol-test-traits Fix some deprecations in 2.0 2022-08-10 16:15:08 -07:00
smithy-rules-engine Add missing regions and fix typo in partitions.json 2022-11-07 08:35:39 -08:00
smithy-utils Minor fix to AbstractCodeWriter documentation 2022-11-08 15:03:05 -08: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 Amend changelog for 1.26.3 2022-11-16 14:30:17 -08: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 Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
VERSION Bump version to 1.26.3 (#1498) 2022-11-16 14:56:44 -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 Update links to point to smithy.io 2022-11-15 18:11:04 +01:00
settings.gradle Smithy Rules Engine Traits 2022-08-18 11:38:14 -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.

$version: "2"

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://smithy.io/2.0/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:

$version: "2"

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.