public void WriteParams(IndentedTextWriter writer, OperationAnalyzer analyzer, SimplePropertyInfo spi, Param paramCustomization) { // replace the enum type with a string param instead and convert to enum member on execution writer.WriteLine("/// <summary>"); writer.WriteLine("/// Specifies the HTTP verb to be used. The allowable verbs are GET, PUT, HEAD and DELETE."); writer.WriteLine("/// Not all verbs may be accepted by the service operation; check service documentation for details."); writer.WriteLine("/// If not specified, the default verb is GET."); writer.WriteLine("/// </summary>"); if (spi.IsRecursivelyRequired && spi.DefaultValue == null) { writer.WriteLine("#if !MODULAR"); writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]"); writer.WriteLine("#else"); writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]"); if (spi.PropertyType == typeof(string)) { writer.WriteLine("[System.Management.Automation.AllowEmptyString]"); } writer.WriteLine("#endif"); writer.WriteLine("[Amazon.PowerShell.Common.AWSRequiredParameter]"); } else { writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]"); } writer.WriteLine("public String {0} {{ get; set; }}", spi.CmdletParameterName); }
public void WriteParams(IndentedTextWriter writer, OperationAnalyzer analyzer, SimplePropertyInfo spi, Param param) { writer.WriteLine(DocumentationUtils.CommentDocumentation(spi.MemberDocumentation /*FlattenedDocumentation*/)); CmdletSourceWriter.WriteParamAttribute(writer, analyzer, spi, param); CmdletSourceWriter.WriteParamAliases(writer, analyzer, spi); writer.WriteLine("public object[] {0} {{ get; set; }}", spi.CmdletParameterName); }
public void WriteParams(IndentedTextWriter writer, OperationAnalyzer analyzer, SimplePropertyInfo spi, Param paramCustomization) { // replace the enum type with a string param instead and convert to enum member on execution writer.WriteLine("/// <summary>"); writer.WriteLine("/// Specifies the protocol that will be used. Allowable values are 'HTTP' and 'HTTPS'."); writer.WriteLine("/// </summary>"); if (spi.IsRecursivelyRequired && spi.DefaultValue == null) { writer.WriteLine("#if !MODULAR"); writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]"); writer.WriteLine("#else"); writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]"); if (spi.PropertyType == typeof(string)) { writer.WriteLine("[System.Management.Automation.AllowEmptyString]"); } writer.WriteLine("#endif"); writer.WriteLine("[Amazon.PowerShell.Common.AWSRequiredParameter]"); } else { writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]"); } writer.WriteLine("public String {0} {{ get; set; }}", spi.CmdletParameterName); }
private void RegisterAnalyzer(OperationBlockStartAnalysisContext context, CompilationSecurityTypes types, Version frameworkVersion) { var analyzer = new OperationAnalyzer(types, frameworkVersion); context.RegisterOperationAction( analyzer.AnalyzeOperation, OperationKind.InvocationExpression, OperationKind.AssignmentExpression, OperationKind.VariableDeclaration, OperationKind.ObjectCreationExpression, OperationKind.FieldInitializerAtDeclaration ); context.RegisterOperationBlockEndAction( analyzer.AnalyzeOperationBlock ); }
private void RegisterAnalyzer(OperationBlockStartAnalysisContext context, CompilationSecurityTypes types, Version frameworkVersion) { var analyzer = new OperationAnalyzer(types, frameworkVersion); context.RegisterOperationAction( analyzer.AnalyzeOperation, OperationKind.Invocation, OperationKind.SimpleAssignment, OperationKind.VariableDeclaration, OperationKind.ObjectCreation, OperationKind.FieldInitializer ); context.RegisterOperationBlockEndAction( analyzer.AnalyzeOperationBlock ); }
private static string GetReturnTypeComment(OperationAnalyzer operationAnalyzer) { var returnType = operationAnalyzer.ReturnType; if (returnType != null) { var allOutputProperties = returnType .GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance) .ToArray(); var returnTypeFields = ""; if (returnType.Namespace.StartsWith("Amazon.") && allOutputProperties.Any()) { returnTypeFields = $" {{{Environment.NewLine} {string.Join($";{Environment.NewLine} ", allOutputProperties.Select(property => $"{OperationAnalyzer.FormatTypeName(property.PropertyType)} {property.Name}"))} }}"; } return($"Operation result type: {OperationAnalyzer.FormatTypeName(returnType)}{returnTypeFields}."); } return(null); }
public void WriteParams(IndentedTextWriter writer, OperationAnalyzer analyzer, SimplePropertyInfo spi, ServiceConfig.Param param) { // for S3StorageClass, we replace the enum type with two string switches instead writer.WriteLine("/// <summary>"); writer.WriteLine("/// Specifies the STANDARD storage class, which is the default storage class for S3 objects."); writer.WriteLine("/// Provides a 99.999999999% durability guarantee."); writer.WriteLine("/// </summary>"); writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]"); writer.WriteLine("public SwitchParameter StandardStorage { get; set; }"); writer.WriteLine(); writer.WriteLine("/// <summary>"); writer.WriteLine("/// Specifies S3 should use REDUCED_REDUNDANCY storage class for the object. This"); writer.WriteLine("/// provides a reduced (99.99%) durability guarantee at a lower"); writer.WriteLine("/// cost as compared to the STANDARD storage class. Use this"); writer.WriteLine("/// storage class for non-mission critical data or for data"); writer.WriteLine("/// that doesn’t require the higher level of durability that S3"); writer.WriteLine("/// provides with the STANDARD storage class."); writer.WriteLine("/// </summary>"); writer.WriteLine("[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]"); writer.WriteLine("public SwitchParameter ReducedRedundancyStorage { get; set; }"); }
private static string GetParameterCommentForReport(Generators.SimplePropertyInfo property, OperationAnalyzer operationAnalyzer) { var comment = new StringBuilder(); comment.Append($" {property.PropertyTypeName} {property.AnalyzedName}"); if (property.AnalyzedName != property.CmdletParameterName) { comment.Append($" as {property.CmdletParameterName}"); var aliases = operationAnalyzer.GetAllParameterAliases(property); if (aliases.Any()) { comment.Append($" (aliases: {string.Join(", ", aliases)})"); } } if (property.IsRecursivelyRequired) { comment.Append(" [required]"); } return(comment.ToString()); }