Go to file
Hayden Baker 6466fe77c6
Add restJson1 protocol test for content-type and POST operation with no input (#2342)
2024-07-12 13:19:56 -07:00
.github Update make-docs.yml to remove old docs first (#2345) 2024-07-08 09:32:20 -07:00
config
designs
docs Fix a minor grammatical error 2024-07-11 09:23:00 -07:00
gradle/wrapper
smithy-aws-apigateway-openapi refactor(cors): adds doc links and addressed review comments 2024-05-22 12:03:43 -07:00
smithy-aws-apigateway-traits
smithy-aws-cloudformation Use deprecated info in OpenAPI description (#2222) 2024-04-11 09:29:45 -07:00
smithy-aws-cloudformation-traits
smithy-aws-endpoints Add SigV4 and SigV4A migration diff validation (#2245) 2024-04-23 14:03:22 -07:00
smithy-aws-iam-traits Add required for service resolved condition keys (#2288) 2024-06-03 11:01:24 -07:00
smithy-aws-protocol-tests Add restJson1 protocol test for content-type and POST operation with no input (#2342) 2024-07-12 13:19:56 -07:00
smithy-aws-smoke-test-model
smithy-aws-traits Add SigV4 and SigV4A migration diff validation (#2245) 2024-04-23 14:03:22 -07:00
smithy-build
smithy-cli Update JReleaser config to push version tag in main release (#2337) 2024-06-24 08:57:11 -07:00
smithy-codegen-core Add useSymbolWriter function 2024-06-14 15:23:08 +02:00
smithy-diff Add .Appended id subparts to enum additions (#2274) 2024-05-13 10:47:32 -07:00
smithy-jmespath
smithy-jsonschema Use deprecated info in OpenAPI description (#2222) 2024-04-11 09:29:45 -07:00
smithy-linters
smithy-model Add IDL serializer option to coerce inline IO 2024-06-11 12:02:36 -07:00
smithy-mqtt-traits
smithy-openapi fix(cors): applies the passthroughBehavior and mime-type sync behind a new flag 2024-05-22 12:03:43 -07:00
smithy-openapi-traits
smithy-protocol-test-traits Add bodyMediaType to malformed request tests 2024-06-05 11:16:33 -07:00
smithy-protocol-tests Remove debug urls 2024-06-13 08:32:42 -07:00
smithy-protocol-traits
smithy-rules-engine Add operationContextParams to RulesetParameterValidator (#2295) 2024-06-03 08:58:14 -07:00
smithy-smoke-test-traits
smithy-syntax Fix formatting comments in operation errors list (#2283) 2024-05-09 14:22:01 -04:00
smithy-trait-codegen Add missing node mapper for document types (#2313) 2024-06-07 09:27:49 -06:00
smithy-utils Replace RFC 7230 references 2024-05-23 18:41:16 +02:00
smithy-validation-model
smithy-waiters
.gitignore
CHANGELOG.md Bump version to 1.50.0 (#2332) 2024-06-19 09:50:17 -07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md Add license header to CONTRIBUTING doc 2024-04-09 11:51:29 -07:00
Dockerfile
LICENSE
NOTICE
README.md
VERSION Bump version to 1.50.0 (#2332) 2024-06-19 09:50:17 -07:00
build.gradle Update JReleaser config to push version tag in main release (#2337) 2024-06-24 08:57:11 -07:00
gradle.properties
gradlew
gradlew.bat
mkdocs
settings.gradle

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

[!IMPORTANT]
Before you proceed, make sure you have the Smithy CLI installed.

The Smithy CLI is the easiest way to get started with building Smithy models. First, create a smithy-build.json file:

{
    "version": "1.0",
    "sources": ["model"]
}

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

$version: "2"

namespace com.example

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

Finally, run smithy build to build the model with the Smithy CLI.

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

License

This library is licensed under the Apache 2.0 License.