Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 2.1 Update #839

Merged
merged 108 commits into from
Jun 11, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
f19e4d8
Work-in-progress on Seahorse::Model refactor.
trevorrowe Apr 24, 2015
3010234
Fixed the basic Aws::Json::Parser specs.
trevorrowe Apr 24, 2015
054aca7
Fixed the XML parser specs to use the new shapes.
trevorrowe Apr 24, 2015
1a999b7
DRY'd up the XML and JSON parser specs.
trevorrowe Apr 24, 2015
58e5f32
Converted the JSON builder to the new API shapes.
trevorrowe Apr 27, 2015
c589afa
Added metdata to shapes and shape references.
trevorrowe May 5, 2015
fc61900
Updated the XML builder to use the new seahorse shapes.
trevorrowe May 5, 2015
e9e646f
Removed flattened traits from seahorse shapes.
trevorrowe May 5, 2015
2114d6f
Updated query param builder to use new seahorse shapes.
trevorrowe May 5, 2015
dad73d7
Moved the ParamConverter and ParamValidator from Seahorse in Aws.
trevorrowe May 6, 2015
e98f7e9
Updated the ParamValidator to use the new Seahorse shapes.
trevorrowe May 6, 2015
31d964e
Updated the ParamConverter to use the new Seahorse shapes.
trevorrowe May 6, 2015
d2cb37b
Updated the Query handler and ec2 builder for the new shapes.
trevorrowe May 6, 2015
a8df86c
The api builder shape map now applied ALL traits.
trevorrowe May 6, 2015
820c0dc
Updated usage of payload, payload member and response stubbing.
trevorrowe May 7, 2015
9ef3a63
Updated request signer plugin specs.
trevorrowe May 7, 2015
57b7cd4
WIP
trevorrowe May 7, 2015
d6828f8
Fixed the response stubbing.
trevorrowe May 7, 2015
33f26f4
Updated DynamoDB simple attributes to use the new Seahorse shapes.
trevorrowe May 7, 2015
be8f38a
More test updates.
trevorrowe May 7, 2015
b06c0d3
Removed tests for a (re)moved class.
trevorrowe May 7, 2015
6fb71da
Added deprecated shape ref traits.
trevorrowe May 8, 2015
6233569
Updated seahorse model specs.
trevorrowe May 8, 2015
b2d597d
More test fixes.
trevorrowe May 8, 2015
74cf16e
Significant corrections to the protocol specs.
trevorrowe May 8, 2015
81c54de
Protocol specs are now passing.
trevorrowe May 8, 2015
6188c9c
Re-enabled resource interfaces and removed an errant puts statement.
trevorrowe May 8, 2015
af12417
Resource unit tests now pass.
trevorrowe May 8, 2015
ae5b4ca
More minor test fixes.
trevorrowe May 8, 2015
bef55d9
Model updates.
trevorrowe May 8, 2015
2504911
Removed an unused plugin.
trevorrowe May 8, 2015
14555da
Removed builder gem dependency.
trevorrowe May 8, 2015
d491987
Updated documentation to use the new Seahorse shapes.
trevorrowe May 8, 2015
0b478fe
Removed dependency on MultiJson.
trevorrowe May 8, 2015
b8930d7
Fixed last of the failing integration tests.
trevorrowe May 8, 2015
4fef5be
No longer using annonymous struct clases.
trevorrowe May 8, 2015
65a5718
Better default pretty-print/inspect for responses.
trevorrowe May 8, 2015
ff4a34b
Added a git ignore rule.
trevorrowe May 8, 2015
515e412
Significant API reference documentation update.
trevorrowe May 11, 2015
0f98210
Cleaned up formatting of the operation examples.
trevorrowe May 11, 2015
87e321a
Fixed format for enumeration values in formatting example.
trevorrowe May 11, 2015
69d98d3
Shortened doc class name.
trevorrowe May 11, 2015
ee23b96
Removed an un-used class.
trevorrowe May 12, 2015
9302c46
Resolved a race-condition in the credential classes.
trevorrowe May 12, 2015
6e3e2df
Removed duplicate dynamodb plugins, also in customizations.
trevorrowe May 13, 2015
d19aebe
Refactored and simplified response paging.
trevorrowe May 13, 2015
ad94760
Minor test cleanups.
trevorrowe May 13, 2015
02339bc
Minor test updates for paginators.
trevorrowe May 13, 2015
3cb7152
Added missing file.
trevorrowe May 13, 2015
772fcba
Removed the use of a deprecated method in an integration test.
trevorrowe May 13, 2015
11040b4
Improved the order of method documentation on client classes.
trevorrowe May 14, 2015
9a565b0
Improved client API reference documentation.
trevorrowe May 14, 2015
61a2cb8
Moved the client data type structures into their own namespace.
trevorrowe May 14, 2015
3a1a1ab
Filtering docs from the gem.
trevorrowe May 14, 2015
3894158
Namespace correction in yard plugin.
trevorrowe May 15, 2015
9519eb3
Removed old DynamoDB and EC2 API files.
trevorrowe May 15, 2015
388c597
Added a missing Struct#to_h method for older versions of Ruby.
trevorrowe May 15, 2015
07aa3ca
DRY'd up the empty structure implementation.
trevorrowe May 15, 2015
8db1ec5
Addressed an issue serializing structure request params.
trevorrowe May 15, 2015
e34dae5
Removed a flakey test on default behavior.
trevorrowe May 15, 2015
0d11724
Merge branch 'master' into version-2.1-refactor
trevorrowe May 16, 2015
1f4b576
Moved documentation utils to Aws::Api::Docs module.
trevorrowe May 16, 2015
f8f8813
Added the first-try at response structure examples.
trevorrowe May 18, 2015
edc3446
Expanded API client examples.
trevorrowe May 20, 2015
ec44a69
Documenting input structure types for input.
trevorrowe May 21, 2015
7e90754
Fixed a bug in the documentaiton of client type enum values.
trevorrowe May 21, 2015
8aad139
Improved resource operaiton option documentaiton.
trevorrowe May 21, 2015
d4db527
Various resource documentation improvements.
trevorrowe May 21, 2015
f517745
Improved resource documentation surrounding response targets.
trevorrowe May 21, 2015
e8b4e77
No longer documenting fixed params for resource operations.
trevorrowe May 21, 2015
e10afd3
Documentation test updates.
trevorrowe May 21, 2015
81413a7
Merge branch 'master' into version-2.1-refactor
trevorrowe May 21, 2015
e16733e
Doc improvements for resource data attributes.
trevorrowe May 21, 2015
5189acc
API documentation now loads examples from disk.
trevorrowe May 21, 2015
bc4ec35
Structure types now reference methods they are returned from.
trevorrowe May 22, 2015
edbaa68
tweaked description of DynamoDB attribute values
trevorrowe May 22, 2015
7164315
Fix for DynamoDB response structures.
trevorrowe May 22, 2015
52fd889
Merge branch 'master' into version-2.1-refactor
trevorrowe May 22, 2015
99f63ef
Verbage update.
trevorrowe May 22, 2015
c6b47c5
Refactor of all protocol plugins.
trevorrowe May 27, 2015
d232425
Merge branch 'master' into version-2.1-refactor
trevorrowe May 27, 2015
b7846e9
Fix a Ruby 1.9 and JRuby issue.
trevorrowe May 27, 2015
995e65f
Added implementations of protocol repsonse stubs.
trevorrowe May 27, 2015
70d97ea
WIP
trevorrowe May 29, 2015
74c7e30
Merge branch 'master' into version-2.1-refactor
trevorrowe May 29, 2015
1a965a4
doc updates
trevorrowe Jun 3, 2015
74880e9
No longer converting Strings to IO objects for BlobShapes.
trevorrowe Jun 3, 2015
86674a8
WIP
trevorrowe Jun 4, 2015
5dff820
Merge branch 'master' into version-2.1-refactor
trevorrowe Jun 5, 2015
b56661c
Updated tests to work with stubbing changes.
trevorrowe Jun 5, 2015
e345005
Minor changes to squelch debug warnings from Ruby.
trevorrowe Jun 5, 2015
2f72c00
You can now stub responses via Aws.config and client constructors.
trevorrowe Jun 5, 2015
8db6b36
DynamoDB simplified attributes now supported via #stub_responses.
trevorrowe Jun 5, 2015
1aa6b93
Fixed v2 signer.
trevorrowe Jun 5, 2015
d6d793c
Structure classes can now be initialized with hashes.
trevorrowe Jun 5, 2015
d367f7d
No longer stubbing paging tokens.
trevorrowe Jun 9, 2015
8907f38
Empty stubs now stub http responses.
trevorrowe Jun 9, 2015
43ab717
Added the ability to generate response stubs.
trevorrowe Jun 9, 2015
ff17365
Test fix for Ruby 1.9.3 and JRuby that don't support Struct#to_h.
trevorrowe Jun 9, 2015
2e5f744
Merge branch 'master' into version-2.1-refactor
trevorrowe Jun 9, 2015
1f5af1b
Removed two un-necessary require statements.
trevorrowe Jun 9, 2015
c743422
Now bundling an optional ca cert.
trevorrowe Jun 10, 2015
79f8170
Added Aws.eager_autoload!
trevorrowe Jun 10, 2015
da06028
Test fixes for JRuby.
trevorrowe Jun 10, 2015
1687045
Made the `#stub_data` method on client public.
trevorrowe Jun 11, 2015
e720e2c
Added changelog entries for 2.1 changes.
trevorrowe Jun 11, 2015
bd899a0
Minor test fixes for Aws::Structure.
trevorrowe Jun 11, 2015
3722c15
Fix for defining structures from shapes with no members.
trevorrowe Jun 11, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
/Gemfile.lock
/vendor
/release-notes.html
/TODO

/developer_guide/output
/developer_guide/tmp
Expand Down
1 change: 1 addition & 0 deletions .simplecov
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ SimpleCov.start do

add_filter '/spec/'
add_filter '/features/'
add_filter '/aws-sdk-core/lib/aws/api/docs'
add_filter '/aws-sdk-resources/lib/aws/resource/documenter'
add_filter '/aws-sdk-resources/lib/aws/resource/source.rb'

Expand Down
156 changes: 152 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,161 @@
Unreleased Changes
------------------

* Issue - Response Stubbing - When enabling response stubbing via
`stub_responses: true` on a client, the default credential chain is longer
used to source credentials. Instead a set of fake stubbed static credentials
are used by default.
* Feature - Fewer gem dependencies - Removed the dependency on the follow
two 3rd party gems:

* `multi_json`
* `builder`

For JSON parsing and dumping, the SDK will attempt to use the `Oj`
gem if available, and will fall back on `JSON` from the Ruby
standard library.

The only remaining gem dependency is `jmespath`.

* Feature - Service Types - Added struct classes for all AWS data types.
Previous versions used anonymous structure classes for response data.

Aws::IAM::Types.constants
#=> [:AccessKey, :AccessKeyLastUsed, :AccessKeyMetadata, ...]

Each of these data type classes are now fully documented in the
[api reference docs](http://docs.aws.amazon.com/sdkforruby/api/index.html).

* Feature - Examples - The API reference documentation can now load client
operation examples from disk. This allows users to contribute examples
to the documentation. It also allows for more targeted examples
than the auto-generated ones previously used.

Examples are stored inside the examples folder at the root of this
repository. https://github.com/aws/aws-sdk-ruby/tree/master/examples

* Feature - Documentation - Significant work has gone into API reference
documentation. The changes made are based on user feedback. Some of
the many changes include:

* More concise syntax examples
* Response structure examples
* Request and response data structures each documented as their own type
* Expanded resource interface documentation on inputs and return values

Expect more documentation improvements.

* Feature - Smaller Gem - Reduced the size of the `aws-sdk-core` gem
by removing the AWS API documentation source files from the gemspec.
This reduces the total size of the gem by half.

* Feature - Stub Data - Added a `#stub_data` method to `Aws::Client` that
makes it trivial to generate response data structures.

s3 = Aws::S3::Client.new

s3.stub_data(:list_buckets)
#=> #<struct Aws::S3::Types::ListBucketsOutput buckets=[], owner=#<struct Aws::S3::Types::Owner display_name="DisplayName", id="ID">>

You can also provide an optional hash of data to apply to the stub.
The data hash will be validated to ensure it is properly formed and
then it is applied. This makes it easy to generated nested response
data.

s3.stub_data(:list_buckets, buckets:[{name:'aws-sdk'}])
#=> #<struct Aws::S3::Types::ListBucketsOutput
buckets=[
#<struct Aws::S3::Types::Bucket name="aws-sdk", creation_date=nil>
],
owner=#<struct Aws::S3::Types::Owner display_name="DisplayName", id="ID">>

* Feature - Shared Response Stubs - You can now provide default stubs to a
client via the constructor and via `Aws.config`. This can be very useful
if you need to stub client responses, but you are not constructing the
client.

Aws.config[:s3] = {
stub_responses: {
list_buckets: { buckets: [{name:'aws-sdk'}]}
}
}

s3 = Aws::S3::Client.new
s3.list_buckets.buckets.map(&:name)
#=> ['aws-sdk']

See [related GitHub issue aws/aws-sdk-core#187](https://github.com/aws/aws-sdk-core-ruby/issues/187)

* Issue - Response Stubbing - When using response stubbing, pagination
tokens will no longer be generated. This prevents stubbed responses
from appearing pageable when they are not.

See [related GitHub issue #804](https://github.com/aws/aws-sdk-ruby/pull/804)

* Issue - Aws::DynamoDB::Client - Resolved an issue where it was not
possible to stub attribute values. You can now stub DynamoDB responses
as expected:

ddb = Aws::DynamoDB::Client.new(stub_responses:true)
ddb.stub_responses(:get_item, item: { 'id' => 'value', 'color' => 'red' })
ddb.get_item(table_name:'table', key:{'id' => 'value'})
#=> #<struct Aws::DynamoDB::Types::GetItemOutput item={"id"=>"value", "color"=>"red"}, consumed_capacity=nil>

See [related GitHub issue #770](https://github.com/aws/aws-sdk-ruby/pull/770)

* Feature - SSL Peer Verification - Added a method to configure a default
SSL CA certificate bundle to be used when verifying SSL peer certificates.
V1 did this by default, v2 is now opt-in only.

Aws.use_bundled_cert!

This method can be very useful for Ruby users on Windows where OpenSSL
does not tend to have access to a valid SSL cert bundle.

See [related GitHub issue aws/aws-sdk-core#166](https://github.com/aws/aws-sdk-core-ruby/issues/166)

* Feature - Eager auto-loading - Added a utility method that eagerly loads
classes and modules. This can help avoid thread-safety issues with
autoload affecting some versions Ruby.

# autoload specific services (faster)
Aws.eager_autoload!(services: %w(S3 EC2))

# autoload everything
Aws.eager_autoload!

See [related GitHub issue #833](https://github.com/aws/aws-sdk-ruby/pull/833)

* Issue - Response Stubbing - Clients with `stub_responses: true` were still
attempting to load credentials from ENV, and the EC2 instance metadata
service. Instead, stubbed clients will now construct fake static credentials.

See [related GitHub issue #835](https://github.com/aws/aws-sdk-ruby/pull/835)

* Upgrading - Pageable Responses - Due to frequent confusion caused by
having every response be decorated as pageable, only operations that can
possibly have multiple responses are now decorated.

This ensures that if you call `#each` on a non-pageable response that
an appropriate `NoMethodError` is raised instead of doing nothing. Simply
remove calls to `#each` if you encounter this unlikely situation.

s3 = Aws::S3::Client.new
s3.head_object(bucket:'name', key:'key').each do |page|
end
#=> raises NoMethodError for #each, HEAD object is not pageable

This is correctly reflected now in the API reference documentation as
well.

* Upgrading - Seahorse::Model - The internal representation of AWS API models
has been updated. Users digging into internals of the API model will need
to update their code to deal with shape references.

**This change should not affect users of the public SDK interfaces**.

Complex shapes, structures, lists, and maps, now use shape references
to nest other shapes. The entire API model now loaded when the service client
is defined. This eliminates the need to maintain a complex map of all
shapes and define them lazily. This has allows for massive simplifications
around API loading, especially when dealing with thread-safety concerns.

2.0.48 (2015-06-04)
------------------

Expand Down
9 changes: 3 additions & 6 deletions aws-sdk-core/apis/cloudhsm/2014-05-30/api-2.json
Original file line number Diff line number Diff line change
Expand Up @@ -540,8 +540,7 @@
"shape":"IpAddress",
"locationName":"SyslogIp"
}
},
"locationName":"CreateHsmRequest"
}
},
"CreateHsmResponse":{
"type":"structure",
Expand Down Expand Up @@ -585,8 +584,7 @@
"shape":"HsmArn",
"locationName":"HsmArn"
}
},
"locationName":"DeleteHsmRequest"
}
},
"DeleteHsmResponse":{
"type":"structure",
Expand Down Expand Up @@ -854,8 +852,7 @@
"shape":"IpAddress",
"locationName":"SyslogIp"
}
},
"locationName":"ModifyHsmRequest"
}
},
"ModifyHsmResponse":{
"type":"structure",
Expand Down
Loading