Directory structure:
└── kiddkai-lua-resty-aws-sdk/
├── README.md
├── lua-resty-aws-sdk-0.1-0.rockspec
├── Makefile
├── .editorconfig
├── codegen/
│ ├── main.lua
│ ├── Makefile
│ ├── method_tpl.lua
│ ├── service.lua
│ └── tpl.lua
├── examples/
│ └── lambda_no_body.lua
├── lib/
│ └── resty/
│ └── aws/
│ ├── cred.lua
│ ├── lambda.lua
│ ├── request.lua
│ ├── signature.lua
│ ├── sns.lua
│ ├── sqs.lua
│ └── .keep
├── scripts/
│ └── busted
├── src/
│ ├── cred.lua
│ ├── request.lua
│ └── signature.lua
└── test/
├── request_spec.lua
└── aws4_testsuite/
├── get-header-key-duplicate/
│ ├── get-header-key-duplicate.authz
│ ├── get-header-key-duplicate.creq
│ ├── get-header-key-duplicate.req
│ ├── get-header-key-duplicate.sreq
│ └── get-header-key-duplicate.sts
├── get-header-value-order/
│ ├── get-header-value-order.authz
│ ├── get-header-value-order.creq
│ ├── get-header-value-order.req
│ ├── get-header-value-order.sreq
│ └── get-header-value-order.sts
├── get-unreserved/
│ ├── get-unreserved.authz
│ ├── get-unreserved.creq
│ ├── get-unreserved.req
│ ├── get-unreserved.sreq
│ └── get-unreserved.sts
├── get-vanilla/
│ ├── get-vanilla.authz
│ ├── get-vanilla.creq
│ ├── get-vanilla.req
│ ├── get-vanilla.sreq
│ └── get-vanilla.sts
├── get-vanilla-empty-query-key/
│ ├── get-vanilla-empty-query-key.authz
│ ├── get-vanilla-empty-query-key.creq
│ ├── get-vanilla-empty-query-key.req
│ ├── get-vanilla-empty-query-key.sreq
│ └── get-vanilla-empty-query-key.sts
├── get-vanilla-query/
│ ├── get-vanilla-query.authz
│ ├── get-vanilla-query.creq
│ ├── get-vanilla-query.req
│ ├── get-vanilla-query.sreq
│ └── get-vanilla-query.sts
├── get-vanilla-query-order-key-case/
│ ├── get-vanilla-query-order-key-case.authz
│ ├── get-vanilla-query-order-key-case.creq
│ ├── get-vanilla-query-order-key-case.req
│ ├── get-vanilla-query-order-key-case.sreq
│ └── get-vanilla-query-order-key-case.sts
├── get-vanilla-query-unreserved/
│ ├── get-vanilla-query-unreserved.authz
│ ├── get-vanilla-query-unreserved.creq
│ ├── get-vanilla-query-unreserved.req
│ ├── get-vanilla-query-unreserved.sreq
│ └── get-vanilla-query-unreserved.sts
├── get-vanilla-utf8-query/
│ ├── get-vanilla-utf8-query.authz
│ ├── get-vanilla-utf8-query.creq
│ ├── get-vanilla-utf8-query.req
│ ├── get-vanilla-utf8-query.sreq
│ └── get-vanilla-utf8-query.sts
├── normalize-path/
│ ├── normalize-path.txt
│ ├── get-relative/
│ │ ├── get-relative.authz
│ │ ├── get-relative.creq
│ │ ├── get-relative.req
│ │ ├── get-relative.sreq
│ │ └── get-relative.sts
│ ├── get-relative-relative/
│ │ ├── get-relative-relative.authz
│ │ ├── get-relative-relative.creq
│ │ ├── get-relative-relative.req
│ │ ├── get-relative-relative.sreq
│ │ └── get-relative-relative.sts
│ ├── get-slash/
│ │ ├── get-slash.authz
│ │ ├── get-slash.creq
│ │ ├── get-slash.req
│ │ ├── get-slash.sreq
│ │ └── get-slash.sts
│ ├── get-slash-dot-slash/
│ │ ├── get-slash-dot-slash.authz
│ │ ├── get-slash-dot-slash.creq
│ │ ├── get-slash-dot-slash.req
│ │ ├── get-slash-dot-slash.sreq
│ │ └── get-slash-dot-slash.sts
│ ├── get-slash-pointless-dot/
│ │ ├── get-slash-pointless-dot.authz
│ │ ├── get-slash-pointless-dot.creq
│ │ ├── get-slash-pointless-dot.req
│ │ ├── get-slash-pointless-dot.sreq
│ │ └── get-slash-pointless-dot.sts
│ ├── get-slashes/
│ │ ├── get-slashes.authz
│ │ ├── get-slashes.creq
│ │ ├── get-slashes.req
│ │ ├── get-slashes.sreq
│ │ └── get-slashes.sts
│ └── get-space/
│ ├── get-space.authz
│ ├── get-space.creq
│ ├── get-space.req
│ ├── get-space.sreq
│ └── get-space.sts
├── post-header-key-case/
│ ├── post-header-key-case.authz
│ ├── post-header-key-case.creq
│ ├── post-header-key-case.req
│ ├── post-header-key-case.sreq
│ └── post-header-key-case.sts
├── post-header-key-sort/
│ ├── post-header-key-sort.authz
│ ├── post-header-key-sort.creq
│ ├── post-header-key-sort.req
│ ├── post-header-key-sort.sreq
│ └── post-header-key-sort.sts
├── post-header-value-case/
│ ├── post-header-value-case.authz
│ ├── post-header-value-case.creq
│ ├── post-header-value-case.req
│ ├── post-header-value-case.sreq
│ └── post-header-value-case.sts
├── post-sts-token/
│ ├── readme.txt
│ ├── post-sts-header-after/
│ │ ├── post-sts-header-after.authz
│ │ ├── post-sts-header-after.creq
│ │ ├── post-sts-header-after.req
│ │ ├── post-sts-header-after.sreq
│ │ └── post-sts-header-after.sts
│ └── post-sts-header-before/
│ ├── post-sts-header-before.authz
│ ├── post-sts-header-before.creq
│ ├── post-sts-header-before.req
│ ├── post-sts-header-before.sreq
│ └── post-sts-header-before.sts
├── post-vanilla/
│ ├── post-vanilla.authz
│ ├── post-vanilla.creq
│ ├── post-vanilla.req
│ ├── post-vanilla.sreq
│ └── post-vanilla.sts
├── post-vanilla-empty-query-value/
│ ├── post-vanilla-empty-query-value.authz
│ ├── post-vanilla-empty-query-value.creq
│ ├── post-vanilla-empty-query-value.req
│ ├── post-vanilla-empty-query-value.sreq
│ └── post-vanilla-empty-query-value.sts
├── post-vanilla-query/
│ ├── post-vanilla-query.authz
│ ├── post-vanilla-query.creq
│ ├── post-vanilla-query.req
│ ├── post-vanilla-query.sreq
│ └── post-vanilla-query.sts
├── post-x-www-form-urlencoded/
│ ├── post-x-www-form-urlencoded.authz
│ ├── post-x-www-form-urlencoded.creq
│ ├── post-x-www-form-urlencoded.req
│ ├── post-x-www-form-urlencoded.sreq
│ └── post-x-www-form-urlencoded.sts
└── post-x-www-form-urlencoded-parameters/
├── post-x-www-form-urlencoded-parameters.authz
├── post-x-www-form-urlencoded-parameters.creq
├── post-x-www-form-urlencoded-parameters.req
├── post-x-www-form-urlencoded-parameters.sreq
└── post-x-www-form-urlencoded-parameters.sts