Commit Graph

166 Commits

Author SHA1 Message Date
9f58076bac
add service_meta as struct const
Some checks failed
continuous-integration/drone/push Build is failing
2021-08-24 17:13:45 -07:00
7f178bcc91
provide ability to handle requests built at runtime
Some checks failed
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
All checks were successful
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)
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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)
Some checks failed
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
Some checks failed
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