Initial provider implementation (#18)

This brings over the initial buildx prototype from pulumi/pulumi-docker
and fixes various build and release issues.
This commit is contained in:
Bryce Lampe
2024-04-25 11:03:59 -07:00
committed by GitHub
parent 2545dd3089
commit 26c144c916
398 changed files with 65361 additions and 1702 deletions

72
sdk/dotnet/Config/Config.cs generated Normal file
View File

@@ -0,0 +1,72 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Immutable;
namespace Pulumi.DockerBuild
{
public static class Config
{
[global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification =
"Double underscore prefix used to avoid conflicts with variable names.")]
private sealed class __Value<T>
{
private readonly Func<T> _getter;
private T _value = default!;
private bool _set;
public __Value(Func<T> getter)
{
_getter = getter;
}
public T Get() => _set ? _value : _getter();
public void Set(T value)
{
_value = value;
_set = true;
}
}
private static readonly global::Pulumi.Config __config = new global::Pulumi.Config("docker-build");
private static readonly __Value<string?> _host = new __Value<string?>(() => __config.Get("host") ?? Utilities.GetEnv("DOCKER_HOST") ?? "");
/// <summary>
/// The build daemon's address.
/// </summary>
public static string? Host
{
get => _host.Get();
set => _host.Set(value);
}
private static readonly __Value<ImmutableArray<Types.Registry>> _registries = new __Value<ImmutableArray<Types.Registry>>(() => __config.GetObject<ImmutableArray<Types.Registry>>("registries"));
public static ImmutableArray<Types.Registry> Registries
{
get => _registries.Get();
set => _registries.Set(value);
}
public static class Types
{
public class Registry
{
/// <summary>
/// The registry's address (e.g. "docker.io").
/// </summary>
public string Address { get; set; }
/// <summary>
/// Password or token for the registry.
/// </summary>
public string? Password { get; set; } = null!;
/// <summary>
/// Username for the registry.
/// </summary>
public string? Username { get; set; } = null!;
}
}
}
}

1
sdk/dotnet/Config/README.md generated Normal file
View File

@@ -0,0 +1 @@
A Pulumi provider for building modern Docker images with buildx and BuildKit.

173
sdk/dotnet/Enums.cs generated Normal file
View File

@@ -0,0 +1,173 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.ComponentModel;
using Pulumi;
namespace Pulumi.DockerBuild
{
[EnumType]
public readonly struct CacheMode : IEquatable<CacheMode>
{
private readonly string _value;
private CacheMode(string value)
{
_value = value ?? throw new ArgumentNullException(nameof(value));
}
/// <summary>
/// Only layers that are exported into the resulting image are cached.
/// </summary>
public static CacheMode Min { get; } = new CacheMode("min");
/// <summary>
/// All layers are cached, even those of intermediate steps.
/// </summary>
public static CacheMode Max { get; } = new CacheMode("max");
public static bool operator ==(CacheMode left, CacheMode right) => left.Equals(right);
public static bool operator !=(CacheMode left, CacheMode right) => !left.Equals(right);
public static explicit operator string(CacheMode value) => value._value;
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object? obj) => obj is CacheMode other && Equals(other);
public bool Equals(CacheMode other) => string.Equals(_value, other._value, StringComparison.Ordinal);
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode() => _value?.GetHashCode() ?? 0;
public override string ToString() => _value;
}
[EnumType]
public readonly struct CompressionType : IEquatable<CompressionType>
{
private readonly string _value;
private CompressionType(string value)
{
_value = value ?? throw new ArgumentNullException(nameof(value));
}
/// <summary>
/// Use `gzip` for compression.
/// </summary>
public static CompressionType Gzip { get; } = new CompressionType("gzip");
/// <summary>
/// Use `estargz` for compression.
/// </summary>
public static CompressionType Estargz { get; } = new CompressionType("estargz");
/// <summary>
/// Use `zstd` for compression.
/// </summary>
public static CompressionType Zstd { get; } = new CompressionType("zstd");
public static bool operator ==(CompressionType left, CompressionType right) => left.Equals(right);
public static bool operator !=(CompressionType left, CompressionType right) => !left.Equals(right);
public static explicit operator string(CompressionType value) => value._value;
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object? obj) => obj is CompressionType other && Equals(other);
public bool Equals(CompressionType other) => string.Equals(_value, other._value, StringComparison.Ordinal);
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode() => _value?.GetHashCode() ?? 0;
public override string ToString() => _value;
}
[EnumType]
public readonly struct NetworkMode : IEquatable<NetworkMode>
{
private readonly string _value;
private NetworkMode(string value)
{
_value = value ?? throw new ArgumentNullException(nameof(value));
}
/// <summary>
/// The default sandbox network mode.
/// </summary>
public static NetworkMode @Default { get; } = new NetworkMode("default");
/// <summary>
/// Host network mode.
/// </summary>
public static NetworkMode Host { get; } = new NetworkMode("host");
/// <summary>
/// Disable network access.
/// </summary>
public static NetworkMode None { get; } = new NetworkMode("none");
public static bool operator ==(NetworkMode left, NetworkMode right) => left.Equals(right);
public static bool operator !=(NetworkMode left, NetworkMode right) => !left.Equals(right);
public static explicit operator string(NetworkMode value) => value._value;
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object? obj) => obj is NetworkMode other && Equals(other);
public bool Equals(NetworkMode other) => string.Equals(_value, other._value, StringComparison.Ordinal);
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode() => _value?.GetHashCode() ?? 0;
public override string ToString() => _value;
}
[EnumType]
public readonly struct Platform : IEquatable<Platform>
{
private readonly string _value;
private Platform(string value)
{
_value = value ?? throw new ArgumentNullException(nameof(value));
}
public static Platform Darwin_386 { get; } = new Platform("darwin/386");
public static Platform Darwin_amd64 { get; } = new Platform("darwin/amd64");
public static Platform Darwin_arm { get; } = new Platform("darwin/arm");
public static Platform Darwin_arm64 { get; } = new Platform("darwin/arm64");
public static Platform Dragonfly_amd64 { get; } = new Platform("dragonfly/amd64");
public static Platform Freebsd_386 { get; } = new Platform("freebsd/386");
public static Platform Freebsd_amd64 { get; } = new Platform("freebsd/amd64");
public static Platform Freebsd_arm { get; } = new Platform("freebsd/arm");
public static Platform Linux_386 { get; } = new Platform("linux/386");
public static Platform Linux_amd64 { get; } = new Platform("linux/amd64");
public static Platform Linux_arm { get; } = new Platform("linux/arm");
public static Platform Linux_arm64 { get; } = new Platform("linux/arm64");
public static Platform Linux_mips64 { get; } = new Platform("linux/mips64");
public static Platform Linux_mips64le { get; } = new Platform("linux/mips64le");
public static Platform Linux_ppc64le { get; } = new Platform("linux/ppc64le");
public static Platform Linux_riscv64 { get; } = new Platform("linux/riscv64");
public static Platform Linux_s390x { get; } = new Platform("linux/s390x");
public static Platform Netbsd_386 { get; } = new Platform("netbsd/386");
public static Platform Netbsd_amd64 { get; } = new Platform("netbsd/amd64");
public static Platform Netbsd_arm { get; } = new Platform("netbsd/arm");
public static Platform Openbsd_386 { get; } = new Platform("openbsd/386");
public static Platform Openbsd_amd64 { get; } = new Platform("openbsd/amd64");
public static Platform Openbsd_arm { get; } = new Platform("openbsd/arm");
public static Platform Plan9_386 { get; } = new Platform("plan9/386");
public static Platform Plan9_amd64 { get; } = new Platform("plan9/amd64");
public static Platform Solaris_amd64 { get; } = new Platform("solaris/amd64");
public static Platform Windows_386 { get; } = new Platform("windows/386");
public static Platform Windows_amd64 { get; } = new Platform("windows/amd64");
public static bool operator ==(Platform left, Platform right) => left.Equals(right);
public static bool operator !=(Platform left, Platform right) => !left.Equals(right);
public static explicit operator string(Platform value) => value._value;
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object? obj) => obj is Platform other && Equals(other);
public bool Equals(Platform other) => string.Equals(_value, other._value, StringComparison.Ordinal);
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode() => _value?.GetHashCode() ?? 0;
public override string ToString() => _value;
}
}

1120
sdk/dotnet/Image.cs generated Normal file

File diff suppressed because it is too large Load Diff

259
sdk/dotnet/Index.cs generated Normal file
View File

@@ -0,0 +1,259 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild
{
/// <summary>
/// A wrapper around `docker buildx imagetools create` to create an index
/// (or manifest list) referencing one or more existing images.
///
/// In most cases you do not need an `Index` to build a multi-platform
/// image -- specifying multiple platforms on the `Image` will handle this
/// for you automatically.
///
/// However, as of April 2024, building multi-platform images _with
/// caching_ will only export a cache for one platform at a time (see [this
/// discussion](https://github.com/docker/buildx/discussions/1382) for more
/// details).
///
/// Therefore this resource can be helpful if you are building
/// multi-platform images with caching: each platform can be built and
/// cached separately, and an `Index` can join them all together. An
/// example of this is shown below.
///
/// This resource creates an OCI image index or a Docker manifest list
/// depending on the media types of the source images.
///
/// ## Example Usage
/// ### Multi-platform registry caching
/// ```csharp
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var amd64 = new DockerBuild.Image("amd64", new()
/// {
/// CacheFrom = new[]
/// {
/// new DockerBuild.Inputs.CacheFromArgs
/// {
/// Registry = new DockerBuild.Inputs.CacheFromRegistryArgs
/// {
/// Ref = "docker.io/pulumi/pulumi:cache-amd64",
/// },
/// },
/// },
/// CacheTo = new[]
/// {
/// new DockerBuild.Inputs.CacheToArgs
/// {
/// Registry = new DockerBuild.Inputs.CacheToRegistryArgs
/// {
/// Mode = DockerBuild.CacheMode.Max,
/// Ref = "docker.io/pulumi/pulumi:cache-amd64",
/// },
/// },
/// },
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Platforms = new[]
/// {
/// DockerBuild.Platform.Linux_amd64,
/// },
/// Tags = new[]
/// {
/// "docker.io/pulumi/pulumi:3.107.0-amd64",
/// },
/// });
///
/// var arm64 = new DockerBuild.Image("arm64", new()
/// {
/// CacheFrom = new[]
/// {
/// new DockerBuild.Inputs.CacheFromArgs
/// {
/// Registry = new DockerBuild.Inputs.CacheFromRegistryArgs
/// {
/// Ref = "docker.io/pulumi/pulumi:cache-arm64",
/// },
/// },
/// },
/// CacheTo = new[]
/// {
/// new DockerBuild.Inputs.CacheToArgs
/// {
/// Registry = new DockerBuild.Inputs.CacheToRegistryArgs
/// {
/// Mode = DockerBuild.CacheMode.Max,
/// Ref = "docker.io/pulumi/pulumi:cache-arm64",
/// },
/// },
/// },
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Platforms = new[]
/// {
/// DockerBuild.Platform.Linux_arm64,
/// },
/// Tags = new[]
/// {
/// "docker.io/pulumi/pulumi:3.107.0-arm64",
/// },
/// });
///
/// var index = new DockerBuild.Index("index", new()
/// {
/// Sources = new[]
/// {
/// amd64.Ref,
/// arm64.Ref,
/// },
/// Tag = "docker.io/pulumi/pulumi:3.107.0",
/// });
///
/// return new Dictionary&lt;string, object?&gt;
/// {
/// ["ref"] = index.Ref,
/// };
/// });
///
/// ```
/// </summary>
[DockerBuildResourceType("docker-build:index:Index")]
public partial class Index : global::Pulumi.CustomResource
{
/// <summary>
/// If true, push the index to the target registry.
///
/// Defaults to `true`.
/// </summary>
[Output("push")]
public Output<bool?> Push { get; private set; } = null!;
/// <summary>
/// The pushed tag with digest.
///
/// Identical to the tag if the index was not pushed.
/// </summary>
[Output("ref")]
public Output<string> Ref { get; private set; } = null!;
/// <summary>
/// Authentication for the registry where the tagged index will be pushed.
///
/// Credentials can also be included with the provider's configuration.
/// </summary>
[Output("registry")]
public Output<Outputs.Registry?> Registry { get; private set; } = null!;
/// <summary>
/// Existing images to include in the index.
/// </summary>
[Output("sources")]
public Output<ImmutableArray<string>> Sources { get; private set; } = null!;
/// <summary>
/// The tag to apply to the index.
/// </summary>
[Output("tag")]
public Output<string> Tag { get; private set; } = null!;
/// <summary>
/// Create a Index resource with the given unique name, arguments, and options.
/// </summary>
///
/// <param name="name">The unique name of the resource</param>
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public Index(string name, IndexArgs args, CustomResourceOptions? options = null)
: base("docker-build:index:Index", name, args ?? new IndexArgs(), MakeResourceOptions(options, ""))
{
}
private Index(string name, Input<string> id, CustomResourceOptions? options = null)
: base("docker-build:index:Index", name, null, MakeResourceOptions(options, id))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
merged.Id = id ?? merged.Id;
return merged;
}
/// <summary>
/// Get an existing Index resource's state with the given name, ID, and optional extra
/// properties used to qualify the lookup.
/// </summary>
///
/// <param name="name">The unique name of the resulting resource.</param>
/// <param name="id">The unique provider ID of the resource to lookup.</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public static Index Get(string name, Input<string> id, CustomResourceOptions? options = null)
{
return new Index(name, id, options);
}
}
public sealed class IndexArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// If true, push the index to the target registry.
///
/// Defaults to `true`.
/// </summary>
[Input("push")]
public Input<bool>? Push { get; set; }
/// <summary>
/// Authentication for the registry where the tagged index will be pushed.
///
/// Credentials can also be included with the provider's configuration.
/// </summary>
[Input("registry")]
public Input<Inputs.RegistryArgs>? Registry { get; set; }
[Input("sources", required: true)]
private InputList<string>? _sources;
/// <summary>
/// Existing images to include in the index.
/// </summary>
public InputList<string> Sources
{
get => _sources ?? (_sources = new InputList<string>());
set => _sources = value;
}
/// <summary>
/// The tag to apply to the index.
/// </summary>
[Input("tag", required: true)]
public Input<string> Tag { get; set; } = null!;
public IndexArgs()
{
Push = true;
}
public static new IndexArgs Empty => new IndexArgs();
}
}

50
sdk/dotnet/Inputs/BuildContextArgs.cs generated Normal file
View File

@@ -0,0 +1,50 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class BuildContextArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Resources to use for build context.
///
/// The location can be:
/// * A relative or absolute path to a local directory (`.`, `./app`,
/// `/app`, etc.).
/// * A remote URL of a Git repository, tarball, or plain text file
/// (`https://github.com/user/myrepo.git`, `http://server/context.tar.gz`,
/// etc.).
/// </summary>
[Input("location", required: true)]
public Input<string> Location { get; set; } = null!;
[Input("named")]
private InputMap<Inputs.ContextArgs>? _named;
/// <summary>
/// Additional build contexts to use.
///
/// These contexts are accessed with `FROM name` or `--from=name`
/// statements when using Dockerfile 1.4+ syntax.
///
/// Values can be local paths, HTTP URLs, or `docker-image://` images.
/// </summary>
public InputMap<Inputs.ContextArgs> Named
{
get => _named ?? (_named = new InputMap<Inputs.ContextArgs>());
set => _named = value;
}
public BuildContextArgs()
{
}
public static new BuildContextArgs Empty => new BuildContextArgs();
}
}

31
sdk/dotnet/Inputs/BuilderConfigArgs.cs generated Normal file
View File

@@ -0,0 +1,31 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class BuilderConfigArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Name of an existing buildx builder to use.
///
/// Only `docker-container`, `kubernetes`, or `remote` drivers are
/// supported. The legacy `docker` driver is not supported.
///
/// Equivalent to Docker's `--builder` flag.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
public BuilderConfigArgs()
{
}
public static new BuilderConfigArgs Empty => new BuilderConfigArgs();
}
}

67
sdk/dotnet/Inputs/CacheFromArgs.cs generated Normal file
View File

@@ -0,0 +1,67 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Upload build caches to Azure's blob storage service.
/// </summary>
[Input("azblob")]
public Input<Inputs.CacheFromAzureBlobArgs>? Azblob { get; set; }
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
[Input("disabled")]
public Input<bool>? Disabled { get; set; }
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to
/// expose appropriate credentials to your GitHub workflow.
/// </summary>
[Input("gha")]
public Input<Inputs.CacheFromGitHubActionsArgs>? Gha { get; set; }
/// <summary>
/// A simple backend which caches images on your local filesystem.
/// </summary>
[Input("local")]
public Input<Inputs.CacheFromLocalArgs>? Local { get; set; }
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=inline`).
/// </summary>
[Input("raw")]
public Input<string>? Raw { get; set; }
/// <summary>
/// Upload build caches to remote registries.
/// </summary>
[Input("registry")]
public Input<Inputs.CacheFromRegistryArgs>? Registry { get; set; }
/// <summary>
/// Upload build caches to AWS S3 or an S3-compatible services such as
/// MinIO.
/// </summary>
[Input("s3")]
public Input<Inputs.CacheFromS3Args>? S3 { get; set; }
public CacheFromArgs()
{
}
public static new CacheFromArgs Empty => new CacheFromArgs();
}
}

View File

@@ -0,0 +1,48 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromAzureBlobArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Base URL of the storage account.
/// </summary>
[Input("accountUrl")]
public Input<string>? AccountUrl { get; set; }
/// <summary>
/// The name of the cache image.
/// </summary>
[Input("name", required: true)]
public Input<string> Name { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Blob storage account key.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
public CacheFromAzureBlobArgs()
{
}
public static new CacheFromAzureBlobArgs Empty => new CacheFromAzureBlobArgs();
}
}

View File

@@ -0,0 +1,63 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromGitHubActionsArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The scope to use for cache keys. Defaults to `buildkit`.
///
/// This should be set if building and caching multiple images in one
/// workflow, otherwise caches will overwrite each other.
/// </summary>
[Input("scope")]
public Input<string>? Scope { get; set; }
[Input("token")]
private Input<string>? _token;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public Input<string>? Token
{
get => _token;
set
{
var emptySecret = Output.CreateSecret(0);
_token = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
[Input("url")]
public Input<string>? Url { get; set; }
public CacheFromGitHubActionsArgs()
{
Scope = Utilities.GetEnv("buildkit") ?? "";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
}
public static new CacheFromGitHubActionsArgs Empty => new CacheFromGitHubActionsArgs();
}
}

32
sdk/dotnet/Inputs/CacheFromLocalArgs.cs generated Normal file
View File

@@ -0,0 +1,32 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromLocalArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Digest of manifest to import.
/// </summary>
[Input("digest")]
public Input<string>? Digest { get; set; }
/// <summary>
/// Path of the local directory where cache gets imported from.
/// </summary>
[Input("src", required: true)]
public Input<string> Src { get; set; } = null!;
public CacheFromLocalArgs()
{
}
public static new CacheFromLocalArgs Empty => new CacheFromLocalArgs();
}
}

View File

@@ -0,0 +1,26 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromRegistryArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Fully qualified name of the cache image to import.
/// </summary>
[Input("ref", required: true)]
public Input<string> Ref { get; set; } = null!;
public CacheFromRegistryArgs()
{
}
public static new CacheFromRegistryArgs Empty => new CacheFromRegistryArgs();
}
}

104
sdk/dotnet/Inputs/CacheFromS3Args.cs generated Normal file
View File

@@ -0,0 +1,104 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromS3Args : global::Pulumi.ResourceArgs
{
/// <summary>
/// Defaults to `$AWS_ACCESS_KEY_ID`.
/// </summary>
[Input("accessKeyId")]
public Input<string>? AccessKeyId { get; set; }
/// <summary>
/// Prefix to prepend to blob filenames.
/// </summary>
[Input("blobsPrefix")]
public Input<string>? BlobsPrefix { get; set; }
/// <summary>
/// Name of the S3 bucket.
/// </summary>
[Input("bucket", required: true)]
public Input<string> Bucket { get; set; } = null!;
/// <summary>
/// Endpoint of the S3 bucket.
/// </summary>
[Input("endpointUrl")]
public Input<string>? EndpointUrl { get; set; }
/// <summary>
/// Prefix to prepend on manifest filenames.
/// </summary>
[Input("manifestsPrefix")]
public Input<string>? ManifestsPrefix { get; set; }
/// <summary>
/// Name of the cache image.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
/// <summary>
/// The geographic location of the bucket. Defaults to `$AWS_REGION`.
/// </summary>
[Input("region", required: true)]
public Input<string> Region { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Defaults to `$AWS_SECRET_ACCESS_KEY`.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
[Input("sessionToken")]
private Input<string>? _sessionToken;
/// <summary>
/// Defaults to `$AWS_SESSION_TOKEN`.
/// </summary>
public Input<string>? SessionToken
{
get => _sessionToken;
set
{
var emptySecret = Output.CreateSecret(0);
_sessionToken = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Uses `bucket` in the URL instead of hostname when `true`.
/// </summary>
[Input("usePathStyle")]
public Input<bool>? UsePathStyle { get; set; }
public CacheFromS3Args()
{
AccessKeyId = Utilities.GetEnv("AWS_ACCESS_KEY_ID") ?? "";
Region = Utilities.GetEnv("AWS_REGION") ?? "";
SecretAccessKey = Utilities.GetEnv("AWS_SECRET_ACCESS_KEY") ?? "";
SessionToken = Utilities.GetEnv("AWS_SESSION_TOKEN") ?? "";
}
public static new CacheFromS3Args Empty => new CacheFromS3Args();
}
}

75
sdk/dotnet/Inputs/CacheToArgs.cs generated Normal file
View File

@@ -0,0 +1,75 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Push cache to Azure's blob storage service.
/// </summary>
[Input("azblob")]
public Input<Inputs.CacheToAzureBlobArgs>? Azblob { get; set; }
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
[Input("disabled")]
public Input<bool>? Disabled { get; set; }
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to
/// expose appropriate credentials to your GitHub workflow.
/// </summary>
[Input("gha")]
public Input<Inputs.CacheToGitHubActionsArgs>? Gha { get; set; }
/// <summary>
/// The inline cache storage backend is the simplest implementation to get
/// started with, but it does not handle multi-stage builds. Consider the
/// `registry` cache backend instead.
/// </summary>
[Input("inline")]
public Input<Inputs.CacheToInlineArgs>? Inline { get; set; }
/// <summary>
/// A simple backend which caches imagines on your local filesystem.
/// </summary>
[Input("local")]
public Input<Inputs.CacheToLocalArgs>? Local { get; set; }
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=inline`)
/// </summary>
[Input("raw")]
public Input<string>? Raw { get; set; }
/// <summary>
/// Push caches to remote registries. Incompatible with the `docker` build
/// driver.
/// </summary>
[Input("registry")]
public Input<Inputs.CacheToRegistryArgs>? Registry { get; set; }
/// <summary>
/// Push cache to AWS S3 or S3-compatible services such as MinIO.
/// </summary>
[Input("s3")]
public Input<Inputs.CacheToS3Args>? S3 { get; set; }
public CacheToArgs()
{
}
public static new CacheToArgs Empty => new CacheToArgs();
}
}

View File

@@ -0,0 +1,62 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToAzureBlobArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Base URL of the storage account.
/// </summary>
[Input("accountUrl")]
public Input<string>? AccountUrl { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// The name of the cache image.
/// </summary>
[Input("name", required: true)]
public Input<string> Name { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Blob storage account key.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
public CacheToAzureBlobArgs()
{
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
}
public static new CacheToAzureBlobArgs Empty => new CacheToAzureBlobArgs();
}
}

View File

@@ -0,0 +1,77 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToGitHubActionsArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// The scope to use for cache keys. Defaults to `buildkit`.
///
/// This should be set if building and caching multiple images in one
/// workflow, otherwise caches will overwrite each other.
/// </summary>
[Input("scope")]
public Input<string>? Scope { get; set; }
[Input("token")]
private Input<string>? _token;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public Input<string>? Token
{
get => _token;
set
{
var emptySecret = Output.CreateSecret(0);
_token = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
[Input("url")]
public Input<string>? Url { get; set; }
public CacheToGitHubActionsArgs()
{
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
Scope = Utilities.GetEnv("buildkit") ?? "";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
}
public static new CacheToGitHubActionsArgs Empty => new CacheToGitHubActionsArgs();
}
}

23
sdk/dotnet/Inputs/CacheToInlineArgs.cs generated Normal file
View File

@@ -0,0 +1,23 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
/// <summary>
/// Include an inline cache with the exported image.
/// </summary>
public sealed class CacheToInlineArgs : global::Pulumi.ResourceArgs
{
public CacheToInlineArgs()
{
}
public static new CacheToInlineArgs Empty => new CacheToInlineArgs();
}
}

61
sdk/dotnet/Inputs/CacheToLocalArgs.cs generated Normal file
View File

@@ -0,0 +1,61 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToLocalArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Path of the local directory to export the cache.
/// </summary>
[Input("dest", required: true)]
public Input<string> Dest { get; set; } = null!;
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
public CacheToLocalArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
}
public static new CacheToLocalArgs Empty => new CacheToLocalArgs();
}
}

82
sdk/dotnet/Inputs/CacheToRegistryArgs.cs generated Normal file
View File

@@ -0,0 +1,82 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToRegistryArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// Export cache manifest as an OCI-compatible image manifest instead of a
/// manifest list. Requires `ociMediaTypes` to also be `true`.
///
/// Some registries like AWS ECR will not work with caching if this is
/// `false`.
///
/// Defaults to `false` to match Docker's default behavior.
/// </summary>
[Input("imageManifest")]
public Input<bool>? ImageManifest { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// Whether to use OCI media types in exported manifests. Defaults to
/// `true`.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Fully qualified name of the cache image to import.
/// </summary>
[Input("ref", required: true)]
public Input<string> Ref { get; set; } = null!;
public CacheToRegistryArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
IgnoreError = false;
ImageManifest = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
OciMediaTypes = true;
}
public static new CacheToRegistryArgs Empty => new CacheToRegistryArgs();
}
}

118
sdk/dotnet/Inputs/CacheToS3Args.cs generated Normal file
View File

@@ -0,0 +1,118 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToS3Args : global::Pulumi.ResourceArgs
{
/// <summary>
/// Defaults to `$AWS_ACCESS_KEY_ID`.
/// </summary>
[Input("accessKeyId")]
public Input<string>? AccessKeyId { get; set; }
/// <summary>
/// Prefix to prepend to blob filenames.
/// </summary>
[Input("blobsPrefix")]
public Input<string>? BlobsPrefix { get; set; }
/// <summary>
/// Name of the S3 bucket.
/// </summary>
[Input("bucket", required: true)]
public Input<string> Bucket { get; set; } = null!;
/// <summary>
/// Endpoint of the S3 bucket.
/// </summary>
[Input("endpointUrl")]
public Input<string>? EndpointUrl { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// Prefix to prepend on manifest filenames.
/// </summary>
[Input("manifestsPrefix")]
public Input<string>? ManifestsPrefix { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// Name of the cache image.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
/// <summary>
/// The geographic location of the bucket. Defaults to `$AWS_REGION`.
/// </summary>
[Input("region", required: true)]
public Input<string> Region { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Defaults to `$AWS_SECRET_ACCESS_KEY`.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
[Input("sessionToken")]
private Input<string>? _sessionToken;
/// <summary>
/// Defaults to `$AWS_SESSION_TOKEN`.
/// </summary>
public Input<string>? SessionToken
{
get => _sessionToken;
set
{
var emptySecret = Output.CreateSecret(0);
_sessionToken = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Uses `bucket` in the URL instead of hostname when `true`.
/// </summary>
[Input("usePathStyle")]
public Input<bool>? UsePathStyle { get; set; }
public CacheToS3Args()
{
AccessKeyId = Utilities.GetEnv("AWS_ACCESS_KEY_ID") ?? "";
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
Region = Utilities.GetEnv("AWS_REGION") ?? "";
SecretAccessKey = Utilities.GetEnv("AWS_SECRET_ACCESS_KEY") ?? "";
SessionToken = Utilities.GetEnv("AWS_SESSION_TOKEN") ?? "";
}
public static new CacheToS3Args Empty => new CacheToS3Args();
}
}

33
sdk/dotnet/Inputs/ContextArgs.cs generated Normal file
View File

@@ -0,0 +1,33 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ContextArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Resources to use for build context.
///
/// The location can be:
/// * A relative or absolute path to a local directory (`.`, `./app`,
/// `/app`, etc.).
/// * A remote URL of a Git repository, tarball, or plain text file
/// (`https://github.com/user/myrepo.git`, `http://server/context.tar.gz`,
/// etc.).
/// </summary>
[Input("location", required: true)]
public Input<string> Location { get; set; } = null!;
public ContextArgs()
{
}
public static new ContextArgs Empty => new ContextArgs();
}
}

42
sdk/dotnet/Inputs/DockerfileArgs.cs generated Normal file
View File

@@ -0,0 +1,42 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class DockerfileArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Raw Dockerfile contents.
///
/// Conflicts with `location`.
///
/// Equivalent to invoking Docker with `-f -`.
/// </summary>
[Input("inline")]
public Input<string>? Inline { get; set; }
/// <summary>
/// Location of the Dockerfile to use.
///
/// Can be a relative or absolute path to a local file, or a remote URL.
///
/// Defaults to `${context.location}/Dockerfile` if context is on-disk.
///
/// Conflicts with `inline`.
/// </summary>
[Input("location")]
public Input<string>? Location { get; set; }
public DockerfileArgs()
{
}
public static new DockerfileArgs Empty => new DockerfileArgs();
}
}

76
sdk/dotnet/Inputs/ExportArgs.cs generated Normal file
View File

@@ -0,0 +1,76 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// A no-op export. Helpful for silencing the 'no exports' warning if you
/// just want to populate caches.
/// </summary>
[Input("cacheonly")]
public Input<Inputs.ExportCacheOnlyArgs>? Cacheonly { get; set; }
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
[Input("disabled")]
public Input<bool>? Disabled { get; set; }
/// <summary>
/// Export as a Docker image layout.
/// </summary>
[Input("docker")]
public Input<Inputs.ExportDockerArgs>? Docker { get; set; }
/// <summary>
/// Outputs the build result into a container image format.
/// </summary>
[Input("image")]
public Input<Inputs.ExportImageArgs>? Image { get; set; }
/// <summary>
/// Export to a local directory as files and directories.
/// </summary>
[Input("local")]
public Input<Inputs.ExportLocalArgs>? Local { get; set; }
/// <summary>
/// Identical to the Docker exporter but uses OCI media types by default.
/// </summary>
[Input("oci")]
public Input<Inputs.ExportOCIArgs>? Oci { get; set; }
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=docker`)
/// </summary>
[Input("raw")]
public Input<string>? Raw { get; set; }
/// <summary>
/// Identical to the Image exporter, but pushes by default.
/// </summary>
[Input("registry")]
public Input<Inputs.ExportRegistryArgs>? Registry { get; set; }
/// <summary>
/// Export to a local directory as a tarball.
/// </summary>
[Input("tar")]
public Input<Inputs.ExportTarArgs>? Tar { get; set; }
public ExportArgs()
{
}
public static new ExportArgs Empty => new ExportArgs();
}
}

20
sdk/dotnet/Inputs/ExportCacheOnlyArgs.cs generated Normal file
View File

@@ -0,0 +1,20 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportCacheOnlyArgs : global::Pulumi.ResourceArgs
{
public ExportCacheOnlyArgs()
{
}
public static new ExportCacheOnlyArgs Empty => new ExportCacheOnlyArgs();
}
}

85
sdk/dotnet/Inputs/ExportDockerArgs.cs generated Normal file
View File

@@ -0,0 +1,85 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportDockerArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// The local export path.
/// </summary>
[Input("dest")]
public Input<string>? Dest { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Bundle the output into a tarball layout.
/// </summary>
[Input("tar")]
public Input<bool>? Tar { get; set; }
public ExportDockerArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = false;
Tar = true;
}
public static new ExportDockerArgs Empty => new ExportDockerArgs();
}
}

122
sdk/dotnet/Inputs/ExportImageArgs.cs generated Normal file
View File

@@ -0,0 +1,122 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportImageArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Name image with `prefix@&lt;digest&gt;`, used for anonymous images.
/// </summary>
[Input("danglingNamePrefix")]
public Input<string>? DanglingNamePrefix { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Allow pushing to an insecure registry.
/// </summary>
[Input("insecure")]
public Input<bool>? Insecure { get; set; }
/// <summary>
/// Add additional canonical name (`name@&lt;digest&gt;`).
/// </summary>
[Input("nameCanonical")]
public Input<bool>? NameCanonical { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Push after creating the image. Defaults to `false`.
/// </summary>
[Input("push")]
public Input<bool>? Push { get; set; }
/// <summary>
/// Push image without name.
/// </summary>
[Input("pushByDigest")]
public Input<bool>? PushByDigest { get; set; }
/// <summary>
/// Store resulting images to the worker's image store and ensure all of
/// its blobs are in the content store.
///
/// Defaults to `true`.
///
/// Ignored if the worker doesn't have image store (when using OCI workers,
/// for example).
/// </summary>
[Input("store")]
public Input<bool>? Store { get; set; }
/// <summary>
/// Unpack image after creation (for use with containerd). Defaults to
/// `false`.
/// </summary>
[Input("unpack")]
public Input<bool>? Unpack { get; set; }
public ExportImageArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = false;
Store = true;
}
public static new ExportImageArgs Empty => new ExportImageArgs();
}
}

26
sdk/dotnet/Inputs/ExportLocalArgs.cs generated Normal file
View File

@@ -0,0 +1,26 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportLocalArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Output path.
/// </summary>
[Input("dest", required: true)]
public Input<string> Dest { get; set; } = null!;
public ExportLocalArgs()
{
}
public static new ExportLocalArgs Empty => new ExportLocalArgs();
}
}

85
sdk/dotnet/Inputs/ExportOCIArgs.cs generated Normal file
View File

@@ -0,0 +1,85 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportOCIArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// The local export path.
/// </summary>
[Input("dest")]
public Input<string>? Dest { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Bundle the output into a tarball layout.
/// </summary>
[Input("tar")]
public Input<bool>? Tar { get; set; }
public ExportOCIArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = true;
Tar = true;
}
public static new ExportOCIArgs Empty => new ExportOCIArgs();
}
}

123
sdk/dotnet/Inputs/ExportRegistryArgs.cs generated Normal file
View File

@@ -0,0 +1,123 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportRegistryArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Name image with `prefix@&lt;digest&gt;`, used for anonymous images.
/// </summary>
[Input("danglingNamePrefix")]
public Input<string>? DanglingNamePrefix { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Allow pushing to an insecure registry.
/// </summary>
[Input("insecure")]
public Input<bool>? Insecure { get; set; }
/// <summary>
/// Add additional canonical name (`name@&lt;digest&gt;`).
/// </summary>
[Input("nameCanonical")]
public Input<bool>? NameCanonical { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Push after creating the image. Defaults to `true`.
/// </summary>
[Input("push")]
public Input<bool>? Push { get; set; }
/// <summary>
/// Push image without name.
/// </summary>
[Input("pushByDigest")]
public Input<bool>? PushByDigest { get; set; }
/// <summary>
/// Store resulting images to the worker's image store and ensure all of
/// its blobs are in the content store.
///
/// Defaults to `true`.
///
/// Ignored if the worker doesn't have image store (when using OCI workers,
/// for example).
/// </summary>
[Input("store")]
public Input<bool>? Store { get; set; }
/// <summary>
/// Unpack image after creation (for use with containerd). Defaults to
/// `false`.
/// </summary>
[Input("unpack")]
public Input<bool>? Unpack { get; set; }
public ExportRegistryArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = false;
Push = true;
Store = true;
}
public static new ExportRegistryArgs Empty => new ExportRegistryArgs();
}
}

26
sdk/dotnet/Inputs/ExportTarArgs.cs generated Normal file
View File

@@ -0,0 +1,26 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportTarArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Output path.
/// </summary>
[Input("dest", required: true)]
public Input<string> Dest { get; set; } = null!;
public ExportTarArgs()
{
}
public static new ExportTarArgs Empty => new ExportTarArgs();
}
}

48
sdk/dotnet/Inputs/RegistryArgs.cs generated Normal file
View File

@@ -0,0 +1,48 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class RegistryArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The registry's address (e.g. "docker.io").
/// </summary>
[Input("address", required: true)]
public Input<string> Address { get; set; } = null!;
[Input("password")]
private Input<string>? _password;
/// <summary>
/// Password or token for the registry.
/// </summary>
public Input<string>? Password
{
get => _password;
set
{
var emptySecret = Output.CreateSecret(0);
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Username for the registry.
/// </summary>
[Input("username")]
public Input<string>? Username { get; set; }
public RegistryArgs()
{
}
public static new RegistryArgs Empty => new RegistryArgs();
}
}

48
sdk/dotnet/Inputs/SSHArgs.cs generated Normal file
View File

@@ -0,0 +1,48 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class SSHArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Useful for distinguishing different servers that are part of the same
/// build.
///
/// A value of `default` is appropriate if only dealing with a single host.
/// </summary>
[Input("id", required: true)]
public Input<string> Id { get; set; } = null!;
[Input("paths")]
private InputList<string>? _paths;
/// <summary>
/// SSH agent socket or private keys to expose to the build under the given
/// identifier.
///
/// Defaults to `[$SSH_AUTH_SOCK]`.
///
/// Note that your keys are **not** automatically added when using an
/// agent. Run `ssh-add -l` locally to confirm which public keys are
/// visible to the agent; these will be exposed to your build.
/// </summary>
public InputList<string> Paths
{
get => _paths ?? (_paths = new InputList<string>());
set => _paths = value;
}
public SSHArgs()
{
}
public static new SSHArgs Empty => new SSHArgs();
}
}

47
sdk/dotnet/Outputs/BuildContext.cs generated Normal file
View File

@@ -0,0 +1,47 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class BuildContext
{
/// <summary>
/// Resources to use for build context.
///
/// The location can be:
/// * A relative or absolute path to a local directory (`.`, `./app`,
/// `/app`, etc.).
/// * A remote URL of a Git repository, tarball, or plain text file
/// (`https://github.com/user/myrepo.git`, `http://server/context.tar.gz`,
/// etc.).
/// </summary>
public readonly string Location;
/// <summary>
/// Additional build contexts to use.
///
/// These contexts are accessed with `FROM name` or `--from=name`
/// statements when using Dockerfile 1.4+ syntax.
///
/// Values can be local paths, HTTP URLs, or `docker-image://` images.
/// </summary>
public readonly ImmutableDictionary<string, Outputs.Context>? Named;
[OutputConstructor]
private BuildContext(
string location,
ImmutableDictionary<string, Outputs.Context>? named)
{
Location = location;
Named = named;
}
}
}

32
sdk/dotnet/Outputs/BuilderConfig.cs generated Normal file
View File

@@ -0,0 +1,32 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class BuilderConfig
{
/// <summary>
/// Name of an existing buildx builder to use.
///
/// Only `docker-container`, `kubernetes`, or `remote` drivers are
/// supported. The legacy `docker` driver is not supported.
///
/// Equivalent to Docker's `--builder` flag.
/// </summary>
public readonly string? Name;
[OutputConstructor]
private BuilderConfig(string? name)
{
Name = name;
}
}
}

75
sdk/dotnet/Outputs/CacheFrom.cs generated Normal file
View File

@@ -0,0 +1,75 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheFrom
{
/// <summary>
/// Upload build caches to Azure's blob storage service.
/// </summary>
public readonly Outputs.CacheFromAzureBlob? Azblob;
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
public readonly bool? Disabled;
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to
/// expose appropriate credentials to your GitHub workflow.
/// </summary>
public readonly Outputs.CacheFromGitHubActions? Gha;
/// <summary>
/// A simple backend which caches images on your local filesystem.
/// </summary>
public readonly Outputs.CacheFromLocal? Local;
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=inline`).
/// </summary>
public readonly string? Raw;
/// <summary>
/// Upload build caches to remote registries.
/// </summary>
public readonly Outputs.CacheFromRegistry? Registry;
/// <summary>
/// Upload build caches to AWS S3 or an S3-compatible services such as
/// MinIO.
/// </summary>
public readonly Outputs.CacheFromS3? S3;
[OutputConstructor]
private CacheFrom(
Outputs.CacheFromAzureBlob? azblob,
bool? disabled,
Outputs.CacheFromGitHubActions? gha,
Outputs.CacheFromLocal? local,
string? raw,
Outputs.CacheFromRegistry? registry,
Outputs.CacheFromS3? s3)
{
Azblob = azblob;
Disabled = disabled;
Gha = gha;
Local = local;
Raw = raw;
Registry = registry;
S3 = s3;
}
}
}

42
sdk/dotnet/Outputs/CacheFromAzureBlob.cs generated Normal file
View File

@@ -0,0 +1,42 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheFromAzureBlob
{
/// <summary>
/// Base URL of the storage account.
/// </summary>
public readonly string? AccountUrl;
/// <summary>
/// The name of the cache image.
/// </summary>
public readonly string Name;
/// <summary>
/// Blob storage account key.
/// </summary>
public readonly string? SecretAccessKey;
[OutputConstructor]
private CacheFromAzureBlob(
string? accountUrl,
string name,
string? secretAccessKey)
{
AccountUrl = accountUrl;
Name = name;
SecretAccessKey = secretAccessKey;
}
}
}

View File

@@ -0,0 +1,54 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheFromGitHubActions
{
/// <summary>
/// The scope to use for cache keys. Defaults to `buildkit`.
///
/// This should be set if building and caching multiple images in one
/// workflow, otherwise caches will overwrite each other.
/// </summary>
public readonly string? Scope;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Token;
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Url;
[OutputConstructor]
private CacheFromGitHubActions(
string? scope,
string? token,
string? url)
{
Scope = scope;
Token = token;
Url = url;
}
}
}

35
sdk/dotnet/Outputs/CacheFromLocal.cs generated Normal file
View File

@@ -0,0 +1,35 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheFromLocal
{
/// <summary>
/// Digest of manifest to import.
/// </summary>
public readonly string? Digest;
/// <summary>
/// Path of the local directory where cache gets imported from.
/// </summary>
public readonly string Src;
[OutputConstructor]
private CacheFromLocal(
string? digest,
string src)
{
Digest = digest;
Src = src;
}
}
}

27
sdk/dotnet/Outputs/CacheFromRegistry.cs generated Normal file
View File

@@ -0,0 +1,27 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheFromRegistry
{
/// <summary>
/// Fully qualified name of the cache image to import.
/// </summary>
public readonly string Ref;
[OutputConstructor]
private CacheFromRegistry(string @ref)
{
Ref = @ref;
}
}
}

91
sdk/dotnet/Outputs/CacheFromS3.cs generated Normal file
View File

@@ -0,0 +1,91 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheFromS3
{
/// <summary>
/// Defaults to `$AWS_ACCESS_KEY_ID`.
/// </summary>
public readonly string? AccessKeyId;
/// <summary>
/// Prefix to prepend to blob filenames.
/// </summary>
public readonly string? BlobsPrefix;
/// <summary>
/// Name of the S3 bucket.
/// </summary>
public readonly string Bucket;
/// <summary>
/// Endpoint of the S3 bucket.
/// </summary>
public readonly string? EndpointUrl;
/// <summary>
/// Prefix to prepend on manifest filenames.
/// </summary>
public readonly string? ManifestsPrefix;
/// <summary>
/// Name of the cache image.
/// </summary>
public readonly string? Name;
/// <summary>
/// The geographic location of the bucket. Defaults to `$AWS_REGION`.
/// </summary>
public readonly string Region;
/// <summary>
/// Defaults to `$AWS_SECRET_ACCESS_KEY`.
/// </summary>
public readonly string? SecretAccessKey;
/// <summary>
/// Defaults to `$AWS_SESSION_TOKEN`.
/// </summary>
public readonly string? SessionToken;
/// <summary>
/// Uses `bucket` in the URL instead of hostname when `true`.
/// </summary>
public readonly bool? UsePathStyle;
[OutputConstructor]
private CacheFromS3(
string? accessKeyId,
string? blobsPrefix,
string bucket,
string? endpointUrl,
string? manifestsPrefix,
string? name,
string region,
string? secretAccessKey,
string? sessionToken,
bool? usePathStyle)
{
AccessKeyId = accessKeyId;
BlobsPrefix = blobsPrefix;
Bucket = bucket;
EndpointUrl = endpointUrl;
ManifestsPrefix = manifestsPrefix;
Name = name;
Region = region;
SecretAccessKey = secretAccessKey;
SessionToken = sessionToken;
UsePathStyle = usePathStyle;
}
}
}

84
sdk/dotnet/Outputs/CacheTo.cs generated Normal file
View File

@@ -0,0 +1,84 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheTo
{
/// <summary>
/// Push cache to Azure's blob storage service.
/// </summary>
public readonly Outputs.CacheToAzureBlob? Azblob;
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
public readonly bool? Disabled;
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to
/// expose appropriate credentials to your GitHub workflow.
/// </summary>
public readonly Outputs.CacheToGitHubActions? Gha;
/// <summary>
/// The inline cache storage backend is the simplest implementation to get
/// started with, but it does not handle multi-stage builds. Consider the
/// `registry` cache backend instead.
/// </summary>
public readonly Outputs.CacheToInline? Inline;
/// <summary>
/// A simple backend which caches imagines on your local filesystem.
/// </summary>
public readonly Outputs.CacheToLocal? Local;
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=inline`)
/// </summary>
public readonly string? Raw;
/// <summary>
/// Push caches to remote registries. Incompatible with the `docker` build
/// driver.
/// </summary>
public readonly Outputs.CacheToRegistry? Registry;
/// <summary>
/// Push cache to AWS S3 or S3-compatible services such as MinIO.
/// </summary>
public readonly Outputs.CacheToS3? S3;
[OutputConstructor]
private CacheTo(
Outputs.CacheToAzureBlob? azblob,
bool? disabled,
Outputs.CacheToGitHubActions? gha,
Outputs.CacheToInline? inline,
Outputs.CacheToLocal? local,
string? raw,
Outputs.CacheToRegistry? registry,
Outputs.CacheToS3? s3)
{
Azblob = azblob;
Disabled = disabled;
Gha = gha;
Inline = inline;
Local = local;
Raw = raw;
Registry = registry;
S3 = s3;
}
}
}

56
sdk/dotnet/Outputs/CacheToAzureBlob.cs generated Normal file
View File

@@ -0,0 +1,56 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheToAzureBlob
{
/// <summary>
/// Base URL of the storage account.
/// </summary>
public readonly string? AccountUrl;
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
public readonly bool? IgnoreError;
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
public readonly Pulumi.DockerBuild.CacheMode? Mode;
/// <summary>
/// The name of the cache image.
/// </summary>
public readonly string Name;
/// <summary>
/// Blob storage account key.
/// </summary>
public readonly string? SecretAccessKey;
[OutputConstructor]
private CacheToAzureBlob(
string? accountUrl,
bool? ignoreError,
Pulumi.DockerBuild.CacheMode? mode,
string name,
string? secretAccessKey)
{
AccountUrl = accountUrl;
IgnoreError = ignoreError;
Mode = mode;
Name = name;
SecretAccessKey = secretAccessKey;
}
}
}

View File

@@ -0,0 +1,68 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheToGitHubActions
{
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
public readonly bool? IgnoreError;
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
public readonly Pulumi.DockerBuild.CacheMode? Mode;
/// <summary>
/// The scope to use for cache keys. Defaults to `buildkit`.
///
/// This should be set if building and caching multiple images in one
/// workflow, otherwise caches will overwrite each other.
/// </summary>
public readonly string? Scope;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Token;
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Url;
[OutputConstructor]
private CacheToGitHubActions(
bool? ignoreError,
Pulumi.DockerBuild.CacheMode? mode,
string? scope,
string? token,
string? url)
{
IgnoreError = ignoreError;
Mode = mode;
Scope = scope;
Token = token;
Url = url;
}
}
}

24
sdk/dotnet/Outputs/CacheToInline.cs generated Normal file
View File

@@ -0,0 +1,24 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
/// <summary>
/// Include an inline cache with the exported image.
/// </summary>
[OutputType]
public sealed class CacheToInline
{
[OutputConstructor]
private CacheToInline()
{
}
}
}

63
sdk/dotnet/Outputs/CacheToLocal.cs generated Normal file
View File

@@ -0,0 +1,63 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheToLocal
{
/// <summary>
/// The compression type to use.
/// </summary>
public readonly Pulumi.DockerBuild.CompressionType? Compression;
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
public readonly int? CompressionLevel;
/// <summary>
/// Path of the local directory to export the cache.
/// </summary>
public readonly string Dest;
/// <summary>
/// Forcefully apply compression.
/// </summary>
public readonly bool? ForceCompression;
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
public readonly bool? IgnoreError;
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
public readonly Pulumi.DockerBuild.CacheMode? Mode;
[OutputConstructor]
private CacheToLocal(
Pulumi.DockerBuild.CompressionType? compression,
int? compressionLevel,
string dest,
bool? forceCompression,
bool? ignoreError,
Pulumi.DockerBuild.CacheMode? mode)
{
Compression = compression;
CompressionLevel = compressionLevel;
Dest = dest;
ForceCompression = forceCompression;
IgnoreError = ignoreError;
Mode = mode;
}
}
}

84
sdk/dotnet/Outputs/CacheToRegistry.cs generated Normal file
View File

@@ -0,0 +1,84 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheToRegistry
{
/// <summary>
/// The compression type to use.
/// </summary>
public readonly Pulumi.DockerBuild.CompressionType? Compression;
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
public readonly int? CompressionLevel;
/// <summary>
/// Forcefully apply compression.
/// </summary>
public readonly bool? ForceCompression;
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
public readonly bool? IgnoreError;
/// <summary>
/// Export cache manifest as an OCI-compatible image manifest instead of a
/// manifest list. Requires `ociMediaTypes` to also be `true`.
///
/// Some registries like AWS ECR will not work with caching if this is
/// `false`.
///
/// Defaults to `false` to match Docker's default behavior.
/// </summary>
public readonly bool? ImageManifest;
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
public readonly Pulumi.DockerBuild.CacheMode? Mode;
/// <summary>
/// Whether to use OCI media types in exported manifests. Defaults to
/// `true`.
/// </summary>
public readonly bool? OciMediaTypes;
/// <summary>
/// Fully qualified name of the cache image to import.
/// </summary>
public readonly string Ref;
[OutputConstructor]
private CacheToRegistry(
Pulumi.DockerBuild.CompressionType? compression,
int? compressionLevel,
bool? forceCompression,
bool? ignoreError,
bool? imageManifest,
Pulumi.DockerBuild.CacheMode? mode,
bool? ociMediaTypes,
string @ref)
{
Compression = compression;
CompressionLevel = compressionLevel;
ForceCompression = forceCompression;
IgnoreError = ignoreError;
ImageManifest = imageManifest;
Mode = mode;
OciMediaTypes = ociMediaTypes;
Ref = @ref;
}
}
}

105
sdk/dotnet/Outputs/CacheToS3.cs generated Normal file
View File

@@ -0,0 +1,105 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class CacheToS3
{
/// <summary>
/// Defaults to `$AWS_ACCESS_KEY_ID`.
/// </summary>
public readonly string? AccessKeyId;
/// <summary>
/// Prefix to prepend to blob filenames.
/// </summary>
public readonly string? BlobsPrefix;
/// <summary>
/// Name of the S3 bucket.
/// </summary>
public readonly string Bucket;
/// <summary>
/// Endpoint of the S3 bucket.
/// </summary>
public readonly string? EndpointUrl;
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
public readonly bool? IgnoreError;
/// <summary>
/// Prefix to prepend on manifest filenames.
/// </summary>
public readonly string? ManifestsPrefix;
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
public readonly Pulumi.DockerBuild.CacheMode? Mode;
/// <summary>
/// Name of the cache image.
/// </summary>
public readonly string? Name;
/// <summary>
/// The geographic location of the bucket. Defaults to `$AWS_REGION`.
/// </summary>
public readonly string Region;
/// <summary>
/// Defaults to `$AWS_SECRET_ACCESS_KEY`.
/// </summary>
public readonly string? SecretAccessKey;
/// <summary>
/// Defaults to `$AWS_SESSION_TOKEN`.
/// </summary>
public readonly string? SessionToken;
/// <summary>
/// Uses `bucket` in the URL instead of hostname when `true`.
/// </summary>
public readonly bool? UsePathStyle;
[OutputConstructor]
private CacheToS3(
string? accessKeyId,
string? blobsPrefix,
string bucket,
string? endpointUrl,
bool? ignoreError,
string? manifestsPrefix,
Pulumi.DockerBuild.CacheMode? mode,
string? name,
string region,
string? secretAccessKey,
string? sessionToken,
bool? usePathStyle)
{
AccessKeyId = accessKeyId;
BlobsPrefix = blobsPrefix;
Bucket = bucket;
EndpointUrl = endpointUrl;
IgnoreError = ignoreError;
ManifestsPrefix = manifestsPrefix;
Mode = mode;
Name = name;
Region = region;
SecretAccessKey = secretAccessKey;
SessionToken = sessionToken;
UsePathStyle = usePathStyle;
}
}
}

34
sdk/dotnet/Outputs/Context.cs generated Normal file
View File

@@ -0,0 +1,34 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class Context
{
/// <summary>
/// Resources to use for build context.
///
/// The location can be:
/// * A relative or absolute path to a local directory (`.`, `./app`,
/// `/app`, etc.).
/// * A remote URL of a Git repository, tarball, or plain text file
/// (`https://github.com/user/myrepo.git`, `http://server/context.tar.gz`,
/// etc.).
/// </summary>
public readonly string Location;
[OutputConstructor]
private Context(string location)
{
Location = location;
}
}
}

45
sdk/dotnet/Outputs/Dockerfile.cs generated Normal file
View File

@@ -0,0 +1,45 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class Dockerfile
{
/// <summary>
/// Raw Dockerfile contents.
///
/// Conflicts with `location`.
///
/// Equivalent to invoking Docker with `-f -`.
/// </summary>
public readonly string? Inline;
/// <summary>
/// Location of the Dockerfile to use.
///
/// Can be a relative or absolute path to a local file, or a remote URL.
///
/// Defaults to `${context.location}/Dockerfile` if context is on-disk.
///
/// Conflicts with `inline`.
/// </summary>
public readonly string? Location;
[OutputConstructor]
private Dockerfile(
string? inline,
string? location)
{
Inline = inline;
Location = location;
}
}
}

86
sdk/dotnet/Outputs/Export.cs generated Normal file
View File

@@ -0,0 +1,86 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class Export
{
/// <summary>
/// A no-op export. Helpful for silencing the 'no exports' warning if you
/// just want to populate caches.
/// </summary>
public readonly Outputs.ExportCacheOnly? Cacheonly;
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
public readonly bool? Disabled;
/// <summary>
/// Export as a Docker image layout.
/// </summary>
public readonly Outputs.ExportDocker? Docker;
/// <summary>
/// Outputs the build result into a container image format.
/// </summary>
public readonly Outputs.ExportImage? Image;
/// <summary>
/// Export to a local directory as files and directories.
/// </summary>
public readonly Outputs.ExportLocal? Local;
/// <summary>
/// Identical to the Docker exporter but uses OCI media types by default.
/// </summary>
public readonly Outputs.ExportOCI? Oci;
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=docker`)
/// </summary>
public readonly string? Raw;
/// <summary>
/// Identical to the Image exporter, but pushes by default.
/// </summary>
public readonly Outputs.ExportRegistry? Registry;
/// <summary>
/// Export to a local directory as a tarball.
/// </summary>
public readonly Outputs.ExportTar? Tar;
[OutputConstructor]
private Export(
Outputs.ExportCacheOnly? cacheonly,
bool? disabled,
Outputs.ExportDocker? docker,
Outputs.ExportImage? image,
Outputs.ExportLocal? local,
Outputs.ExportOCI? oci,
string? raw,
Outputs.ExportRegistry? registry,
Outputs.ExportTar? tar)
{
Cacheonly = cacheonly;
Disabled = disabled;
Docker = docker;
Image = image;
Local = local;
Oci = oci;
Raw = raw;
Registry = registry;
Tar = tar;
}
}
}

21
sdk/dotnet/Outputs/ExportCacheOnly.cs generated Normal file
View File

@@ -0,0 +1,21 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class ExportCacheOnly
{
[OutputConstructor]
private ExportCacheOnly()
{
}
}
}

77
sdk/dotnet/Outputs/ExportDocker.cs generated Normal file
View File

@@ -0,0 +1,77 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class ExportDocker
{
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public readonly ImmutableDictionary<string, string>? Annotations;
/// <summary>
/// The compression type to use.
/// </summary>
public readonly Pulumi.DockerBuild.CompressionType? Compression;
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
public readonly int? CompressionLevel;
/// <summary>
/// The local export path.
/// </summary>
public readonly string? Dest;
/// <summary>
/// Forcefully apply compression.
/// </summary>
public readonly bool? ForceCompression;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public readonly ImmutableArray<string> Names;
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
public readonly bool? OciMediaTypes;
/// <summary>
/// Bundle the output into a tarball layout.
/// </summary>
public readonly bool? Tar;
[OutputConstructor]
private ExportDocker(
ImmutableDictionary<string, string>? annotations,
Pulumi.DockerBuild.CompressionType? compression,
int? compressionLevel,
string? dest,
bool? forceCompression,
ImmutableArray<string> names,
bool? ociMediaTypes,
bool? tar)
{
Annotations = annotations;
Compression = compression;
CompressionLevel = compressionLevel;
Dest = dest;
ForceCompression = forceCompression;
Names = names;
OciMediaTypes = ociMediaTypes;
Tar = tar;
}
}
}

119
sdk/dotnet/Outputs/ExportImage.cs generated Normal file
View File

@@ -0,0 +1,119 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class ExportImage
{
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public readonly ImmutableDictionary<string, string>? Annotations;
/// <summary>
/// The compression type to use.
/// </summary>
public readonly Pulumi.DockerBuild.CompressionType? Compression;
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
public readonly int? CompressionLevel;
/// <summary>
/// Name image with `prefix@&lt;digest&gt;`, used for anonymous images.
/// </summary>
public readonly string? DanglingNamePrefix;
/// <summary>
/// Forcefully apply compression.
/// </summary>
public readonly bool? ForceCompression;
/// <summary>
/// Allow pushing to an insecure registry.
/// </summary>
public readonly bool? Insecure;
/// <summary>
/// Add additional canonical name (`name@&lt;digest&gt;`).
/// </summary>
public readonly bool? NameCanonical;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public readonly ImmutableArray<string> Names;
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
public readonly bool? OciMediaTypes;
/// <summary>
/// Push after creating the image. Defaults to `false`.
/// </summary>
public readonly bool? Push;
/// <summary>
/// Push image without name.
/// </summary>
public readonly bool? PushByDigest;
/// <summary>
/// Store resulting images to the worker's image store and ensure all of
/// its blobs are in the content store.
///
/// Defaults to `true`.
///
/// Ignored if the worker doesn't have image store (when using OCI workers,
/// for example).
/// </summary>
public readonly bool? Store;
/// <summary>
/// Unpack image after creation (for use with containerd). Defaults to
/// `false`.
/// </summary>
public readonly bool? Unpack;
[OutputConstructor]
private ExportImage(
ImmutableDictionary<string, string>? annotations,
Pulumi.DockerBuild.CompressionType? compression,
int? compressionLevel,
string? danglingNamePrefix,
bool? forceCompression,
bool? insecure,
bool? nameCanonical,
ImmutableArray<string> names,
bool? ociMediaTypes,
bool? push,
bool? pushByDigest,
bool? store,
bool? unpack)
{
Annotations = annotations;
Compression = compression;
CompressionLevel = compressionLevel;
DanglingNamePrefix = danglingNamePrefix;
ForceCompression = forceCompression;
Insecure = insecure;
NameCanonical = nameCanonical;
Names = names;
OciMediaTypes = ociMediaTypes;
Push = push;
PushByDigest = pushByDigest;
Store = store;
Unpack = unpack;
}
}
}

27
sdk/dotnet/Outputs/ExportLocal.cs generated Normal file
View File

@@ -0,0 +1,27 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class ExportLocal
{
/// <summary>
/// Output path.
/// </summary>
public readonly string Dest;
[OutputConstructor]
private ExportLocal(string dest)
{
Dest = dest;
}
}
}

77
sdk/dotnet/Outputs/ExportOCI.cs generated Normal file
View File

@@ -0,0 +1,77 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class ExportOCI
{
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public readonly ImmutableDictionary<string, string>? Annotations;
/// <summary>
/// The compression type to use.
/// </summary>
public readonly Pulumi.DockerBuild.CompressionType? Compression;
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
public readonly int? CompressionLevel;
/// <summary>
/// The local export path.
/// </summary>
public readonly string? Dest;
/// <summary>
/// Forcefully apply compression.
/// </summary>
public readonly bool? ForceCompression;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public readonly ImmutableArray<string> Names;
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
public readonly bool? OciMediaTypes;
/// <summary>
/// Bundle the output into a tarball layout.
/// </summary>
public readonly bool? Tar;
[OutputConstructor]
private ExportOCI(
ImmutableDictionary<string, string>? annotations,
Pulumi.DockerBuild.CompressionType? compression,
int? compressionLevel,
string? dest,
bool? forceCompression,
ImmutableArray<string> names,
bool? ociMediaTypes,
bool? tar)
{
Annotations = annotations;
Compression = compression;
CompressionLevel = compressionLevel;
Dest = dest;
ForceCompression = forceCompression;
Names = names;
OciMediaTypes = ociMediaTypes;
Tar = tar;
}
}
}

119
sdk/dotnet/Outputs/ExportRegistry.cs generated Normal file
View File

@@ -0,0 +1,119 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class ExportRegistry
{
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public readonly ImmutableDictionary<string, string>? Annotations;
/// <summary>
/// The compression type to use.
/// </summary>
public readonly Pulumi.DockerBuild.CompressionType? Compression;
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
public readonly int? CompressionLevel;
/// <summary>
/// Name image with `prefix@&lt;digest&gt;`, used for anonymous images.
/// </summary>
public readonly string? DanglingNamePrefix;
/// <summary>
/// Forcefully apply compression.
/// </summary>
public readonly bool? ForceCompression;
/// <summary>
/// Allow pushing to an insecure registry.
/// </summary>
public readonly bool? Insecure;
/// <summary>
/// Add additional canonical name (`name@&lt;digest&gt;`).
/// </summary>
public readonly bool? NameCanonical;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public readonly ImmutableArray<string> Names;
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
public readonly bool? OciMediaTypes;
/// <summary>
/// Push after creating the image. Defaults to `true`.
/// </summary>
public readonly bool? Push;
/// <summary>
/// Push image without name.
/// </summary>
public readonly bool? PushByDigest;
/// <summary>
/// Store resulting images to the worker's image store and ensure all of
/// its blobs are in the content store.
///
/// Defaults to `true`.
///
/// Ignored if the worker doesn't have image store (when using OCI workers,
/// for example).
/// </summary>
public readonly bool? Store;
/// <summary>
/// Unpack image after creation (for use with containerd). Defaults to
/// `false`.
/// </summary>
public readonly bool? Unpack;
[OutputConstructor]
private ExportRegistry(
ImmutableDictionary<string, string>? annotations,
Pulumi.DockerBuild.CompressionType? compression,
int? compressionLevel,
string? danglingNamePrefix,
bool? forceCompression,
bool? insecure,
bool? nameCanonical,
ImmutableArray<string> names,
bool? ociMediaTypes,
bool? push,
bool? pushByDigest,
bool? store,
bool? unpack)
{
Annotations = annotations;
Compression = compression;
CompressionLevel = compressionLevel;
DanglingNamePrefix = danglingNamePrefix;
ForceCompression = forceCompression;
Insecure = insecure;
NameCanonical = nameCanonical;
Names = names;
OciMediaTypes = ociMediaTypes;
Push = push;
PushByDigest = pushByDigest;
Store = store;
Unpack = unpack;
}
}
}

27
sdk/dotnet/Outputs/ExportTar.cs generated Normal file
View File

@@ -0,0 +1,27 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class ExportTar
{
/// <summary>
/// Output path.
/// </summary>
public readonly string Dest;
[OutputConstructor]
private ExportTar(string dest)
{
Dest = dest;
}
}
}

42
sdk/dotnet/Outputs/Registry.cs generated Normal file
View File

@@ -0,0 +1,42 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class Registry
{
/// <summary>
/// The registry's address (e.g. "docker.io").
/// </summary>
public readonly string Address;
/// <summary>
/// Password or token for the registry.
/// </summary>
public readonly string? Password;
/// <summary>
/// Username for the registry.
/// </summary>
public readonly string? Username;
[OutputConstructor]
private Registry(
string address,
string? password,
string? username)
{
Address = address;
Password = password;
Username = username;
}
}
}

45
sdk/dotnet/Outputs/SSH.cs generated Normal file
View File

@@ -0,0 +1,45 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs
{
[OutputType]
public sealed class SSH
{
/// <summary>
/// Useful for distinguishing different servers that are part of the same
/// build.
///
/// A value of `default` is appropriate if only dealing with a single host.
/// </summary>
public readonly string Id;
/// <summary>
/// SSH agent socket or private keys to expose to the build under the given
/// identifier.
///
/// Defaults to `[$SSH_AUTH_SOCK]`.
///
/// Note that your keys are **not** automatically added when using an
/// agent. Run `ssh-add -l` locally to confirm which public keys are
/// visible to the agent; these will be exposed to your build.
/// </summary>
public readonly ImmutableArray<string> Paths;
[OutputConstructor]
private SSH(
string id,
ImmutableArray<string> paths)
{
Id = id;
Paths = paths;
}
}
}

29
sdk/dotnet/Provider.cs generated
View File

@@ -7,11 +7,18 @@ using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.Dockerbuild
namespace Pulumi.DockerBuild
{
[DockerbuildResourceType("pulumi:providers:dockerbuild")]
[DockerBuildResourceType("pulumi:providers:docker-build")]
public partial class Provider : global::Pulumi.ProviderResource
{
/// <summary>
/// The build daemon's address.
/// </summary>
[Output("host")]
public Output<string?> Host { get; private set; } = null!;
/// <summary>
/// Create a Provider resource with the given unique name, arguments, and options.
/// </summary>
@@ -20,7 +27,7 @@ namespace Pulumi.Dockerbuild
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public Provider(string name, ProviderArgs? args = null, CustomResourceOptions? options = null)
: base("dockerbuild", name, args ?? new ProviderArgs(), MakeResourceOptions(options, ""))
: base("docker-build", name, args ?? new ProviderArgs(), MakeResourceOptions(options, ""))
{
}
@@ -29,7 +36,6 @@ namespace Pulumi.Dockerbuild
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github.com/pulumi/pulumi-dockerbuild",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
@@ -40,8 +46,23 @@ namespace Pulumi.Dockerbuild
public sealed class ProviderArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The build daemon's address.
/// </summary>
[Input("host")]
public Input<string>? Host { get; set; }
[Input("registries", json: true)]
private InputList<Inputs.RegistryArgs>? _registries;
public InputList<Inputs.RegistryArgs> Registries
{
get => _registries ?? (_registries = new InputList<Inputs.RegistryArgs>());
set => _registries = value;
}
public ProviderArgs()
{
Host = Utilities.GetEnv("DOCKER_HOST") ?? "";
}
public static new ProviderArgs Empty => new ProviderArgs();
}

View File

@@ -4,10 +4,10 @@
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>pulumi</Authors>
<Company>pulumi</Company>
<Description>Description</Description>
<PackageLicenseExpression></PackageLicenseExpression>
<PackageProjectUrl>pulumi.com</PackageProjectUrl>
<RepositoryUrl>https://github.com/pulumi/pulumi-dockerbuild</RepositoryUrl>
<Description>A Pulumi provider for building modern Docker images with buildx and BuildKit.</Description>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageProjectUrl>https://pulumi.com</PackageProjectUrl>
<RepositoryUrl>https://github.com/pulumi/pulumi-docker-build</RepositoryUrl>
<PackageIcon>logo.png</PackageIcon>
<TargetFramework>net6.0</TargetFramework>

2
sdk/dotnet/README.md generated
View File

@@ -1 +1 @@
Description
A Pulumi provider for building modern Docker images with buildx and BuildKit.

75
sdk/dotnet/Random.cs generated
View File

@@ -1,75 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.Dockerbuild
{
[DockerbuildResourceType("dockerbuild:index:Random")]
public partial class Random : global::Pulumi.CustomResource
{
[Output("length")]
public Output<int> Length { get; private set; } = null!;
[Output("result")]
public Output<string> Result { get; private set; } = null!;
/// <summary>
/// Create a Random resource with the given unique name, arguments, and options.
/// </summary>
///
/// <param name="name">The unique name of the resource</param>
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public Random(string name, RandomArgs args, CustomResourceOptions? options = null)
: base("dockerbuild:index:Random", name, args ?? new RandomArgs(), MakeResourceOptions(options, ""))
{
}
private Random(string name, Input<string> id, CustomResourceOptions? options = null)
: base("dockerbuild:index:Random", name, null, MakeResourceOptions(options, id))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github.com/pulumi/pulumi-dockerbuild",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
merged.Id = id ?? merged.Id;
return merged;
}
/// <summary>
/// Get an existing Random resource's state with the given name, ID, and optional extra
/// properties used to qualify the lookup.
/// </summary>
///
/// <param name="name">The unique name of the resulting resource.</param>
/// <param name="id">The unique provider ID of the resource to lookup.</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public static Random Get(string name, Input<string> id, CustomResourceOptions? options = null)
{
return new Random(name, id, options);
}
}
public sealed class RandomArgs : global::Pulumi.ResourceArgs
{
[Input("length", required: true)]
public Input<int> Length { get; set; } = null!;
public RandomArgs()
{
}
public static new RandomArgs Empty => new RandomArgs();
}
}

View File

@@ -1,7 +1,7 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
namespace Pulumi.Dockerbuild
namespace Pulumi.DockerBuild
{
static class Utilities
{
@@ -53,7 +53,6 @@ namespace Pulumi.Dockerbuild
{
var dst = src ?? new global::Pulumi.InvokeOptions{};
dst.Version = src?.Version ?? Version;
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github.com/pulumi/pulumi-dockerbuild";
return dst;
}
@@ -63,7 +62,7 @@ namespace Pulumi.Dockerbuild
static Utilities()
{
var assembly = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(Utilities)).Assembly;
using var stream = assembly.GetManifestResourceStream("Pulumi.Dockerbuild.version.txt");
using var stream = assembly.GetManifestResourceStream("Pulumi.DockerBuild.version.txt");
using var reader = new global::System.IO.StreamReader(stream ?? throw new global::System.NotSupportedException("Missing embedded version.txt file"));
version = reader.ReadToEnd().Trim();
var parts = version.Split("\n");
@@ -75,9 +74,9 @@ namespace Pulumi.Dockerbuild
}
}
internal sealed class DockerbuildResourceTypeAttribute : global::Pulumi.ResourceTypeAttribute
internal sealed class DockerBuildResourceTypeAttribute : global::Pulumi.ResourceTypeAttribute
{
public DockerbuildResourceTypeAttribute(string type) : base(type, Utilities.Version)
public DockerBuildResourceTypeAttribute(string type) : base(type, Utilities.Version)
{
}
}

View File

@@ -1,5 +1,4 @@
{
"resource": true,
"name": "dockerbuild",
"server": "github.com/pulumi/pulumi-dockerbuild"
"name": "docker-build"
}

28
sdk/go/dockerbuild/config/config.go generated Normal file
View File

@@ -0,0 +1,28 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package config
import (
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
var _ = internal.GetEnvOrDefault
// The build daemon's address.
func GetHost(ctx *pulumi.Context) string {
v, err := config.Try(ctx, "docker-build:host")
if err == nil {
return v
}
var value string
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
value = d.(string)
}
return value
}
func GetRegistries(ctx *pulumi.Context) string {
return config.Get(ctx, "docker-build:registries")
}

View File

@@ -1,2 +1,2 @@
// Description
// A Pulumi provider for building modern Docker images with buildx and BuildKit.
package dockerbuild

View File

@@ -1,10 +1,10 @@
module github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild
module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild
go 1.21.7
require (
github.com/blang/semver v3.5.1+incompatible
github.com/pulumi/pulumi/sdk/v3 v3.111.1
github.com/pulumi/pulumi/sdk/v3 v3.113.0
)
require (
@@ -21,27 +21,30 @@ require (
github.com/charmbracelet/lipgloss v0.7.1 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.3.7 // indirect
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
github.com/containerd/console v1.0.4 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/djherbis/times v1.5.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/fatih/color v1.16.0 // indirect
github.com/frankban/quicktest v1.14.6 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.11.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.1.2 // indirect
github.com/golang/glog v1.2.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/uuid v1.4.0 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl/v2 v2.18.0 // indirect
github.com/hashicorp/hcl/v2 v2.19.1 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect
@@ -50,6 +53,7 @@ require (
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.15.2 // indirect
github.com/onsi/gomega v1.31.1 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pgavlin/fx v0.1.6 // indirect
@@ -59,33 +63,34 @@ require (
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.6.2 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sergi/go-diff v1.3.1 // indirect
github.com/skeema/knownhosts v1.2.1 // indirect
github.com/spf13/cobra v1.7.0 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.8.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stretchr/objx v0.5.0 // indirect
github.com/stretchr/testify v1.9.0 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/zclconf/go-cty v1.14.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/sync v0.5.0 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/term v0.15.0 // indirect
github.com/zclconf/go-cty v1.14.1 // indirect
go.uber.org/atomic v1.10.0 // indirect
golang.org/x/crypto v0.21.0 // indirect
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
golang.org/x/mod v0.16.0 // indirect
golang.org/x/net v0.22.0 // indirect
golang.org/x/sync v0.6.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/term v0.18.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/tools v0.15.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
google.golang.org/grpc v1.59.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
golang.org/x/tools v0.19.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
google.golang.org/grpc v1.62.1 // indirect
google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.4.2 // indirect

View File

@@ -35,9 +35,10 @@ github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuP
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro=
github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -50,8 +51,10 @@ github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/El
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
@@ -65,18 +68,17 @@ github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lK
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68=
github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -84,8 +86,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/hcl/v2 v2.18.0 h1:wYnG7Lt31t2zYkcquwgKo6MWXzRUDIeIVU5naZwHLl8=
github.com/hashicorp/hcl/v2 v2.18.0/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI=
github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
@@ -105,12 +107,13 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
@@ -129,8 +132,8 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo=
github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0=
github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0=
github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
@@ -140,6 +143,7 @@ github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
@@ -150,14 +154,15 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw=
github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k=
github.com/pulumi/pulumi/sdk/v3 v3.111.1 h1:uOeG/b6YxBuL59xHtmFPspMa8BB6ovjHelL7sVCGJZw=
github.com/pulumi/pulumi/sdk/v3 v3.111.1/go.mod h1:5A6GHUwAJlRY1SSLZh84aDIbsBShcrfcmHzI50ecSBg=
github.com/pulumi/pulumi/sdk/v3 v3.113.0 h1:CIlmxJZdjxpPPoFe/rrP1dWTwh3CB7ahs/dA6SHcbuE=
github.com/pulumi/pulumi/sdk/v3 v3.113.0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
@@ -168,23 +173,22 @@ github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NF
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=
github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68=
@@ -198,10 +202,10 @@ github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/zclconf/go-cty v1.14.0 h1:/Xrd39K7DXbHzlisFP9c4pHao4yyf+/Ug9LEz+Y/yhc=
github.com/zclconf/go-cty v1.14.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
github.com/zclconf/go-cty v1.14.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA=
github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -209,18 +213,18 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o=
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -232,15 +236,15 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -256,20 +260,21 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -287,20 +292,18 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8=
golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk=
golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I=
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc=
google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk=
google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

1363
sdk/go/dockerbuild/image.go generated Normal file

File diff suppressed because it is too large Load Diff

307
sdk/go/dockerbuild/index.go generated Normal file
View File

@@ -0,0 +1,307 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
// A wrapper around `docker buildx imagetools create` to create an index
// (or manifest list) referencing one or more existing images.
//
// In most cases you do not need an `Index` to build a multi-platform
// image -- specifying multiple platforms on the `Image` will handle this
// for you automatically.
//
// However, as of April 2024, building multi-platform images _with
// caching_ will only export a cache for one platform at a time (see [this
// discussion](https://github.com/docker/buildx/discussions/1382) for more
// details).
//
// Therefore this resource can be helpful if you are building
// multi-platform images with caching: each platform can be built and
// cached separately, and an `Index` can join them all together. An
// example of this is shown below.
//
// This resource creates an OCI image index or a Docker manifest list
// depending on the media types of the source images.
//
// ## Example Usage
// ### Multi-platform registry caching
// ```go
// package main
//
// import (
//
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// amd64, err := dockerbuild.NewImage(ctx, "amd64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_amd64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-amd64"),
// },
// })
// if err != nil {
// return err
// }
// arm64, err := dockerbuild.NewImage(ctx, "arm64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_arm64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-arm64"),
// },
// })
// if err != nil {
// return err
// }
// index, err := dockerbuild.NewIndex(ctx, "index", &dockerbuild.IndexArgs{
// Sources: pulumi.StringArray{
// amd64.Ref,
// arm64.Ref,
// },
// Tag: pulumi.String("docker.io/pulumi/pulumi:3.107.0"),
// })
// if err != nil {
// return err
// }
// ctx.Export("ref", index.Ref)
// return nil
// })
// }
//
// ```
type Index struct {
pulumi.CustomResourceState
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumi.BoolPtrOutput `pulumi:"push"`
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
Ref pulumi.StringOutput `pulumi:"ref"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry RegistryPtrOutput `pulumi:"registry"`
// Existing images to include in the index.
Sources pulumi.StringArrayOutput `pulumi:"sources"`
// The tag to apply to the index.
Tag pulumi.StringOutput `pulumi:"tag"`
}
// NewIndex registers a new resource with the given unique name, arguments, and options.
func NewIndex(ctx *pulumi.Context,
name string, args *IndexArgs, opts ...pulumi.ResourceOption) (*Index, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Sources == nil {
return nil, errors.New("invalid value for required argument 'Sources'")
}
if args.Tag == nil {
return nil, errors.New("invalid value for required argument 'Tag'")
}
if args.Push == nil {
args.Push = pulumi.BoolPtr(true)
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Index
err := ctx.RegisterResource("docker-build:index:Index", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetIndex gets an existing Index resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetIndex(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *IndexState, opts ...pulumi.ResourceOption) (*Index, error) {
var resource Index
err := ctx.ReadResource("docker-build:index:Index", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Index resources.
type indexState struct {
}
type IndexState struct {
}
func (IndexState) ElementType() reflect.Type {
return reflect.TypeOf((*indexState)(nil)).Elem()
}
type indexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push *bool `pulumi:"push"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry *Registry `pulumi:"registry"`
// Existing images to include in the index.
Sources []string `pulumi:"sources"`
// The tag to apply to the index.
Tag string `pulumi:"tag"`
}
// The set of arguments for constructing a Index resource.
type IndexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumi.BoolPtrInput
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry RegistryPtrInput
// Existing images to include in the index.
Sources pulumi.StringArrayInput
// The tag to apply to the index.
Tag pulumi.StringInput
}
func (IndexArgs) ElementType() reflect.Type {
return reflect.TypeOf((*indexArgs)(nil)).Elem()
}
type IndexInput interface {
pulumi.Input
ToIndexOutput() IndexOutput
ToIndexOutputWithContext(ctx context.Context) IndexOutput
}
func (*Index) ElementType() reflect.Type {
return reflect.TypeOf((**Index)(nil)).Elem()
}
func (i *Index) ToIndexOutput() IndexOutput {
return i.ToIndexOutputWithContext(context.Background())
}
func (i *Index) ToIndexOutputWithContext(ctx context.Context) IndexOutput {
return pulumi.ToOutputWithContext(ctx, i).(IndexOutput)
}
func (i *Index) ToOutput(ctx context.Context) pulumix.Output[*Index] {
return pulumix.Output[*Index]{
OutputState: i.ToIndexOutputWithContext(ctx).OutputState,
}
}
type IndexOutput struct{ *pulumi.OutputState }
func (IndexOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Index)(nil)).Elem()
}
func (o IndexOutput) ToIndexOutput() IndexOutput {
return o
}
func (o IndexOutput) ToIndexOutputWithContext(ctx context.Context) IndexOutput {
return o
}
func (o IndexOutput) ToOutput(ctx context.Context) pulumix.Output[*Index] {
return pulumix.Output[*Index]{
OutputState: o.OutputState,
}
}
// If true, push the index to the target registry.
//
// Defaults to `true`.
func (o IndexOutput) Push() pulumi.BoolPtrOutput {
return o.ApplyT(func(v *Index) pulumi.BoolPtrOutput { return v.Push }).(pulumi.BoolPtrOutput)
}
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
func (o IndexOutput) Ref() pulumi.StringOutput {
return o.ApplyT(func(v *Index) pulumi.StringOutput { return v.Ref }).(pulumi.StringOutput)
}
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
func (o IndexOutput) Registry() RegistryPtrOutput {
return o.ApplyT(func(v *Index) RegistryPtrOutput { return v.Registry }).(RegistryPtrOutput)
}
// Existing images to include in the index.
func (o IndexOutput) Sources() pulumi.StringArrayOutput {
return o.ApplyT(func(v *Index) pulumi.StringArrayOutput { return v.Sources }).(pulumi.StringArrayOutput)
}
// The tag to apply to the index.
func (o IndexOutput) Tag() pulumi.StringOutput {
return o.ApplyT(func(v *Index) pulumi.StringOutput { return v.Tag }).(pulumi.StringOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*IndexInput)(nil)).Elem(), &Index{})
pulumi.RegisterOutputType(IndexOutput{})
}

View File

@@ -7,7 +7,7 @@ import (
"fmt"
"github.com/blang/semver"
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
@@ -21,8 +21,10 @@ func (m *module) Version() semver.Version {
func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
switch typ {
case "dockerbuild:index:Random":
r = &Random{}
case "docker-build:index:Image":
r = &Image{}
case "docker-build:index:Index":
r = &Index{}
default:
return nil, fmt.Errorf("unknown resource type: %s", typ)
}
@@ -40,7 +42,7 @@ func (p *pkg) Version() semver.Version {
}
func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) {
if typ != "pulumi:providers:dockerbuild" {
if typ != "pulumi:providers:docker-build" {
return nil, fmt.Errorf("unknown provider type: %s", typ)
}
@@ -55,12 +57,12 @@ func init() {
version = semver.Version{Major: 1}
}
pulumi.RegisterResourceModule(
"dockerbuild",
"docker-build",
"index",
&module{version},
)
pulumi.RegisterResourcePackage(
"dockerbuild",
"docker-build",
&pkg{version},
)
}

View File

@@ -75,7 +75,7 @@ func PkgVersion() (semver.Version, error) {
}
type sentinal struct{}
pkgPath := reflect.TypeOf(sentinal{}).PkgPath()
re := regexp.MustCompile("^.*/pulumi-dockerbuild/sdk(/v\\d+)?")
re := regexp.MustCompile("^.*/pulumi-docker-build/sdk(/v\\d+)?")
if match := re.FindStringSubmatch(pkgPath); match != nil {
vStr := match[1]
if len(vStr) == 0 { // If the version capture group was empty, default to v1.
@@ -164,7 +164,7 @@ func callPlainInner(
// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource.
func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption {
defaults := []pulumi.ResourceOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("github.com/pulumi/pulumi-dockerbuild"))
version := SdkVersion
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))
@@ -175,7 +175,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio
// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke.
func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption {
defaults := []pulumi.InvokeOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("github.com/pulumi/pulumi-dockerbuild"))
version := SdkVersion
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))

View File

@@ -7,13 +7,16 @@ import (
"context"
"reflect"
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type Provider struct {
pulumi.ProviderResourceState
// The build daemon's address.
Host pulumi.StringPtrOutput `pulumi:"host"`
}
// NewProvider registers a new resource with the given unique name, arguments, and options.
@@ -23,9 +26,14 @@ func NewProvider(ctx *pulumi.Context,
args = &ProviderArgs{}
}
if args.Host == nil {
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
args.Host = pulumi.StringPtr(d.(string))
}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Provider
err := ctx.RegisterResource("pulumi:providers:dockerbuild", name, args, &resource, opts...)
err := ctx.RegisterResource("pulumi:providers:docker-build", name, args, &resource, opts...)
if err != nil {
return nil, err
}
@@ -33,20 +41,51 @@ func NewProvider(ctx *pulumi.Context,
}
type providerArgs struct {
// The build daemon's address.
Host *string `pulumi:"host"`
Registries []Registry `pulumi:"registries"`
}
// The set of arguments for constructing a Provider resource.
type ProviderArgs struct {
// The build daemon's address.
Host pulumi.StringPtrInput
Registries RegistryArrayInput
}
func (ProviderArgs) ElementType() reflect.Type {
return reflect.TypeOf((*providerArgs)(nil)).Elem()
}
type ProviderInput interface {
pulumi.Input
ToProviderOutput() ProviderOutput
ToProviderOutputWithContext(ctx context.Context) ProviderOutput
}
func (*Provider) ElementType() reflect.Type {
return reflect.TypeOf((**Provider)(nil)).Elem()
}
func (i *Provider) ToProviderOutput() ProviderOutput {
return i.ToProviderOutputWithContext(context.Background())
}
func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput)
}
func (i *Provider) ToOutput(ctx context.Context) pulumix.Output[*Provider] {
return pulumix.Output[*Provider]{
OutputState: i.ToProviderOutputWithContext(ctx).OutputState,
}
}
type ProviderOutput struct{ *pulumi.OutputState }
func (ProviderOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Provider)(nil)).Elem()
return reflect.TypeOf((**Provider)(nil)).Elem()
}
func (o ProviderOutput) ToProviderOutput() ProviderOutput {
@@ -57,12 +96,18 @@ func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) Provide
return o
}
func (o ProviderOutput) ToOutput(ctx context.Context) pulumix.Output[Provider] {
return pulumix.Output[Provider]{
func (o ProviderOutput) ToOutput(ctx context.Context) pulumix.Output[*Provider] {
return pulumix.Output[*Provider]{
OutputState: o.OutputState,
}
}
// The build daemon's address.
func (o ProviderOutput) Host() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Host }).(pulumi.StringPtrOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{})
pulumi.RegisterOutputType(ProviderOutput{})
}

View File

@@ -1,5 +1,4 @@
{
"resource": true,
"name": "dockerbuild",
"server": "github.com/pulumi/pulumi-dockerbuild"
"name": "docker-build"
}

886
sdk/go/dockerbuild/pulumiEnums.go generated Normal file
View File

@@ -0,0 +1,886 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type CacheMode string
const (
// Only layers that are exported into the resulting image are cached.
CacheModeMin = CacheMode("min")
// All layers are cached, even those of intermediate steps.
CacheModeMax = CacheMode("max")
)
func (CacheMode) ElementType() reflect.Type {
return reflect.TypeOf((*CacheMode)(nil)).Elem()
}
func (e CacheMode) ToCacheModeOutput() CacheModeOutput {
return pulumi.ToOutput(e).(CacheModeOutput)
}
func (e CacheMode) ToCacheModeOutputWithContext(ctx context.Context) CacheModeOutput {
return pulumi.ToOutputWithContext(ctx, e).(CacheModeOutput)
}
func (e CacheMode) ToCacheModePtrOutput() CacheModePtrOutput {
return e.ToCacheModePtrOutputWithContext(context.Background())
}
func (e CacheMode) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return CacheMode(e).ToCacheModeOutputWithContext(ctx).ToCacheModePtrOutputWithContext(ctx)
}
func (e CacheMode) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e CacheMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e CacheMode) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e CacheMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type CacheModeOutput struct{ *pulumi.OutputState }
func (CacheModeOutput) ElementType() reflect.Type {
return reflect.TypeOf((*CacheMode)(nil)).Elem()
}
func (o CacheModeOutput) ToCacheModeOutput() CacheModeOutput {
return o
}
func (o CacheModeOutput) ToCacheModeOutputWithContext(ctx context.Context) CacheModeOutput {
return o
}
func (o CacheModeOutput) ToCacheModePtrOutput() CacheModePtrOutput {
return o.ToCacheModePtrOutputWithContext(context.Background())
}
func (o CacheModeOutput) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v CacheMode) *CacheMode {
return &v
}).(CacheModePtrOutput)
}
func (o CacheModeOutput) ToOutput(ctx context.Context) pulumix.Output[CacheMode] {
return pulumix.Output[CacheMode]{
OutputState: o.OutputState,
}
}
func (o CacheModeOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o CacheModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CacheMode) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o CacheModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CacheModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CacheMode) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type CacheModePtrOutput struct{ *pulumi.OutputState }
func (CacheModePtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**CacheMode)(nil)).Elem()
}
func (o CacheModePtrOutput) ToCacheModePtrOutput() CacheModePtrOutput {
return o
}
func (o CacheModePtrOutput) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return o
}
func (o CacheModePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*CacheMode] {
return pulumix.Output[*CacheMode]{
OutputState: o.OutputState,
}
}
func (o CacheModePtrOutput) Elem() CacheModeOutput {
return o.ApplyT(func(v *CacheMode) CacheMode {
if v != nil {
return *v
}
var ret CacheMode
return ret
}).(CacheModeOutput)
}
func (o CacheModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CacheModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *CacheMode) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// CacheModeInput is an input type that accepts values of the CacheMode enum
// A concrete instance of `CacheModeInput` can be one of the following:
//
// CacheModeMin
// CacheModeMax
type CacheModeInput interface {
pulumi.Input
ToCacheModeOutput() CacheModeOutput
ToCacheModeOutputWithContext(context.Context) CacheModeOutput
}
var cacheModePtrType = reflect.TypeOf((**CacheMode)(nil)).Elem()
type CacheModePtrInput interface {
pulumi.Input
ToCacheModePtrOutput() CacheModePtrOutput
ToCacheModePtrOutputWithContext(context.Context) CacheModePtrOutput
}
type cacheModePtr string
func CacheModePtr(v string) CacheModePtrInput {
return (*cacheModePtr)(&v)
}
func (*cacheModePtr) ElementType() reflect.Type {
return cacheModePtrType
}
func (in *cacheModePtr) ToCacheModePtrOutput() CacheModePtrOutput {
return pulumi.ToOutput(in).(CacheModePtrOutput)
}
func (in *cacheModePtr) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(CacheModePtrOutput)
}
func (in *cacheModePtr) ToOutput(ctx context.Context) pulumix.Output[*CacheMode] {
return pulumix.Output[*CacheMode]{
OutputState: in.ToCacheModePtrOutputWithContext(ctx).OutputState,
}
}
type CompressionType string
const (
// Use `gzip` for compression.
CompressionTypeGzip = CompressionType("gzip")
// Use `estargz` for compression.
CompressionTypeEstargz = CompressionType("estargz")
// Use `zstd` for compression.
CompressionTypeZstd = CompressionType("zstd")
)
func (CompressionType) ElementType() reflect.Type {
return reflect.TypeOf((*CompressionType)(nil)).Elem()
}
func (e CompressionType) ToCompressionTypeOutput() CompressionTypeOutput {
return pulumi.ToOutput(e).(CompressionTypeOutput)
}
func (e CompressionType) ToCompressionTypeOutputWithContext(ctx context.Context) CompressionTypeOutput {
return pulumi.ToOutputWithContext(ctx, e).(CompressionTypeOutput)
}
func (e CompressionType) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return e.ToCompressionTypePtrOutputWithContext(context.Background())
}
func (e CompressionType) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return CompressionType(e).ToCompressionTypeOutputWithContext(ctx).ToCompressionTypePtrOutputWithContext(ctx)
}
func (e CompressionType) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e CompressionType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e CompressionType) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e CompressionType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type CompressionTypeOutput struct{ *pulumi.OutputState }
func (CompressionTypeOutput) ElementType() reflect.Type {
return reflect.TypeOf((*CompressionType)(nil)).Elem()
}
func (o CompressionTypeOutput) ToCompressionTypeOutput() CompressionTypeOutput {
return o
}
func (o CompressionTypeOutput) ToCompressionTypeOutputWithContext(ctx context.Context) CompressionTypeOutput {
return o
}
func (o CompressionTypeOutput) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return o.ToCompressionTypePtrOutputWithContext(context.Background())
}
func (o CompressionTypeOutput) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v CompressionType) *CompressionType {
return &v
}).(CompressionTypePtrOutput)
}
func (o CompressionTypeOutput) ToOutput(ctx context.Context) pulumix.Output[CompressionType] {
return pulumix.Output[CompressionType]{
OutputState: o.OutputState,
}
}
func (o CompressionTypeOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o CompressionTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CompressionType) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o CompressionTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CompressionTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CompressionType) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type CompressionTypePtrOutput struct{ *pulumi.OutputState }
func (CompressionTypePtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**CompressionType)(nil)).Elem()
}
func (o CompressionTypePtrOutput) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return o
}
func (o CompressionTypePtrOutput) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return o
}
func (o CompressionTypePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*CompressionType] {
return pulumix.Output[*CompressionType]{
OutputState: o.OutputState,
}
}
func (o CompressionTypePtrOutput) Elem() CompressionTypeOutput {
return o.ApplyT(func(v *CompressionType) CompressionType {
if v != nil {
return *v
}
var ret CompressionType
return ret
}).(CompressionTypeOutput)
}
func (o CompressionTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CompressionTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *CompressionType) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// CompressionTypeInput is an input type that accepts values of the CompressionType enum
// A concrete instance of `CompressionTypeInput` can be one of the following:
//
// CompressionTypeGzip
// CompressionTypeEstargz
// CompressionTypeZstd
type CompressionTypeInput interface {
pulumi.Input
ToCompressionTypeOutput() CompressionTypeOutput
ToCompressionTypeOutputWithContext(context.Context) CompressionTypeOutput
}
var compressionTypePtrType = reflect.TypeOf((**CompressionType)(nil)).Elem()
type CompressionTypePtrInput interface {
pulumi.Input
ToCompressionTypePtrOutput() CompressionTypePtrOutput
ToCompressionTypePtrOutputWithContext(context.Context) CompressionTypePtrOutput
}
type compressionTypePtr string
func CompressionTypePtr(v string) CompressionTypePtrInput {
return (*compressionTypePtr)(&v)
}
func (*compressionTypePtr) ElementType() reflect.Type {
return compressionTypePtrType
}
func (in *compressionTypePtr) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return pulumi.ToOutput(in).(CompressionTypePtrOutput)
}
func (in *compressionTypePtr) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(CompressionTypePtrOutput)
}
func (in *compressionTypePtr) ToOutput(ctx context.Context) pulumix.Output[*CompressionType] {
return pulumix.Output[*CompressionType]{
OutputState: in.ToCompressionTypePtrOutputWithContext(ctx).OutputState,
}
}
type NetworkMode string
const (
// The default sandbox network mode.
NetworkModeDefault = NetworkMode("default")
// Host network mode.
NetworkModeHost = NetworkMode("host")
// Disable network access.
NetworkModeNone = NetworkMode("none")
)
func (NetworkMode) ElementType() reflect.Type {
return reflect.TypeOf((*NetworkMode)(nil)).Elem()
}
func (e NetworkMode) ToNetworkModeOutput() NetworkModeOutput {
return pulumi.ToOutput(e).(NetworkModeOutput)
}
func (e NetworkMode) ToNetworkModeOutputWithContext(ctx context.Context) NetworkModeOutput {
return pulumi.ToOutputWithContext(ctx, e).(NetworkModeOutput)
}
func (e NetworkMode) ToNetworkModePtrOutput() NetworkModePtrOutput {
return e.ToNetworkModePtrOutputWithContext(context.Background())
}
func (e NetworkMode) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return NetworkMode(e).ToNetworkModeOutputWithContext(ctx).ToNetworkModePtrOutputWithContext(ctx)
}
func (e NetworkMode) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e NetworkMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e NetworkMode) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e NetworkMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type NetworkModeOutput struct{ *pulumi.OutputState }
func (NetworkModeOutput) ElementType() reflect.Type {
return reflect.TypeOf((*NetworkMode)(nil)).Elem()
}
func (o NetworkModeOutput) ToNetworkModeOutput() NetworkModeOutput {
return o
}
func (o NetworkModeOutput) ToNetworkModeOutputWithContext(ctx context.Context) NetworkModeOutput {
return o
}
func (o NetworkModeOutput) ToNetworkModePtrOutput() NetworkModePtrOutput {
return o.ToNetworkModePtrOutputWithContext(context.Background())
}
func (o NetworkModeOutput) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkMode) *NetworkMode {
return &v
}).(NetworkModePtrOutput)
}
func (o NetworkModeOutput) ToOutput(ctx context.Context) pulumix.Output[NetworkMode] {
return pulumix.Output[NetworkMode]{
OutputState: o.OutputState,
}
}
func (o NetworkModeOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o NetworkModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e NetworkMode) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o NetworkModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o NetworkModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e NetworkMode) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type NetworkModePtrOutput struct{ *pulumi.OutputState }
func (NetworkModePtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkMode)(nil)).Elem()
}
func (o NetworkModePtrOutput) ToNetworkModePtrOutput() NetworkModePtrOutput {
return o
}
func (o NetworkModePtrOutput) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return o
}
func (o NetworkModePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*NetworkMode] {
return pulumix.Output[*NetworkMode]{
OutputState: o.OutputState,
}
}
func (o NetworkModePtrOutput) Elem() NetworkModeOutput {
return o.ApplyT(func(v *NetworkMode) NetworkMode {
if v != nil {
return *v
}
var ret NetworkMode
return ret
}).(NetworkModeOutput)
}
func (o NetworkModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o NetworkModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *NetworkMode) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// NetworkModeInput is an input type that accepts values of the NetworkMode enum
// A concrete instance of `NetworkModeInput` can be one of the following:
//
// NetworkModeDefault
// NetworkModeHost
// NetworkModeNone
type NetworkModeInput interface {
pulumi.Input
ToNetworkModeOutput() NetworkModeOutput
ToNetworkModeOutputWithContext(context.Context) NetworkModeOutput
}
var networkModePtrType = reflect.TypeOf((**NetworkMode)(nil)).Elem()
type NetworkModePtrInput interface {
pulumi.Input
ToNetworkModePtrOutput() NetworkModePtrOutput
ToNetworkModePtrOutputWithContext(context.Context) NetworkModePtrOutput
}
type networkModePtr string
func NetworkModePtr(v string) NetworkModePtrInput {
return (*networkModePtr)(&v)
}
func (*networkModePtr) ElementType() reflect.Type {
return networkModePtrType
}
func (in *networkModePtr) ToNetworkModePtrOutput() NetworkModePtrOutput {
return pulumi.ToOutput(in).(NetworkModePtrOutput)
}
func (in *networkModePtr) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(NetworkModePtrOutput)
}
func (in *networkModePtr) ToOutput(ctx context.Context) pulumix.Output[*NetworkMode] {
return pulumix.Output[*NetworkMode]{
OutputState: in.ToNetworkModePtrOutputWithContext(ctx).OutputState,
}
}
type Platform string
const (
Platform_Darwin_386 = Platform("darwin/386")
Platform_Darwin_amd64 = Platform("darwin/amd64")
Platform_Darwin_arm = Platform("darwin/arm")
Platform_Darwin_arm64 = Platform("darwin/arm64")
Platform_Dragonfly_amd64 = Platform("dragonfly/amd64")
Platform_Freebsd_386 = Platform("freebsd/386")
Platform_Freebsd_amd64 = Platform("freebsd/amd64")
Platform_Freebsd_arm = Platform("freebsd/arm")
Platform_Linux_386 = Platform("linux/386")
Platform_Linux_amd64 = Platform("linux/amd64")
Platform_Linux_arm = Platform("linux/arm")
Platform_Linux_arm64 = Platform("linux/arm64")
Platform_Linux_mips64 = Platform("linux/mips64")
Platform_Linux_mips64le = Platform("linux/mips64le")
Platform_Linux_ppc64le = Platform("linux/ppc64le")
Platform_Linux_riscv64 = Platform("linux/riscv64")
Platform_Linux_s390x = Platform("linux/s390x")
Platform_Netbsd_386 = Platform("netbsd/386")
Platform_Netbsd_amd64 = Platform("netbsd/amd64")
Platform_Netbsd_arm = Platform("netbsd/arm")
Platform_Openbsd_386 = Platform("openbsd/386")
Platform_Openbsd_amd64 = Platform("openbsd/amd64")
Platform_Openbsd_arm = Platform("openbsd/arm")
Platform_Plan9_386 = Platform("plan9/386")
Platform_Plan9_amd64 = Platform("plan9/amd64")
Platform_Solaris_amd64 = Platform("solaris/amd64")
Platform_Windows_386 = Platform("windows/386")
Platform_Windows_amd64 = Platform("windows/amd64")
)
func (Platform) ElementType() reflect.Type {
return reflect.TypeOf((*Platform)(nil)).Elem()
}
func (e Platform) ToPlatformOutput() PlatformOutput {
return pulumi.ToOutput(e).(PlatformOutput)
}
func (e Platform) ToPlatformOutputWithContext(ctx context.Context) PlatformOutput {
return pulumi.ToOutputWithContext(ctx, e).(PlatformOutput)
}
func (e Platform) ToPlatformPtrOutput() PlatformPtrOutput {
return e.ToPlatformPtrOutputWithContext(context.Background())
}
func (e Platform) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return Platform(e).ToPlatformOutputWithContext(ctx).ToPlatformPtrOutputWithContext(ctx)
}
func (e Platform) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e Platform) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e Platform) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e Platform) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type PlatformOutput struct{ *pulumi.OutputState }
func (PlatformOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Platform)(nil)).Elem()
}
func (o PlatformOutput) ToPlatformOutput() PlatformOutput {
return o
}
func (o PlatformOutput) ToPlatformOutputWithContext(ctx context.Context) PlatformOutput {
return o
}
func (o PlatformOutput) ToPlatformPtrOutput() PlatformPtrOutput {
return o.ToPlatformPtrOutputWithContext(context.Background())
}
func (o PlatformOutput) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v Platform) *Platform {
return &v
}).(PlatformPtrOutput)
}
func (o PlatformOutput) ToOutput(ctx context.Context) pulumix.Output[Platform] {
return pulumix.Output[Platform]{
OutputState: o.OutputState,
}
}
func (o PlatformOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o PlatformOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e Platform) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o PlatformOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o PlatformOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e Platform) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type PlatformPtrOutput struct{ *pulumi.OutputState }
func (PlatformPtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Platform)(nil)).Elem()
}
func (o PlatformPtrOutput) ToPlatformPtrOutput() PlatformPtrOutput {
return o
}
func (o PlatformPtrOutput) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return o
}
func (o PlatformPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*Platform] {
return pulumix.Output[*Platform]{
OutputState: o.OutputState,
}
}
func (o PlatformPtrOutput) Elem() PlatformOutput {
return o.ApplyT(func(v *Platform) Platform {
if v != nil {
return *v
}
var ret Platform
return ret
}).(PlatformOutput)
}
func (o PlatformPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o PlatformPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *Platform) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// PlatformInput is an input type that accepts values of the Platform enum
// A concrete instance of `PlatformInput` can be one of the following:
//
// Platform_Darwin_386
// Platform_Darwin_amd64
// Platform_Darwin_arm
// Platform_Darwin_arm64
// Platform_Dragonfly_amd64
// Platform_Freebsd_386
// Platform_Freebsd_amd64
// Platform_Freebsd_arm
// Platform_Linux_386
// Platform_Linux_amd64
// Platform_Linux_arm
// Platform_Linux_arm64
// Platform_Linux_mips64
// Platform_Linux_mips64le
// Platform_Linux_ppc64le
// Platform_Linux_riscv64
// Platform_Linux_s390x
// Platform_Netbsd_386
// Platform_Netbsd_amd64
// Platform_Netbsd_arm
// Platform_Openbsd_386
// Platform_Openbsd_amd64
// Platform_Openbsd_arm
// Platform_Plan9_386
// Platform_Plan9_amd64
// Platform_Solaris_amd64
// Platform_Windows_386
// Platform_Windows_amd64
type PlatformInput interface {
pulumi.Input
ToPlatformOutput() PlatformOutput
ToPlatformOutputWithContext(context.Context) PlatformOutput
}
var platformPtrType = reflect.TypeOf((**Platform)(nil)).Elem()
type PlatformPtrInput interface {
pulumi.Input
ToPlatformPtrOutput() PlatformPtrOutput
ToPlatformPtrOutputWithContext(context.Context) PlatformPtrOutput
}
type platformPtr string
func PlatformPtr(v string) PlatformPtrInput {
return (*platformPtr)(&v)
}
func (*platformPtr) ElementType() reflect.Type {
return platformPtrType
}
func (in *platformPtr) ToPlatformPtrOutput() PlatformPtrOutput {
return pulumi.ToOutput(in).(PlatformPtrOutput)
}
func (in *platformPtr) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(PlatformPtrOutput)
}
func (in *platformPtr) ToOutput(ctx context.Context) pulumix.Output[*Platform] {
return pulumix.Output[*Platform]{
OutputState: in.ToPlatformPtrOutputWithContext(ctx).OutputState,
}
}
// PlatformArrayInput is an input type that accepts PlatformArray and PlatformArrayOutput values.
// You can construct a concrete instance of `PlatformArrayInput` via:
//
// PlatformArray{ PlatformArgs{...} }
type PlatformArrayInput interface {
pulumi.Input
ToPlatformArrayOutput() PlatformArrayOutput
ToPlatformArrayOutputWithContext(context.Context) PlatformArrayOutput
}
type PlatformArray []Platform
func (PlatformArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]Platform)(nil)).Elem()
}
func (i PlatformArray) ToPlatformArrayOutput() PlatformArrayOutput {
return i.ToPlatformArrayOutputWithContext(context.Background())
}
func (i PlatformArray) ToPlatformArrayOutputWithContext(ctx context.Context) PlatformArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(PlatformArrayOutput)
}
func (i PlatformArray) ToOutput(ctx context.Context) pulumix.Output[[]Platform] {
return pulumix.Output[[]Platform]{
OutputState: i.ToPlatformArrayOutputWithContext(ctx).OutputState,
}
}
type PlatformArrayOutput struct{ *pulumi.OutputState }
func (PlatformArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]Platform)(nil)).Elem()
}
func (o PlatformArrayOutput) ToPlatformArrayOutput() PlatformArrayOutput {
return o
}
func (o PlatformArrayOutput) ToPlatformArrayOutputWithContext(ctx context.Context) PlatformArrayOutput {
return o
}
func (o PlatformArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]Platform] {
return pulumix.Output[[]Platform]{
OutputState: o.OutputState,
}
}
func (o PlatformArrayOutput) Index(i pulumi.IntInput) PlatformOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) Platform {
return vs[0].([]Platform)[vs[1].(int)]
}).(PlatformOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*CacheModeInput)(nil)).Elem(), CacheMode("min"))
pulumi.RegisterInputType(reflect.TypeOf((*CacheModePtrInput)(nil)).Elem(), CacheMode("min"))
pulumi.RegisterInputType(reflect.TypeOf((*CompressionTypeInput)(nil)).Elem(), CompressionType("gzip"))
pulumi.RegisterInputType(reflect.TypeOf((*CompressionTypePtrInput)(nil)).Elem(), CompressionType("gzip"))
pulumi.RegisterInputType(reflect.TypeOf((*NetworkModeInput)(nil)).Elem(), NetworkMode("default"))
pulumi.RegisterInputType(reflect.TypeOf((*NetworkModePtrInput)(nil)).Elem(), NetworkMode("default"))
pulumi.RegisterInputType(reflect.TypeOf((*PlatformInput)(nil)).Elem(), Platform("darwin/386"))
pulumi.RegisterInputType(reflect.TypeOf((*PlatformPtrInput)(nil)).Elem(), Platform("darwin/386"))
pulumi.RegisterInputType(reflect.TypeOf((*PlatformArrayInput)(nil)).Elem(), PlatformArray{})
pulumi.RegisterOutputType(CacheModeOutput{})
pulumi.RegisterOutputType(CacheModePtrOutput{})
pulumi.RegisterOutputType(CompressionTypeOutput{})
pulumi.RegisterOutputType(CompressionTypePtrOutput{})
pulumi.RegisterOutputType(NetworkModeOutput{})
pulumi.RegisterOutputType(NetworkModePtrOutput{})
pulumi.RegisterOutputType(PlatformOutput{})
pulumi.RegisterOutputType(PlatformPtrOutput{})
pulumi.RegisterOutputType(PlatformArrayOutput{})
}

7217
sdk/go/dockerbuild/pulumiTypes.go generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,110 +0,0 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type Random struct {
pulumi.CustomResourceState
Length pulumix.Output[int] `pulumi:"length"`
Result pulumix.Output[string] `pulumi:"result"`
}
// NewRandom registers a new resource with the given unique name, arguments, and options.
func NewRandom(ctx *pulumi.Context,
name string, args *RandomArgs, opts ...pulumi.ResourceOption) (*Random, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Length == nil {
return nil, errors.New("invalid value for required argument 'Length'")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Random
err := ctx.RegisterResource("dockerbuild:index:Random", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetRandom gets an existing Random resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetRandom(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *RandomState, opts ...pulumi.ResourceOption) (*Random, error) {
var resource Random
err := ctx.ReadResource("dockerbuild:index:Random", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Random resources.
type randomState struct {
}
type RandomState struct {
}
func (RandomState) ElementType() reflect.Type {
return reflect.TypeOf((*randomState)(nil)).Elem()
}
type randomArgs struct {
Length int `pulumi:"length"`
}
// The set of arguments for constructing a Random resource.
type RandomArgs struct {
Length pulumix.Input[int]
}
func (RandomArgs) ElementType() reflect.Type {
return reflect.TypeOf((*randomArgs)(nil)).Elem()
}
type RandomOutput struct{ *pulumi.OutputState }
func (RandomOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Random)(nil)).Elem()
}
func (o RandomOutput) ToRandomOutput() RandomOutput {
return o
}
func (o RandomOutput) ToRandomOutputWithContext(ctx context.Context) RandomOutput {
return o
}
func (o RandomOutput) ToOutput(ctx context.Context) pulumix.Output[Random] {
return pulumix.Output[Random]{
OutputState: o.OutputState,
}
}
func (o RandomOutput) Length() pulumix.Output[int] {
value := pulumix.Apply[Random](o, func(v Random) pulumix.Output[int] { return v.Length })
return pulumix.Flatten[int, pulumix.Output[int]](value)
}
func (o RandomOutput) Result() pulumix.Output[string] {
value := pulumix.Apply[Random](o, func(v Random) pulumix.Output[string] { return v.Result })
return pulumix.Flatten[string, pulumix.Output[string]](value)
}
func init() {
pulumi.RegisterOutputType(RandomOutput{})
}

28
sdk/go/dockerbuild/x/config/config.go generated Normal file
View File

@@ -0,0 +1,28 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package config
import (
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
var _ = internal.GetEnvOrDefault
// The build daemon's address.
func GetHost(ctx *pulumi.Context) string {
v, err := config.Try(ctx, "docker-build:host")
if err == nil {
return v
}
var value string
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
value = d.(string)
}
return value
}
func GetRegistries(ctx *pulumi.Context) string {
return config.Get(ctx, "docker-build:registries")
}

2
sdk/go/dockerbuild/x/doc.go generated Normal file
View File

@@ -0,0 +1,2 @@
// A Pulumi provider for building modern Docker images with buildx and BuildKit.
package dockerbuild

1376
sdk/go/dockerbuild/x/image.go generated Normal file

File diff suppressed because it is too large Load Diff

288
sdk/go/dockerbuild/x/index.go generated Normal file
View File

@@ -0,0 +1,288 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
// A wrapper around `docker buildx imagetools create` to create an index
// (or manifest list) referencing one or more existing images.
//
// In most cases you do not need an `Index` to build a multi-platform
// image -- specifying multiple platforms on the `Image` will handle this
// for you automatically.
//
// However, as of April 2024, building multi-platform images _with
// caching_ will only export a cache for one platform at a time (see [this
// discussion](https://github.com/docker/buildx/discussions/1382) for more
// details).
//
// Therefore this resource can be helpful if you are building
// multi-platform images with caching: each platform can be built and
// cached separately, and an `Index` can join them all together. An
// example of this is shown below.
//
// This resource creates an OCI image index or a Docker manifest list
// depending on the media types of the source images.
//
// ## Example Usage
// ### Multi-platform registry caching
// ```go
// package main
//
// import (
//
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// amd64, err := dockerbuild.NewImage(ctx, "amd64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_amd64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-amd64"),
// },
// })
// if err != nil {
// return err
// }
// arm64, err := dockerbuild.NewImage(ctx, "arm64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_arm64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-arm64"),
// },
// })
// if err != nil {
// return err
// }
// index, err := dockerbuild.NewIndex(ctx, "index", &dockerbuild.IndexArgs{
// Sources: pulumi.StringArray{
// amd64.Ref,
// arm64.Ref,
// },
// Tag: pulumi.String("docker.io/pulumi/pulumi:3.107.0"),
// })
// if err != nil {
// return err
// }
// ctx.Export("ref", index.Ref)
// return nil
// })
// }
//
// ```
type Index struct {
pulumi.CustomResourceState
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumix.Output[*bool] `pulumi:"push"`
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
Ref pulumix.Output[string] `pulumi:"ref"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry pulumix.GPtrOutput[Registry, RegistryOutput] `pulumi:"registry"`
// Existing images to include in the index.
Sources pulumix.ArrayOutput[string] `pulumi:"sources"`
// The tag to apply to the index.
Tag pulumix.Output[string] `pulumi:"tag"`
}
// NewIndex registers a new resource with the given unique name, arguments, and options.
func NewIndex(ctx *pulumi.Context,
name string, args *IndexArgs, opts ...pulumi.ResourceOption) (*Index, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Sources == nil {
return nil, errors.New("invalid value for required argument 'Sources'")
}
if args.Tag == nil {
return nil, errors.New("invalid value for required argument 'Tag'")
}
if args.Push == nil {
args.Push = pulumix.Ptr(true)
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Index
err := ctx.RegisterResource("docker-build:index:Index", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetIndex gets an existing Index resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetIndex(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *IndexState, opts ...pulumi.ResourceOption) (*Index, error) {
var resource Index
err := ctx.ReadResource("docker-build:index:Index", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Index resources.
type indexState struct {
}
type IndexState struct {
}
func (IndexState) ElementType() reflect.Type {
return reflect.TypeOf((*indexState)(nil)).Elem()
}
type indexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push *bool `pulumi:"push"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry *Registry `pulumi:"registry"`
// Existing images to include in the index.
Sources []string `pulumi:"sources"`
// The tag to apply to the index.
Tag string `pulumi:"tag"`
}
// The set of arguments for constructing a Index resource.
type IndexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumix.Input[*bool]
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry pulumix.Input[*RegistryArgs]
// Existing images to include in the index.
Sources pulumix.Input[[]string]
// The tag to apply to the index.
Tag pulumix.Input[string]
}
func (IndexArgs) ElementType() reflect.Type {
return reflect.TypeOf((*indexArgs)(nil)).Elem()
}
type IndexOutput struct{ *pulumi.OutputState }
func (IndexOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Index)(nil)).Elem()
}
func (o IndexOutput) ToIndexOutput() IndexOutput {
return o
}
func (o IndexOutput) ToIndexOutputWithContext(ctx context.Context) IndexOutput {
return o
}
func (o IndexOutput) ToOutput(ctx context.Context) pulumix.Output[Index] {
return pulumix.Output[Index]{
OutputState: o.OutputState,
}
}
// If true, push the index to the target registry.
//
// Defaults to `true`.
func (o IndexOutput) Push() pulumix.Output[*bool] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.Output[*bool] { return v.Push })
return pulumix.Flatten[*bool, pulumix.Output[*bool]](value)
}
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
func (o IndexOutput) Ref() pulumix.Output[string] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.Output[string] { return v.Ref })
return pulumix.Flatten[string, pulumix.Output[string]](value)
}
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
func (o IndexOutput) Registry() pulumix.GPtrOutput[Registry, RegistryOutput] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.GPtrOutput[Registry, RegistryOutput] { return v.Registry })
unwrapped := pulumix.Flatten[*Registry, pulumix.GPtrOutput[Registry, RegistryOutput]](value)
return pulumix.GPtrOutput[Registry, RegistryOutput]{OutputState: unwrapped.OutputState}
}
// Existing images to include in the index.
func (o IndexOutput) Sources() pulumix.ArrayOutput[string] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.ArrayOutput[string] { return v.Sources })
unwrapped := pulumix.Flatten[[]string, pulumix.ArrayOutput[string]](value)
return pulumix.ArrayOutput[string]{OutputState: unwrapped.OutputState}
}
// The tag to apply to the index.
func (o IndexOutput) Tag() pulumix.Output[string] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.Output[string] { return v.Tag })
return pulumix.Flatten[string, pulumix.Output[string]](value)
}
func init() {
pulumi.RegisterOutputType(IndexOutput{})
}

68
sdk/go/dockerbuild/x/init.go generated Normal file
View File

@@ -0,0 +1,68 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"fmt"
"github.com/blang/semver"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type module struct {
version semver.Version
}
func (m *module) Version() semver.Version {
return m.version
}
func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
switch typ {
case "docker-build:index:Image":
r = &Image{}
case "docker-build:index:Index":
r = &Index{}
default:
return nil, fmt.Errorf("unknown resource type: %s", typ)
}
err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
return
}
type pkg struct {
version semver.Version
}
func (p *pkg) Version() semver.Version {
return p.version
}
func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) {
if typ != "pulumi:providers:docker-build" {
return nil, fmt.Errorf("unknown provider type: %s", typ)
}
r := &Provider{}
err := ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
return r, err
}
func init() {
version, err := internal.PkgVersion()
if err != nil {
version = semver.Version{Major: 1}
}
pulumi.RegisterResourceModule(
"docker-build",
"index",
&module{version},
)
pulumi.RegisterResourcePackage(
"docker-build",
&pkg{version},
)
}

88
sdk/go/dockerbuild/x/provider.go generated Normal file
View File

@@ -0,0 +1,88 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type Provider struct {
pulumi.ProviderResourceState
// The build daemon's address.
Host pulumix.Output[*string] `pulumi:"host"`
}
// NewProvider registers a new resource with the given unique name, arguments, and options.
func NewProvider(ctx *pulumi.Context,
name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error) {
if args == nil {
args = &ProviderArgs{}
}
if args.Host == nil {
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
args.Host = pulumix.Ptr(d.(string))
}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Provider
err := ctx.RegisterResource("pulumi:providers:docker-build", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
type providerArgs struct {
// The build daemon's address.
Host *string `pulumi:"host"`
Registries []Registry `pulumi:"registries"`
}
// The set of arguments for constructing a Provider resource.
type ProviderArgs struct {
// The build daemon's address.
Host pulumix.Input[*string]
Registries pulumix.Input[[]*RegistryArgs]
}
func (ProviderArgs) ElementType() reflect.Type {
return reflect.TypeOf((*providerArgs)(nil)).Elem()
}
type ProviderOutput struct{ *pulumi.OutputState }
func (ProviderOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Provider)(nil)).Elem()
}
func (o ProviderOutput) ToProviderOutput() ProviderOutput {
return o
}
func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
return o
}
func (o ProviderOutput) ToOutput(ctx context.Context) pulumix.Output[Provider] {
return pulumix.Output[Provider]{
OutputState: o.OutputState,
}
}
// The build daemon's address.
func (o ProviderOutput) Host() pulumix.Output[*string] {
value := pulumix.Apply[Provider](o, func(v Provider) pulumix.Output[*string] { return v.Host })
return pulumix.Flatten[*string, pulumix.Output[*string]](value)
}
func init() {
pulumi.RegisterOutputType(ProviderOutput{})
}

68
sdk/go/dockerbuild/x/pulumiEnums.go generated Normal file
View File

@@ -0,0 +1,68 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
type CacheMode string
const (
// Only layers that are exported into the resulting image are cached.
CacheModeCacheModeMin = CacheMode("min")
// All layers are cached, even those of intermediate steps.
CacheModeCacheModeMax = CacheMode("max")
)
type CompressionType string
const (
// Use `gzip` for compression.
CompressionTypeCompressionTypeGzip = CompressionType("gzip")
// Use `estargz` for compression.
CompressionTypeCompressionTypeEstargz = CompressionType("estargz")
// Use `zstd` for compression.
CompressionTypeCompressionTypeZstd = CompressionType("zstd")
)
type NetworkMode string
const (
// The default sandbox network mode.
NetworkModeNetworkModeDefault = NetworkMode("default")
// Host network mode.
NetworkModeNetworkModeHost = NetworkMode("host")
// Disable network access.
NetworkModeNetworkModeNone = NetworkMode("none")
)
type Platform string
const (
Platform_Platform_Darwin_386 = Platform("darwin/386")
Platform_Platform_Darwin_amd64 = Platform("darwin/amd64")
Platform_Platform_Darwin_arm = Platform("darwin/arm")
Platform_Platform_Darwin_arm64 = Platform("darwin/arm64")
Platform_Platform_Dragonfly_amd64 = Platform("dragonfly/amd64")
Platform_Platform_Freebsd_386 = Platform("freebsd/386")
Platform_Platform_Freebsd_amd64 = Platform("freebsd/amd64")
Platform_Platform_Freebsd_arm = Platform("freebsd/arm")
Platform_Platform_Linux_386 = Platform("linux/386")
Platform_Platform_Linux_amd64 = Platform("linux/amd64")
Platform_Platform_Linux_arm = Platform("linux/arm")
Platform_Platform_Linux_arm64 = Platform("linux/arm64")
Platform_Platform_Linux_mips64 = Platform("linux/mips64")
Platform_Platform_Linux_mips64le = Platform("linux/mips64le")
Platform_Platform_Linux_ppc64le = Platform("linux/ppc64le")
Platform_Platform_Linux_riscv64 = Platform("linux/riscv64")
Platform_Platform_Linux_s390x = Platform("linux/s390x")
Platform_Platform_Netbsd_386 = Platform("netbsd/386")
Platform_Platform_Netbsd_amd64 = Platform("netbsd/amd64")
Platform_Platform_Netbsd_arm = Platform("netbsd/arm")
Platform_Platform_Openbsd_386 = Platform("openbsd/386")
Platform_Platform_Openbsd_amd64 = Platform("openbsd/amd64")
Platform_Platform_Openbsd_arm = Platform("openbsd/arm")
Platform_Platform_Plan9_386 = Platform("plan9/386")
Platform_Platform_Plan9_amd64 = Platform("plan9/amd64")
Platform_Platform_Solaris_amd64 = Platform("solaris/amd64")
Platform_Platform_Windows_386 = Platform("windows/386")
Platform_Platform_Windows_amd64 = Platform("windows/amd64")
)

3413
sdk/go/dockerbuild/x/pulumiTypes.go generated Normal file

File diff suppressed because it is too large Load Diff

2
sdk/java/README.md generated
View File

@@ -1 +1 @@
Description
A Pulumi provider for building modern Docker images with buildx and BuildKit.

View File

@@ -10,5 +10,5 @@ pluginManagement {
}
}
rootProject.name = "com.pulumi.dockerbuild"
rootProject.name = "com.pulumi.docker-build"
include("lib")

View File

@@ -0,0 +1,26 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.TypeShape;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.inputs.Registry;
import java.lang.String;
import java.util.List;
import java.util.Optional;
public final class Config {
private static final com.pulumi.Config config = com.pulumi.Config.of("docker-build");
/**
* The build daemon&#39;s address.
*
*/
public Optional<String> host() {
return Codegen.stringProp("host").config(config).env("DOCKER_HOST").def("").get();
}
public Optional<List<Registry>> registries() {
return Codegen.objectProp("registries", TypeShape.<List<Registry>>builder(List.class).addParameter(Registry.class).build()).config(config).get();
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,253 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.IndexArgs;
import com.pulumi.dockerbuild.Utilities;
import com.pulumi.dockerbuild.outputs.Registry;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Optional;
import javax.annotation.Nullable;
/**
* A wrapper around `docker buildx imagetools create` to create an index
* (or manifest list) referencing one or more existing images.
*
* In most cases you do not need an `Index` to build a multi-platform
* image -- specifying multiple platforms on the `Image` will handle this
* for you automatically.
*
* However, as of April 2024, building multi-platform images _with
* caching_ will only export a cache for one platform at a time (see [this
* discussion](https://github.com/docker/buildx/discussions/1382) for more
* details).
*
* Therefore this resource can be helpful if you are building
* multi-platform images with caching: each platform can be built and
* cached separately, and an `Index` can join them all together. An
* example of this is shown below.
*
* This resource creates an OCI image index or a Docker manifest list
* depending on the media types of the source images.
*
* ## Example Usage
* ### Multi-platform registry caching
* ```java
* package generated_program;
*
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.dockerbuild.Image;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.CacheFromArgs;
* import com.pulumi.dockerbuild.inputs.CacheFromRegistryArgs;
* import com.pulumi.dockerbuild.inputs.CacheToArgs;
* import com.pulumi.dockerbuild.inputs.CacheToRegistryArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import com.pulumi.dockerbuild.Index;
* import com.pulumi.dockerbuild.IndexArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
*
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
*
* public static void stack(Context ctx) {
* var amd64 = new Image(&#34;amd64&#34;, ImageArgs.builder()
* .cacheFrom(CacheFromArgs.builder()
* .registry(CacheFromRegistryArgs.builder()
* .ref(&#34;docker.io/pulumi/pulumi:cache-amd64&#34;)
* .build())
* .build())
* .cacheTo(CacheToArgs.builder()
* .registry(CacheToRegistryArgs.builder()
* .mode(&#34;max&#34;)
* .ref(&#34;docker.io/pulumi/pulumi:cache-amd64&#34;)
* .build())
* .build())
* .context(BuildContextArgs.builder()
* .location(&#34;app&#34;)
* .build())
* .platforms(&#34;linux/amd64&#34;)
* .tags(&#34;docker.io/pulumi/pulumi:3.107.0-amd64&#34;)
* .build());
*
* var arm64 = new Image(&#34;arm64&#34;, ImageArgs.builder()
* .cacheFrom(CacheFromArgs.builder()
* .registry(CacheFromRegistryArgs.builder()
* .ref(&#34;docker.io/pulumi/pulumi:cache-arm64&#34;)
* .build())
* .build())
* .cacheTo(CacheToArgs.builder()
* .registry(CacheToRegistryArgs.builder()
* .mode(&#34;max&#34;)
* .ref(&#34;docker.io/pulumi/pulumi:cache-arm64&#34;)
* .build())
* .build())
* .context(BuildContextArgs.builder()
* .location(&#34;app&#34;)
* .build())
* .platforms(&#34;linux/arm64&#34;)
* .tags(&#34;docker.io/pulumi/pulumi:3.107.0-arm64&#34;)
* .build());
*
* var index = new Index(&#34;index&#34;, IndexArgs.builder()
* .sources(
* amd64.ref(),
* arm64.ref())
* .tag(&#34;docker.io/pulumi/pulumi:3.107.0&#34;)
* .build());
*
* ctx.export(&#34;ref&#34;, index.ref());
* }
* }
* ```
*
*/
@ResourceType(type="docker-build:index:Index")
public class Index extends com.pulumi.resources.CustomResource {
/**
* If true, push the index to the target registry.
*
* Defaults to `true`.
*
*/
@Export(name="push", refs={Boolean.class}, tree="[0]")
private Output</* @Nullable */ Boolean> push;
/**
* @return If true, push the index to the target registry.
*
* Defaults to `true`.
*
*/
public Output<Optional<Boolean>> push() {
return Codegen.optional(this.push);
}
/**
* The pushed tag with digest.
*
* Identical to the tag if the index was not pushed.
*
*/
@Export(name="ref", refs={String.class}, tree="[0]")
private Output<String> ref;
/**
* @return The pushed tag with digest.
*
* Identical to the tag if the index was not pushed.
*
*/
public Output<String> ref() {
return this.ref;
}
/**
* Authentication for the registry where the tagged index will be pushed.
*
* Credentials can also be included with the provider&#39;s configuration.
*
*/
@Export(name="registry", refs={Registry.class}, tree="[0]")
private Output</* @Nullable */ Registry> registry;
/**
* @return Authentication for the registry where the tagged index will be pushed.
*
* Credentials can also be included with the provider&#39;s configuration.
*
*/
public Output<Optional<Registry>> registry() {
return Codegen.optional(this.registry);
}
/**
* Existing images to include in the index.
*
*/
@Export(name="sources", refs={List.class,String.class}, tree="[0,1]")
private Output<List<String>> sources;
/**
* @return Existing images to include in the index.
*
*/
public Output<List<String>> sources() {
return this.sources;
}
/**
* The tag to apply to the index.
*
*/
@Export(name="tag", refs={String.class}, tree="[0]")
private Output<String> tag;
/**
* @return The tag to apply to the index.
*
*/
public Output<String> tag() {
return this.tag;
}
/**
*
* @param name The _unique_ name of the resulting resource.
*/
public Index(String name) {
this(name, IndexArgs.Empty);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
*/
public Index(String name, IndexArgs args) {
this(name, args, null);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior.
*/
public Index(String name, IndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build:index:Index", name, args == null ? IndexArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
}
private Index(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build:index:Index", name, null, makeResourceOptions(options, id));
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion())
.build();
return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
}
/**
* Get an existing Host resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param options Optional settings to control the behavior of the CustomResource.
*/
public static Index get(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
return new Index(name, id, options);
}
}

View File

@@ -0,0 +1,232 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.inputs.RegistryArgs;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class IndexArgs extends com.pulumi.resources.ResourceArgs {
public static final IndexArgs Empty = new IndexArgs();
/**
* If true, push the index to the target registry.
*
* Defaults to `true`.
*
*/
@Import(name="push")
private @Nullable Output<Boolean> push;
/**
* @return If true, push the index to the target registry.
*
* Defaults to `true`.
*
*/
public Optional<Output<Boolean>> push() {
return Optional.ofNullable(this.push);
}
/**
* Authentication for the registry where the tagged index will be pushed.
*
* Credentials can also be included with the provider&#39;s configuration.
*
*/
@Import(name="registry")
private @Nullable Output<RegistryArgs> registry;
/**
* @return Authentication for the registry where the tagged index will be pushed.
*
* Credentials can also be included with the provider&#39;s configuration.
*
*/
public Optional<Output<RegistryArgs>> registry() {
return Optional.ofNullable(this.registry);
}
/**
* Existing images to include in the index.
*
*/
@Import(name="sources", required=true)
private Output<List<String>> sources;
/**
* @return Existing images to include in the index.
*
*/
public Output<List<String>> sources() {
return this.sources;
}
/**
* The tag to apply to the index.
*
*/
@Import(name="tag", required=true)
private Output<String> tag;
/**
* @return The tag to apply to the index.
*
*/
public Output<String> tag() {
return this.tag;
}
private IndexArgs() {}
private IndexArgs(IndexArgs $) {
this.push = $.push;
this.registry = $.registry;
this.sources = $.sources;
this.tag = $.tag;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(IndexArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private IndexArgs $;
public Builder() {
$ = new IndexArgs();
}
public Builder(IndexArgs defaults) {
$ = new IndexArgs(Objects.requireNonNull(defaults));
}
/**
* @param push If true, push the index to the target registry.
*
* Defaults to `true`.
*
* @return builder
*
*/
public Builder push(@Nullable Output<Boolean> push) {
$.push = push;
return this;
}
/**
* @param push If true, push the index to the target registry.
*
* Defaults to `true`.
*
* @return builder
*
*/
public Builder push(Boolean push) {
return push(Output.of(push));
}
/**
* @param registry Authentication for the registry where the tagged index will be pushed.
*
* Credentials can also be included with the provider&#39;s configuration.
*
* @return builder
*
*/
public Builder registry(@Nullable Output<RegistryArgs> registry) {
$.registry = registry;
return this;
}
/**
* @param registry Authentication for the registry where the tagged index will be pushed.
*
* Credentials can also be included with the provider&#39;s configuration.
*
* @return builder
*
*/
public Builder registry(RegistryArgs registry) {
return registry(Output.of(registry));
}
/**
* @param sources Existing images to include in the index.
*
* @return builder
*
*/
public Builder sources(Output<List<String>> sources) {
$.sources = sources;
return this;
}
/**
* @param sources Existing images to include in the index.
*
* @return builder
*
*/
public Builder sources(List<String> sources) {
return sources(Output.of(sources));
}
/**
* @param sources Existing images to include in the index.
*
* @return builder
*
*/
public Builder sources(String... sources) {
return sources(List.of(sources));
}
/**
* @param tag The tag to apply to the index.
*
* @return builder
*
*/
public Builder tag(Output<String> tag) {
$.tag = tag;
return this;
}
/**
* @param tag The tag to apply to the index.
*
* @return builder
*
*/
public Builder tag(String tag) {
return tag(Output.of(tag));
}
public IndexArgs build() {
$.push = Codegen.booleanProp("push").output().arg($.push).def(true).getNullable();
if ($.sources == null) {
throw new MissingRequiredPropertyException("IndexArgs", "sources");
}
if ($.tag == null) {
throw new MissingRequiredPropertyException("IndexArgs", "tag");
}
return $;
}
}
}

View File

@@ -4,14 +4,32 @@
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.ProviderArgs;
import com.pulumi.dockerbuild.Utilities;
import java.lang.String;
import java.util.Optional;
import javax.annotation.Nullable;
@ResourceType(type="pulumi:providers:dockerbuild")
@ResourceType(type="pulumi:providers:docker-build")
public class Provider extends com.pulumi.resources.ProviderResource {
/**
* The build daemon&#39;s address.
*
*/
@Export(name="host", refs={String.class}, tree="[0]")
private Output</* @Nullable */ String> host;
/**
* @return The build daemon&#39;s address.
*
*/
public Output<Optional<String>> host() {
return Codegen.optional(this.host);
}
/**
*
* @param name The _unique_ name of the resulting resource.
@@ -34,7 +52,7 @@ public class Provider extends com.pulumi.resources.ProviderResource {
* @param options A bag of options that control this resource's behavior.
*/
public Provider(String name, @Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("dockerbuild", name, args == null ? ProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
super("docker-build", name, args == null ? ProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) {

View File

@@ -3,16 +3,56 @@
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.inputs.RegistryArgs;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class ProviderArgs extends com.pulumi.resources.ResourceArgs {
public static final ProviderArgs Empty = new ProviderArgs();
/**
* The build daemon&#39;s address.
*
*/
@Import(name="host")
private @Nullable Output<String> host;
/**
* @return The build daemon&#39;s address.
*
*/
public Optional<Output<String>> host() {
return Optional.ofNullable(this.host);
}
@Import(name="registries", json=true)
private @Nullable Output<List<RegistryArgs>> registries;
public Optional<Output<List<RegistryArgs>>> registries() {
return Optional.ofNullable(this.registries);
}
private ProviderArgs() {}
private ProviderArgs(ProviderArgs $) {
this.host = $.host;
this.registries = $.registries;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ProviderArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ProviderArgs $;
@@ -20,7 +60,47 @@ public final class ProviderArgs extends com.pulumi.resources.ResourceArgs {
public Builder() {
$ = new ProviderArgs();
}
public Builder(ProviderArgs defaults) {
$ = new ProviderArgs(Objects.requireNonNull(defaults));
}
/**
* @param host The build daemon&#39;s address.
*
* @return builder
*
*/
public Builder host(@Nullable Output<String> host) {
$.host = host;
return this;
}
/**
* @param host The build daemon&#39;s address.
*
* @return builder
*
*/
public Builder host(String host) {
return host(Output.of(host));
}
public Builder registries(@Nullable Output<List<RegistryArgs>> registries) {
$.registries = registries;
return this;
}
public Builder registries(List<RegistryArgs> registries) {
return registries(Output.of(registries));
}
public Builder registries(RegistryArgs... registries) {
return registries(List.of(registries));
}
public ProviderArgs build() {
$.host = Codegen.stringProp("host").output().arg($.host).env("DOCKER_HOST").def("").getNullable();
return $;
}
}

View File

@@ -1,78 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.RandomArgs;
import com.pulumi.dockerbuild.Utilities;
import java.lang.Integer;
import java.lang.String;
import javax.annotation.Nullable;
@ResourceType(type="dockerbuild:index:Random")
public class Random extends com.pulumi.resources.CustomResource {
@Export(name="length", refs={Integer.class}, tree="[0]")
private Output<Integer> length;
public Output<Integer> length() {
return this.length;
}
@Export(name="result", refs={String.class}, tree="[0]")
private Output<String> result;
public Output<String> result() {
return this.result;
}
/**
*
* @param name The _unique_ name of the resulting resource.
*/
public Random(String name) {
this(name, RandomArgs.Empty);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
*/
public Random(String name, RandomArgs args) {
this(name, args, null);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior.
*/
public Random(String name, RandomArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("dockerbuild:index:Random", name, args == null ? RandomArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
}
private Random(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("dockerbuild:index:Random", name, null, makeResourceOptions(options, id));
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion())
.build();
return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
}
/**
* Get an existing Host resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param options Optional settings to control the behavior of the CustomResource.
*/
public static Random get(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
return new Random(name, id, options);
}
}

View File

@@ -1,65 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.util.Objects;
public final class RandomArgs extends com.pulumi.resources.ResourceArgs {
public static final RandomArgs Empty = new RandomArgs();
@Import(name="length", required=true)
private Output<Integer> length;
public Output<Integer> length() {
return this.length;
}
private RandomArgs() {}
private RandomArgs(RandomArgs $) {
this.length = $.length;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(RandomArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private RandomArgs $;
public Builder() {
$ = new RandomArgs();
}
public Builder(RandomArgs defaults) {
$ = new RandomArgs(Objects.requireNonNull(defaults));
}
public Builder length(Output<Integer> length) {
$.length = length;
return this;
}
public Builder length(Integer length) {
return length(Output.of(length));
}
public RandomArgs build() {
if ($.length == null) {
throw new MissingRequiredPropertyException("RandomArgs", "length");
}
return $;
}
}
}

View File

@@ -74,7 +74,7 @@ public class Utilities {
}
static {
var resourceName = "com/pulumi/dockerbuild/version.txt";
var resourceName = "com/pulumi/docker-build/version.txt";
var versionFile = Utilities.class.getClassLoader().getResourceAsStream(resourceName);
if (versionFile == null) {
throw new IllegalStateException(

View File

@@ -0,0 +1,41 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild.enums;
import com.pulumi.core.annotations.EnumType;
import java.lang.String;
import java.util.Objects;
import java.util.StringJoiner;
@EnumType
public enum CacheMode {
/**
* Only layers that are exported into the resulting image are cached.
*
*/
Min("min"),
/**
* All layers are cached, even those of intermediate steps.
*
*/
Max("max");
private final String value;
CacheMode(String value) {
this.value = Objects.requireNonNull(value);
}
@EnumType.Converter
public String getValue() {
return this.value;
}
@Override
public String toString() {
return new StringJoiner(", ", "CacheMode[", "]")
.add("value='" + this.value + "'")
.toString();
}
}

View File

@@ -0,0 +1,46 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild.enums;
import com.pulumi.core.annotations.EnumType;
import java.lang.String;
import java.util.Objects;
import java.util.StringJoiner;
@EnumType
public enum CompressionType {
/**
* Use `gzip` for compression.
*
*/
Gzip("gzip"),
/**
* Use `estargz` for compression.
*
*/
Estargz("estargz"),
/**
* Use `zstd` for compression.
*
*/
Zstd("zstd");
private final String value;
CompressionType(String value) {
this.value = Objects.requireNonNull(value);
}
@EnumType.Converter
public String getValue() {
return this.value;
}
@Override
public String toString() {
return new StringJoiner(", ", "CompressionType[", "]")
.add("value='" + this.value + "'")
.toString();
}
}

Some files were not shown because too many files have changed in this diff Show More