// ------------------------------------------------------------------------------
// <auto-generated>
//     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.
// </auto-generated>
// ------------------------------------------------------------------------------
namespace ServiceClientGenerator.Generators.Endpoints
{
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;
    using System;
    
    /// <summary>
    /// Class to produce the template output
    /// </summary>
    
    #line 1 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
    public partial class EndpointParameters : BaseGenerator
    {
#line hidden
        /// <summary>
        /// Create the template output
        /// </summary>
        public override string TransformText()
        {
            
            #line 6 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"

    AddLicenseHeader();

            
            #line default
            #line hidden
            this.Write("\r\nusing Amazon.Runtime;\r\nusing Amazon.Runtime.Endpoints;\r\n\r\nnamespace ");
            
            #line 13 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
            
            #line default
            #line hidden
            this.Write(".Endpoints\r\n{\r\n    /// <summary>\r\n    /// Contains parameters used for resolving " +
                    "");
            
            #line 16 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
            
            #line default
            #line hidden
            this.Write(" endpoints\r\n    /// Parameters can be sourced from client config and service oper" +
                    "ations\r\n    /// Used by internal ");
            
            #line 18 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
            
            #line default
            #line hidden
            this.Write("EndpointProvider and ");
            
            #line 18 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(Config.ClassName));
            
            #line default
            #line hidden
            this.Write("EndpointResolver\r\n    /// Can be used by custom EndpointProvider, see ClientConfi" +
                    "g.EndpointProvider\r\n    /// </summary>\r\n    public class ");
            
            #line 21 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
            
            #line default
            #line hidden
            this.Write("EndpointParameters : EndpointParameters\r\n    {\r\n        /// <summary>\r\n        //" +
                    "/ ");
            
            #line 24 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
            
            #line default
            #line hidden
            this.Write("EndpointParameters constructor\r\n        /// </summary>\r\n        public ");
            
            #line 26 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
            
            #line default
            #line hidden
            this.Write("EndpointParameters()\r\n        {\r\n");
            
            #line 28 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
 foreach(var param in this.Config.EndpointsRuleSet.parameters) {
       if (param.Value.DefaultValue != null) {

            
            #line default
            #line hidden
            this.Write("            ");
            
            #line 31 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(param.Key));
            
            #line default
            #line hidden
            this.Write(" = ");
            
            #line 31 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(param.Value.DefaultValue));
            
            #line default
            #line hidden
            this.Write(";\r\n");
            
            #line 32 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
     }
   } 
            
            #line default
            #line hidden
            this.Write("        }\r\n");
            
            #line 35 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
 foreach(var param in this.Config.EndpointsRuleSet.parameters) {
        var paramType = param.Value.type.ToNativeType(true);
        var paramName = param.Key;

            
            #line default
            #line hidden
            this.Write("\r\n        /// <summary>\r\n        /// ");
            
            #line 41 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(param.Key));
            
            #line default
            #line hidden
            this.Write(" parameter\r\n        /// </summary>\r\n");
            
            #line 43 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
 if (param.Value.deprecated != null) { 
        var message = $@"{param.Value.deprecated.message}";
        if (param.Value.deprecated.since != null)
        {
            message = $@"Deprecated since {param.Value.deprecated.since}. " + message;
        }

            
            #line default
            #line hidden
            this.Write("        [Obsolete(\"");
            
            #line 50 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(message));
            
            #line default
            #line hidden
            this.Write("\")]\r\n");
            
            #line 51 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
 } 
            
            #line default
            #line hidden
            this.Write("        public ");
            
            #line 52 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(paramType));
            
            #line default
            #line hidden
            this.Write(" ");
            
            #line 52 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(paramName));
            
            #line default
            #line hidden
            this.Write(" \r\n        { \r\n            get { return (");
            
            #line 54 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(paramType));
            
            #line default
            #line hidden
            this.Write(")this[\"");
            
            #line 54 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(paramName));
            
            #line default
            #line hidden
            this.Write("\"]; }\r\n            set { this[\"");
            
            #line 55 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(paramName));
            
            #line default
            #line hidden
            this.Write("\"] = value; } \r\n        }\r\n");
            
            #line 57 "C:\Projects\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Endpoints\EndpointParameters.tt"
 } 
            
            #line default
            #line hidden
            this.Write("    }\r\n}");
            return this.GenerationEnvironment.ToString();
        }
    }
    
    #line default
    #line hidden
}