Loading codegen-client-test/build.gradle.kts +1 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ val allCodegenTests = "../codegen-core/common-test-models".let { commonModels -> """.trimIndent(), imports = listOf("$commonModels/naming-obstacle-course-structs.smithy"), ), CodegenTest("com.aws.example#PokemonService", "pokemon-service-client", imports = listOf("$commonModels/pokemon.smithy")), CodegenTest("com.aws.example.rust#PokemonService", "pokemon-service-client", imports = listOf("$commonModels/pokemon.smithy", "$commonModels/pokemon-common.smithy")), ) } Loading codegen-core/common-test-models/pokemon-common.smithy 0 → 100644 +124 −0 Original line number Diff line number Diff line $version: "1.0" namespace com.aws.example /// A Pokémon species forms the basis for at least one Pokémon. @title("Pokémon Species") resource PokemonSpecies { identifiers: { name: String }, read: GetPokemonSpecies, } /// Retrieve information about a Pokémon species. @readonly @http(uri: "/pokemon-species/{name}", method: "GET") operation GetPokemonSpecies { input: GetPokemonSpeciesInput, output: GetPokemonSpeciesOutput, errors: [ResourceNotFoundException], } @input structure GetPokemonSpeciesInput { @required @httpLabel name: String } @output structure GetPokemonSpeciesOutput { /// The name for this resource. @required name: String, /// A list of flavor text entries for this Pokémon species. @required flavorTextEntries: FlavorTextEntries } /// Retrieve HTTP server statistiscs, such as calls count. @readonly @http(uri: "/stats", method: "GET") operation GetServerStatistics { input: GetServerStatisticsInput, output: GetServerStatisticsOutput, } @input structure GetServerStatisticsInput { } @output structure GetServerStatisticsOutput { /// The number of calls executed by the server. @required calls_count: Long, } list FlavorTextEntries { member: FlavorText } structure FlavorText { /// The localized flavor text for an API resource in a specific language. @required flavorText: String, /// The language this name is in. @required language: Language, } /// Supported languages for FlavorText entries. @enum([ { name: "ENGLISH", value: "en", documentation: "American English.", }, { name: "SPANISH", value: "es", documentation: "Español.", }, { name: "ITALIAN", value: "it", documentation: "Italiano.", }, { name: "JAPANESE", value: "jp", documentation: "日本語。", }, ]) string Language /// DoNothing operation, used to stress test the framework. @readonly @http(uri: "/do-nothing", method: "GET") operation DoNothing { input: DoNothingInput, output: DoNothingOutput, } @input structure DoNothingInput { } @output structure DoNothingOutput { } /// Health check operation, to check the service is up /// Not yet a deep check @readonly @http(uri: "/ping", method: "GET") operation CheckHealth { } @error("client") @httpError(404) structure ResourceNotFoundException { @required message: String, } codegen-core/common-test-models/pokemon.smithy +58 −166 Original line number Diff line number Diff line $version: "1.0" namespace com.aws.example namespace com.aws.example.rust use aws.protocols#restJson1 use com.aws.example#PokemonSpecies use com.aws.example#GetServerStatistics use com.aws.example#DoNothing use com.aws.example#CheckHealth use com.aws.example#ResourceNotFoundException /// The Pokémon Service allows you to retrieve information about Pokémon species. @title("Pokémon Service") Loading @@ -10,16 +15,12 @@ use aws.protocols#restJson1 service PokemonService { version: "2021-12-01", resources: [PokemonSpecies, Storage], operations: [GetServerStatistics, EmptyOperation, CapturePokemonOperation, HealthCheckOperation], } /// A Pokémon species forms the basis for at least one Pokémon. @title("Pokémon Species") resource PokemonSpecies { identifiers: { name: String }, read: GetPokemonSpecies, operations: [ GetServerStatistics, DoNothing, CapturePokemon, CheckHealth ], } /// A users current Pokémon storage. Loading @@ -30,16 +31,54 @@ resource Storage { read: GetStorage, } /// Capture Pokémons via event streams /// Retrieve information about your Pokedex. @readonly @http(uri: "/pokedex/{user}", method: "GET") operation GetStorage { input: GetStorageInput, output: GetStorageOutput, errors: [ResourceNotFoundException, NotAuthorized], } /// Not authorized to access Pokémon storage. @error("client") @httpError(401) structure NotAuthorized {} /// A request to access Pokémon storage. @input @sensitive structure GetStorageInput { @required @httpLabel user: String, @required @httpHeader("passcode") passcode: String, } /// A list of Pokémon species. list SpeciesCollection { member: String } /// Contents of the Pokémon storage. @output structure GetStorageOutput { @required collection: SpeciesCollection } /// Capture Pokémons via event streams. @http(uri: "/capture-pokemon-event/{region}", method: "POST") operation CapturePokemonOperation { input: CapturePokemonOperationEventsInput, output: CapturePokemonOperationEventsOutput, operation CapturePokemon { input: CapturePokemonEventsInput, output: CapturePokemonEventsOutput, errors: [UnsupportedRegionError, ThrottlingError] } @input structure CapturePokemonOperationEventsInput { structure CapturePokemonEventsInput { @httpPayload events: AttemptCapturingPokemonEvent, Loading @@ -49,7 +88,7 @@ structure CapturePokemonOperationEventsInput { } @output structure CapturePokemonOperationEventsOutput { structure CapturePokemonEventsOutput { @httpPayload events: CapturePokemonEvents, } Loading Loading @@ -93,6 +132,7 @@ structure UnsupportedRegionError { @required region: String, } @error("client") structure InvalidPokeballError { @required Loading @@ -103,154 +143,6 @@ structure MasterBallUnsuccessful { @required message: String, } @error("client") structure ThrottlingError {} /// Retrieve information about a Pokémon species. @readonly @http(uri: "/pokemon-species/{name}", method: "GET") operation GetPokemonSpecies { input: GetPokemonSpeciesInput, output: GetPokemonSpeciesOutput, errors: [ResourceNotFoundException], } @input structure GetPokemonSpeciesInput { @required @httpLabel name: String } structure GetPokemonSpeciesOutput { /// The name for this resource. @required name: String, /// A list of flavor text entries for this Pokémon species. @required flavorTextEntries: FlavorTextEntries } /// Retrieve information about your Pokedex. @readonly @http(uri: "/pokedex/{user}", method: "GET") operation GetStorage { input: GetStorageInput, output: GetStorageOutput, errors: [ResourceNotFoundException, NotAuthorized], } /// Not authorized to access Pokémon storage. @error("client") @httpError(401) structure NotAuthorized {} /// A request to access Pokémon storage. @input @sensitive structure GetStorageInput { @required @httpLabel user: String, @required @httpHeader("passcode") passcode: String, } /// A list of Pokémon species. list SpeciesCollection { member: GetPokemonSpeciesOutput } /// Contents of the Pokémon storage. @output structure GetStorageOutput { @required collection: SpeciesCollection } /// Retrieve HTTP server statistiscs, such as calls count. @readonly @http(uri: "/stats", method: "GET") operation GetServerStatistics { input: GetServerStatisticsInput, output: GetServerStatisticsOutput, } @input structure GetServerStatisticsInput { } @output structure GetServerStatisticsOutput { /// The number of calls executed by the server. @required calls_count: Long, } list FlavorTextEntries { member: FlavorText } structure FlavorText { /// The localized flavor text for an API resource in a specific language. @required flavorText: String, /// The language this name is in. @required language: Language, } /// Supported languages for FlavorText entries. @enum([ { name: "ENGLISH", value: "en", documentation: "American English.", }, { name: "SPANISH", value: "es", documentation: "Español.", }, { name: "ITALIAN", value: "it", documentation: "Italiano.", }, { name: "JAPANESE", value: "jp", documentation: "日本語。", }, ]) string Language /// Empty operation, used to stress test the framework. @readonly @http(uri: "/empty-operation", method: "GET") operation EmptyOperation { input: EmptyOperationInput, output: EmptyOperationOutput, } @input structure EmptyOperationInput { } @output structure EmptyOperationOutput { } /// Health check operation, to check the service is up /// Not yet a deep check @readonly @http(uri: "/ping", method: "GET") operation HealthCheckOperation { } @error("client") @httpError(404) structure ResourceNotFoundException { @required message: String, } structure ThrottlingError {} codegen-server-test/build.gradle.kts +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ val allCodegenTests = "../codegen-core/common-test-models".let { commonModels -> CodegenTest("aws.protocoltests.misc#MiscService", "misc", imports = listOf("$commonModels/misc.smithy")), CodegenTest("com.amazonaws.ebs#Ebs", "ebs", imports = listOf("$commonModels/ebs.json")), CodegenTest("com.amazonaws.s3#AmazonS3", "s3"), CodegenTest("com.aws.example#PokemonService", "pokemon-service-server-sdk", imports = listOf("$commonModels/pokemon.smithy")), CodegenTest("com.aws.example.rust#PokemonService", "pokemon-service-server-sdk", imports = listOf("$commonModels/pokemon.smithy", "$commonModels/pokemon-common.smithy")), ) } Loading codegen-server-test/python/build.gradle.kts +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ dependencies { val allCodegenTests = "../../codegen-core/common-test-models".let { commonModels -> listOf( CodegenTest("com.amazonaws.simple#SimpleService", "simple", imports = listOf("$commonModels/simple.smithy")), CodegenTest("com.aws.example#PokemonService", "pokemon-service-server-sdk"), CodegenTest("com.aws.example.python#PokemonService", "pokemon-service-server-sdk"), ) } Loading Loading
codegen-client-test/build.gradle.kts +1 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ val allCodegenTests = "../codegen-core/common-test-models".let { commonModels -> """.trimIndent(), imports = listOf("$commonModels/naming-obstacle-course-structs.smithy"), ), CodegenTest("com.aws.example#PokemonService", "pokemon-service-client", imports = listOf("$commonModels/pokemon.smithy")), CodegenTest("com.aws.example.rust#PokemonService", "pokemon-service-client", imports = listOf("$commonModels/pokemon.smithy", "$commonModels/pokemon-common.smithy")), ) } Loading
codegen-core/common-test-models/pokemon-common.smithy 0 → 100644 +124 −0 Original line number Diff line number Diff line $version: "1.0" namespace com.aws.example /// A Pokémon species forms the basis for at least one Pokémon. @title("Pokémon Species") resource PokemonSpecies { identifiers: { name: String }, read: GetPokemonSpecies, } /// Retrieve information about a Pokémon species. @readonly @http(uri: "/pokemon-species/{name}", method: "GET") operation GetPokemonSpecies { input: GetPokemonSpeciesInput, output: GetPokemonSpeciesOutput, errors: [ResourceNotFoundException], } @input structure GetPokemonSpeciesInput { @required @httpLabel name: String } @output structure GetPokemonSpeciesOutput { /// The name for this resource. @required name: String, /// A list of flavor text entries for this Pokémon species. @required flavorTextEntries: FlavorTextEntries } /// Retrieve HTTP server statistiscs, such as calls count. @readonly @http(uri: "/stats", method: "GET") operation GetServerStatistics { input: GetServerStatisticsInput, output: GetServerStatisticsOutput, } @input structure GetServerStatisticsInput { } @output structure GetServerStatisticsOutput { /// The number of calls executed by the server. @required calls_count: Long, } list FlavorTextEntries { member: FlavorText } structure FlavorText { /// The localized flavor text for an API resource in a specific language. @required flavorText: String, /// The language this name is in. @required language: Language, } /// Supported languages for FlavorText entries. @enum([ { name: "ENGLISH", value: "en", documentation: "American English.", }, { name: "SPANISH", value: "es", documentation: "Español.", }, { name: "ITALIAN", value: "it", documentation: "Italiano.", }, { name: "JAPANESE", value: "jp", documentation: "日本語。", }, ]) string Language /// DoNothing operation, used to stress test the framework. @readonly @http(uri: "/do-nothing", method: "GET") operation DoNothing { input: DoNothingInput, output: DoNothingOutput, } @input structure DoNothingInput { } @output structure DoNothingOutput { } /// Health check operation, to check the service is up /// Not yet a deep check @readonly @http(uri: "/ping", method: "GET") operation CheckHealth { } @error("client") @httpError(404) structure ResourceNotFoundException { @required message: String, }
codegen-core/common-test-models/pokemon.smithy +58 −166 Original line number Diff line number Diff line $version: "1.0" namespace com.aws.example namespace com.aws.example.rust use aws.protocols#restJson1 use com.aws.example#PokemonSpecies use com.aws.example#GetServerStatistics use com.aws.example#DoNothing use com.aws.example#CheckHealth use com.aws.example#ResourceNotFoundException /// The Pokémon Service allows you to retrieve information about Pokémon species. @title("Pokémon Service") Loading @@ -10,16 +15,12 @@ use aws.protocols#restJson1 service PokemonService { version: "2021-12-01", resources: [PokemonSpecies, Storage], operations: [GetServerStatistics, EmptyOperation, CapturePokemonOperation, HealthCheckOperation], } /// A Pokémon species forms the basis for at least one Pokémon. @title("Pokémon Species") resource PokemonSpecies { identifiers: { name: String }, read: GetPokemonSpecies, operations: [ GetServerStatistics, DoNothing, CapturePokemon, CheckHealth ], } /// A users current Pokémon storage. Loading @@ -30,16 +31,54 @@ resource Storage { read: GetStorage, } /// Capture Pokémons via event streams /// Retrieve information about your Pokedex. @readonly @http(uri: "/pokedex/{user}", method: "GET") operation GetStorage { input: GetStorageInput, output: GetStorageOutput, errors: [ResourceNotFoundException, NotAuthorized], } /// Not authorized to access Pokémon storage. @error("client") @httpError(401) structure NotAuthorized {} /// A request to access Pokémon storage. @input @sensitive structure GetStorageInput { @required @httpLabel user: String, @required @httpHeader("passcode") passcode: String, } /// A list of Pokémon species. list SpeciesCollection { member: String } /// Contents of the Pokémon storage. @output structure GetStorageOutput { @required collection: SpeciesCollection } /// Capture Pokémons via event streams. @http(uri: "/capture-pokemon-event/{region}", method: "POST") operation CapturePokemonOperation { input: CapturePokemonOperationEventsInput, output: CapturePokemonOperationEventsOutput, operation CapturePokemon { input: CapturePokemonEventsInput, output: CapturePokemonEventsOutput, errors: [UnsupportedRegionError, ThrottlingError] } @input structure CapturePokemonOperationEventsInput { structure CapturePokemonEventsInput { @httpPayload events: AttemptCapturingPokemonEvent, Loading @@ -49,7 +88,7 @@ structure CapturePokemonOperationEventsInput { } @output structure CapturePokemonOperationEventsOutput { structure CapturePokemonEventsOutput { @httpPayload events: CapturePokemonEvents, } Loading Loading @@ -93,6 +132,7 @@ structure UnsupportedRegionError { @required region: String, } @error("client") structure InvalidPokeballError { @required Loading @@ -103,154 +143,6 @@ structure MasterBallUnsuccessful { @required message: String, } @error("client") structure ThrottlingError {} /// Retrieve information about a Pokémon species. @readonly @http(uri: "/pokemon-species/{name}", method: "GET") operation GetPokemonSpecies { input: GetPokemonSpeciesInput, output: GetPokemonSpeciesOutput, errors: [ResourceNotFoundException], } @input structure GetPokemonSpeciesInput { @required @httpLabel name: String } structure GetPokemonSpeciesOutput { /// The name for this resource. @required name: String, /// A list of flavor text entries for this Pokémon species. @required flavorTextEntries: FlavorTextEntries } /// Retrieve information about your Pokedex. @readonly @http(uri: "/pokedex/{user}", method: "GET") operation GetStorage { input: GetStorageInput, output: GetStorageOutput, errors: [ResourceNotFoundException, NotAuthorized], } /// Not authorized to access Pokémon storage. @error("client") @httpError(401) structure NotAuthorized {} /// A request to access Pokémon storage. @input @sensitive structure GetStorageInput { @required @httpLabel user: String, @required @httpHeader("passcode") passcode: String, } /// A list of Pokémon species. list SpeciesCollection { member: GetPokemonSpeciesOutput } /// Contents of the Pokémon storage. @output structure GetStorageOutput { @required collection: SpeciesCollection } /// Retrieve HTTP server statistiscs, such as calls count. @readonly @http(uri: "/stats", method: "GET") operation GetServerStatistics { input: GetServerStatisticsInput, output: GetServerStatisticsOutput, } @input structure GetServerStatisticsInput { } @output structure GetServerStatisticsOutput { /// The number of calls executed by the server. @required calls_count: Long, } list FlavorTextEntries { member: FlavorText } structure FlavorText { /// The localized flavor text for an API resource in a specific language. @required flavorText: String, /// The language this name is in. @required language: Language, } /// Supported languages for FlavorText entries. @enum([ { name: "ENGLISH", value: "en", documentation: "American English.", }, { name: "SPANISH", value: "es", documentation: "Español.", }, { name: "ITALIAN", value: "it", documentation: "Italiano.", }, { name: "JAPANESE", value: "jp", documentation: "日本語。", }, ]) string Language /// Empty operation, used to stress test the framework. @readonly @http(uri: "/empty-operation", method: "GET") operation EmptyOperation { input: EmptyOperationInput, output: EmptyOperationOutput, } @input structure EmptyOperationInput { } @output structure EmptyOperationOutput { } /// Health check operation, to check the service is up /// Not yet a deep check @readonly @http(uri: "/ping", method: "GET") operation HealthCheckOperation { } @error("client") @httpError(404) structure ResourceNotFoundException { @required message: String, } structure ThrottlingError {}
codegen-server-test/build.gradle.kts +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ val allCodegenTests = "../codegen-core/common-test-models".let { commonModels -> CodegenTest("aws.protocoltests.misc#MiscService", "misc", imports = listOf("$commonModels/misc.smithy")), CodegenTest("com.amazonaws.ebs#Ebs", "ebs", imports = listOf("$commonModels/ebs.json")), CodegenTest("com.amazonaws.s3#AmazonS3", "s3"), CodegenTest("com.aws.example#PokemonService", "pokemon-service-server-sdk", imports = listOf("$commonModels/pokemon.smithy")), CodegenTest("com.aws.example.rust#PokemonService", "pokemon-service-server-sdk", imports = listOf("$commonModels/pokemon.smithy", "$commonModels/pokemon-common.smithy")), ) } Loading
codegen-server-test/python/build.gradle.kts +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ dependencies { val allCodegenTests = "../../codegen-core/common-test-models".let { commonModels -> listOf( CodegenTest("com.amazonaws.simple#SimpleService", "simple", imports = listOf("$commonModels/simple.smithy")), CodegenTest("com.aws.example#PokemonService", "pokemon-service-server-sdk"), CodegenTest("com.aws.example.python#PokemonService", "pokemon-service-server-sdk"), ) } Loading