public void WriteContextMembers(IndentedTextWriter writer, string contextVar, SimplePropertyInfo spi, Param paramCustomization) { string contextMember = string.Format("{0}.{1}", contextVar, spi.CmdletParameterName); writer.WriteLine("if (this.StandardStorage.IsPresent)"); writer.OpenRegion(); { writer.WriteLine("{0} = S3StorageClass.Standard;", contextMember); } writer.CloseRegion(); writer.WriteLine("else if (this.ReducedRedundancyStorage.IsPresent)"); writer.OpenRegion(); { writer.WriteLine("{0} = S3StorageClass.ReducedRedundancy;", contextMember); } writer.CloseRegion(); writer.WriteLine(); }
public void WriteContextMembers(IndentedTextWriter writer, string contextVar, SimplePropertyInfo spi, Param paramCustomization) { var contextMember = string.Format("{0}.{1}", contextVar, spi.CmdletParameterName); writer.WriteLine("if (this.{0} != null)", spi.CmdletParameterName); writer.OpenRegion(); writer.WriteLine("{0} = AmazonEC2Helper.InstanceParamToIDs(this.{1});", contextMember, spi.CmdletParameterName); writer.CloseRegion(); writer.WriteLine(); }
public void WriteContextMembers(IndentedTextWriter writer, string contextVar, SimplePropertyInfo spi, Param paramCustomization) { string contextMember = string.Format("{0}.{1}", contextVar, spi.CmdletParameterName); writer.WriteLine("if (!string.IsNullOrEmpty(this.{0}))", spi.CmdletParameterName); writer.OpenRegion(); { writer.WriteLine("try"); writer.OpenRegion(); { writer.WriteLine("{0} = (HttpVerb)Enum.Parse(typeof(HttpVerb), this.{1}, true);", contextMember, spi.CmdletParameterName); } writer.CloseRegion(); writer.WriteLine("catch (ArgumentException e)"); writer.OpenRegion(); { writer.WriteLine("string errMsg = \"Invalid parameter value; allowable values: \" + string.Join(\", \", Enum.GetNames(typeof(HttpVerb)));"); writer.WriteLine("this.ThrowArgumentError(errMsg, this.{0}, e);", spi.CmdletParameterName); } writer.CloseRegion(); } writer.CloseRegion(); writer.WriteLine(); }
/// <summary> /// Generate the source file for the abstract base 'client' class that the service operation cmdlets will /// derive from, supplying them with the service client and default region handling, if any. /// </summary> /// <param name="writer"></param> /// <param name="serviceConfig"></param> /// <param name="clientName"></param> /// <param name="serviceApiVersion"></param> public static void Write(IndentedTextWriter writer, ConfigModel serviceConfig, string clientName, string serviceApiVersion) { WriteSourceLicenseHeader(writer); WriteNamespaces(writer, serviceConfig.ServiceNamespace); writer.WriteLine(); var prefix = serviceConfig.ServiceNounPrefix; writer.WriteLine("namespace Amazon.PowerShell.Cmdlets.{0}", prefix); writer.OpenRegion(); { WriteServiceCmdletClass(writer, serviceConfig, clientName, prefix, serviceApiVersion, false); if (serviceConfig.RequiresAnonymousServiceCmdletClass) { writer.WriteLine(); WriteServiceCmdletClass(writer, serviceConfig, clientName, prefix, serviceApiVersion, true); } } writer.CloseRegion(); }
private static void WriteServiceCmdletClass(IndentedTextWriter writer, ConfigModel serviceConfig, string clientName, string prefix, string serviceApiVersion, bool useAnonymousServiceCmdletBase) { var serviceCmdletBaseClass = useAnonymousServiceCmdletBase ? AnonymousServiceCmdletBaseClassName : AuthenticatedServiceCmdletBaseClassName; var serviceCmdletClass = serviceConfig.GetServiceCmdletClassName(useAnonymousServiceCmdletBase); writer.WriteLine("[AWSClientCmdlet(\"{0}\", \"{1}\", \"{2}\", \"{3}\")]", clientName, prefix, serviceApiVersion, serviceConfig.AssemblyName); writer.WriteLine("public abstract partial class {0}Cmdlet : {1}", serviceCmdletClass, serviceCmdletBaseClass); writer.OpenRegion(); { writer.WriteLine("protected {0} Client {{ get; private set; }}", serviceConfig.ServiceClientInterface); if (!string.IsNullOrEmpty(serviceConfig.DefaultRegion)) { writer.WriteLine("protected override string _DefaultRegion"); writer.OpenRegion(); { writer.WriteLine("get"); writer.OpenRegion(); { writer.WriteLine("return \"{0}\";", serviceConfig.DefaultRegion); } writer.CloseRegion(); } writer.CloseRegion(); } if (useAnonymousServiceCmdletBase) { writer.WriteLine("protected {0} CreateClient(RegionEndpoint region)", serviceConfig.ServiceClientInterface); } else { writer.WriteLine("protected {0} CreateClient(AWSCredentials credentials, RegionEndpoint region)", serviceConfig.ServiceClientInterface); } writer.OpenRegion(); { writer.WriteLine("var config = new {0} {{ RegionEndpoint = region }};", serviceConfig.ServiceClientConfig); writer.WriteLine("Amazon.PowerShell.Utils.Common.PopulateConfig(this, config);"); writer.WriteLine("this.CustomizeClientConfig(config);"); if (useAnonymousServiceCmdletBase) { writer.WriteLine("var client = new {0}(new AnonymousAWSCredentials(), config);", serviceConfig.ServiceClient); } else { writer.WriteLine("var client = new {0}(credentials, config);", serviceConfig.ServiceClient); } writer.WriteLine("client.BeforeRequestEvent += RequestEventHandler;"); writer.WriteLine("client.AfterResponseEvent += ResponseEventHandler;"); writer.WriteLine("return client;"); } writer.CloseRegion(); writer.WriteLine(); writer.WriteLine("protected override void ProcessRecord()"); writer.OpenRegion(); { writer.WriteLine("base.ProcessRecord();"); writer.WriteLine(); if (useAnonymousServiceCmdletBase) { writer.WriteLine("Client = CreateClient(_RegionEndpoint);"); } else { writer.WriteLine("Client = CreateClient(_CurrentCredentials, _RegionEndpoint);"); } } writer.CloseRegion(); } writer.CloseRegion(); }