Files
pulumi-dokploy/sdk/dotnet/Domain.cs
Max Vojtkov bb3c15135b Bridge terraform-provider-dokploy into a Pulumi provider
18 resources and 5 data sources mapped into the dokploy:index module, with
SDKs generated for TypeScript, Python, Go and .NET.
2026-08-08 15:28:16 +03:00

389 lines
14 KiB
C#
Generated

// *** 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
{
[DokployResourceType("dokploy:index/domain:Domain")]
public partial class Domain : global::Pulumi.CustomResource
{
/// <summary>
/// Application this domain routes to.
/// </summary>
[Output("applicationId")]
public Output<string?> ApplicationId { get; private set; } = null!;
/// <summary>
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
/// </summary>
[Output("certificateType")]
public Output<string> CertificateType { get; private set; } = null!;
/// <summary>
/// Compose stack this domain routes to.
/// </summary>
[Output("composeId")]
public Output<string?> ComposeId { get; private set; } = null!;
/// <summary>
/// RFC 3339 timestamp of when the domain was created.
/// </summary>
[Output("createdAt")]
public Output<string> CreatedAt { get; private set; } = null!;
/// <summary>
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
/// </summary>
[Output("customCertResolver")]
public Output<string?> CustomCertResolver { get; private set; } = null!;
/// <summary>
/// Traefik entrypoint to bind, when not using the defaults.
/// </summary>
[Output("customEntrypoint")]
public Output<string?> CustomEntrypoint { get; private set; } = null!;
/// <summary>
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
/// </summary>
[Output("domainType")]
public Output<string> DomainType { get; private set; } = null!;
/// <summary>
/// Protect this domain with Dokploy's forward auth.
/// </summary>
[Output("forwardAuthEnabled")]
public Output<bool> ForwardAuthEnabled { get; private set; } = null!;
/// <summary>
/// Fully-qualified hostname, for example `api.example.com`.
/// </summary>
[Output("host")]
public Output<string> Host { get; private set; } = null!;
/// <summary>
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
/// </summary>
[Output("https")]
public Output<bool> Https { get; private set; } = null!;
/// <summary>
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
/// </summary>
[Output("internalPath")]
public Output<string> InternalPath { get; private set; } = null!;
/// <summary>
/// Names of Traefik middlewares to apply.
/// </summary>
[Output("middlewares")]
public Output<ImmutableArray<string>> Middlewares { get; private set; } = null!;
/// <summary>
/// Path prefix this domain routes, defaults to `/`.
/// </summary>
[Output("path")]
public Output<string> Path { get; private set; } = null!;
/// <summary>
/// Container port that receives the traffic, defaults to `3000`.
/// </summary>
[Output("port")]
public Output<int> Port { get; private set; } = null!;
/// <summary>
/// Preview deployment this domain routes to.
/// </summary>
[Output("previewDeploymentId")]
public Output<string?> PreviewDeploymentId { get; private set; } = null!;
/// <summary>
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
/// </summary>
[Output("serviceName")]
public Output<string?> ServiceName { get; private set; } = null!;
/// <summary>
/// Strip `Path` from the request before forwarding it.
/// </summary>
[Output("stripPath")]
public Output<bool> StripPath { get; private set; } = null!;
/// <summary>
/// Create a Domain 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 Domain(string name, DomainArgs args, CustomResourceOptions? options = null)
: base("dokploy:index/domain:Domain", name, args ?? new DomainArgs(), MakeResourceOptions(options, ""))
{
}
private Domain(string name, Input<string> id, DomainState? state = null, CustomResourceOptions? options = null)
: base("dokploy:index/domain:Domain", name, state, MakeResourceOptions(options, id))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
};
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 Domain 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="state">Any extra arguments used during the lookup.</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public static Domain Get(string name, Input<string> id, DomainState? state = null, CustomResourceOptions? options = null)
{
return new Domain(name, id, state, options);
}
}
public sealed class DomainArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Application this domain routes to.
/// </summary>
[Input("applicationId")]
public Input<string>? ApplicationId { get; set; }
/// <summary>
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
/// </summary>
[Input("certificateType")]
public Input<string>? CertificateType { get; set; }
/// <summary>
/// Compose stack this domain routes to.
/// </summary>
[Input("composeId")]
public Input<string>? ComposeId { get; set; }
/// <summary>
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
/// </summary>
[Input("customCertResolver")]
public Input<string>? CustomCertResolver { get; set; }
/// <summary>
/// Traefik entrypoint to bind, when not using the defaults.
/// </summary>
[Input("customEntrypoint")]
public Input<string>? CustomEntrypoint { get; set; }
/// <summary>
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
/// </summary>
[Input("domainType")]
public Input<string>? DomainType { get; set; }
/// <summary>
/// Protect this domain with Dokploy's forward auth.
/// </summary>
[Input("forwardAuthEnabled")]
public Input<bool>? ForwardAuthEnabled { get; set; }
/// <summary>
/// Fully-qualified hostname, for example `api.example.com`.
/// </summary>
[Input("host", required: true)]
public Input<string> Host { get; set; } = null!;
/// <summary>
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
/// </summary>
[Input("https")]
public Input<bool>? Https { get; set; }
/// <summary>
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
/// </summary>
[Input("internalPath")]
public Input<string>? InternalPath { get; set; }
[Input("middlewares")]
private InputList<string>? _middlewares;
/// <summary>
/// Names of Traefik middlewares to apply.
/// </summary>
public InputList<string> Middlewares
{
get => _middlewares ?? (_middlewares = new InputList<string>());
set => _middlewares = value;
}
/// <summary>
/// Path prefix this domain routes, defaults to `/`.
/// </summary>
[Input("path")]
public Input<string>? Path { get; set; }
/// <summary>
/// Container port that receives the traffic, defaults to `3000`.
/// </summary>
[Input("port")]
public Input<int>? Port { get; set; }
/// <summary>
/// Preview deployment this domain routes to.
/// </summary>
[Input("previewDeploymentId")]
public Input<string>? PreviewDeploymentId { get; set; }
/// <summary>
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
/// </summary>
[Input("serviceName")]
public Input<string>? ServiceName { get; set; }
/// <summary>
/// Strip `Path` from the request before forwarding it.
/// </summary>
[Input("stripPath")]
public Input<bool>? StripPath { get; set; }
public DomainArgs()
{
}
public static new DomainArgs Empty => new DomainArgs();
}
public sealed class DomainState : global::Pulumi.ResourceArgs
{
/// <summary>
/// Application this domain routes to.
/// </summary>
[Input("applicationId")]
public Input<string>? ApplicationId { get; set; }
/// <summary>
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
/// </summary>
[Input("certificateType")]
public Input<string>? CertificateType { get; set; }
/// <summary>
/// Compose stack this domain routes to.
/// </summary>
[Input("composeId")]
public Input<string>? ComposeId { get; set; }
/// <summary>
/// RFC 3339 timestamp of when the domain was created.
/// </summary>
[Input("createdAt")]
public Input<string>? CreatedAt { get; set; }
/// <summary>
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
/// </summary>
[Input("customCertResolver")]
public Input<string>? CustomCertResolver { get; set; }
/// <summary>
/// Traefik entrypoint to bind, when not using the defaults.
/// </summary>
[Input("customEntrypoint")]
public Input<string>? CustomEntrypoint { get; set; }
/// <summary>
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
/// </summary>
[Input("domainType")]
public Input<string>? DomainType { get; set; }
/// <summary>
/// Protect this domain with Dokploy's forward auth.
/// </summary>
[Input("forwardAuthEnabled")]
public Input<bool>? ForwardAuthEnabled { get; set; }
/// <summary>
/// Fully-qualified hostname, for example `api.example.com`.
/// </summary>
[Input("host")]
public Input<string>? Host { get; set; }
/// <summary>
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
/// </summary>
[Input("https")]
public Input<bool>? Https { get; set; }
/// <summary>
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
/// </summary>
[Input("internalPath")]
public Input<string>? InternalPath { get; set; }
[Input("middlewares")]
private InputList<string>? _middlewares;
/// <summary>
/// Names of Traefik middlewares to apply.
/// </summary>
public InputList<string> Middlewares
{
get => _middlewares ?? (_middlewares = new InputList<string>());
set => _middlewares = value;
}
/// <summary>
/// Path prefix this domain routes, defaults to `/`.
/// </summary>
[Input("path")]
public Input<string>? Path { get; set; }
/// <summary>
/// Container port that receives the traffic, defaults to `3000`.
/// </summary>
[Input("port")]
public Input<int>? Port { get; set; }
/// <summary>
/// Preview deployment this domain routes to.
/// </summary>
[Input("previewDeploymentId")]
public Input<string>? PreviewDeploymentId { get; set; }
/// <summary>
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
/// </summary>
[Input("serviceName")]
public Input<string>? ServiceName { get; set; }
/// <summary>
/// Strip `Path` from the request before forwarding it.
/// </summary>
[Input("stripPath")]
public Input<bool>? StripPath { get; set; }
public DomainState()
{
}
public static new DomainState Empty => new DomainState();
}
}