Sun Sep 27 10:38:58 2026 Rob Lauer <rclauer@gmail.com>
[2.8.1]:
* release-notes: updated
* release-notes/release-notes-2.8.1.md: new
* .includes/bootstrap.mk: added by CPAN::Maker::Bootstrapper
* .includes/local.mk: updated by CPAN::Maker::Bootstrapper
* .includes/perl.mk: likewise
* .includes/update.mk: likewise
* .gitignore: likewise
* Makefile: likewise
* VERSION: bump
* lib/Amazon/API.pm.in
- remove build badge
- pod updates
* lib/Amazon/API/SignatureV4.pm.in
- pod updates
* lib/Amazon/API/Role/Botocore.pm.in: likewise
* lib/Amazon/API/BuildInfo.pm.in: likewise
* lib/Amazon/API/Provenance.pm.in: likewise
* project.mk
- add dockerhub.mk
* verify.sh: chmod +x
* Dockerfile.dockerhub: new
* NOTICE: new
* dockerhub.mk: new
* extra-files.skip: new
Sun Sep 27 10:29:58 2026 Rob Lauer <rclauer@gmail.com>
[2.8.0]:
* .gitignore: modified
* ROADMAP: new
* VERSION: bump
* release-notes: updated
* release-notes/release-notes-2.8.0.md: new
* .gitignore: + partitions.json
* botocore.mk
(partitions.json): new
* buildspec.yml: +partitions.json
* corpus-test/lib/ProtocolTest.pm
- add _service_hook_before_parameter_build stub
* requires: Amazon::Signature4::Lite 1.0.5 with disable_double_encoding support
* cpanfile: likewise
* deps.mk: generated
* lib/Amazon/API.pm.in
- +botocore_client_context_params, client_context_params, compiled_endpoint_context
- +endpoint_rule_set, resolved_endopoint
- +use_fips, use_force_path_style, use_dualstack, use_global_endpoints
(new): _validate_client_context_params
(_service_hook_before_parameter_build): new
(init_botocore_request)
- use _resolve_request_endpoint to get service URL
- call service hook before building parameters
- more robust handling of uri encoding
(submit)
- use auth scheme from metadata now for signing
(_get_auth_scheme): new
(_validate_client_context_params): new
(_create_service_url_from_rule_set): new
(_resolve_request_endpoint): new
(_create_service_url)
- use _create_service_url_from_rule_set if we have a rule set
(_get_endpoint_context_parameters): new
* lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(_serialize_list)
- avoid warning, test list element first
(serialize)
- fix unwrapping of root element when no matching locationName (S3)
* lib/Amazon/API/Provenance/Role/Records.pm.in
- add endpoint-rule-set-1.json to signed record
* lib/Amazon/API/Role/Botocore.pm.in
(get_service_descriptions)
- add endpoint_rule_set to metadata
- add client_context_params to metadata
- add endpoint_rule_set_1_digest to metadata
(fetch_endpoint_rule_set): new
(create_stub)
- pass compiled endpoint_context
- pass client_context_params
- pass endpoint_rule_set
- pass endpoint_rule_set_1_digest
(fetch_boto_services)
- fetch endpoint_rule_set_file and calculate digest if exists
* lib/Amazon/API/Signature4.pm.in
- pass disable_double_encoding flag
* project.mk
(LOCAL_DEPS): +botocore-version.json, partitions.json
* requires.cpan-dist
+ Amazon::API 2.8.0, Role::Tiny::With
* share/stub.pm.tmpl
- compose in Amazon::API::ServiceHook or service::ServiceHook
(new)
- add botocore_client_context_params
- add compiled_endpoint_context
- add endpoint_rule_set
* test-requires: +CLI::Simple::Utils, +Role::Tiny::With
* test-requires.skip
- +Amazon::API:*
* lib/Amazon/API/EndpointContext/Compiler.pm.in: new
* lib/Amazon/API/EndpointResolver.pm.in: new
* lib/Amazon/API/S3/ServiceHook.pm.in: new
* lib/Amazon/API/ServiceHook.pm.in: new
[2.8.0]: tests
* t/04-rest-xml-payload.t: modified
* t/05-rest-xml-nonpayload.t: modified
* t/06-signature4-adapter.t: modified
* t/08-rest-xml-header.t: modified
* t/13-endpoint-resolver.t: new
* t/14-endpoint-resolver.t: new
* t/15-endpoint-resolver.t: new
* t/16-endpoint-resolver.t: new
* t/17-endpoint-resolver.t: new
* t/18-endpoint-resolver.t: new
* t/19-endpoint-resolver.t: new
* t/20-endpoint-compiler.t: new
* t/21-endpoint-resolver.t: new
* t/22-endpoint-resolver.t: new
* t/23-uri-greedy-encoding.t: new
* t/24-force-path-style.t: new
* t/25-kinesis-url.t: new
Thu Sep 3 12:21:15 2026 Rob Lauer <rclauer@gmail.com>
[2.7.3]:
* VERSION: bump
* release-notes: updated
* release-notes/release-notes-2.7.3.md: new
* buildspec.yml: +requires.cpan-dist
* lib/Amazon/API.pm.in
- note in pod regarding use of DEBUG environment variable
- pod updates to explain logging
(new)
- enabling debug logging using DEBUG environment variable has been disabled
- removed debug option
- set default log level => info
- no need to set log level again
(set_log_level)
- refactored, simplified
- lc log level for consistency
(_set_defaults): set log level from options
(get_valid_token)
- remove potentially sensitive data from logs
(decode_response)
- log at trace level instead of debug
(init_botocore_request): likewise
(invoke_api): likewise
(submit): likewise
(_set_request_content): likewise
(submit): likewise
(_set_request_content): likewise
(_sanitize): new
(_to_xml): whitespace
(_unpack_args): remove logging
* lib/Amazon/API/Botocore/Shape.pm.in
(finalize)
- log at trace level instead of debug
(finalize_structure): likewise
* lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(_serialize_structure)
- log at trace level instead of debug
(_serialize_list): likewise
(serialize): likewise
* test-requires: +HTTP::Response
* cpanfile: likewise
* t/12-logging.t: new
* requires.cpan
- +Amazon::API@2.7.3, +Amazon::API::Botocore::Shape::Utils, -JSON, +File::ShareDir
* botocore.mk
(workdir/requires): moved to project.mk
* project.mk
(workdir/requires): added from above
(requires.cpan-dist): new recipe
Wed Sep 2 10:23:25 2026 Rob Lauer <rclauer@gmail.com>
[2.7.2]:
* VERSION: bump
* release-notes: updated
* release-notes/release-notes-2.7.2.md: new
* .gitignore: **/*.pl, **/*.pm
* Makefile: update by CPAN::Maker::Bootstrapper
* builder: likewise
* deps.mk: whitespace
* lib/Amazon/API.pm.in
- pod update
* lib/Amazon/API/Role/Botocore.pm.in
(create_stub)
- add botocore_version, botocore_commit
* share/stub.pm.tmpl: likewise
Thu Aug 27 04:46:20 2026 Rob Lauer <rclauer@gmail.com>
[2.7.1]:
* VERSION: bump
* LICENSE.botocore: new
* NOTICE.botocore: new
* NOTICE.in: new
* .gitignore: +NOTICE
* ChangeLog: modified
* buildspec-api.yml.in
- +NOTICE, NOTICE.botocore, LICENSE.botocore
* buildspec.yml: likewise
* project.mk
- add build targets for NOTICE, botocore notice/license
(LOCAL_DEPS)
- new
- moved local dependencies from DEPS
- +NOTICE, NOTICE.botocore, LICENSE.botocore
(DEPS)
- +LOCAL_DEPS
(NOTICE)
- new
- build from NOTICE.in
Wed Aug 26 15:53:14 2026 Rob Lauer <rclauer@gmail.com>
[2.7.0]:
* VERSION: bump
* release-notes: updated
* release-notes/release-notes-2.7.0.md: new
* lib/Amazon/API/Paginator.pm.in: new
* lib/Amazon/API/Paginator/Compiler.pm.in: new
* t/paginator-compiler.t: new
* t/paginator.t: new
* deps.mk: generated by CPAN::Maker::Bootstrapper
* lib/Amazon/API.pm.in
- +use_legacy_paginator, compiled_paginators
(invoke_api)
- implement new paginator while suppporting legacy paginator
- guard against infinite loop on same token
(_init_paginator)
- support new and legacy paginators
- get paginator from pagination object
- croak if trying to use legacy paginator for unsupported services
(set_defaults): use_legacy_paginator => $FALSE
* lib/Amazon/API/Role/Botocore.pm.in
(create_stub)
- add compiled_paginators to metadata object
* share/stub.pm.tmpl
- favor .api.gz
- add compiled_paginators
* test-requires.skip
- +Amazon::API::Paginator, Amazon::API::Paginator::Compiler
Wed Aug 26 10:10:53 2026 Rob Lauer <rclauer@gmail.com>
[2.6.2]:
* VERSION: bump
* release-notes: updated
* release-notes/release-notes-2.6.2.md: new
* .gitignore: don't ignore all .pm, .pl everywhere
* corpus-test/t/input-ec2.t: renamed from ec2.t
* corpus-test/t/input-json.t: renamed from json.t
* corpus-test/t/input-query.t: rename from query.t
* corpus-test/t/input-rest-json.t: renamed from rest-json.t
* corpus-test/t/input-rest-xml.t: renamed from rest-xml.t
* corpus-test/t/input-test.pl: new
* corpus-test/t/input-query.pl: new
* corpus-test/t/input-rest-xml.pl: new
* corpus-test/t/output-test.pl: new
* corpus-test/lib/ProtocolTest.pm: new
* corpus-test/t/input-ec2.pl: new
* lib/Amazon/API.pm.in
(decode_response)
- Honor top-level output payload shapes before content-based response decoding.
Tue Aug 25 05:03:42 2026 Rob Lauer <rclauer@gmail.com>
[2.6.1]:
* VERSION: bump
* release-notes: updated
* release-notes/release-notes-2.6.1.md: new
* corpus-test.mk: new
* project.mk: include above
* corpus-test/t/input-ec2.t: new
* corpus-test/t/error-ec2.t: new
* corpus-test/t/error-json.t: new
* corpus-test/t/error-query.t: new
* corpus-test/t/error-rest-json.t: new
* corpus-test/t/error-rest-xml.t: new
* corpus-test/t/json.t: new
* corpus-test/t/output-ec2.t: new
* corpus-test/t/output-json.t: new
* corpus-test/t/output-query.t: new
* corpus-test/t/output-rest-json.t: new
* corpus-test/t/output-rest-xml.t: new
* corpus-test/t/query.t: new
* corpus-test/t/rest-json.t: new
* corpus-test/t/rest-xml.t: new
* requires
- +Data::UUID, +URI::Escape
- -XML::Simple, +XML::SAX, +XML::NamespaceSupport (embedded XML::Simple in Amazon::API::XML::Simple)
* cpanfile: likewise
* suggests: +XML::Parser (Amazon::API::XML::Simple)
* deps.mk: generated
* lib/Amazon/API.pm.in
- import parse_timestamp
(choose): refactored to return list or scalar result
(decode_response)
- multiple fixes for Botocore corpus test alignment
- use Amazon::API::XML::Simple to patch whitespace issue
(is_param_type)
- refactored
- return $parma when no location value at locationName
(init_botocore_request)
- return [] when no input object for query, ec2
- return undef when protocol is 'rest-json'
- return {} for all others
- setup header parameters correctly
(_resolve_request_content)
- multiple protocol specific fixes
(serialize_content): likewise
(create_urlencode_content)
- split fix
- use uri_escape_utf8 instead of url_encode
(_to_xml)
- fixes for proper attribute handling
* lib/Amazon/API/Botocore/Shape.pm.in
+ documernt, xmlNamespace attributes
(init_structure)
- add idempotencyToken if needed
(_init_value)
- set raw value if document
- handle 'float' type
(get_shape_type)
- return SCALAR for document type
(finalize)
- hadndle Nan -Infinity Infinity
- fix booleans
(finalize_map)
- multiple protocol specific fixes
(finalize_list): likewise
(finalize_structure): likewise
* lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(_serialize_structure)
- multiple protocol specific fixes
(_serialize_list): likewise
(serlialize)
- accept two new parameter: payload, flattened
- multiple protocol specific fixes
- handle floats
- return $EMPTY when blob exists but is not defined
- return raw data when from payload when streaming
* lib/Amazon/API/Botocore/Shape/Utils.pm.in
(parse_timestamp): new
(query_param_n)
- boolean fix
* lib/Amazon/API/Error.pm.in
- use Amazon::API::XML::Simple for consistency
* t/01-urlencode.t
- add test for UTF8 strings
* t/07-query_param_n.t
- add test for present-but-empty
* test-requires: +JSON::PP
* lib/Amazon/API/XML/Simple.pm.in: new
Thu Aug 20 14:07:09 2026 Rob Lauer <rclauer@gmail.com>
[2.6.0]:
* release-notes: updated
* release-notes/release-notes-2.6.0.md: new
* VERSION: bump
* .cpan-makerrc: new
* .includes/local.mk: updated by CPAN::Maker::Bootstrapper
* Makefile: likewise
* bin/amzn-api.in: refactored as standard modulino
* buildspec-api.yml.in
- service file name .gz
- updated repo from perl-Amazon-API => Amazon-API
* buildspec.yml
+ botocore.mk, module-names.json, botocore-version.json, share/stub.pm.tmpl
* lib/Amazon/API.pm.in
- +$GIT_SHA, +$GIT_DIRTY
- add api_protocol accessor
- remove Module::Load dependency
- removed paginator docs (removed from Amazon::API::Botocore)
- removed $SERVICE_CONTENT_TYPES, %API_TYPES
- pod updates and fixes
(find_content_type)
- update api_protocol, not protocol
(serialize_content)
- trust api_protocol
(_set_content_type)
- just get_content_type now, no longer need %API_TYPES
(_create_service_url): trust botocore metadata
(get_api_service): refactored
* lib/Amazon/API/Botocore/Shape/Serializer.pm.in: remove Module::Load dependency
* lib/Amazon/API/Botocore/Shape/Utils.pm.in
- likewise
(create_shape): deleted
(snake_case): deleted
(create_module_name)
- refactored to correctly use Amazon::API::Role::Botocore::module_name
* lib/Amazon/API/BuildInfo.pm.in
- added pod
(version): new
* lib/Amazon/API/Constants.pm.in
(%SERVICE_CONTENT_TYPES): moved from Amazon::API
* lib/Amazon/API/Provenance.pm.in
- use Amazon::API::Role::Botocore
- _module_name => module_name
* lib/Amazon/API/Role/ModuleNames.pm.in
- refactored as role
- use Amazon::API::Role::Botocore
(cmd_create_module_names); extract update code
(_update_module_names): refactored from cmd_create_module_names
* lib/Amazon/API/Role/Services.pm.in
- refactored as role
- moved _check_path into Amazon::API::Role::Botocore
* lib/Amazon/API/Template.pm.in
(fetch_template): refactored
* project.mk
- extracted botocore related recipes to botocore.mk
- guard against git config failure
* requires: -Term::Readkey, +JSON::XS, -Pod::Find
* suggests: -IO::Pager, -Perl::Tidy
* cpanfile: likewise, +JSON::XS, -Pod::Find
* deps.mk: generated by CPAN::Maker::Bootstrapper
* lib/Amazon/API/Role/ModuleNames.pm.in
- renamed and refactored into role
* lib/Amazon/API/Role/Services.pm.in: likewise
* module-names-master.json
- renamed from module-names.json, module-names.json is now the potentially updated version
* botocore.mk
- extracted from project.mk
- replaced $(CREATE_MODULE_NAMES), $(BUILD_BOTO_SERVICES) with $(AMAZON_API)
* lib/Amazon/API/CLI.pm.in: new
* lib/Amazon/API/Role/Botocore.pm.in
- refactored from Amazon::API::Botocore
- pod generation removed, move to Amazon::API::Help project
(_module_name)
- renamed module_name()
- refactored
(_botocore_metadata): new
* module-names.json: new
* share/stub.pm.tmpl: new
* lib/Amazon/API/Botocore.pm.in
- refactored into Amazon::API::Role::Botocore
* bin/amazon-api.in: deleted
* bin/build-boto-services.pl.in: deleted, refactored into Amazon::API::CLI
* lib/Amazon/API/Pod/Parser.pm.in: removed
* lib/Amazon/API/Pod/Simple/TeParser.pm.in: removed
* build-requires: + CPAN::Maker::Bootstrapper@2.3.0
Thu Aug 13 17:27:57 2026 Rob Lauer <rclauer@gmail.com>
[2.5.1]:
* release-notes: updated
* release-notes/release-notes-2.5.1.md: new
* VERSION: bump
* Amazon-API.pem: new
* buildspec.yml: add above to distribution
* lib/Amazon/API/Provenance/Role/Records.pm.in: new
* .gitignore: +bin/amz-api
* deps.mk: +lib/Amazon/API/Provenance/Role/Records.pm.in
* lib/Amazon/API/Botocore.pm.in
(render_stub)
- croak if we can't find the botocore-version.json file
(create_stub): accept a logger
* lib/Amazon/API/Provenance.pm.in
- use the new Amazon::API::Provenance::Role::Records role
(cmd_create_provenance)
- call _create_provenance_records (moved the code out of here)
(_verify_provenance): moved to Amazon::API::Provenance::Role::Records
(_write_provenance_records): likewise
(_sign_provenance_records): likewise
(_create_tarball_digest): likewise
Tue Aug 11 11:52:31 2026 Rob Lauer <rclauer@gmail.com>
[2.5.0]:
* release-notes: updated
* release-notes/release-notes-2.5.0.md: new
* VERSION: bump
* .gitignore
- + botocore-vresion, json, bin/amzn-api-provenance, provenance*, local/**
* .includes/local.mk: added by CPAN::Maker::Bootstrapper
* .includes/git.mk: updated by CPAN::Maker::Bootstrapper
* .includes/perl.mk: likewise
* .includes/update.mk: likewise
* requires: likewise
* cpanfile: likewise
* deps.mk: likewise
* Makefile: likewise
* bin/amazon-api.in: refactored by make modulino
* lib/Amazon/API.pm.in
(decode_response)
- guard agains non-blessed response objects
* lib/Amazon/API/Botocore.pm.in
(render_stub)
- add botocore_version, botocore_commit from botocore-version.json for rendered stub
- add git_sha to rendered stub
- add service_2_digest, paginators_1_digest to rendered stop
(get_service_descriptions)
- calculate digests for service-2.json, paginators-1.json
(fetch_boto_services)
- add service-2.json digest to %BOTO_SERVICES
- add paginators-1.json digest to %BOTO_SERVICES
(create_stub)
- store services.api in deterministic order ($Storable::canonical = 1)
- store service-2.json digest
- stgore paginators-1.json digest
(module_name): refactord to use _module_name
(_module_name): new
(DATA)
- remove timestamps
- add new template vars (git_sha, paginator_1_digest, service_2_digest
* lib/Amazon/API/Botocore/Shape.pm.in
(_init_value)
- return if !defined to avoid return when value is falsy
* lib/Amazon/API/Botocore/Shape/Utils.pm.in
(create_shape)
- add git_hash
- remove timestamp add git_hash
* lib/Amazon/API/ModuleNames.pm.in
(cmd_create_module_names)
- canonical ordering of module_names.json to avoid fake diffs
* project.mk
- updated recipes to avoid rebuilding unnecessarily
- cleanup provenance files
* t/04-rest-xml-payload.t: fix package declaration
* t/05-rest-xml-nonpayload.t: likewise
* t/08-rest-xml-header.t: likewise
* t/09-blob-and-statuscode.t: likewise
* bin/amzn-api-provenance.in: new
* lib/Amazon/API/BuildInfo.pm.in: new
* lib/Amazon/API/Provenance.pm.in: new
* lib/Amazon/API/Provenance/Role/KMS.pm.in: new
* lib/Amazon/API/Provenance/Role/SSM.pm.in: new
* requires.skip: new
Sat Aug 1 13:57:18 2026 Rob Lauer <rclauer@gmail.com>
[2.4.6]:
* release-notes: updated
* release-notes/release-notes-2.4.6.md: new
* VERSION: bump
* .gitignore: updated by CPAN::Maker::Bootstrapper
* .includes/git.mk: likewise
* .includes/perl.mk: likewise
* .includes/release-notes.mk: likewise
* .includes/update.mk: likewise
* .includes/modulino.mk: likewise
* Makefile: likewise
* builder: likewise
* cpanfile: likewise
* recommends: likewise
* requires: likewise
* deps.mk: likewise
* .includes/bash-completion.mk: new
* lib/Amazon/API.pm.in
- POD updates explaining validation
- added botocore_request_headers accessors to support header loading/unloading
- VALIDATE_MODE support for controlling parameter validation level
(decode_response)
- XML::Simple => requires
- unload header parameters
(init_botocore_request)
- load header parameters
(_resolve_request_content): new
(serialize_content): provide empty body for json requests
(submit)
- apply header-located request members
(generate_xml)
- guard against multiple root elements
* lib/Amazon/API/Botocore/Shape.pm.in
- add accessors for streaming, timestampFormat
(_init_list)
- run checks through _check()
(_init_string): likewise
(_init_integer): likewise
(_init_value): resolve timestamp values
(finalize)
- handle blobs more fully
(_format_timestamp): new
(finalize_structure)
- fnalize timestamps based on timestampFormat
* lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize): handle blobs more fully
* lib/Amazon/API/Botocore/Shape/Utils.pm.in
(check_enum): new
(_check): new
(check_pattern): run through _check()
* lib/Amazon/API/Error.pm.in
- remove use of Module:Loa
(_set_message): require XML::Simple
* lib/Amazon/API/HTTP/Response.pm.in
(headers): return lc version of headers always
* project.mk
(install): new
* deps.mk: new
* suggests: new
* t/05-rest-xml-nonpayload.t: new
* t/06-content-resolution.t: new
* t/07-get-empty-body.t: new
* t/08-rest-xml-header.t: new
* t/09-blob-and-statuscode.t: new
* t/10-timestamp.t: new
* t/11-value-validation.t: new
Thu Jul 16 14:11:00 2026 Rob Lauer <rclauer@gmail.com>
[2.4.5]:
* release-notes: updated
* release-notes/release-notes-2.4.5.md: new
* VERSION: bump
* .gitignore: +bin/amzn-api-module-names, botocore-metadata.api
* Makefile: updated by CPAN::Maker::Bootstrapper
* buildspec.yml: +botocore-metadata.api
* lib/Amazon/API/Botocore.pm.in
(find_latest_services): add file to %BOTO_SERVICES
(render_stub): create path if it does not exist
(fetch_boto_services): add metadata to %BOTO_SERVICES
(module_name): new
* lib/Amazon/API/Template.pm.in: remove comment
* project.mk
(botocore-metadata.api): new
($CREATE_MODULE_NAMES): new
(service.api): use amazon-api module-name utility to get module_name
* bin/amzn-api-module-names.in: new
* lib/Amazon/API/ModuleNames.pm.in: new
* module_names.json: new
Mon Jul 6 13:45:53 2026 Rob Lauer <rclauer@gmail.com>
[2.4.4]:
* ChangeLog: modified
* release-notes: updated
* release-notes/release-notes-2.4.4.md: new
* README.md: modified
* cpanfile: modified
* lib/Amazon/API/Botocore/Shape/Utils.pm.in
(param_n): don't drop keys that are defined but ''
(query_param_n): likewise
* project.mk
(cpan) => cpan-dist, refactored
* requires: -Pod::Markdown
* test-requires.skip: +Amazon::API::Boto::Shape::Utils
* t/07-query_param_n.t: new
* .gitignore: workdir/
Sat Jul 4 13:19:38 2026 Rob Lauer <rclauer@gmail.com>
[2.4.3]:
* release-notes: updated
* release-notes/release-notes-2.4.3.md: new
* .includes/release-notes.mk: updated by CPAN::Maker::Bootstrapper
* builder: likewise
* README.md.in: need CPAN::Maker 2.0.1
* VERSION: bump
* build-requires: CPAN::Maker 2.0.1, CPAN::Maker::Bootstraper 2.0.4
* cpanfile: sorted
* lib/Amazon/API.pm.in
- fix pod
* project.mk: modified
(cpan-dist)
- fix dependencies
- no $SCANDEPS option anymore
- cp tarball to cwd
(llm-release-notes): CPAN::Maker::Bootstrapper now handles this
Thu Jul 2 05:25:56 2026 Rob Lauer <rclauer@gmail.com>
[2.4.2]:
* release-notes: updated
* release-notes/release-notes-2.4.2.md
* README.md: generated
* VERSION: bump
* lib/Amazon/API.pm.in
(paginator)
- use require instead of load (so scandeps-static.pl finds it)
(decode_response): likewise
(generate_xml): likewise
(_set_default_logger): likewise
* lib/Amazon/API/Botocore/Pod.pm.in
(require_class): use load instead of require (to avoid perlcritic finding)
* project.mk
(llm-release-notes): new
* requires
- -Carp::Always, -URI, -Pod::Parse, -Pod::Text, -Pod::Simple,
- -HTTP::Headers, -Date::Format
* cpanfile: likewise
* test-requires: modified
* test-requires.skip: new
* build-requires
- +CPAN::Maker::Bootstrapper, Markdown::Render
* builder: update by CPAN::Maker::Bootstrapper
* Makefile: likewise
* .includes/perl.mk: likewise
* test-requires: -Test::More
Tue Jun 30 08:10:24 2026 Rob Lauer <rclauer@gmail.com>
[2.4.1]: fix CI build
* VERSION: bump
* release-notes: updated
* release-notes/release-notes-2.4.1.md
* .gitignore: remove bin directory
* bin/build-boto-services.in: new
* builder: new
* project.mk: BOTOCORE_PATH, not BOTO_CORE_PATH
* .github/workflows/build.yml: builder not build-github
Tue Jun 30 04:50:27 2026 Rob Lauer <rclauer@gmail.com>
[2.4.0]:
* VERSION: bump
* release-notes: modified
* release-notes/release-notes-2.4.0.md
* buildspec.yml
- new project name
- services.api is in root now
* .gitignore
- added CPAN::Maker::Bootstrapper ignore artifacts
- removed autoconf ignore artifacts
* README.md: generated
[moved & modified]:
* .includes/release-notes.mk: moved & modified
* .includes/version.mk: moved & modified
[new from CPAN::Maker::Bootstrapper]:
* .includes/git.mk: new
* .includes/help.mk: new
* .includes/perl.mk: new
* .includes/update.mk: new
* .includes/upgrade.mk: new
* Makefile: new
* project.mk: new
* t/00-amazon-api.t: new
* docker/docker-compose.yml: new
[moved]:
* .includes/version.mk: renamed
* .includes/release-notes.mk: renamed
* test-requires: renamed
* bin/amazon-api.in: renamed
* lib/Amazon/API.pm.in: renamed
* lib/Amazon/API/Botocore.pm.in: renamed
* lib/Amazon/API/Botocore/Pod.pm.in: renamed
* lib/Amazon/API/Botocore/Services.pm.in: renamed
* lib/Amazon/API/Botocore/Shape.pm.in: renamed
* lib/Amazon/API/Botocore/Shape/Serializer.pm.in: renamed
* lib/Amazon/API/Botocore/Shape/Utils.pm.in: renamed
* lib/Amazon/API/Constants.pm.in: renamed
* lib/Amazon/API/Error.pm.in: renamed
* lib/Amazon/API/HTTP/Response.pm.in: renamed
* lib/Amazon/API/HTTP/UserAgent.pm.in: renamed
* lib/Amazon/API/NullLogger.pm.in: renamed
* lib/Amazon/API/Pod/Parser.pm.in: renamed
* lib/Amazon/API/Pod/Simple/Text.pm.in: renamed
* lib/Amazon/API/Signature4.pm.in: renamed
* lib/Amazon/API/Template.pm.in: renamed
* buildspec-api.yml.in: renamed
* recommends: renamed from cpan/
* requirements.json: deleted
* requires: renamed from cpan/
* requires.cpan-dist: renamed from cpan-dist/
* t/00-botocore-template-var.t: renamed
* t/00-load.t: renamed from src/main/perl/t
* t/01-urlencode.t: renamed from src/main/perl/t
* t/02-parse-service-url.t: renamed from src/main/perl/t
* t/03-query-map-shape.t: renamed from src/main/perl/t
* t/04-rest-xml-payload.t: renamed from src/main/perl/t
* t/06-signature4-adapter.t: renamed from src/main/perl/t
* t/amazon-api.t: renamed from src/main/perl/t
* bin/build-boto-services.pl.in: renamed from src/main/perl/bin
[deleted]:
* Makefile.am: deleted
* Makefile.requirements: deleted
* autotools/ads_PERL_INCLUDES.m4: deleted
* autotools/ads_PERL_LIBDIR.m4: deleted
* autotools/ads_PERL_MODULE.m4: deleted
* autotools/ads_PROG_PERL.m4: deleted
* autotools/am_rpm_build_mode.m4: deleted
* autotools/ax_am_conditional_example.m4: deleted
* autotools/ax_deps_check.m4: deleted
* autotools/ax_distcheck_hack.m4: deleted
* autotools/ax_requirements_check.m4: deleted
* autotools/ax_rpmbuild_check.m4: deleted
* bootstrap: deleted
* configure.ac: deleted
* cpan-dist/README.md: deleted
* cpan/Makefile.am: deleted
* cpan/README.md: deleted
* cpan/buildspec.yml: deleted
* docker-rpm/Dockerfile: deleted
* docker-rpm/Makefile: deleted
* docker-rpm/README.md: deleted
* docker-rpm/package.lst: deleted
* docker-rpm/rpm-build: deleted
* perl-Amazon-API.spec.in: deleted
* src/Makefile.am: deleted
* src/main/Makefile.am: deleted
* src/main/bash/Makefile.am: deleted
* src/main/bash/bin/Makefile.am: deleted
* src/main/perl/Makefile.am: deleted
* src/main/perl/bin/Makefile.am: deleted
* src/main/perl/lib/Makefile.am: deleted
* src/main/perl/lib/README.md: deleted
* src/main/perl/lib/directories.inc: deleted
* src/main/perl/lib/modules.inc: deleted
* src/main/perl/lib/perl-build.inc: deleted
* src/main/perl/t/Makefile.am: deleted
* src/main/bash/bin/create-service.sh.in: deleted
* target-repo: deleted
* cpan-dist/.gitignore: deleted
Mon Jun 29 12:57:00 2026 Rob Lauer <rclauer@gmail.com>
[2.3.5]:
* VERSION: modified
* release-notes.md: updated
* release-notes/release-notes-2.3.5.md: new
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in: modified
(_init_map)
- use pairs to process all of the key/value pairs
* src/main/perl/lib/README.md: generated
* Makefile.am
(clean-local): rm *.diffs, *.lst, *.tar.gz
* cpan/Makefile.am
- remove -s (--scandeps) option
Sun Jun 28 16:19:00 2026 Rob Lauer <rclauer@gmail.com>
[2.3.4]:
* release-notes.md: updated
* release-notes/release-notes-2.3.4.md: new
* README.md: generated
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
(serialize_content)
- get protocol from botocore metadata
* src/main/perl/lib/Amazon/API/Botocore.pm.in
- export create_stub, create_module_name, paginator
* src/main/perl/lib/Amazon/API/Botocore/Services.pm.in
(cmd_list_services): error message when botocore path missing
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
(finalize_map)
- fix bug for non-flattened maps with no k/v location names
* src/main/perl/lib/README.md: modified
Thu Jun 25 06:59:00 2026 Rob Lauer <rclauer@gmail.com>
[2.3.3]:
* VERSION: bump
* release-notes.md: updated
* release-notes/release-notes-2.3.3.md: new
* README.md: generated
* configure.ac
- add CREATE_MODULINO automake variable
* src/main/bash/bin/Makefile.am: likewise
* src/main/perl/lib/README.md: generated
Wed Jun 24 15:36:43 2026 Rob Lauer <rclauer@gmail.com>
[2.3.2]:
* release-notes.md: updated
* release-notes/release-notes-2.3.2.md: new
* .gitignore: +build-boto-services
* build-requires: CLI::Simple 2.0.6
* cpan-dist/Makefile
- use bash, set SHELLFLAGS
- + $NO_ECHO
(api)
- +$NO_ECHO
- set version in stub to boto service version
(service):
- +$NO_ECHO
- refactoring
(script): use JSON
(list-services)
- +$NO_ECHO
- no -M of modules needed
(service-listing-json)
- +$NO_ECHO
- refactored a bit
(module): +$NO_ECHO
(buildspec.yml)
- +$NO_ECHO
- check if we have git or use defaults
(botocore): +$NO_ECHO
* cpan/Makefile.am
- build-boto-services is now a modulino
* cpan/buildspec.yml
- + Amazon::API::Botocore::Services
* cpan/requires: CLI::Simple 2.0.6
* cpanfile: likewise
* docker/Dockerfile
- move clone of perl-Amazon-API into different layer
- aws-api-autobuilder, not autobuild
* src/main/bash/bin/Makefile.am
- use create-modulino.pl to create modulino link
* src/main/perl/bin/Makefile.am
- removed build-boto-services.pl to
* src/main/perl/lib/Amazon/API/Botocore.pm.in
- @PACKAGE_VERSION@ => @SERVICE_VERSION@
* src/main/perl/lib/Amazon/API/Botocore/Services.pm.in
* src/main/perl/lib/Makefile.am
- add above to build
Wed Jun 24 06:18:08 2026 Rob Lauer <rclauer@gmail.com>
[2.3.1]:
* release-notes.md: updated
* release-notes/release-notes-2.3.1.md: new
* .github/workflows/build.yml: renamed runner perl-Amazon-API
* Makefile.am
(cpanfile): new
* README.md: generated
* VERSION: bump
* build-github
- refactored to make it easier to test without pushing to GitHub
* build-requires
- Amazon::Signature4::Lite 1.0.1
- +JSON::XS - much faster for build-boto-services.pl
- +CLI::Simple 2.0.4
- File::ShareDir, File::ShareDir::Install
* cpan/requires: +JSON::XS
* cpanfile: new
* docker/Dockerfile: new
* docker/Dockerfile.create-service: removed, replaced with above
* src/main/perl/bin/build-boto-services.pl.in
- fix typo in pod
- import JSON methods explicitly
* src/main/perl/lib/Amazon/API.pm.in
- likewise
* src/main/perl/lib/README.md: generated
Mon Jun 22 08:48:57 2026 Rob Lauer <rclauer@gmail.com>
[2.3.0]:
* VERSION: bump
* release-notes.md: updated
* release-notes/release-notes-2.3.0.md: new
* README.md: generated
* src/main/perl/lib/t/06-signature4-adapter.t: new
* cpan/requires: remove AWS::Signature4, add Amazon::Signature4::Lite
* src/main/perl/lib/Amazon/API/Signature4.pm.in
- refactored to use Amazon::Signature::Lite
* src/main/perl/lib/README.md: modified
* src/main/perl/lib/t/04-rest-xml-payload.t
- set service to avoid uninitialized warnings
Mon Jun 22 07:53:24 2026 Rob Lauer <rclauer@gmail.com>
[2.2.9]:
* VERSION: bump
* release-notes.md: new
* release-notes/release-notes-2.2.9.md: new
* README.md: generated
* autotools/ax_requirements_check.m4
- remove XML::LibXML as a requirement, add XML::Twig
* cpan/requires: likewise
* src/main/perl/lib/Amazon/API.pm.in
(init_botocore_request)
- croak if a required parameter is undef
(generate_xml): new implementation using XML::Twig
(to_xml): likewise
* src/main/perl/lib/README.md: generated
Sun Jun 21 14:08:07 2026 Rob Lauer <rclauer@gmail.com>
[2.2.8]:
* VERSION: bump
* release-notes.md: new
* release-notes/release-notes-2.2.8.md: new
* README.md: generated
* src/main/perl/lib/Amazon/API.pm.in
(init_botocore_request)
- fix uninitialized error, get payload member from shape object
* src/main/perl/lib/README.md: generated
Sun Jun 21 10:20:50 2026 Rob Lauer <rclauer@gmail.com>
[2.2.7]:
* VERSION: bump
* release-notes.md: new
* release-notes/release-notes-2.2.7.md: new
* README.md: generated
* src/main/perl/lib/Amazon/API.pm.in
(init_botocore_request)
- fix serialization of rest-xml payloads
* src/main/perl/lib/README.md: generated
* src/main/perl/lib/t/04-rest-xml-payload.t: new
Sun Jun 21 04:57:52 2026 Rob Lauer <rclauer@gmail.com>
[2.2.6]:
* VERSION: bump
* release-notes.md: new
* release-notes/release-notes-2.2.6.md: new
* README.md: generated
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
(_init_map)
- fix serialization of list maps
(finalize_map): likewise
* src/main/perl/lib/README.md: generated
* src/main/perl/lib/t/03-query-map-shape.t: new
Fri Jun 19 17:04:33 2026 Rob Lauer <rclauer@gmail.com>
[2.2.5]:
* VERSION: bump
* release-notes.md: new
* release-notes/release-notes-2.2.5.md: new
* cpan-dist/buildspec.yml.in: set min-perl-verison to 5.010
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
(finalize)
- only use JSON::PP:true, JSON::PP:false for JSON protocols
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize): likewise
Tue Jun 16 08:33:04 2026 Rob Lauer <rclauer@gmail.com>
[2.2.4]:
* README.md: generated
* VERSION: bump
* ChangeLog: modified
* release-notes.md: new
* release-notes/release-notes-2.2.4.md: new
* src/main/perl/lib/Amazon/API.pm.in
(create_urlencode_content)
- only top level Version key
* src/main/perl/lib/README.md: modified
Thu Jun 11 13:40:26 2026 Rob Lauer <rclauer@gmail.com>
[2.2.3]:
* release-notes/release-notes-2.2.3.md: new
* README.md: generated
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
(new): add --localstack option
(decode_response)
- pass protocol to serializer
- unwrap rest-xml/json responses
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
(finalize)
- add debug messages
- coerce int, float, double, boolean types
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize)
- only find wrapper if query or ec2 protocol
* src/main/perl/lib/README.md: modified
Thu May 21 16:43:20 2026 Rob Lauer <rclauer@gmail.com>
[2.2.2]:
* release-notes/release-notes-2.2.2.md: new
* README.md: generated
* src/main/perl/lib/README.md: generated
* VERSION: bump
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize): fixed formatting of timesamps with nanoseconds
Thu May 14 14:40:37 2026 Rob Lauer <rclauer@gmail.com>
[2.2.1]:
* release-notes/release-notes-2.2.1.md: new
* release-notes.md: new
* recommended: CPAN::Maker
* VERSION: bump
* README.md: generated
* cpan/recommends: new
* cpan-dist/buildspec.yml.in: '_' => '-'
* cpan/buildspec.yml: likewise, +release-notes.md
* src/main/perl/lib/README.md: likewise
* src/main/perl/lib/Amazon/API.pm.in
(init_botocore_request): ensure {parsed_request_uri}{parameters} is []
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize)
- incorrect load and import of strftime
Wed Apr 8 14:52:15 2026 Rob Lauer <rclauer@gmail.com>
[2.2.0]:
* release-notes-2.2.0.md: new
* README.md: generated
* VERSION: bump
* .gitignore: +src/main/perl/bin/**/*.pl
* Makefile.am
- remove cpan for SUBDIRS to avoid recursive make
* README-BUILD.md: remove section on examples for now
* autotools/ax_requirements_check.m4: add missing required modules
* configure.ac
(AC_CONFIG_FILES): add src/main/perl/bin/Makefile
* cpan-dist/.gitignore: add built artificats
* cpan-dist/Makefile
- major refactor to extract pod, extract botocore services
* cpan-dist/buildspec.yml.in: add @service@.api metatdata file to distribution
* cpan/Makefile.am
- check for updates in the Botocore repo
- builds services.api
* cpan/buildspec.yml: add services.api to distribution
* cpan/requires: +Class::Accessor::Fast, Pod::Extract, update some versions
* src/main/perl/Makefile.am: modified
* src/main/perl/lib/Amazon/API.pm.in
- remove dead code, unused dependencies
- lazy load heavyweight modules
(paginator): new
(new)
- cleanup loglevel initialization
(set_log_level)
- avoid Log4perl if we have no logger
(decode_response): lazy load XML::Simple
(find_content_type): use metadata, set protocol
(generate_xml): lazy load XML::LibXML
(_set_default_logger): lazy load Log::Log4perl
(init_log_level): removed
(_set_defaults): set no_logger true if not debug or trace
* src/main/perl/lib/Amazon/API/Botocore.pm.in
- use nstore to store service metadata
(create_service_shapes)
- write as .pod file
(render_stub)
- no need to stringify parameters anymore
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
- remove Log::Log4perl dependency
(_init_structure)
- default to [] if no required parameters
(new): don't initialize Log::Log4perl it will have already been done
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize): lazy load strftime
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in
(to_template_var): shim to lazy load Amazon::API::Template
(fetch_template): likewise
(render_template): likewise
(html2pod): likewise
(register_service_shapes): load shape definition once
(require_shape): create shape class
(_create_shape_class): fabricate shape class from shape definition
(create_shape): shape no longer a json object inside class
(__DATA__): removed shape class template
* src/main/perl/lib/Amazon/API/Error.pm.in
(_set_message): lazy load XML::Simple
* src/main/perl/lib/README.md: generated
* src/main/perl/bin/Makefile.am: new
* src/main/perl/bin/build-boto-services.pl.in: new
* src/examples/APIExample.pm: deleted
* src/examples/README.md: deleted
* src/examples/cloudwatch-events.pm: deleted
* src/examples/docker-compose.yml: deleted
* src/examples/ec2.pm: deleted
* src/examples/ecr.pm: deleted
* src/examples/rt53.pm: deleted
* src/examples/secrets-manager.pm: deleted
* src/examples/sqs.pm: deleted
* src/examples/ssm.pm: deleted
* src/examples/sts.pm: deleted
Tue Apr 7 07:16:47 2026 Rob Lauer <rclauer@gmail.com>
[2.1.13]:
* README.md: generated
* release-notes-2.1.13.md: new
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
- pod updates
(create_botocore_request)
- localize $LOGGER_SOURCE
(invoke_api)
- major refactoring:
- replaced goto PAGINATOR with while() loop
- moved several functional operations into their own subroutines
(_unpack_args): new
(_check_response): new
(_init_paginator): new
(_set_default_logger): use Amazon::API::NullLogger if no_logger set
(_set_defaults)
- minor refactoring
- unify region setting
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
- + $LOGGER_SOURCE, used to localize logger
(new): set the logger to the NullLogger if no_logger
(_init_structure)
- do not create shapes for bless scalars
(_init_value)
- check actual type by making ref(scalar) = SCALAR
(finalize_structure)
- only finalize if the object can 'finalize' - patch for JSON::PP::true
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize)
- set logger after initialization
- set the localized $LOGGER_SOURCE to sub { $self->get_logger }
* src/main/perl/lib/Amazon/API/HTTP/Response.pm.in
(new): just bless object, no (actual) parent class except UNIVERSAL
* src/main/perl/lib/Amazon/API/NullLogger.pm.in: new
* src/main/perl/lib/Makefile.am: add above to build
* cpan/buildspec.yml: likewise
* src/main/perl/lib/README.md: generated
Thu Apr 2 06:20:26 2026 Rob Lauer <rclauer@gmail.com>
[2.1.12]:
* VERSION: bump
* release-notes-2.1.12.md: new
* src/main/perl/lib/README.md: generated
* src/main/perl/lib/Amazon/API/HTTP/Response.pm.in
- remove use of Class::Accessor::Fast, unneeded
(content_type): make 5.10 compatible
Fri Mar 27 07:37:19 2026 Rob Lauer <rclauer@gmail.com>
[2.1.11]:
* release-notes-2.1.11.md: new
* version.mk: new
* Makefile.am
- include version.mk
* README.md: generated
* VERSION: bump
* autotools/ax_requirements_check.m4
- remove LWP::UserAgent, ReadonlyX
- add IO::Socket::SSLeay, Net::SSLeay, HTTP::Headers, URI, Readonly
* cpan/buildspec.yml
- proivdes: Amazon::API::HTTP:Response, Amazon::API::HTTP::UserAgent
* cpan/requires
- add HTTP::Headers, IO::Socket::SSL, Net::SSLeay, URI
- remove LWP::UserAgent
* src/main/perl/lib/Amazon/API.pm.in
(_set_defaults): swap LWP for Amazon::API::HTTP::UserAgent
* src/main/perl/lib/Amazon/API/HTTP/Response.pm.in: new
* src/main/perl/lib/Amazon/API/HTTP/UserAgent.pm.in: new
* src/main/perl/lib/Makefile.am: add above to build
* src/main/perl/lib/modules.inc: likewise
* src/main/perl/lib/README.md: generated
* src/main/perl/lib/directories.inc: add Amazon/API/HTTP
Fri Mar 27 06:20:24 2026 Rob Lauer <rclauer@gmail.com>
[2.1.10]:
* release-notes-2.1.10.md: new
* Makefile.am: added release-notes.mk
* README.md: generated
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
(new): pass log_level
(decode_response)
- special case for query protocol
(init_botocore_request)
- pass protocol to finalize in case shapes need special cases
- query_param_n for query protocol
(query_param_n): new
(_set_default_logger): removed addivity(0)
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
- add $PROTOCOL package variable to avoid modifying subs to pass down the chain
(_init_map)
- precendenc issue when detecting $elem type
- fix potential bug that incorrectly instantiates shape classes
(finalize)
- accept $protocol and set local copy to scope $PROTOCOL through recursive calls
(finalize_list)
- handle ec2 and query protocols as bare lists
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(_serialize_structure)
- properly detect 'empty' member dat
- return an empty array if list is essentially empty
(serialize)
- properly format timestamps with nanoseconds
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in
- export new query_param_n
(query_param_n): new
(check_pattern): actually accept arguments - check_pattern neber worked properly
(check_type): check type, not just truthiness
(param_n): use undef as first invocation indicator, but 0 for subsequent calls
* src/main/perl/lib/README.md: generated
* release-notes.mk: new
Sun Dec 7 10:52:11 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.9]:
* VERSION: bump
* README.md: generated
* src/main/perl/lib/README.md: likewise
* cpan/buildspec.yml: provides Amazon::API
Mon Nov 17 06:44:40 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.8]:
* VERSION: bump
* README.md: generated
* src/main/perl/lib/README.md: generated
* src/main/perl/lib/Amazon/API.pm.in
- remove Carp::Always
- remove use of :easy mode and convenience loggers
(generate_xml): instance method now, do not export
(new): send logger to serializer
(set_default_logger)
- set Amazon::API::Botocore logging level
(serialize_content): use instance method generate_xml()
(choose): new
(_set_default_logger)
- remove use of easy mode
- configure default appenders
* src/main/perl/lib/Amazon/API/Botocore.pm.in
- remove Carp::Always
- remove use of easy logger
- whitespace
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
(new): set a logger if none passed in
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
- remove use of easy logger
* src/main/perl/lib/Amazon/API/Constants.pm.in
- add $DEFAULT_LOG4PERL_LAYOUT, %LOG4PERL_LOG_LEVELS
Sat Oct 11 16:37:33 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.7]:
* README.md: generated
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
- use Log::Log4perl exclusively, no creation of stealth loggers needed
(set_log_level): just set level using logger
(_create_stealth_logger): removed
(set_default_logger): set easy logger or use callers log4perl logger
* src/main/perl/lib/README.md: generated
Tue Oct 7 04:37:20 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.6]:
* README.md: generated
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
(set_log_level)
- handle case where Log4perl initialized but not passed in
* src/main/perl/lib/README.md: generated
Mon Oct 6 17:06:12 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.5]:
* README.md: generated
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in: pod tweaks
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize)
- check defined not truthiness since value might be "" or 0
* src/main/perl/lib/README.md: generated
Mon Jun 23 06:15:12 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.4]:
* VERSION: bump
* README.md: generated
* cpan/buildspec.yml: cpan/test_requires, cpan/requires
* src/main/perl/lib/Amazon/API.pm.in
(get_valid_token):
- return if no token
- $credentials->can('refresh_token'), not $self
* src/main/perl/lib/Amazon/API/Signature4.pm.in
(parse_service_url)
- set default region when endpoint is not amazon
Tue Feb 25 08:40:57 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.3]:
* VERSION: bump
* cpan/requires: XML::LibXML
* cpan-dist/requires: don't specify a version so we get the latest
* src/examples/APIExample.pm
- version bump
- use JSON, not JSON::PP
(create_api): use log-level
(get_options)
- + default log-level = info
(run): log options if trace level
* src/main/perl/lib/Amazon/API.pm.in
(%API_TYPES): updated from latest botocore repo
* src/main/perl/lib/Amazon/API/Botocore.pm.in: typo
* README.md: generated
* src/main/perl/lib/README.md: likewise
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in
(flatten)
- if an array is to be flattened it is assumed to be an array of hashes?
- error out if the list is not available or not an array
(param_n)
- don't croak on missing value, just return what we already have
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(_serialize_structure)
- clean-up debugging messages
- skip elements that don't exist?
- remove if (1|| test - I guess we don't need it?
- remove if (0) test
- flatten a hash of arrays
(serialize)
- hack to deal with XML serialization isssues (response wrappers)
- if no key_location_name or value_location_name, use return the data
- when serializing items in list use item if no data using key_location_name
- only store value if key and value are defined (probably unnecessary)
- check for blessed ref when boolean
* src/main/perl/lib/Amazon/API.pm.in
- pod tweaks
(%SERVICE_CONTENT_TYPES): NEW
(find_content_type): new
(init_botocore_request)
- refactored a bit to use above
- clean-up some debugging output
(invoke_api)
- output_token can be a compound key (DistributionList.NextMarker)
(decode_response)
- always keep XML root object, deal with it downstream in the serializer
* src/examples/ec2.pm
(_DescribeSecurityGroups): param_n & HASH versions
* src/examples/sqs.pm
- JSON, not JSON::PP
(_ListQueues) : {}
(queue_url)
- croak if no url found
- QueueUrls
(_DeleteQueue)
- use JSON protocol
(_CreateQueue): likewise
(_ReceiveMessage)
- likewise
- receive message attributes too
(_DeleteMessage): new
(_SendMessage): send message attributes too
Wed Feb 12 09:17:23 2025 Rob Lauer <rlauer6@comcast.net>
[2.1.2]:
* NEWS.md: updated
* VERSION: bump
* cpan/requires
- Readonly, not ReadonlyX
- XML::LibXML
* README.md: generated
* src/main/perl/lib/README.md: likewise
* src/main/perl/lib/Amazon/API.pm.in
- cleanup DEBUG/TRACE messages
- add namespace attribute
- minor formatting and refactors
- export generate_xml()
- pod tweaks and additions
(decode_response): return {} if success and undef response
(find_namespace): new
(serialize_content)
- use new XML generator
- delete _attr if it was added and not required for json payloads
(generate_xml): new
(_to_xml): new
(init_botocore_request)
- add namespace to XML requests if necessary
- fix location of payload
(invoke_api)
- only print error if raise error is not set
- fix pagination for compound keys
(print_error)
- Amazon::API::Error now overloads "", no need to format
(dig): new
(bury): new
* src/main/perl/lib/Amazon/API/Error.pm.in
- overload q("")
- better error messages
(overload q("")): new
* src/examples/APIExample.pm: ReadonlyX => Readonly
* src/main/perl/lib/Amazon/API/Botocore.pm.in: likewise
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in: likewise
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in: likewise
* src/main/perl/lib/Amazon/API/Constants.pm.in: likewise
* src/main/perl/lib/Amazon/API/Pod/Parser.pm.in: likewise
* src/main/perl/lib/Amazon/API/Pod/Simple/Text.pm.in: likewise
* src/main/perl/lib/Amazon/API/Template.pm.in: likewise
Thu Dec 5 05:46:10 2024 Rob Lauer <rlauer6@comcast.net>
[2.1.1]:
* VERSION: bump
* NEWS: updated
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in
(create_shape)
- fix pod generation for shapes
- remove duplicate SEE ALSO targets
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(get_service_descriptions)
- trap error when there are no paginators for a service
Thu Nov 28 06:23:59 2024 Rob Lauer <rlauer6@comcast.net>
[2.1.0]:
* VERSION: bump
* NEWS: updated
* README.md: generated
* .perlcriticrc: removed
* .perltidyrc: removed
* cpan-dist/Makefile
- remove path from make-cpan-dist
- JSON, not JSON::PP
- set TIDY to tidy modules
* src/main/perl/lib/Amazon/API.pm
- pod tweaks
(new)
- set default log level to 'error'
(decode_response)
- check if called as botocore api
* cpan/requires: + Term::ReadKey
* docker/docker-compose.yml: add additional services
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(help): move pager down after possible error
(main): make perltidy default false
(stringify): new
(render_stub): use above
(create_stub): warn about Perl::Tidy
* src/main/perl/lib/Amazon/API/Botocore/Pod.pm.in
- perlcritic refactors
- pod tweaks
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in: whitespace
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
- perlcritic refactors
- whitespace
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in
- whitespace
- refactor so pod2man doesn't complain
* src/main/perl/lib/Amazon/API/Template.pm.in
- whitespace
- use 'g' instead of while()
* src/examples/README.md: tweaks
Tue Nov 19 07:48:26 2024 Rob Lauer <rlauer6@comcast.net>
[2.0.15]:
* VERSION: bump
* README.md: generated
* cpan/buildspec.yml
- fix src/examples
* src/examples/README.md: cleanup
* src/main/perl/lib/Amazon/API/Botocore.pm.in
- whitespace
(render_stub): fix filehandle issue
* src/main/perl/lib/Amazon/API.pm.in
(new)
- pass log_level from options to _set_default_logger
- init_log_level
(init_log_level):new
(_set_default_logger): init log level from options
Sun Apr 21 07:58:26 2024 Rob Lauer <rlauer6@comcast.net>
[2.0.14]:
* VERSION: bump
* README.md: generated
* NEWS.md: updated
* src/main/perl/lib/README.md: likewise
* src/main/perl/lib/Amazon/API.pm.in
(invoke_api)
- test for limit_key (all service do not have limit_key)
* src/main/perl/lib/Makefile.am
- make README.md from Amazon/API.pm, not .pm.in
Mon Jan 29 15:17:28 2024 Rob Lauer <rlauer6@comcast.net>
[2.0.13]:
* VERSION: bump
* README.md: generated
* src/main/perl/lib/README.md: likewise
* cpan/requires: Pod::Find
* src/main/perl/lib/Amazon/API/Botocore.pm.in: whitespace
* src/main/perl/lib/Amazon/API.pm.in: likewise, added badge to pod
Fri Oct 13 17:02:15 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.12]:
* .gitignore
- cpan/resources
- cpan-dist/services, service-listing.json
- src/main/bash/bin/create-service
- don't ignore docker-rpm/Makefile
* VERSION: bump
* README.md: generated
* NEWS: updated
* .gitignore: added generated README, README.html files
* cpan-dist/Makefile
- clear error message when required env vars not present
- require Text::ASCIITable for listing
* cpan-dist/README.md
- added Quickstart section
- minor tweaks
* docker/docker-compose.yaml: docker-compose for LocalStack
* src/main/perl/lib/README.md: likewise
* src/examples/APIExample.pm
(dump_json): new
(version): new
(service): new
* src/examples/README.md: tweaks
* src/examples/sqs.pm: refactored
* src/examples/ec2.pm: likewise
* src/examples/ecr.pm: likewise
* src/examples/cloudwatch-events.pm: likewise
* src/examples/secrets-manager.pm: likewise
* src/examples/ssm.pm: likewise
* src/examples/sts.pm: likewise
* src/main/perl/lib/Amazon/API.pm.in
- export 'service' method
- add more documenation around serialization failures
(service): new
(set_log_level): only set level if logger is actually set
(decode_response)
- SuppressEmpty when decoding XML
- add serialize flag to prevent serialization
- return decoded output if not botocore output
(invoke_api)
- added log messages
- try to detect when to pass through parameters vs serializing via botocore
- only use paginator if there is a paginator for the method being invoked
- set parameters to {} as default for non-botocore/application-json calls
- delete limit_key from result
- return result_key contents for paged results
(_set_defaults): added option no_passkey_warning
(serialize_content)
- set parameters to an empty array as default for query protocol
* src/main/perl/lib/README.md: generated
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(help): fix for shape documentation
* src/main/perl/lib/Amazon/API/Botocore/Pod.pm.in
- note about custom module names
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
- serialization fixes
(_serialize_structure)
- pass along exists flag if element exists in content
- added more debugging information
- use member name as key or just use serialized data
- set location name as locationName, location or member name
- always set serialized datat to hash member now ????
(_serialize_list)
- skip undefined elements
- pass along exists flag
(serialize)
- return undef if undefined data for strings
- return undef if undefined data for boolean
- fix for timestamp type
- implement flattened maps
- return undef for empty hashes and arrays
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
- refactoring, serialization fixes
- optional logger object
(new)
- add arg is_response, to avoid calling _init_value() for response object
(_init_map): return raw value if is_flattened
(get_shape_type): new
(finalize): refactored with dispatcher
(finalize_map): new
(finalize_list): new
(finalize_structure): new
(_create_key_value_list): new
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in
- add methods is_array, is_code, is_hash, is_regexp, is_scalar, _is_type
- changed new() method in template to only store value if a value passed
(create_module_name): don't alter names with upper case (they're custom)
* src/main/bash/bin/create-service.sh.in
- use realpath for BOTOCORE_PATH
- get description from service, not module name
* src/main/perl/lib/Amazon/API/Constants.pm.in
- added SUCCESS, FAILURE
Mon Aug 21 14:33:58 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.11]:
* VERSION: bump
* README.md: generated
* NEWS.md: updated
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize)
- format with nanoseconds only if present in timestamp
- fixed regexp related to above
* src/main/perl/lib/Amazon/API.pm.in
(init_botocore_request)
- disable creation of Botocore request object if !use_botocore or
if request is not a HASH ref
- remove marker when using paginator
* src/examples/ec2.pm
- fixed non-Botocore request (DescribeSubnets, DescribeSecurityGroups)
Mon May 22 07:34:06 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.10]:
* VERSION: bump
* README.md: generated
* NEWS.md: updated
* src/main/perl/lib/README.md: likewise
* src/main/perl/lib/Amazon/API.pm.in
- include badge in pod
(create_urlencoded_content): url_encode query string parameters
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
(_init_value): include blob in valid types
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in
(__DATA__)
- update shape template (new()) to initialize structures when undefined
Sun May 21 13:17:30 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.9]:
* VERSION: bump
* README.md: generated
* NEWS.md: updated
* src/main/perl/lib/Amazon/API.pm.in
(invoke_api)
- set paginator parameters from $parameters before it is unloaded
- only serialize content if it exists
(create_url_encoded_content): actually uri encode the parameters
* docker/Makefile.docker
- user NOCACHE if set in environment
Sat May 13 08:52:29 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.8]:
* VERSION: bump
* NEWS.md: updated
* configure: generated
* README.md: likewise
* README-BUILD.md: explain --enable-rpm-build-mode
* requires
- any version of Pod::Parser?
- bump version of Amazon::Credentials
* cpan/Makefile.am: top_srcdir, not ..
* .gitignore: *.tag, *.log
* docker/Dockerfile.create-service: new
* docker/Dockerfile.rpm-build: new
* docker/Makefile.docker: new
* docker/README.md: new
* docker/build-dist: new
* docker/create-cpan-dist: new
* docker/package-create-service.lst: new
* docker/package-rpm-build.lst: new
* docker/rpm-build: new
* create-service-sh.in: -f option (force)
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(format_columns): use 80 if no tty
Sun May 7 14:02:56 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.7 - remove DateTime dependency]:
* VERSION: bump
* README.md: generated
* NEWS.md: updated
* src/main/bash/bin/create-service.sh.in
- exit if error from amazon-api
- pass BOTOCORE_PATH to amazon-api
- pass BOTOCORE_PATH to create_cpan_distribution
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize): replace DateTime with POSIX::strftime
Thu Apr 20 15:33:09 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.6 - create-service]:
* VERSION: bump
* README.md: generated
* NEWS.md: updated
* src/main/perl/lib/Amazon/API.pm.in
(_create_stealth_logger)
- uc level to create subname
- detect existing method correctly by looking for CODE in typeglob
Sun Mar 26 17:25:06 2023 Rob Lauer <rlauer6@comcast.net>>
[2.0.5 - create-service]:
* VERSION: bump
* README.md: generated
* src/main/bash/bin/create-service.sh.in
- missing @ in automake @scandeps@ variable
- don't remove temp dir if DEBUG mode
Fri Mar 17 14:19:55 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.4 - create-service]:
* NEWS.md: updated
* VERSION: bump
* configure.ac
(AC_PATH_PROG): scandeps-static.pl
(do_subst_command):
- scandeps, make_cpan_dist
* src/main/bash/bin/Makefile.am
- add create-service to build
- set automake variables scandeps, make_cpan_dist
* src/main/bash/bin/create-service.sh.in: new
Fri Mar 10 08:41:44 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.3 - Readonly]:
* VERSION: bump
* README.md: generated
* bootstrap: use config options if found
* src/main/perl/lib/Amazon/API.pm.in
- Readonly => Readonly::Scalar
(_set_default_logger)
- add ability to log to files
- use default layout pattern
- add DEBUG, etc to package AND sub-classes?
(_create_stealth_logger): new
* src/main/perl/lib/Amazon/API/Botocore.pm.in: Readonly => Readonly::Scalar
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in: likewise
* src/main/perl/lib/Amazon/API/Constants.pm.in: likewise
* src/main/perl/lib/Amazon/API/Pod/Parser.pm.in: likewise
* src/main/perl/lib/Amazon/API/Pod/Simple/Text.pm.in: likewise
* src/main/perl/lib/Amazon/API/Template.pm.in: likewise
Sat Feb 25 10:18:34 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.2 - Log::Log4perl]:
* VERSION: bump
* cpan/requires: + Log::Log4perl
* NEWS: updated
* README.md: generated
Tue Feb 21 07:04:44 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.1 - Pod::Parser]:
* VERSION: bump
* cpan/requires: add Pod::Parser any version
* README.md: generated
* NEWS: updated
Sat Feb 18 18:04:56 2023 Rob Lauer <rlauer6@comcast.net>
[2.0.0 - Botocore release to CPAN]:
* README.md: generated
* VERSION: bump
Sat Feb 18 17:50:44 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.9]:
* src/main/perl/lib/Amazon/API.pm.in
- pod edits
* src/main/perl/lib/Amazon/API/Botocore/Pod.pm.in: likewise
* README.md: generated
* README-BUILD.md: likewise
* src/main/perl/lib/README.md: likewise
* requirements.json: order only change
Wed Jan 25 18:41:03 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.8 - documentation, blob]:
* VERSION: bump
* NEWS.md: updated
* README.md: generated
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(get_service_descriptions): lc service
(fetch_boto_services)
- better die message when no botocore path found
(create_stub): lc service
(help): likewise
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in
(serialize): handle blob type
* src/main/perl/lib/Makefile.am: README.md
* src/main/perl/lib/README.md: generated from above
Wed Jan 25 16:24:11 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.7 - logging]:
* VERSION: bump
* NEWS.md: updated
* README.md: generated
* src/main/perl/lib/Amazon/API.pm.in
(BEGIN): import log levels
(invoke_api)
- only retrieve paginators if they're present
- return raw results if we're not using paginator
(_set_default_logger): use levels from $LOG4PERL_LOG_LEVELS
Fri Jan 20 17:56:53 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.6 - Log::Log4perl]:
* VERSION: bump
* NEWS.md: updated
* README.md: generated
* Makefile.requirements: --no-include-require
* autotools/ax_requirements_check.m4: generated
* requirements.json: generated
* .gitignore: remove src/main/perl/lib/Amazon/API/Botocore/Shape directory
* cpan/buildspec.yml
- min perl version 5.010
- no core modules
* cpan/requires
- require Amazon::Credentials 1.16
- remove version number from most modules
- + List::Utils 1.33
- + XML::Simple
- + JSON
- + URL::Encode
- + Pod::Simple
- - core modules, Perl::Tidy, Pod::Find
* src/main/perl/lib/Amazon/API.pm.in
- explain new logging method in pod
- require Log::Log4perl
(new)
- call _set_default_logger before setting log level
(set_log_level): new
(invoke_api): remove null/blank paginator keys
(_set_default_logger)
- use Log::Log4perl, custom logger, or nothing
(_set_defaults)
- removed code that formerly set 'debug' for Amazon::Credentials
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(BEGIN)
- stub Stealth loggers if no Log::Log4perl
- use Log::Log4perl Stealth loggers if Log::Log4perl available
* src/main/perl/lib/Amazon/API/Signature4.pm.in: whitespace
* src/main/perl/lib/Amazon/API/Botocore/Shape/Serializer.pm.in: new
* src/main/perl/lib/Amazon/API/Botocore/Shape/Utils.pm.in: new
Mon Jan 16 13:44:53 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.5 - paginator]:
* VERSION: bump
* NEWS.md: updated
* README.md: generated
* src/main/perl/lib/Amazon/API.pm.in
(new)
- +use_paginator, raise_serialization_error
(_set_defaults)
- set use_paginator default to true
(decode_response)
- return raw response if exception during serialization
(invoke_api):
- automatically paginate if use_paginate is true
- return raw content if exception in serialization/pagination
* src/examples/sqs.pm
- add tags to example
(serialize_content)
- don't serialize parameters with nokeys if content-type is xml
Mon Jan 16 10:17:33 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.4 - paginator]:
* VERSION: bump
* NEWS.md: updated
* src/main/perl/lib/Amazon/API.pm.in
- minor formatting changes
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(paginator): new
(help)
- set $service from 'service' option
- look for $service or service name created by create_module_name
(render_stub)
- prep for on-the-fly generation of pod from help
Sat Jan 14 17:33:47 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.3 - POST content]:
* VERSION: bump
* NEWS.md: updated
* src/main/perl/lib/Amazon/API.pm.in
(init_botocore_request)
- set content to undef for non-POST operations if no parameters
Wed Jan 11 13:13:04 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.2 - CPAN dist maker]:
* VERSION: bump
* NEWS.md: updated
* cpan-dist/.gitignore: new
* cpan-dist/README.md: new
* cpan-dist/buildspec.yml.in: new
* cpan-dist/requires: new
* cpan/Makefile.am: use @MAKE_CPAN_DIST@
* src/main/bash/bin/amazon-api.sh.in: bash exit code
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(fetch_boto_services): follow symlinks
[requirements]:
* autotools/ads_PERL_MODULE.m4: report missing/out of date modules
* configure.ac
- likewise
(AC_PATH_PROG): scandeps-static.pl, make-cpan-dist.pl
* bootstrap: create Perl requirements
* Makefile.requirements: new
* autotools/ax_requirements_check.m4: new (generated)
* requirements.json: new (generated)
Wed Jan 11 10:52:54 2023 Rob Lauer <rlauer6@comcast.net>
[1.4.1 - Botocore fixes]:
* VERSION: bump
* README.md: generated
* NEWS.md: update
* src/main/perl/lib/Amazon/API/Botocore.pm.in
(render_stub)
- don't create path here, it's done upstream
- don't create method pod if no output-path
(get_service_descriptions): croak if unknown service
(main)
- create output path for service if it does not exist
Sat Jan 7 06:02:07 2023 Rob Lauer <rlauer6@comcast.net>>
[1.4.0 - Botocore enhancements]:
* .gitignore
- perltidy.err
- Amazon/API/Botocore/Shape/*
- src/main/perl/lib/test/* (moved all temp test files here)
- src/main/bash/bin/amazon-api.sh, amazon-api
* VERSION: bump
* README.md: generated
* NEWS.md: updated
* configure.ac
- added bash/bin to build
* src/main/Makefile.am: likewise
* src/main/perl/lib/Amazon/API/Constants.pm.in
- $COMMA, $DASH
[Botocore enhancements/fixes]:
* src/main/perl/lib/Amazon/API.pm.in
- use JSON, not JSON::PP
- pod updates
(new)
- if the API class isa botocore api, set a serializer
(get_api_service): new
(decode_response)
- ForceContent 1 for parsing XML into models
- serializer needs to know service now
- execute Botocore serializer if botocore api
(get_botocore_action): new
(is_botocore_shape): new
(is_param_type): new
(is_query_param): new
(is_uri_param): new
(create_botocore_request): new
(init_botocore_request)
- use Botocore metadata to create request object
(_set_defaults)
- get_decode_always, not set_
- use local region or region from credentials
(is_botocore_api): new
(serialize_content): new
(invoke_api): serialize response if botocore api
(submit): add request_uri to URL if rest-json/xml
(param_n): move to Amazon::API::Botocore::Shape::Utils::param_n
(create_url_encoded_content): allow array as arg in parameter list
(_set_content_type): use map of content types (API_TYPES)
(_set_default_logger): add pattern
(create_service_url): use botocore metadata if available
(_set_request_content): set charset to utf for POST
* src/main/perl/lib/Amazon/API/Botocore.pm.in
- export create_module_name, create_service_shapes,
fetch_boto_services, get_service_descriptions
(help): user IO::Pager if available
(render_stub)
- get paginators
- don't render pod if --no-pod option selected
- fixes for pod errors
(get_api_descriptions)
- fetch_paginators
- add documentation for servcie
- add shapes metadata
(describe): JSON, not JSON::PP
(create_stub): pass %options to render_stub()
(main)
- new options, pod, pager, output-path (replaces file)
- defaults for new options
- synonyms for create-stub(s), create-shape(s)
(template)
- set default region to us-east-1
- utf8 encoding for pod
* src/main/perl/lib/Amazon/API/Botocore/Pod.pm.in
(pod)
- new options --pager, --pod, --output-path
- beefed up usage
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in
* src/main/perl/lib/Amazon/API/Template.pm.in
[CPAN build]:
* cpan/Makefile.am
- project-root option for make-cpan-dist.pl
* cpan/buildspec.yml
(dependencies): path deprecated, now requires:
(provide): list new files added to project
[unit tests]:
* src/main/perl/t/00-botocore-template-var.t
- moved to_template_var to separate module (Amazon::API::Template)
[refactoring/enhancing Botocore support]:
* src/main/bash/Makefile.am: new
* src/main/bash/bin/Makefile.am: new
* src/main/bash/bin/amazon-api.sh.in: new
* perl-Amazon-API.spec.in: add above to rpm
* src/main/perl/lib/Amazon/API/Botocore/Shape.pm.in: new
* src/main/perl/lib/Amazon/API/Pod/Parser.pm.in: new
* src/main/perl/lib/Amazon/API/Pod/Simple/Text.pm.in: new
* src/main/perl/lib/Amazon/API/Template.pm.in: new
* src/main/perl/lib/Makefile.am: add above to build
* src/main/perl/lib/modules.inc: likewise
* src/main/perl/lib/directories.inc: likewise
[examples]:
* README.md: beefed up
* src/examples/ecr.pm: use APIExample base
* src/examples/sts.pm: likewise
* src/examples/cloudwatch-events.pm: minor formatting changes
* src/examples/ec2.pm: likewise
* src/examples/ssm.pm: likewise
* src/examples/secrets-manager.pm: likewise
* src/examples/sqs.pm: likewise, param_n shoudl be called as class method
* src/examples/README.md:typos
* src/examples/APIExample.pm
- perlcritic refactoring
- export booleans used by examples
(help)
- usage
- use pager
* src/main/perl/lib/Amazon/API/Error.pm.in
- use JSON, not JSON:PP
- use XML::Simple
(_set_message)
- don't chomp
- check to see if the message is xml before converting
[remove example APIs]:
* src/main/perl/lib/modules.inc remove AMAZON_API_PERLMODULES
* src/main/perl/lib/directories.inc
* src/main/perl/lib/Makefile.am
* src/main/perl/lib/Amazon/API/CloudWatchLogs.pm.in: removed
* src/main/perl/lib/Amazon/API/EC2.pm.in: likewise
* src/main/perl/lib/Amazon/API/ECR.pm.in: likewise
* src/main/perl/lib/Amazon/API/ECS.pm.in: likewise
* src/main/perl/lib/Amazon/API/SQS.pm.in: likewise
* src/main/perl/lib/Amazon/API/SSM.pm.in: likewise
* src/main/perl/lib/Amazon/API/STS.pm.in: likewise
* src/main/perl/lib/Amazon/API/SecretsManager.pm.in: likewise
Wed Jul 13 14:07:41 2022 Rob Lauer <rlauer6@comcast.net>
[1.3.5 - unit test fun]:
* VERSION: bump
* README.md: generated
* .gitignore: remove test-requires
* cpan/test-requires: new
* cpan/Makefile.am: don't cleanup above
* cpan/builspec.yml: ...and yes add test-requires
* cpan/requires: remove core file version numbers
Mon Jul 11 13:10:37 2022 Rob Lauer <rlauer6@comcast.net>
[1.3.4 - Amazon::API::Error, force_array]:
* VERSION: bump
* src/main/perl/lib/Amazon/API
(print_error): ref precendence
(_set_defaults):
- see if force_array is defined before enforcing legacy behavior
Tue Jun 7 02:20:34 2022 Rob Lauer <rlauer6@comcast.net>
[1.3.3 - Pod::Find]:
* Makefile.am: pod2markdown
* README.md: generated file
* VERSION: bump
* configure.ac: @POD2MARKDOWN@
* src/main/perl/lib/Amazon/API.pm.in
- force_array
(decode_response)
- use force_array flag
- test response with ref, can
* cpan/requires: new
Mon Jun 6 09:01:12 2022 Rob Lauer <rlauer6@comcast.net>
[1.3.2 - 01-urlencode.t]:
* VERSION: bump
* README.md: generated file
* src/main/perl/lib/Amazon/API.pm.in
- lastest version of Class::Accessor's import overrides Exporter
* cpan/buildspec.yml: +core modules
Fri Jun 3 14:54:08 2022 Rob Lauer <rlauer6@comcast.net>
[1.3.1 - ForceArray]:
* src/main/perl/lib/Amazon/API.pm.in
(decode_response)
- ForceArray => ['item'] : 'items' in returned XML should be converted to arrays
(_set_defaults)
- decode_always true if decode_always undefined
Thu Apr 28 17:32:18 2022 Rob Lauer <rlauer6@comcast.net>
[1.3.0 - Botocore]:
* VERSION: bump
* README-BUILD.md: rename from README.md
* README.md: built from Amazon::API pod
* Makefile.am: build rule for above
* NEWS.md: updated info
* .gitignore:
- prove.*, test-suite.log
- *.pc
- botcore directory
* cpan/buildspec.yml
- + dependencies
* cpan/Makefile.am
- cleanup distribution directory
(CLEANFILES):
- requires
* src/main/perl/lib/Amazon/API/Signature4.pm.in
- export parse_service_url
(parse_service_url): new
(scope): new
(_scope): refactored, use parse_service_url
* src/main/perl/lib/Amazon/API.pm.in
- replace many characters with Readonly values (ex: $UNDERSCORE)
- perl 5.10
- refactoring, perlcritic improvements
- export create_urlencode_content
- remove accessors for credentials
- remove use constant
(_create_query_string): removed
(invoke_api):
- refactored
- use above
- use botocore definition if available
(_format_content): removed
(_set_request_content): refactored
(_set_defaults):
- let Amazon::Credentials handle credentials
- do not pass debug flag to Amazon::Credentials
(submit): use get_valid_token
(create_urlencoded_content): new
(_create_service_url): new
(_set_content_type): new
(init_botocore_request): new
(get_valid_token): new
* src/main/perl/lib/Amazon/API/Constants.pm.in: new
* src/main/perl/lib/Amazon/API/Botocore.pm.in: new
* src/main/perl/lib/Amazon/API/Botocore/Pod.pm.in: new
* src/main/perl/lib/Makefile.am
- add above to build
- revisit dependencies
* src/main/perl/t/00-botocore-template-var.t: new
* src/main/perl/t/01-urlencode.t: new
* src/main/perl/t/02-parse-service-url.t: new
* src/main/perl/lib/modules.inc: new
* src/main/perl/lib/directories.inc: new
* src/examples/sts.pm: new
* src/main/perl/lib/Amazon/API/Error.pm.in: perlcritic cleanup
* src/main/perl/lib/Amazon/API/CloudWatchLogs.pm.in: likewise
* src/main/perl/lib/Amazon/API/EC2.pm.in: likewise, rename module
* src/main/perl/lib/Amazon/API/ECS.pm.in: likewise
* src/main/perl/lib/Amazon/API/SQS.pm.in: likewise
* src/main/perl/lib/Amazon/API/SSM.pm.in: likewise
* src/main/perl/lib/Amazon/API/STS.pm.in: likewise
* src/main/perl/lib/Amazon/API/SecretsManager.pm.in: likewise
Wed Apr 6 14:47:48 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.7 - set region]:
* VERSION: bump
* NEWS.md: updated info
* src/main/perl/lib/Amazon/API/STS.pm.in: new
* src/main/perl/lib/Makefile.am: add above to build
* src/main/perl/lib/Amazon/API.pm.in
(_format_content): application/x-www-form-urlencoded
(_set_request_content): likewise
(_set_defaults): set url after setting region
* src/main/perl/lib/Amazon/Error.pm.in
(_set_message): chomp XML content
* src/examples/ecr.pm: new
Thu Mar 31 11:21:11 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.6 - pod updates, refactoring]:
* VERSION: bump
* NEWS.md: updated
* README.md: tweaks
* src/main/perl/lib/Amazon/API.pm.in
- refactoring
- pod updates
(_create_query_string): new
(_format_content): new
(invoke_api): use above to reduce complexity
(submit): DEBUG
* src/main/perl/lib/Amazon/API/ECR.pm.in: new
* src/main/perl/lib/Makefile.am: add above to build
* cpan/README.md: new
* .gitignore: add cpan/* files
Tue Mar 29 15:01:43 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.5 - bump version]:
* VERSION: bump
Tue Mar 29 11:52:53 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.4 - fix CPAN distribution]:
* cpan/Makefile.am
* cpan/buildspec.yml
* cpan/requires
* src/main/perl/lib/Amazon/API.pm.in: use () for parent
* src/main/perl/lib/Amazon/API/CloudWatchLogs.pm.in
- likewise
- use @PACKAGE_VERSION@ for versioning
* src/main/perl/lib/Amazon/API/ECS.pm.in: likewise
* src/main/perl/lib/Amazon/API/Error.pm.in: likewise
* src/main/perl/lib/Amazon/API/SQS.pm.in: likewise
* src/main/perl/lib/Amazon/API/SSM.pm.in: likewise
* src/main/perl/lib/Amazon/API/SecretsManager.pm.in: likewise
* src/main/perl/lib/Amazon/API/EC2.pm.in
- likewise
- remove use of %API_DEFINITION
* src/main/perl/lib/Makefile.am
- add stub modules to CLEANFILES
Fri Mar 25 17:12:49 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.3 - pass headers]:
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
- export param_n
- pod tweaks
(decode_response): unload arguments
(invoke_api)
- set default content to passed $parameters
- set content to {} if undefined
- added debugging statements
(submit)
- send optional headers too
(param_n): use $idx as indicator of first call
* .perlcritic: documentation exception
* cpan/Makefile.am: only set -x for DEBUG
* README.md: tweaks
* src/examples/README.me: tweaks
* src/examples/ec2.pm
- +DescribeVpcs, DescribeSubnets
* src/examples/secrets-manager.pm
- localize Data::Dumper vars
* src/main/perl/Amazon/API/EC2.pm.in: new
* src/main/perl/Amazon/API/ECS.pm.in: new
* src/main/perl/Amazon/API/SQS.pm.in: new
* src/main/perl/Amazon/API/SSM.pm.in: new
* src/main/perl/Amazon/API/CloudWatchLogs.pm.in: new
* src/main/perl/Amazon/API/SecretsManager.pm.in: new
* src/main/perl/lib/Makefile.am
- add above to build
Fri Mar 4 12:42:35 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.2 - localize Data::Dumper parameters]:
* VERSION: bump
* src/main/perl/lib/Amazon/API.pm.in
- localize Data::Dumper settings
Tue Mar 1 08:23:52 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.1 - requirements]:
* VERSION: bump
* cpan/requires: add Find::ShareDir::Install to dependencies
* cpan/buildspec.yml: dependencies
* cpan/Makefile.am: requires is a dependency for cpan build
* perl-Amazon-API.spec.in: man pages
* README.md: cpan building, examples, badge
* src/examples/README.md: LocalStack
* src/main/perl/lib/Makefile.am: use if/then to avoid bad exit
Sun Feb 20 08:40:43 2022 Rob Lauer <rlauer6@comcast.net>
[1.2.0 - examples, perlcritic cleanup]:
* configure.ac
- use VERSION
- output version
* cpan/Makefile.am:
- add NOCLEANUP, DRYRUN, SCANDEPS, NOVERSION env options
- CLEANFILES
* src/main/perl/Makefile.am: include pwd for perl libraries
* src/main/perl/lib/Makefile.am
- remove echo
* src/main/perl/lib/Amazon/API/Signature4.pm.in
- use // for qw not q{} (perlreq)
- plain versions
- perlcritic cleanup
* Makefile.am: make cpan
* src/main/perl/lib/Amazon/API/Error.pm.in
- move pod to bottom
- perlcritic cleanup
* src/main/perl/lib/Amazon/API.pm.in
- update pod
- move pod to bottom
- extensive perlcritic cleanup
(new)
- don't pass debug to Amazon::Credentials
- don't create signer to avoid storing credentials
(decode_response): new, try *very* hard to decode responses
(get_api_name): removed
(_set_default_logger): new
(_set_defaults)
- allow '' as valid region for global services
(invoke_api):
- support legacy behavior of decoding responses for GET operations
(submit)
- create signer on every invocation to avoid storing credentials
(param_n): new
* .perlcriticrc
* .perltidyrc
* cpan/requires
* cpan/buildspec.yml
- add examples
- resources
Wed Jan 26 14:07:07 2022 Rob Lauer <rlauer6@comcast.net>
[1.1.10]:
* VERSION: new
* configure.ac: use VERSION
* cpan/Makefile.am
- options on command line to control make-cpan-dist
* src/main/perl/Makefile.am: abs path for -I
* requires: new
* cpan/buildspec.yml: dependencies
* src/main/perl/lib/Amazon/API.pm.in
(_create_methods)
- only create method if they do not exists
(invoke_api)
- test passed content-type, not default content-type
Mon Jan 24 15:42:31 2022 Rob Lauer <rlauer6@comcast.net>
[1.1.9]:
* src/main/perl/lib/Amazon/API.pm.in
- pod cleanup, enhancements
- refactoring
Mon Jan 24 15:09:10 2022 Rob Lauer <rlauer6@comcast.net>
[1.1.8]:
* src/main/perl/t/amazon-api.t: get_token()
Mon Jan 24 13:00:55 2022 Rob Lauer <rlauer6@comast.net>
[1.1.8]: Signature4
* src/main/perl/lib/Amazon/API/Signature4.pm.in: new
* src/main/perl/lib/Makefile.am
- add above to build
- add PERL5LIB to include path
* src/main/perl/lib/Amazon/API.pm.in
- use new Signature4 to send service
Sun Jan 23 19:32:42 2022 Rob Lauer <rlauer6@comcast.net>
[1.1.7]:
* src/main/perl/lib/Amazon/API/Error.pm.in: pod tweaks
* src/main/perl/lib/Amazon/API.pm.in
- make Data::Dumper behave in a JSONy way
- added decode_always option
- print_error, raise_error options
(new)
- defaults are print_error, raise_error
- decode_always default is false
(invoke_api)
- save http response
- die with print_error message
- decode responses if decode_always
(print_error): new
Sun Jan 23 07:57:42 2022 Rob Lauer <rlauer6@comcast.net>
[1.1.6]:
* confgure.ac: bump
* src/main/perl/lib/Amazon/API.pm.in
- tweaks to pod
(new)
- use Amazon::Credentials as default credential provider
(invoke_api): assume {} if no parameter and content_type is json
Sat Jan 22 17:52:28 2022 Rob Lauer <rlauer6@comcast.net>
[1.1.5]:
* configure.ac: bump version
* src/main/perl/lib/Amazon/API.pm.in
- JSON::PP
- XML::LibXML::Simple
* src/main/perl/lib/Amazon/Error.pm.in: likewise
* bootstrap: bump, VERSION support
Mon Dec 17 10:16:01 2018 Rob Lauer <rlauer6@comcast.net>
[1.1.4-1]:
* cpan/buildspec.yml: add ChangeLog
* cpan/Makefile.am
- rename tarball if minor relase
- PHONY, not PHONEY
* configure.ac: bump
Fri Dec 7 13:44:32 2018 Rob Lauer <rlauer6@comcast.net>
[1.1.4]:
* configure.ac: bump version
* Makefile.am: cpan
* cpan/Makfile.am: new
* cpan/buildspec.yml: remove ref to git project, build locally
* src/main/perl/Makefile.am: verbose mode for tests, add -v to prove
* src/main/perl/lib/Amazon/API.pm.in
- our $VERSION
(pod): indicate require args in new()
* src/main/perl/t/amazon-api.t: only need 1 test, provide getters()
* bootstrap: new
* ChangeLog: new
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)