// ------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version: 17.0.0.0 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace ServiceClientGenerator.Generators.Endpoints { using System.Linq; using System.Text; using System.Collections.Generic; using ServiceClientGenerator.Endpoints; using System; /// /// Class to produce the template output /// #line 1 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")] public partial class EndpointResolver : BaseGenerator { #line hidden /// /// Create the template output /// public override string TransformText() { #line 7 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" AddLicenseHeader(); #line default #line hidden this.Write("\r\nusing System;\r\nusing Amazon."); #line 12 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Config.ServiceNameRoot)); #line default #line hidden this.Write(".Model;\r\nusing Amazon.Runtime;\r\nusing Amazon.Runtime.Internal;\r\nusing Amazon.Runt" + "ime.Endpoints;\r\nusing Amazon.Util;\r\nusing "); #line 17 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Config.Namespace)); #line default #line hidden this.Write(".Endpoints;\r\n\r\n#pragma warning disable 1591\r\n\r\nnamespace "); #line 21 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Config.Namespace)); #line default #line hidden this.Write(".Internal\r\n{\r\n /// \r\n /// Amazon "); #line 24 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName)); #line default #line hidden this.Write(" endpoint resolver.\r\n /// Custom PipelineHandler responsible for resolving end" + "point and setting authentication parameters for "); #line 25 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName)); #line default #line hidden this.Write(" service requests.\r\n /// Collects values for "); #line 26 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName)); #line default #line hidden this.Write("EndpointParameters and then tries to resolve endpoint by calling \r\n /// Resolv" + "eEndpoint method on GlobalEndpoints.Provider if present, otherwise uses "); #line 27 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName)); #line default #line hidden this.Write("EndpointProvider.\r\n /// Responsible for setting authentication and http header" + "s provided by resolved endpoint.\r\n /// \r\n public class Amazon"); #line 30 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Config.ClassName)); #line default #line hidden this.Write("EndpointResolver : BaseEndpointResolver\r\n {\r\n protected override void S" + "erviceSpecificHandler(IExecutionContext executionContext, EndpointParameters par" + "ameters)\r\n {\r\n"); #line 34 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" if (Config.ServiceId == "S3") { #line default #line hidden this.Write(@" // Special handling of SigV2 for S3 if (parameters[""Bucket""] != null) { // SigV2 support, CanonicalResourcePrefix required for proper signing executionContext.RequestContext.Request.CanonicalResourcePrefix = ""/"" + parameters[""Bucket""]; } // Special handling of SigV2 if (executionContext.RequestContext.ClientConfig.SignatureVersion == ""2"") { executionContext.RequestContext.Request.SignatureVersion = SignatureVersion.SigV2; } // If the marshalled request has the SSE header and it is set to KMS, force SigV4 for this request. // Current operations that may set this header: CopyObject, CopyPart, InitiateMultipart, PutObject string sseHeaderValue; if (executionContext.RequestContext.Request.Headers.TryGetValue(HeaderKeys.XAmzServerSideEncryptionHeader, out sseHeaderValue) && (string.Equals(sseHeaderValue, ServerSideEncryptionMethod.AWSKMS.Value, StringComparison.Ordinal) || string.Equals(sseHeaderValue, ServerSideEncryptionMethod.AWSKMSDSSE.Value, StringComparison.Ordinal))) { executionContext.RequestContext.Request.SignatureVersion = SignatureVersion.SigV4; } "); #line 56 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" } #line default #line hidden this.Write("\r\n"); #line 58 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" if (!this.dontInjectHostPrefixForServices.Contains(Config.ServiceId)) { #line default #line hidden this.Write(" InjectHostPrefix(executionContext.RequestContext);\r\n"); #line 60 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" } #line default #line hidden this.Write(" }\r\n\r\n protected override EndpointParameters MapEndpointsParameters" + "(IRequestContext requestContext)\r\n {\r\n var config = (Amazon"); #line 65 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Config.ClassName)); #line default #line hidden this.Write("Config)requestContext.ClientConfig;\r\n var result = new "); #line 66 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Config.ClassName)); #line default #line hidden this.Write("EndpointParameters();\r\n"); #line 67 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.AssignBuiltins())); #line default #line hidden this.Write("\r\n"); #line 68 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.AssignClientContext())); #line default #line hidden this.Write("\r\n"); #line 69 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" if (Config.EndpointsRuleSet.parameters.ContainsKey("Region")) { #line default #line hidden this.Write(@" // The region needs to be determined from the ServiceURL if not set. var regionEndpoint = config.RegionEndpoint; if (regionEndpoint == null && !string.IsNullOrEmpty(config.ServiceURL)) { var regionName = AWSSDKUtils.DetermineRegion(config.ServiceURL); result.Region = RegionEndpoint.GetBySystemName(regionName).SystemName; } // To support legacy endpoint overridding rules in the endpoints.json if (result.Region == ""us-east-1-regional"") { result.Region = ""us-east-1""; } // Use AlternateEndpoint region override if set if (requestContext.Request.AlternateEndpoint != null) { result.Region = requestContext.Request.AlternateEndpoint.SystemName; } "); #line 90 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" } #line default #line hidden #line 91 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" if (Config.ClassName == "S3") { #line default #line hidden this.Write(@" // Special handling of GetPreSignedUrlRequest if (requestContext.Request.RequestName == ""GetPreSignedUrlRequest"") { var request = (GetPreSignedUrlRequest)requestContext.Request.OriginalRequest; result.Bucket = request.BucketName; return result; } "); #line 99 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" } #line default #line hidden this.Write("\r\n // Assign staticContextParams and contextParam per operation\r\n"); #line 102 "C:\Dev\Repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointResolver.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.AssignOperationContext())); #line default #line hidden this.Write("\r\n return result;\r\n }\r\n }\r\n}"); return this.GenerationEnvironment.ToString(); } } #line default #line hidden }