// *** WARNING: this file was generated by pulumi-language-dotnet. *** // *** 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; using Pulumi; namespace Maxvojtkov.Dokploy { /// /// A DNS provider connection Dokploy uses to create records for domains automatically. /// /// `Config` is a JSON object whose shape depends on `providerType`: /// [DokployResourceType("dokploy:index/dnsProvider:DnsProvider")] public partial class DnsProvider : global::Pulumi.CustomResource { /// /// Provider credentials as a JSON object, including the `providerType` discriminator. /// [Output("config")] public Output Config { get; private set; } = null!; /// /// RFC 3339 timestamp of when the connection was created. /// [Output("createdAt")] public Output CreatedAt { get; private set; } = null!; /// /// Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`. /// [Output("name")] public Output Name { get; private set; } = null!; /// /// Organization that owns the connection. /// [Output("organizationId")] public Output OrganizationId { get; private set; } = null!; /// /// Provider kind derived from `Config`: `Cloudflare` or `Route53`. /// [Output("providerType")] public Output ProviderType { get; private set; } = null!; /// /// Create a DnsProvider resource with the given unique name, arguments, and options. /// /// /// The unique name of the resource /// The arguments used to populate this resource's properties /// A bag of options that control this resource's behavior public DnsProvider(string name, DnsProviderArgs args, CustomResourceOptions? options = null) : base("dokploy:index/dnsProvider:DnsProvider", name, args ?? new DnsProviderArgs(), MakeResourceOptions(options, "")) { } private DnsProvider(string name, Input id, DnsProviderState? state = null, CustomResourceOptions? options = null) : base("dokploy:index/dnsProvider:DnsProvider", name, state, MakeResourceOptions(options, id)) { } private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) { var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, PluginDownloadURL = "https://gitea.coolify.vojtkov.dev/usr_unknown/pulumi-dokploy/releases/download/v${VERSION}", AdditionalSecretOutputs = { "config", }, }; 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; } /// /// Get an existing DnsProvider resource's state with the given name, ID, and optional extra /// properties used to qualify the lookup. /// /// /// The unique name of the resulting resource. /// The unique provider ID of the resource to lookup. /// Any extra arguments used during the lookup. /// A bag of options that control this resource's behavior public static DnsProvider Get(string name, Input id, DnsProviderState? state = null, CustomResourceOptions? options = null) { return new DnsProvider(name, id, state, options); } } public sealed class DnsProviderArgs : global::Pulumi.ResourceArgs { [Input("config", required: true)] private Input? _config; /// /// Provider credentials as a JSON object, including the `providerType` discriminator. /// public Input? Config { get => _config; set { var emptySecret = Output.CreateSecret(0); _config = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); } } /// /// Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`. /// [Input("name")] public Input? Name { get; set; } public DnsProviderArgs() { } public static new DnsProviderArgs Empty => new DnsProviderArgs(); } public sealed class DnsProviderState : global::Pulumi.ResourceArgs { [Input("config")] private Input? _config; /// /// Provider credentials as a JSON object, including the `providerType` discriminator. /// public Input? Config { get => _config; set { var emptySecret = Output.CreateSecret(0); _config = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); } } /// /// RFC 3339 timestamp of when the connection was created. /// [Input("createdAt")] public Input? CreatedAt { get; set; } /// /// Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`. /// [Input("name")] public Input? Name { get; set; } /// /// Organization that owns the connection. /// [Input("organizationId")] public Input? OrganizationId { get; set; } /// /// Provider kind derived from `Config`: `Cloudflare` or `Route53`. /// [Input("providerType")] public Input? ProviderType { get; set; } public DnsProviderState() { } public static new DnsProviderState Empty => new DnsProviderState(); } }