pulumi/tests/testdata/codegen/functions-pp/dotnet/functions.cs

97 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using Pulumi;
using Aws = Pulumi.Aws;
string ComputeFileBase64Sha256(string path)
{
var fileData = Encoding.UTF8.GetBytes(File.ReadAllText(path));
var hashData = SHA256.Create().ComputeHash(fileData);
return Convert.ToBase64String(hashData);
}
string ComputeSHA1(string input)
{
var hash = SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(input));
return BitConverter.ToString(hash).Replace("-","").ToLowerInvariant();
}
string ReadFileBase64(string path)
{
return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));
}
return await Deployment.RunAsync(() =>
{
var encoded = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("haha business"));
var decoded = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(encoded));
var joined = string.Join("-", new[]
{
encoded,
decoded,
"2",
});
// tests that we initialize "var, err" with ":=" first, then "=" subsequently (Go specific)
var zone = Aws.GetAvailabilityZones.Invoke();
var zone2 = Aws.GetAvailabilityZones.Invoke();
var bucket = new Aws.S3.Bucket("bucket");
var encoded2 = bucket.Id.Apply(id => Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(id)));
var decoded2 = bucket.Id.Apply(id => System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(id)));
var secretValue = Output.CreateSecret("hello");
var plainValue = Output.Unsecret(secretValue);
var currentStack = Deployment.Instance.StackName;
var currentProject = Deployment.Instance.ProjectName;
var workingDirectory = Directory.GetCurrentDirectory();
var fileMimeType = "TODO: call mimeType";
// using the filebase64 function
var first = new Aws.S3.BucketObject("first", new()
{
Bucket = bucket.Id,
Source = new StringAsset(ReadFileBase64("./base64.txt")),
ContentType = fileMimeType,
Tags =
{
{ "stack", currentStack },
{ "project", currentProject },
{ "cwd", workingDirectory },
},
});
// using the filebase64sha256 function
var second = new Aws.S3.BucketObject("second", new()
{
Bucket = bucket.Id,
Source = new StringAsset(ComputeFileBase64Sha256("./base64.txt")),
});
// using the sha1 function
var third = new Aws.S3.BucketObject("third", new()
{
Bucket = bucket.Id,
Source = new StringAsset(ComputeSHA1("content")),
});
});