Skip to content

Latest commit

 

History

History
700 lines (510 loc) · 45.4 KB

CHANGELOG.md

File metadata and controls

700 lines (510 loc) · 45.4 KB

Smithy Changelog

1.5.1 (2020-12-21)

Bug Fixes

  • Fixed several issues related to building and running on Windows. (#671)
  • Fixed an issue loading the jsonAdd map from configuration for the cloudformation plugin. (#673)
  • Fixed an issue where API Gateway REST APIs would have greedy label parameter names rendered into OpenAPI with a + suffix. (#674)

1.5.0 (2020-12-10)

Features

  • Added the endpointPrefix property to the @aws.api#service trait. (#663)
  • Added support for tags and deprecated members to @waitable definitions. (#652)
  • Added validation for @httpHeader trait values. (#650)
  • Add required property for requestBody when converting to OpenAPI. (#655)
  • Added more helper methods to OperationIndex. (#657)

Bug Fixes

  • Ensure that names in the @waitable trait are unique in the closure of the service. (#645)
  • Fixed a regression with @aws.apigateway#authorizors behavior when setting the customAuthType property without having set its type property. (#613)
  • Fixed an issue where modeled headers were not populated in to Access-Control-Expose-Headers in CORS responses. (#659)
  • Added missing deprecated member to @enum definitions in the prelude model. (#651)
  • Fixed an issue with the conversion of greedy label parameter names in to OpenAPI. (#641)
  • Fixed an issue in CodeWriter.popState where it would not honor custom expression start characters. (#648)
  • Fixed a potential NullPointerException when validating the @examples trait. (#642)
  • Fixed issues with some @awsQuery and @ec2Query protocol test responses. (#653)
  • Fixed an issue where the removeTraitDefinitions build transform was not registered with the SPI. (#660)
  • Fixed an issue where using an environment variable in smithy-build.json would consume an extra preceding character when performing a replacement. (#662)

Documentation

  • Update @waitable documentation to specify using jitter and account for overflows. (#656)
  • Added examples and clarified documentation for several HTTP traits, most importantly @httpLabel and @httpQuery. (#654)
  • Clarified various aspects of the @xmlNamespace trait documentation. (#643)
  • Clarified @waitable documentation. (#646, #664)
  • Clarified that the @pattern trait does not implicitly match an entire string. (#649)
  • Fixed various examples in the specification. (#639)

Cleanup

  • Sort TopDownIndex contents to provide deterministic results. (#667)
  • Improved error messages when an unknown annotation trait is encountered. (#644)
  • Added smithy-diff error when the @idempotencyTrait token is removed from a shape. (#640)

1.4.0 (2020-11-20)

Features

New Packages

  • Added smithy-jmespath, a dependency-less, JMESPath parser with a rich AST that can be used in code generation, and performs static analysis of expressions. (#621)
  • Added smithy-waiters, containing the @waitable trait. This provides information that clients can use to poll until a desired state is reached, or it is determined that that state cannot be reached. (#623)
  • Added smithy-aws-cloudformation-traits, containing several (unstable) traits that indicate CloudFormation resources and the additional metadata about their properties. (#579)
  • Added smithy-aws-cloudformation, containing the (unstable) "cloudformation" build tool that, given a model decorated with traits from aws.cloudformation, will generate CloudFormation Resource Schemas. (#622)

Other Features

  • Added support for patternProperties when generating JSON Schema. (#611)
  • Added more utility methods to the CodeWriter. (#624)
  • Added validation for @sensitive trait when applied to members. (#609)
  • Added support for retrieving full paths to the outputToken and items pagination members. (#628)
  • Added a warning for @enum entries without names. (#610)
  • Added support for generating an integer OpenAPI type. (#632)
  • Improved smithy-diff evaluation of changing member targets. (#630)
  • Updated pagination tokens to support being map shapes. (#629)

Bug Fixes

  • Fixed a bug where URIs would be declared conflicting if the differed through the @endpoint trait. (#626)
  • Fixed a bug that would allow the @aws.auth#sigv4 trait's name property to be empty. (#635)
  • Updated protocol tests for @sparse trait. (#620, #631)
  • Fixed a bug with the interaction of CodeWriter.writeInline with sections. (#617)

Documentation

  • Fixed links for protocol test suites. (#615)
  • Added example and test for composing with CodeWriter. (#619)
  • Clarified that @enum values cannot be empty. (#633)
  • Clarified binary data in protocol tests. (#634)

Cleanup

  • Lowered severity of validation that a pageSize member is marked @required. (#612)

1.3.0 (2020-10-20)

Features

  • Added several CodegenWriter and related abstractions to simplify creating code generators. (#587)
  • Added the @sparse trait to the Prelude. (#599)
  • Added the NullableIndex to help check if a shape can be set to null. (#599)
  • Added support for API Gateway API key usage plans. (#603, #605)
  • Added the sortMembers model transform to reorder the members of structures and unions. (#588)
  • Add description property to operations when converting to OpenAPI. (#589)

Bug Fixes

  • Fixed an issue where the flattenNamespaces build transform was not registered with the SPI. (#593)

Optimizations

  • Optimized the reverse NeighborProvider for memory usage. (#590)
  • Optimized model validation event aggregation for memory usage. (#595)

Documentation

  • Clarified that map keys, set values, and union members cannot be null. (#596)
  • Clarified enum names and their usage. (#601)
  • Added an example dependency to OpenAPI conversion. (#594)
  • Improve and clean up formatting. (#585, #597, #598)

Cleanup

  • Updated service, resource, and operation shapes to maintain the order of bound resource and operation shapes. (#602)
  • Updated the sources build plugin to create an empty manifest if there are no source models. (#607)
  • Deprecated the BoxIndex. (#599)
  • Added enum names for httpApiKeyLocation in the Prelude. (#606)

1.2.0 (2020-09-30)

Features

  • Added information to the ModelDiff.Result indicating how events have changed between the diff'd models. (#574)
  • Added a media type parser and validation for the @mediaType trait. (#582)
  • Added additional default CORS headers and configuration for OpenAPI conversions. (#583)
  • Added the flattenNamespaces build transform to flatten the namespaces of shapes connected to a specified service in a model in to a target namespace. (#572)
  • Added runCommand functionality to smithy-utils. (#580)
  • Added a TriConsumer to smithy-utils. (#581)
  • Added support for the @httpResponseCode trait in the HttpBindingIndex. (#571)
  • Added protocol tests for the @httpResponseCode trait. (#573)

Bug Fixes

  • Fixed several issues that would cause Smithy to fail when running on Windows. (#575, #576, #577)
  • Fixed a bug where a union shape marked as an @httpPayload would throw an exception when trying to resolve its content-type. (#584)
  • Fixed a bug in OpenAPI conversions where tags were not passed through unless set in the supportedTags list, even when the tags setting was enabled. (#570)

1.1.0 (2020-09-16)

Features

  • Added the removeTraitDefinitions build transform to remove trait definitions from models but leave instances intact. (#558)
  • Added payload binding validation to HTTP DELETE operations. (#566)
  • Updated SmithyDiff to emit events when traits are changed. (#561)

Bug Fixes

  • Fixed an issue where some StringListTrait instances could lose SourceLocation information. (#564)
  • Fixed some issues in protocol tests. (#560, #563)

Cleanup

  • Model components are now deduplicated based on location and value. (#565)
  • Normalize URL import filenames for better deduplication and reporting. (#562)

1.0.11 (2020-09-10)

Features

  • Added a reverse-topological knowledge index to aid in code generation for languages that require types to be defined before they are referenced. (#545, #53)
  • Added the @httpResponseCode trait to indicate that a structure member represents an HTTP response status code. (#546)
  • Added (unstable) support for generating a "Trace File" to link code generated artifacts back to their modeled source. (#552)
  • Added the :topdown selector that matches shapes hierarchically. (#539)
  • Added validation for the cloudTrailEventSource property of the @aws.api#service trait. (#550)
  • Updated shape builders to properly update their member ShapeIds if the ShapeId of the builder changes. (#556)
  • Added several more XML related protocol tests. (#547)

Bug Fixes

  • Fixed a bug where the PaginatedIndex did not properly support resolving paths. (#554)

Documentation

  • Clarified the documentation for the cloudTrailEventSource property of the @aws.api#service trait. (#550)
  • Clarified that the @aws.api#arn trait has no impact on OpenAPI conversions. (#555)

1.0.10 (2020-08-26)

Features

  • Added a validation event when a syntactic shape ID is found that does not target an actual shape in the model. (#542)

Bug Fixes

  • Fixed a bug where forward reference resolution would use the incorrect namespace when resolving operation and resource bindings. (#543)

Cleanup

  • Deprecated the reflection-based creation pattern for KnowledgeIndex implementations. (#541)

1.0.9 (2020-08-21)

Features

  • Allow conflicting shape definitions if the fully built shapes are equivalent. (#520)
  • Added the @internal trait to the prelude. (#531)
  • Added the excludeShapesByTrait build transform that will remove any shapes marked with one or more of the specified traits. (#531)
  • Improved support for newlines and indentation in CodeWriter. (#529)
  • Added support for configuring the expression starting character in CodeWriter. (#529)
  • Added payloadFormatVersion property for API Gateway integrations. (#527)
  • Add deprecated property to operations when converting to OpenAPI. (#535)
  • Added several more protocol tests. (#528, #536)

Bug Fixes

  • Fixed the selector for the @httpQuery trait. (#534)
  • Fixed the selector for the @httpPrefixHeaders trait. (#533)
  • Fixed some issues in protocol tests. (#526)

Cleanup

  • Removed the abbreviation property from the @aws.api#service trait. (#532)
  • Simplified prelude model loading. (#524)
  • Further simplified overall model loading. (#525)

1.0.8 (2020-07-31)

Features

  • Updated Walker to provide a stable sort for shapes. (#511)
  • Improved support for loading ValidationEvents via NodeMapper. (#518, #516)
  • Added the ability to disableFromNode via NodeMapper. (#505)

Bug Fixes

  • Fixed several issues in protocol tests. (#502, #507)

Cleanup

  • Stopped raising validation errors and running validation with RenameShapes transformer. (#512)
  • Simplified conflict handling for shapes. (#514)
  • Simplified duplicate member detection and handling. (#513)

1.0.7 (2020-07-16)

Features

  • Use the @title trait to improve generated documentation for JSON Schema unions that use "oneOf". (#485)
  • Added and updated several protocol tests for restJson1. (#490)
  • Added and updated several protocol tests for awsJson1_1. (#484, #493)
  • Added protocol tests for awsJson1_0. (#496)

Bug Fixes

  • Fixed a bug where passthroughBehavior was misspelled as passThroughBehavior in APIGateway OpenAPI output for integrations and mock integrations. (#495)
  • Fixed a bug where only the last line in a multiline doc comment on a member would be successfully parsed. (#498)
  • Fixed several issues in protocol tests. (#473, #476, #481, #491)

Documentation

  • Refactored the specification to better explain the semantic model and its representations. (#497, #482)
  • Clarified guidance on using @mediaType. (#500)
  • Removed outdated namespace guidance. (#487)
  • Fixed several minor issues. (#494)

Cleanup

  • Disallowed problematic identifiers misusing _. (#499)
  • Moved validation of members with the @httpLabel trait being marked required to the selector. (#480)

1.0.6 (2020-06-24)

Features

  • Update structure and union shapes so member order is maintained as part of the contract. (#465)
  • Add validation for document types in protocols. (#474)
  • Provide suggestions for invalid Shape ID targets if a close match is found. (#466)
  • Added message templates and trait binding to the EmitEachSelector. (#467)
  • Added ability to add traits directly to the ModelAssembler. (#470)
  • Convert awsJson1_1 protocol tests to Smithy IDL. (#472)
  • Update decimal values in protocol tests. (#471)

Documentation

  • Update quick start guide with more examples. (#462)

Bug Fixes

  • Fixed issues allowing document types in @httpHeader and @httpPrefixHeaders traits. (#474)

1.0.5 (2020-06-05)

Bug Fixes

  • Fixed a bug in loading IDL files where resolving a forward reference that needed another forward reference would throw an exception. (#458)
  • Fixed a bug where smithy-build imports were not resolved relative to their smithy-build.json. (#457)
  • Fixed a bug where the PREFIX_HEADERS HTTP binding location would not default its timestamp format to HTTP_DATE. (#456)

1.0.4 (2020-05-29)

Features

  • Ensure that when a property is removed from a JSON schema object, that a corresponding "required" entry is also removed. (#452)
  • Added the (unstable) @httpChecksumRequired trait to indicate an operation requires a checksum in its HTTP request. (#433, #453)

Bug Fixes

  • Fixed a bug in OpenApi conversion where removing authentication for an operation would result in the operation inheriting the global "security" configuration instead of having it set to none. (#451)

Documentation

  • Added examples of building models to various guides. (#449)
  • Fixed various documentation issues. (#449)

1.0.3 (2020-05-26)

Bug Fixes

  • Prevent parsing overly deep Node values (#442)
  • Fix an issue with the OpenAPI conversion where synthesized structure inputs reference required properties that were removed. (#443)

1.0.2 (2020-05-18)

Bug Fixes

  • Fix an issue that would squash exceptions thrown for invalid suppressions. (#440)

1.0.1 (2020-05-13)

Features

  • The smithy.api#httpPayload trait can now target document shapes. (#431)
  • Updated the IDL grammar to include many previously enforced parsing rules. (#434)
  • Added the select command to the CLI to print out shapes from a model that match a selector. (#430)
  • Added the ast command to the CLI to convert 0 or more Smithy models into a JSON AST. (#435)
  • Added a Dockerfile for building Smithy as a Docker image. (#427)

Optimizations

  • The Smithy IDL parser has been rewritten and optimized. (#434)
  • Generate a class data share to speed up the CLI. (#429)

Bug Fixes

  • Fix several ambiguities and issues in the IDL grammar. (#434)
  • JSON pretty printing of the AST now uses 4 spaces for indentation. (#435)
  • Fix CLI --help output alignment. (#429)

1.0.0 (2020-05-04)

Note: Changes marked with "[BC]" are breaking changes more accurately described in the specific section. A list of further intended breaking changes have a specific section near the end of this entry.

Features

General

  • The model format version has been updated to 1.0 and contains several updates: [BC] (#357, #381)
    • The JSON AST representation requires describing annotation traits as {} instead of true.
    • Annotation traits in the IDL are now provided as @foo or @foo(). Explicit @foo(true) and @foo(null) support was removed.
  • Smithy models can now be serialized to the IDL. (#284)
  • Added a Node-based object mapper to simplify the process of building and using Java components from Smithy Nodes. (#301)
    • Many packages have seen significant updates to use this functionality. (#305, #364)
  • Made error messages clearer when encountering duplicate shapes. (#324)
  • Model loaders now warn on additional shape properties instead of fail. (#374)
  • Added expect* methods to the base Shape. (#314)
  • Added @SmithyUnstableApi, @SmithyInternalApi and @SmithyGenerated Java annotations. (#297)
  • NodeValidationVisitors are marked as internal and/or unstable. (#375)
  • The $version control statement can now be set to only a major version (e.g., "1") to indicate that an implementation must support a version >= 1 and < 2. $version can now be set to major.minor (e.g., "1.1") to indicate that an implementation must support a version >= 1.1 and < 2.

Trait updates

  • Individual protocols are now defined as individual traits that are annotated with the protocolDefinition trait. [BC] (#273, #280, #379, #390)
  • Individual authentication schemes are now defined as individual traits that are annotated with the authDefinition trait. [BC] (#273, #280)
  • The smithy.api#enum trait is now a list of enum definitions instead of a map of string keys to enum definitions to improve clarity and encourage adding more properties to definitions. [BC] (#326)
  • The aws.api#streaming trait is now applied to shapes directly instead of members. [BC] (#340)
  • The smithy.api#eventStream trait has been removed. Event streams are now indicated by applying the smithy.api#streaming trait to unions. [BC] (#365)
  • The smithy.api#requiresLength trait has been split out of the smithy.api#streaming trait to improve clarity around event stream modeling. [BC] (#368)
  • The smithy.api#externalDocumentation trait is now a map instead of a single string to allow for multiple links per trait. [BC] (#363)
  • Added the smithy.api#noReplace trait to indicate a PUT lifecycle operation cannot replace the existing resource. (#351)
  • Added the smithy.api#unstable trait to indicate a shape MAY change. (#290)
  • Simplified aws.api#unsignedPayload to be an annotation. [BC] (#270)
  • Annotation traits are now lossless when loaded with additional properties, meaning they will contain those properties when serialized. (#385)

Selector updates

Selectors have received significant updates: (#388)

  • Attribute selectors can now evaluate scoped comparisons using @foo: to define a scope and @{bar} to define a context value. (#391)
  • And logic, via &&, has been added to allow multiple attribute comparisons. (#391)
  • Support for selecting nested trait properties with |, including list/object values and object keys, was added.
  • An opt-in trait relationship has been added. (#384)
  • The recursive neighbor selector, ~>, has been added. (#386)
  • A not equal comparison, !=, was added.
  • An exists comparison, ?=, was added. (#391)
  • Support for numbers in attribute selectors was added.
  • Numeric comparisons (>, >=, <, <=) were added.
  • The (length) function property was added. (#391)
  • Attribute selectors now support CSV values, allowing matching on one or more target values.
  • The :each selector is now :is for clarity. [BC]
  • The :of selector is now removed. Use reverse neighbors instead (e.g., member :test(< structure)). [BC]
  • The semantics of the :not selector have changed significantly. :not(list > member > string) now means "do not match list shapes that target strings", whereas this previously meant, "do not match string shapes targeted by lists". [BC]
  • Shape IDs with members must now be quoted. [BC]
  • Selector parsing and evaluating now tolerates unknown relationship types. (#377)

Validation updates

  • Services must now contain a closure of shapes that have case-insensitively unique names. [BC] (#337)
  • suppressions has been updated to now only suppress validation events that occur for an entire namespace or across the entire model. The @suppress trait was added to suppress validation events for a specific shape. [BC] (#397).
  • The UnreferencedShape validator has moved to smithy-model and is now always run. [BC] (#319)
  • EmitEachSelector and EmitNoneSelector were moved from smithy-linters into smithy-model.

JSON Schema conversion

The conversion to JSON schema was significantly overhauled. [BC] (#274)

  • Configuration for the build plugin was significantly overhauled. [BC] (#364)
  • The strategy for shape inlining has been changed. [BC]
  • The strategy for naming shapes and handling shape id conflicts has been changed. [BC]
  • Output schema error detection was improved.
  • The Java API surface has been reduced. [BC]
  • Added the ability to select schemas from a document using a JSON pointer.

OpenAPI conversion

The conversion to OpenAPI was significantly overhauled. [BC] (#275)

  • Configuration for the build plugin was significantly overhauled. [BC] (#364)
  • Protocol conversion was updated to utilize the new traits. (#275, #392)
  • Schemas are now generated for requests and responses instead of being inlined. [BC]
  • Fixed several issues with CORS integrations.

API Gateway OpenAPI conversion

The API Gateway specific OpenAPI mappers have been updated. [BC] (#367)

  • The ApiGatewayMapper interface was added, allowing mappers to control which API Gateway API type(s) they support.
  • Fixed several issues with CORS integrations. (#370)
  • Added support for JSON Patch-like OpenAPI schema changes based on JSON Pointers. (#293)
  • Added support for event streams in OpenAPI conversion. (#334)

Bug Fixes

  • Fixed an issue in JSON schema conversion where member traits were dropped in some scenarios. (#274)
  • Fixed an issue where authorization headers were not properly added to CORS configurations. (#328)
  • Fixed an issue where operation response headers were being applied to error responses in OpenAPI conversions. (#275)
  • Fixed an issue where apply statements wouldn't resolve target shapes properly in some cases. (#287)
  • Fixed an issue with the selector for the smithy.api#title trait. (#387)
  • Fixed several issues with the smithy.api#httpApiKeyAuth trait and its related conversions. (#291)
  • Fixed a bug with timestamp validation in specific versions of Java. (#316)

Optimizations

  • The TraitTargetValidator now performs as few checks on and selections of the entire model. (#389)
  • The dependency on jackson-core was replaced with a vendored version of minimal-json to reduce the chances of dependency conflicts. [BC] (#323)
  • Sped up model loading time by loading JSON models before IDL models to reduce forward reference lookups. (#287)

Breaking changes

All changes listed in this heading and any sub-headings are breaking changes.

  • The BooleanTrait abstract class in smithy-model was renamed AnnotationTrait. (#381)
  • The traits in the aws.apigateway namespace have moved from smithy-aws-traits to the smithy-aws-apigateway-traits package for more granular use. (#322)
    • Tooling that referenced these traits has also been updated.
  • The traits in the aws.iam namespace have moved from smithy-aws-traits to the smithy-aws-iam-traits package for more granular use. (#322)
    • Tooling that referenced these traits has also been updated.
  • The aws.api#ec2QueryName trait has moved to aws.protocols#ec2QueryName. (#286)
  • The aws.api#unsignedPayload trait has moved to aws.auth#unsignedPayload . (#286)
  • The smithy-codegen-freemarker package has been removed. (#382)
  • Traits can no longer be applied to public Smithy Prelude shapes. (#317)
  • Smithy's Pattern class is renamed to SmithyPattern to remove the conflict with Java's regex Pattern class. (#315)
  • Removed the Triple class from smithy-utils. (#313)
  • Normalized class names for OpenAPI SecurityScemeConverter implementations. (#291)
  • Removed alias functionality from software.amazon.smithy.build.SmithyBuildPlugin and software.amazon.smithy.build.ProjectionTransformer. (#409)
  • Removed software.amazon.smithy.model.shapes.Shape#visitor and software.amazon.smithy.model.shapes.ShapeVisitor$Builder. Use software.amazon.smithy.model.shapes.ShapeVisitor$Default instead. (#413)
  • software.amazon.smithy.model.Model#getTraitDefinitions and getTraitShapes were removed in favor of software.amazon.smithy.model.Model#getShapesWithTrait. (#412)

Deprecation cleanup

  • The deprecated IDL operation syntax has been removed (#373)
  • The deprecated NodeFactory interface has been removed. (#265)
  • The deprecated ShapeIndex class and all related APIs have been removed. (#266)
  • Support for the deprecated 0.4.0 model version has been removed. (#267)
  • The aws.api#service trait no longer supports the deprecated sdkServiceId, arnService, or productName properties. (#268)
  • The deprecated TemplateEngine and DefaultDataTemplateEngine have been removed. (#268)
  • The deprecated smithy.validators and smithy.suppressions are no longer used as aliases for validators and suppressions. (#268)
  • The smithy.api#references and smithy.api#idRef traits no longer support relative shape IDs. (#268)

Documentation

A significant overhaul of the specification and guides has been completed. This includes a better flow to the spec, more complete guides, deeper documentation of AWS specific components, and a complete redesign. Many direct links to components of the documentation will have changed.

0.9.9 (2020-04-01)

Bug Fixes

  • Add security to individual operations in OpenAPI conversion (#329)
  • Fix an issue with header casing for x-api-key integration with API Gateway (#330)
  • Fix discrepancies in smithy-aws-protocol-tests (#333, #335, #349)

0.9.8 (2020-03-26)

Features

  • Add RenameShapes model transformer (#318)
  • Build ValidationEvents are now sorted (#263)
  • Smithy CLI logging improvements (#263)
  • Model builds fail early when syntax errors occur (#264)
  • Warn when a deprecated trait is applied to a shape (#279)

Bug Fixes

  • Fix behavior of schemaDocumentExtensions when converting to OpenAPI (#320)
  • Fix discrepancies in smithy-aws-protocol-tests (#309, #321)
  • Properly format test case results (#271)
  • Fix dropping one character text block lines (#285)

Optimizations

  • Builds run parallel projections in parallel only if there are more than one (#263)
  • Run Smithy test suites as parameterized tests (#263)

Cleanup

  • Migrate protocol tests to new operation syntax (#260)
  • Build protocol tests with the Smithy Gradle plugin (#263)
  • Deprecate using explicitly smithy.api for trait removal (#306)

0.9.7 (2020-01-15)

Features

  • Updated Operation syntax in the Smithy IDL (#253)
  • Updated specification for XML traits (#242)
  • Add the @aws.api#ec2QueryName-trait trait (#251)
  • Add AWS protocol test models (#246, #247, #250, #255, and #258)

Optimizations

  • Use URLConnection cache setting in ModelAssembler (#244)

Bug Fixes

  • Use list of string for queryParams in the httpRequestTests trait (#240)

0.9.6 (2020-01-02)

Features

  • Allow XML maps to be flattened (#205)
  • Add and remove shape members to model automatically (#206)
  • Deprecate ShapeIndex in favor of Model (#209)
  • Allow the sensitive trait to be applied to all but operations, services, and resources (#212)
  • Added 0.5.0 IDL and AST format (#213)
  • Allow min to equal max in range trait (#216)
  • Added validation for length trait values (#217)
  • Limit streaming trait to top-level members (#221)
  • Added protocol compliance test traits (#226)
  • Added ability to configure timestamp validation (#229)
  • Moved TemplateEngine implementation into FreeMarker implementation (#230)
  • Added BoxIndex (#234)
  • Added more expect methods to Shape and Model (#237)

Optimizations

  • Update smithy-build to be streaming (#211)

Bug Fixes

  • Prevent bad list, set, and map recursion (#204)
  • Properly allow omitting endpoint discovery operation inputs (#220)

0.9.5 (2019-11-11)

Features

  • Allow overriding state management in CodeWriter (#186)
  • Allow the xmlFlattened trait to be applied to members (#191)
  • Add helper to determine HTTP-based timestamp formats (#193)
  • Allow specifying XML namespace prefixes (#195)
  • Add SymbolContainer, an abstraction over Symbols that enables easily creating and aggregating Symbols (#202)

Bug Fixes

  • Escape popped state content (#187)
  • Make shape ID serialization consistent (#196)
  • Exclude private members targeted in JSON schema converters (#199)
  • Fix naming collisions in JSON schema output (#200)
  • Update equals to included typed bag parents (#201)

0.9.4 (2019-10-09)

Features

  • Add support for AWS Client Endpoint Discovery (#165)
  • Refactor event streams to target members (#171)
  • Add support for aliasing referenced Symbols (#168)
  • Add support for Symbols to introduce dependencies (#169)
  • Add ability to manually escape reserved words in ReservedWordSymbolProvider (#174)
  • Add method to gather dependencies for Symbols (#170)
  • Add a caching SymbolProvider (#167)
  • Improve the usability of CodeWroter#openBlock (#175)
  • Improve the usability of PluginContext (#181)

Optimizations

  • Disable URLConnection cache in CLI (#180)

Bug Fixes

  • Fix issue with generated authentication for CORS checks (#179)
  • Set the defaultTimestampFormat to epoch-seconds for aws.rest-json protocols in OpenAPI (#184)

0.9.3 (2019-09-16)

Features

  • Clean up CodeWriter modifiers (#143)
  • Add typed ObjectNode member expectation functions (#144)
  • Add expectShapeId for fully-qualified shape ID (#147)
  • Add helper to EnumTrait to check if it has names (#148)
  • Add Symbol references (#149)
  • Add ReservedWords builder for simpler construction (#150)
  • Allow using path expressions in paginator outputs (#152)
  • Add method to get non-trait shapes (#153)
  • Add method to write class resource to manifest (#157)
  • Allow authType to be specified (#160)

Bug Fixes

  • Fix collection and gradle doc issues (#145)
  • Make AuthorizerDefinition definition private (#146)
  • Fix put handling on ResourceShape (#158)
  • Fix parse error when apply is at eof (#159)
  • Prevent list/set member from targeting container (#162)
  • Allow model assembling from symlink model files / directory (#163)