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 = .{ | ||||
|         .smithy = .{ | ||||
|             .url = "https://git.lerch.org/lobo/smithy/archive/a4c6ec6dfe552c57bab601c7d99e8de02bbab1fe.tar.gz", | ||||
|             .hash = "smithy-1.0.0-uAyBgS_MAgC4qgc9QaEy5Y5Nf7kv32buQZBYugqNQsAn", | ||||
|             .url = "https://git.lerch.org/lobo/smithy/archive/4187d8995112bfa2a071ea04f27a1da7c2259aab.tar.gz", | ||||
|             .hash = "smithy-1.0.0-uAyBgXrRAgB7bdZwFdSwAVSzfmXSu_DZyjh0MlQUdinw", | ||||
|         }, | ||||
|         .models = .{ | ||||
|             .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| { | ||||
|         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; | ||||
|         var arn_namespace: ?[]const u8 = undefined; | ||||
|         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); | ||||
|         try constant_names.append(constant_name); | ||||
|         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}); | ||||
|         if (arn_namespace) |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 | ||||
|         try writer.print("pub const aws_protocol: smithy.AwsProtocol = {};\n\n", .{aws_protocol}); | ||||
|         _ = 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}); | ||||
|         if (arn_namespace) |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 | ||||
|             // 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.sigv4_name, | ||||
|                 Self.service_meta.version, | ||||
|  | @ -274,8 +274,8 @@ pub fn Request(comptime request_action: anytype) type { | |||
|                             const attrs = try std.fmt.allocPrint( | ||||
|                                 options.client.allocator, | ||||
|                                 "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 | ||||
| 
 | ||||
|                             // Need to serialize this | ||||
|  | @ -366,7 +366,7 @@ pub fn Request(comptime request_action: anytype) type { | |||
|             else // EC2 | ||||
|                 try std.fmt.allocPrint(options.client.allocator, "?Action={s}&Version={s}", .{ | ||||
|                     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) { | ||||
|  | @ -379,7 +379,7 @@ pub fn Request(comptime request_action: anytype) type { | |||
|             const body = | ||||
|                 try std.fmt.allocPrint(options.client.allocator, "Action={s}&Version={s}{s}{s}", .{ | ||||
|                     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, | ||||
|                     buffer.items, | ||||
|                 }); | ||||
|  |  | |||
|  | @ -39,7 +39,7 @@ fn serviceCount(desired_services: anytype) usize { | |||
| pub const services = service_list; | ||||
| 
 | ||||
| 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" { | ||||
|     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" { | ||||
|     // get request object. This call doesn't have parameters | ||||
|     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" { | ||||
|     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