upgrade smithy to 4187d899 (enables optional service version)
This commit is contained in:
parent
57a7cf3190
commit
c6a1bb2418
4 changed files with 19 additions and 13 deletions
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
.dependencies = .{
|
.dependencies = .{
|
||||||
.smithy = .{
|
.smithy = .{
|
||||||
.url = "https://git.lerch.org/lobo/smithy/archive/a4c6ec6dfe552c57bab601c7d99e8de02bbab1fe.tar.gz",
|
.url = "https://git.lerch.org/lobo/smithy/archive/4187d8995112bfa2a071ea04f27a1da7c2259aab.tar.gz",
|
||||||
.hash = "smithy-1.0.0-uAyBgS_MAgC4qgc9QaEy5Y5Nf7kv32buQZBYugqNQsAn",
|
.hash = "smithy-1.0.0-uAyBgXrRAgB7bdZwFdSwAVSzfmXSu_DZyjh0MlQUdinw",
|
||||||
},
|
},
|
||||||
.models = .{
|
.models = .{
|
||||||
.url = "https://github.com/aws/aws-sdk-go-v2/archive/58cf6509525a12d64fd826da883bfdbacbd2f00e.tar.gz",
|
.url = "https://github.com/aws/aws-sdk-go-v2/archive/58cf6509525a12d64fd826da883bfdbacbd2f00e.tar.gz",
|
||||||
|
|
|
@ -373,7 +373,7 @@ fn generateServices(allocator: std.mem.Allocator, comptime _: []const u8, file:
|
||||||
};
|
};
|
||||||
for (services.items) |service| {
|
for (services.items) |service| {
|
||||||
var sdk_id: []const u8 = undefined;
|
var sdk_id: []const u8 = undefined;
|
||||||
const version: []const u8 = service.shape.service.version;
|
const version: ?[]const u8 = service.shape.service.version;
|
||||||
const name: []const u8 = service.name;
|
const name: []const u8 = service.name;
|
||||||
var arn_namespace: ?[]const u8 = undefined;
|
var arn_namespace: ?[]const u8 = undefined;
|
||||||
var sigv4_name: ?[]const u8 = null;
|
var sigv4_name: ?[]const u8 = null;
|
||||||
|
@ -404,7 +404,10 @@ fn generateServices(allocator: std.mem.Allocator, comptime _: []const u8, file:
|
||||||
const constant_name = try constantName(allocator, sdk_id);
|
const constant_name = try constantName(allocator, sdk_id);
|
||||||
try constant_names.append(constant_name);
|
try constant_names.append(constant_name);
|
||||||
try writer.print("const Self = @This();\n", .{});
|
try writer.print("const Self = @This();\n", .{});
|
||||||
try writer.print("pub const version: []const u8 = \"{s}\";\n", .{version});
|
if (version) |v|
|
||||||
|
try writer.print("pub const version: ?[]const u8 = \"{s}\";\n", .{v})
|
||||||
|
else
|
||||||
|
try writer.print("pub const version: ?[]const u8 = null;\n", .{});
|
||||||
try writer.print("pub const sdk_id: []const u8 = \"{s}\";\n", .{sdk_id});
|
try writer.print("pub const sdk_id: []const u8 = \"{s}\";\n", .{sdk_id});
|
||||||
if (arn_namespace) |a| {
|
if (arn_namespace) |a| {
|
||||||
try writer.print("pub const arn_namespace: ?[]const u8 = \"{s}\";\n", .{a});
|
try writer.print("pub const arn_namespace: ?[]const u8 = \"{s}\";\n", .{a});
|
||||||
|
@ -415,7 +418,10 @@ fn generateServices(allocator: std.mem.Allocator, comptime _: []const u8, file:
|
||||||
// TODO: This really should just be ".whatevs". We're fully qualifying here, which isn't typical
|
// TODO: This really should just be ".whatevs". We're fully qualifying here, which isn't typical
|
||||||
try writer.print("pub const aws_protocol: smithy.AwsProtocol = {};\n\n", .{aws_protocol});
|
try writer.print("pub const aws_protocol: smithy.AwsProtocol = {};\n\n", .{aws_protocol});
|
||||||
_ = try writer.write("pub const service_metadata: struct {\n");
|
_ = try writer.write("pub const service_metadata: struct {\n");
|
||||||
try writer.print(" version: []const u8 = \"{s}\",\n", .{version});
|
if (version) |v|
|
||||||
|
try writer.print(" version: ?[]const u8 = \"{s}\",\n", .{v})
|
||||||
|
else
|
||||||
|
try writer.print(" version: ?[]const u8 = null,\n", .{});
|
||||||
try writer.print(" sdk_id: []const u8 = \"{s}\",\n", .{sdk_id});
|
try writer.print(" sdk_id: []const u8 = \"{s}\",\n", .{sdk_id});
|
||||||
if (arn_namespace) |a| {
|
if (arn_namespace) |a| {
|
||||||
try writer.print(" arn_namespace: ?[]const u8 = \"{s}\",\n", .{a});
|
try writer.print(" arn_namespace: ?[]const u8 = \"{s}\",\n", .{a});
|
||||||
|
|
10
src/aws.zig
10
src/aws.zig
|
@ -157,7 +157,7 @@ pub fn Request(comptime request_action: anytype) type {
|
||||||
// every codegenned request object includes a metaInfo function to get
|
// every codegenned request object includes a metaInfo function to get
|
||||||
// pointers to service and action
|
// pointers to service and action
|
||||||
|
|
||||||
log.debug("call: prefix {s}, sigv4 {s}, version {s}, action {s}", .{
|
log.debug("call: prefix {s}, sigv4 {s}, version {?s}, action {s}", .{
|
||||||
Self.service_meta.endpoint_prefix,
|
Self.service_meta.endpoint_prefix,
|
||||||
Self.service_meta.sigv4_name,
|
Self.service_meta.sigv4_name,
|
||||||
Self.service_meta.version,
|
Self.service_meta.version,
|
||||||
|
@ -274,8 +274,8 @@ pub fn Request(comptime request_action: anytype) type {
|
||||||
const attrs = try std.fmt.allocPrint(
|
const attrs = try std.fmt.allocPrint(
|
||||||
options.client.allocator,
|
options.client.allocator,
|
||||||
"xmlns=\"http://{s}.amazonaws.com/doc/{s}/\"",
|
"xmlns=\"http://{s}.amazonaws.com/doc/{s}/\"",
|
||||||
.{ sm.endpoint_prefix, sm.version },
|
.{ sm.endpoint_prefix, sm.version.? },
|
||||||
);
|
); // Version required for the protocol, we should panic if it is not present
|
||||||
defer options.client.allocator.free(attrs); // once serialized, the value should be copied over
|
defer options.client.allocator.free(attrs); // once serialized, the value should be copied over
|
||||||
|
|
||||||
// Need to serialize this
|
// Need to serialize this
|
||||||
|
@ -366,7 +366,7 @@ pub fn Request(comptime request_action: anytype) type {
|
||||||
else // EC2
|
else // EC2
|
||||||
try std.fmt.allocPrint(options.client.allocator, "?Action={s}&Version={s}", .{
|
try std.fmt.allocPrint(options.client.allocator, "?Action={s}&Version={s}", .{
|
||||||
action.action_name,
|
action.action_name,
|
||||||
Self.service_meta.version,
|
Self.service_meta.version.?, // Version required for the protocol, we should panic if it is not present
|
||||||
});
|
});
|
||||||
|
|
||||||
defer if (Self.service_meta.aws_protocol != .query) {
|
defer if (Self.service_meta.aws_protocol != .query) {
|
||||||
|
@ -379,7 +379,7 @@ pub fn Request(comptime request_action: anytype) type {
|
||||||
const body =
|
const body =
|
||||||
try std.fmt.allocPrint(options.client.allocator, "Action={s}&Version={s}{s}{s}", .{
|
try std.fmt.allocPrint(options.client.allocator, "Action={s}&Version={s}{s}{s}", .{
|
||||||
action.action_name,
|
action.action_name,
|
||||||
Self.service_meta.version,
|
Self.service_meta.version.?, // Version required for the protocol, we should panic if it is not present
|
||||||
continuation,
|
continuation,
|
||||||
buffer.items,
|
buffer.items,
|
||||||
});
|
});
|
||||||
|
|
|
@ -39,7 +39,7 @@ fn serviceCount(desired_services: anytype) usize {
|
||||||
pub const services = service_list;
|
pub const services = service_list;
|
||||||
|
|
||||||
test "services includes sts" {
|
test "services includes sts" {
|
||||||
try expectEqualStrings("2011-06-15", services.sts.version);
|
try expectEqualStrings("2011-06-15", services.sts.version.?);
|
||||||
}
|
}
|
||||||
test "sts includes get_caller_identity" {
|
test "sts includes get_caller_identity" {
|
||||||
try expectEqualStrings("GetCallerIdentity", services.sts.get_caller_identity.action_name);
|
try expectEqualStrings("GetCallerIdentity", services.sts.get_caller_identity.action_name);
|
||||||
|
@ -47,9 +47,9 @@ test "sts includes get_caller_identity" {
|
||||||
test "can get service and action name from request" {
|
test "can get service and action name from request" {
|
||||||
// get request object. This call doesn't have parameters
|
// get request object. This call doesn't have parameters
|
||||||
const metadata = services.sts.get_caller_identity.Request.metaInfo();
|
const metadata = services.sts.get_caller_identity.Request.metaInfo();
|
||||||
try expectEqualStrings("2011-06-15", metadata.service_metadata.version);
|
try expectEqualStrings("2011-06-15", metadata.service_metadata.version.?);
|
||||||
}
|
}
|
||||||
test "can filter services" {
|
test "can filter services" {
|
||||||
const filtered_services = Services(.{ .sts, .wafv2 }){};
|
const filtered_services = Services(.{ .sts, .wafv2 }){};
|
||||||
try expectEqualStrings("2011-06-15", filtered_services.sts.version);
|
try expectEqualStrings("2011-06-15", filtered_services.sts.version.?);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue