b9aaffb08d
add s3 exception for virtual host addressing
2022-05-29 14:12:01 -07:00
c531164cfa
cleanup and refactoring. Addressed TODO related to comptime eval
2022-05-29 12:49:02 -07:00
03f7228662
fix rest_xml_no_input integration test
2022-05-29 11:16:55 -07:00
08c2ed0c07
move json detection to separate function
2022-05-29 11:13:05 -07:00
357c583e9b
rest_xml support, minus s3
continuous-integration/drone/push Build is passing
2022-05-28 20:18:16 -07:00
73d056e845
support customization for cloudfront
2022-05-28 18:05:13 -07:00
652a04d0c3
handle greedy labels
2022-05-28 18:02:31 -07:00
46e3a4de11
add additional request id for CloudFront
2022-05-28 18:01:49 -07:00
fed45c90ee
tolerate unwrapped xml response values
2022-05-28 17:57:35 -07:00
c1880e2d43
document the other compiler bug test
2022-05-28 15:50:38 -07:00
51232cb45e
get more defensive from compiler bugs
2022-05-28 15:50:07 -07:00
e4e5288ef6
work around another compiler bug
2022-05-28 15:49:17 -07:00
f9cf8de76f
initial S3 support
continuous-integration/drone/push Build is passing
2022-05-25 15:27:13 -07:00
e6d2559b80
add x-amz-content-sha256 to all requests
continuous-integration/drone/push Build is passing
2022-05-25 14:24:56 -07:00
0e46bb04b2
add ec2 query with input demo
continuous-integration/drone/push Build is passing
2022-05-25 11:38:34 -07:00
8727a4e038
EC2 support
continuous-integration/drone/push Build is passing
2022-02-16 14:14:54 -08:00
714e7278fd
ensure logging statements are using scoped log
2022-02-16 14:04:06 -08:00
b2c915f400
dealloc on error (using a blunt instrument) and iso8601 support
2022-02-16 14:01:29 -08:00
b44ea5c3e8
add iso8601 string to timestamp
2022-02-16 13:47:19 -08:00
4b26bc884f
basic ISO8601 parsing
2022-02-16 13:45:41 -08:00
fc8a73a9c4
handle times before 1970
2022-02-15 17:28:27 -08:00
49f3f48aa8
conversion from DateTime structure to timestamp (partial)
...
This only handles dates after 1970. The code
is getting ugly and I think it is the wrong approach.
Will clean up in the next commit
2022-02-15 17:03:42 -08:00
0706dd5e6f
work around zig compiler bug
continuous-integration/drone/push Build is passing
2022-02-11 13:36:38 -08:00
8e9b85b35f
make for easier EC2 Query development
continuous-integration/drone/push Build is passing
2022-02-11 09:28:24 -08:00
bb93f41b85
add xml_shaper (see below)
...
This will use the Vulkan xml parser to parse data, then
massage that into a passed type. It uses code patterned
off the standard library Json parser to do the work.
The final, commented test is exposing a compiler bug that
needs to be reduced and sent to the zig team. Initial reports
from IRC indicate that the team is not focusing on compiler
bugs until stage 2 is done (hopefully May 2022)
2022-02-11 09:22:32 -08:00
240d2ebdd1
new EC2 code (still failing/disabled)
2022-02-11 09:17:27 -08:00
f374df3fa1
update generated models for xml mappings
2022-02-10 15:13:44 -08:00
744d834cfd
add predicate option to xml parser
2022-02-10 15:07:50 -08:00
c9369504fa
re-import xml.zig from Vulkan project
2022-02-10 10:20:00 -08:00
5bb382bda3
implement container credentials
continuous-integration/drone/push Build is passing
2022-02-09 11:46:53 -08:00
5f3a201ffd
initial IMDSv2 implementation
continuous-integration/drone/push Build is passing
2022-02-08 22:37:38 -08:00
628dd1da1d
replace zero with crypto secureZero
2022-02-08 22:37:20 -08:00
b53cbc3ea5
support file-based credentials
continuous-integration/drone/push Build is passing
2022-01-31 09:01:30 -08:00
6229644bca
update zero process to secureZero
2022-01-31 09:01:01 -08:00
e7734281c3
add comment about AWS_SECURITY_TOKEN
2022-01-21 06:41:10 -08:00
a88995290c
switch query_with_input test to something that will work with STS token
continuous-integration/drone/push Build is passing
2022-01-21 06:15:48 -08:00
a667dc09d1
support for STS tokens
continuous-integration/drone/push Build is passing
2022-01-20 19:42:55 -08:00
65537613e1
fix signing tests
continuous-integration/drone/push Build is passing
2022-01-20 12:58:56 -08:00
7967d7e3ab
fix signing tests
continuous-integration/drone/push Build is passing
2022-01-20 12:53:29 -08:00
d4c9f22316
32 bit support
continuous-integration/drone/push Build is failing
2022-01-20 12:31:45 -08:00
691a32d719
credential cleanup/working on Windows
continuous-integration/drone/push Build is failing
2022-01-20 12:18:47 -08:00
3d27b84e2d
include query in url
2022-01-20 07:32:40 -08:00
46685043e5
enable query string in canonical request
2022-01-20 07:32:26 -08:00
a05c1dfa10
remove debug output of signing key
2022-01-20 07:31:32 -08:00
1fd42fbe84
fixed signature issue with rest_json_1_work_with_lambda
...
continuous-integration/drone/push Build is passing
There remains another issue with this same test, dealing with query string
2022-01-19 21:40:38 -08:00
014f739b09
clean up comments
continuous-integration/drone/push Build is passing
2022-01-19 21:22:25 -08:00
be42b07086
add tls trust chain for AWS
continuous-integration/drone/push Build is passing
2022-01-19 21:17:44 -08:00
e66c82468a
most requests working (see below)
...
continuous-integration/drone/push Build is passing
rest_json_1_work_with_lambda seems to fail
STS-generated keys not working
there might be an intermittent signature failure
2022-01-19 19:29:58 -08:00
acba4d7962
remove completed TODOs from test
continuous-integration/drone/push Build is passing
2022-01-19 19:14:24 -08:00
3e9fab6ca5
return new request instead of mutating in place
continuous-integration/drone/push Build is passing
2022-01-19 19:12:50 -08:00
b928a5ec21
query_no_input working (intermittent failure?)
continuous-integration/drone/push Build is failing
2022-01-19 18:58:53 -08:00
b753c4e441
import canonicalization test from aws-c-auth
2022-01-19 13:53:35 -08:00
c7544b930b
add initial signing implementation
...
continuous-integration/drone/push Build is failing
This is producing a value, but not yet sure if these
are correct values
2022-01-19 10:54:23 -08:00
9880aa0ba9
date.zig tweaks
2022-01-17 18:52:27 -08:00
8d36300f27
initial implementation - canonical request
continuous-integration/drone/push Build is passing
2022-01-17 17:28:43 -08:00
a01c01522c
add date "library". Thanks @WoodyAtHome!
2022-01-17 17:27:59 -08:00
8cc3059744
successful requests - needs sig implementation
2022-01-17 13:45:10 -08:00
a3967b8652
case insensitive header search
2022-01-17 13:44:29 -08:00
2793e1e17b
drone support for versionstep
continuous-integration/drone/push Build is failing
2022-01-12 17:42:54 -08:00
7505d87bf1
implementation of addHeaders
continuous-integration/drone/push Build is failing
2022-01-12 17:22:51 -08:00
9fd6755684
add version info to main output
continuous-integration/drone/push Build is failing
2022-01-12 17:01:37 -08:00
a5b78384f5
build works, c_allocator no longer required
2022-01-12 09:18:16 -08:00
042dfad64b
rename awshttp
2022-01-11 16:55:42 -08:00
eb449eabb0
dig out aws crt. project no longer builds
continuous-integration/drone/push Build is failing
2022-01-10 21:49:59 -08:00
1c41737202
upgrade to zig 0.9.0
continuous-integration/drone/push Build is passing
2022-01-03 08:06:14 -08:00
687880f27e
free requests in demo
2021-09-06 15:48:10 -07:00
d02272d12c
proper path/query support for REST v1
continuous-integration/drone/push Build is passing
2021-09-05 14:33:33 -07:00
c80a65ed50
add ability to have custom stringification
2021-09-05 14:32:52 -07:00
8ec16dbb1d
set signature options to something mostly appropriate (grr S3)
2021-09-02 15:43:02 -07:00
98b0c4127f
add generic dump function - handy for printf debugging
2021-09-02 15:41:14 -07:00
87116cb69e
support requests with bodies/responses without
2021-09-02 15:40:16 -07:00
535205e947
fix query args (http_query is a decl, not a field)
continuous-integration/drone/push Build is passing
2021-09-01 08:58:25 -07:00
3005e07cee
fix servicemodel test
continuous-integration/drone/push Build is failing
2021-09-01 08:27:58 -07:00
c7c5a0233c
switch to comptime array of strings for delete
continuous-integration/drone/push Build is failing
2021-09-01 07:13:42 -07:00
9f58076bac
add service_meta as struct const
continuous-integration/drone/push Build is failing
2021-08-24 17:13:45 -07:00
7f178bcc91
provide ability to handle requests built at runtime
...
continuous-integration/drone/push Build is failing
This commit adds a new interface that is capable of runtime
use. By calling Request(action).call(request, options), the request
object can now be built at runtime. This change also moves the client
object into the options structure. It also moves the metaInfo generated
function to a type-based function rather than requiring an instance for
binding.
2021-08-24 17:02:28 -07:00
866a68777e
teach json parsing about map patterns
continuous-integration/drone/push Build is passing
2021-08-23 13:37:40 -07:00
5c5f23eb26
skip value of field when field is unused (ported in from zig master)
2021-08-23 10:16:22 -07:00
8e853e9a82
rest json v1 basic requests (responses tbd)
...
continuous-integration/drone/push Build is passing
This provides initial implementation with some basic calls
working. Only GET requests have been verified so far.
Http header support missing. POST/PUT might work, but
have not been tested. Currently the demo tests are
failing due to a response deserialization issue that
is still being debugged
2021-08-13 18:12:05 -07:00
17b0ae9551
provide smithy-based json serialization for request data
...
continuous-integration/drone/push Build is passing
This will use the actual structure name or the override
from the trait as needed. Return value support
is also enabled in the code generation but not in
aws.zig. The current fuzzy checks should get most
of the way there though
2021-08-13 10:28:29 -07:00
5c29120a44
initial json 1.1 support
continuous-integration/drone/push Build is passing
2021-08-12 17:51:47 -07:00
f21ce40186
include proper service name and use it
2021-08-12 17:51:07 -07:00
81cc6a8cde
fix query tests by consistently allocating requestid
continuous-integration/drone/push Build is passing
2021-08-12 17:05:30 -07:00
00b2ab3d27
initial support for json 1.0
2021-08-12 14:24:24 -07:00
86751f22e9
adjust type for new casing code
continuous-integration/drone/push Build is passing
2021-07-27 09:40:11 -07:00
34b803c7dc
support for EC2Query protocol requests (response is XML and not yet implemented)
continuous-integration/drone/push Build is failing
2021-07-24 00:25:53 -07:00
93c461fcc0
fix leaked memory on errors due to sentinal on concatenated data
2021-07-24 00:23:58 -07:00
da9eae4876
add headers to returned response
2021-07-24 00:23:06 -07:00
4bca7eba8f
add query string capabilities/move to request object
2021-07-24 00:22:06 -07:00
a97e26477d
support for single word handling in camelCase algo
2021-07-24 00:18:38 -07:00
079677bb2e
set higher branch quota - describeInstances needs plenty
2021-07-24 00:17:39 -07:00
f0fe3bbb94
add ec2 test
2021-07-24 00:17:09 -07:00
dfa0be60b9
update code generation without containing struct
...
continuous-integration/drone/push Build is failing
Instead we will rely here on the implicit struct provided by the file
itself. This means that when the service_manifest.zig import is
assigned, we don't end up with a construct like "manifest.sts.sts" to
get to the sts service. This simplifies greatly the way that
servicemodel.zig needs to behave.
One down side, however, is that the structure does not seem
accessible with the current zig language, making metaInfo unable
to access itself as it did before. Or maybe it can, I just can't find
it. So, this change also adds a new "service_metadata" public constant
with the same declarations being published at the file level, and
that is the new return from the metaInfo function. Our aws.zig
only really needs the action and that metadata, so we're ok with that
even if there is some duplication (we could codegen pointers over, and
maybe should to save a little bit of space).
2021-06-30 13:40:20 -07:00
3c9f91c012
rework servicemodel to avoid comptime_string @import
...
This method was in violation of the accepted proposal
https://github.com/ziglang/zig/issues/2206
and disallowed in the compiler as of adc2aed,
now in 0.8.0.
2021-06-30 09:21:08 -07:00
dcfefa4072
address zig changes in awshttp. zig 15a030ef3 or newer needed
...
There are two recent changes in zig that effect awshttp.
1. cf65ab8 disallows unused variables. Fair enough and backward
compatible.
2. https://github.com/ziglang/zig/issues/2115#issuecomment-827968279
This comment resulted in a backward incompatible change to use the
underlying value from a C enum rather than its symbol. This reduces
edge cases in the compiler. Ultimately we may want awshttp to define
zig enums that mirror the C enums, but for now I've commented the
definitions of the C enums used.
2021-06-30 09:14:28 -07:00
aa5b46c046
move codegen out of src - we will handle differently
2021-06-29 17:10:01 -07:00
7dc8e0e938
get all json tests passing with updated zig 0.9.0 (current master)
...
Key changes:
1. Remove all unused variables (see zig commit cf65ab8)
2. Remove tests requiring other files
3. Specify enum type when providing specific enum values (see zig
commits around 507a8096d)
2021-06-29 14:50:21 -07:00
b2ebc5a621
add snake comparison test
2021-06-23 18:23:56 -07:00
93536aa4ad
make primary executable a more robust integration test harness
2021-06-23 18:23:07 -07:00
06479b8cb7
more useful logging
2021-06-23 18:21:34 -07:00
6f38ecd893
update to new json/url options
2021-06-23 18:20:45 -07:00
77caa626f0
allow parsing of exponential numbers if they resolve to int
2021-06-23 18:18:42 -07:00
c2e2778d77
missing field support (not sure if we will use this)
2021-06-23 18:18:00 -07:00
3d9490de82
fix snake case comparison
...
code in the function required found variable to be a real count
for allocation purposes, but it was originally coded as a flag
instead, which broke any field with more than two underscores
2021-06-23 18:16:54 -07:00
f816c0cbf1
additional url encoding test cases and virtual rewrite of encoder
2021-06-23 18:14:59 -07:00
9c3fcc5a9d
address memory leaks in awshttp
...
There appears to be a leak in json.zig, which had minimal modifications for
snake/camel case, including use of an allocator. It is not obvious that
the leaks were added by these changes, so I will leave this issue for
later investigation.
2021-06-18 14:06:58 -07:00
667c38c8d3
add sentinals so we can work until general purpose allocator
2021-06-18 13:48:31 -07:00
2768c83a0a
switch to general purpose allocator so we can weed out leaks
2021-06-18 13:47:27 -07:00
1050ca5222
update documentation and comments
2021-06-18 13:46:23 -07:00
bd3605e387
support request data in query protocol calls
...
This should complete the query protocol calls. However, there are likely
gaps in implementation for the transformation of request parameters
to url encoded body data
2021-06-14 16:12:55 -07:00
fe7e37b71a
rough out protocol plan
2021-06-12 13:39:26 -07:00
01aa8c8d1a
add http error handling
2021-06-12 13:38:50 -07:00
ad54596837
wire Services through to aws.zig and main demo
2021-06-10 14:35:22 -07:00
7f8ddd3461
set branch quota to allow all services to be processed
2021-06-10 14:23:11 -07:00
f9e6f92026
individual service support - evaluation exceeded 1000 branches
2021-06-10 14:09:22 -07:00
dff03429d9
fix memory leaks/upgrade tests to 0.8.0
2021-06-10 14:05:48 -07:00
e5f5f0e8cd
update code to support compilation with zig 0.8.0
2021-06-09 16:26:42 -07:00
c6dbbf33af
allow different endpoing/sigv4 service names
...
This seems silly, but I guess in AWS it is a thing that these two values may
be different. Consumers of awshttp have the option of ignoring this, which
should be correct most of the time. Aws.zig will, however, use the service
metadata to do the right thing
2021-06-09 16:25:49 -07:00
bd5d509665
update servicemodel for generated model
...
This increases compilation time significantly as all 260+ services
need to be analyzed by zig during compilation. I plan to change
the model from a single "services" constant to a function
that will import only services that plan to be used. This
might be in addition to the single constant to allow
consumers to choose short compile times or all services
support
2021-06-09 16:22:44 -07:00
d7efe72f1b
enable compiling under zig 0.8.0
2021-06-09 16:14:44 -07:00
4a10450e0e
add metadata function
...
This blows up the number of parameters on generateComplexTypeFor
at least this is a private function, but still kinda messay
2021-06-09 16:14:09 -07:00
03ef89a362
use snake case sdk id for member name
...
There is still a bug in snake_case related to double underscores
2021-06-09 16:10:10 -07:00
578058dfc9
remove newline that disagreed with zig fmt
2021-06-09 16:06:30 -07:00
59638df854
add manifest list (remove -s option)
2021-06-03 17:40:47 -07:00
329d732cd5
switch field names to snake_case
2021-06-03 17:39:38 -07:00
c2710be165
move codegen under src/
2021-06-03 17:35:14 -07:00
065fc2c838
remove broken code
2021-06-01 14:49:17 -07:00
b1397d896e
move service model to its own file
...
This will need further refactoring to incorporate genned stuff
2021-05-29 19:33:08 -07:00
a732bc14db
more organization and add some documentation to the awshttp module
2021-05-14 15:12:47 -07:00
05fcc5755e
move http heavy lifting to its own file/reorganize a bit
2021-05-14 12:37:00 -07:00
0727fb5585
remove xml.zig. This may be back later, but currently is unused
2021-05-13 15:55:06 -07:00
1b831cd91d
convert to json - core processing fully generic
2021-05-13 15:53:53 -07:00
da5e58872f
additional option for snake case
...
This will usually be enabled in conjunction with camelCase, to the degree
that maybe this is a bit confused?
2021-05-13 10:56:14 -07:00
1d10ec3e17
only allocate if mutation is neded
2021-05-13 10:10:12 -07:00
dd5ad72b5a
change import to allow embedding json.zig in this project
2021-05-13 10:05:23 -07:00
e76eb45003
allow camel case conversion for json keys
2021-05-13 10:04:01 -07:00
94266582b7
allow unknown struct fields
2021-05-13 09:03:00 -07:00
c24ef3f3b8
allow unknown non-struct fields
2021-05-13 07:56:43 -07:00
0bafc185c8
add json.zig from std lib. Commit e6881d4373ce355f3f4565c22c125870ed8fcfc8
2021-05-12 17:20:36 -07:00
d3efa21a41
first thing that actually works
2021-04-27 11:24:01 -07:00