4b7985384c
* Add test case * Fix tests * Add test dependencies correctly * Feed through error handling * Include test output * Get types to line up * Add remaining test files * Update changelog * Correctly find type paths * Handle transitive objects * Handle required fields * Add feature flag for go * Add required+default test case * Don't `<any>` cast known types. * Add more flags. I realize this should really wait for PR#8400 to merge. * Add plain object to env-helper test This test fails right now. My next problem is fixing it. * Handle plain types * Handle function inputs * Fix the indentation * Handle output types correctly * Remove unnecessary `!` * Add test case * Fix tests * Add test dependencies correctly * Feed through error handling * Include test output * Get types to line up * Add remaining test files * Update changelog * Correctly find type paths * Handle transitive objects * Handle required fields * Add required+default test case * Don't `<any>` cast known types. * Add plain object to env-helper test This test fails right now. My next problem is fixing it. * Handle plain types * Handle function inputs * Fix the indentation * Handle output types correctly * Remove unnecessary `!` * Start on `genPlainObjectDefaultFunc` * Add missing change to fix test * Run tests with merge * Refactor out assign * Merge in next _index.md diff * Change method name to `Defaults` * Handle enums correctly * Another attempt at _index.md * Make module generation deterministic * Add checks for old values * Insert defaults in resources * Fix docs generation Credit to @praneetloke * Progress on adding defaults to Resource arguments * Handle resource argument defaults * Don't create defaults if disableObjectDefaults * Rename test folder * Add test for disable flag * Fix disable test * Update docs * Abstract out nil comparisons * Use reflection to test for empty values * Simplify Ptr and pulumi.Any type handling * Remove unused function * Apply defaults to functions * Update new test with master codegen * Tests + nil check
88 lines
2.7 KiB
C#
88 lines
2.7 KiB
C#
// *** WARNING: this file was generated by test. ***
|
|
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
|
|
using System;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using Pulumi;
|
|
|
|
namespace Pulumi.Example
|
|
{
|
|
static class Utilities
|
|
{
|
|
public static string? GetEnv(params string[] names)
|
|
{
|
|
foreach (var n in names)
|
|
{
|
|
var value = Environment.GetEnvironmentVariable(n);
|
|
if (value != null)
|
|
{
|
|
return value;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static string[] trueValues = { "1", "t", "T", "true", "TRUE", "True" };
|
|
static string[] falseValues = { "0", "f", "F", "false", "FALSE", "False" };
|
|
public static bool? GetEnvBoolean(params string[] names)
|
|
{
|
|
var s = GetEnv(names);
|
|
if (s != null)
|
|
{
|
|
if (Array.IndexOf(trueValues, s) != -1)
|
|
{
|
|
return true;
|
|
}
|
|
if (Array.IndexOf(falseValues, s) != -1)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static int? GetEnvInt32(params string[] names) => int.TryParse(GetEnv(names), out int v) ? (int?)v : null;
|
|
|
|
public static double? GetEnvDouble(params string[] names) => double.TryParse(GetEnv(names), out double v) ? (double?)v : null;
|
|
|
|
public static InvokeOptions WithVersion(this InvokeOptions? options)
|
|
{
|
|
if (options?.Version != null)
|
|
{
|
|
return options;
|
|
}
|
|
return new InvokeOptions
|
|
{
|
|
Parent = options?.Parent,
|
|
Provider = options?.Provider,
|
|
Version = Version,
|
|
};
|
|
}
|
|
|
|
private readonly static string version;
|
|
public static string Version => version;
|
|
|
|
static Utilities()
|
|
{
|
|
var assembly = typeof(Utilities).GetTypeInfo().Assembly;
|
|
using var stream = assembly.GetManifestResourceStream("Pulumi.Example.version.txt");
|
|
using var reader = new StreamReader(stream ?? throw new NotSupportedException("Missing embedded version.txt file"));
|
|
version = reader.ReadToEnd().Trim();
|
|
var parts = version.Split("\n");
|
|
if (parts.Length == 2)
|
|
{
|
|
// The first part is the provider name.
|
|
version = parts[1].Trim();
|
|
}
|
|
}
|
|
}
|
|
|
|
internal sealed class ExampleResourceTypeAttribute : Pulumi.ResourceTypeAttribute
|
|
{
|
|
public ExampleResourceTypeAttribute(string type) : base(type, Utilities.Version)
|
|
{
|
|
}
|
|
}
|
|
}
|