Files
pulumi-dokploy/sdk/go/dokploy/domain.go
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

455 lines
18 KiB
Go
Generated

// 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 dokploy
import (
"context"
"reflect"
"errors"
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type Domain struct {
pulumi.CustomResourceState
// Application this domain routes to.
ApplicationId pulumi.StringPtrOutput `pulumi:"applicationId"`
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
CertificateType pulumi.StringOutput `pulumi:"certificateType"`
// Compose stack this domain routes to.
ComposeId pulumi.StringPtrOutput `pulumi:"composeId"`
// RFC 3339 timestamp of when the domain was created.
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
// Traefik certificate resolver name, when `certificateType` is `custom`.
CustomCertResolver pulumi.StringPtrOutput `pulumi:"customCertResolver"`
// Traefik entrypoint to bind, when not using the defaults.
CustomEntrypoint pulumi.StringPtrOutput `pulumi:"customEntrypoint"`
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
DomainType pulumi.StringOutput `pulumi:"domainType"`
// Protect this domain with Dokploy's forward auth.
ForwardAuthEnabled pulumi.BoolOutput `pulumi:"forwardAuthEnabled"`
// Fully-qualified hostname, for example `api.example.com`.
Host pulumi.StringOutput `pulumi:"host"`
// Serve the domain over HTTPS and redirect HTTP traffic to it.
Https pulumi.BoolOutput `pulumi:"https"`
// Path the request is rewritten to before it reaches the container, defaults to `/`.
InternalPath pulumi.StringOutput `pulumi:"internalPath"`
// Names of Traefik middlewares to apply.
Middlewares pulumi.StringArrayOutput `pulumi:"middlewares"`
// Path prefix this domain routes, defaults to `/`.
Path pulumi.StringOutput `pulumi:"path"`
// Container port that receives the traffic, defaults to `3000`.
Port pulumi.IntOutput `pulumi:"port"`
// Preview deployment this domain routes to.
PreviewDeploymentId pulumi.StringPtrOutput `pulumi:"previewDeploymentId"`
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
ServiceName pulumi.StringPtrOutput `pulumi:"serviceName"`
// Strip `path` from the request before forwarding it.
StripPath pulumi.BoolOutput `pulumi:"stripPath"`
}
// NewDomain registers a new resource with the given unique name, arguments, and options.
func NewDomain(ctx *pulumi.Context,
name string, args *DomainArgs, opts ...pulumi.ResourceOption) (*Domain, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Host == nil {
return nil, errors.New("invalid value for required argument 'Host'")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Domain
err := ctx.RegisterResource("dokploy:index/domain:Domain", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetDomain gets an existing Domain 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 GetDomain(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *DomainState, opts ...pulumi.ResourceOption) (*Domain, error) {
var resource Domain
err := ctx.ReadResource("dokploy:index/domain:Domain", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Domain resources.
type domainState struct {
// Application this domain routes to.
ApplicationId *string `pulumi:"applicationId"`
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
CertificateType *string `pulumi:"certificateType"`
// Compose stack this domain routes to.
ComposeId *string `pulumi:"composeId"`
// RFC 3339 timestamp of when the domain was created.
CreatedAt *string `pulumi:"createdAt"`
// Traefik certificate resolver name, when `certificateType` is `custom`.
CustomCertResolver *string `pulumi:"customCertResolver"`
// Traefik entrypoint to bind, when not using the defaults.
CustomEntrypoint *string `pulumi:"customEntrypoint"`
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
DomainType *string `pulumi:"domainType"`
// Protect this domain with Dokploy's forward auth.
ForwardAuthEnabled *bool `pulumi:"forwardAuthEnabled"`
// Fully-qualified hostname, for example `api.example.com`.
Host *string `pulumi:"host"`
// Serve the domain over HTTPS and redirect HTTP traffic to it.
Https *bool `pulumi:"https"`
// Path the request is rewritten to before it reaches the container, defaults to `/`.
InternalPath *string `pulumi:"internalPath"`
// Names of Traefik middlewares to apply.
Middlewares []string `pulumi:"middlewares"`
// Path prefix this domain routes, defaults to `/`.
Path *string `pulumi:"path"`
// Container port that receives the traffic, defaults to `3000`.
Port *int `pulumi:"port"`
// Preview deployment this domain routes to.
PreviewDeploymentId *string `pulumi:"previewDeploymentId"`
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
ServiceName *string `pulumi:"serviceName"`
// Strip `path` from the request before forwarding it.
StripPath *bool `pulumi:"stripPath"`
}
type DomainState struct {
// Application this domain routes to.
ApplicationId pulumi.StringPtrInput
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
CertificateType pulumi.StringPtrInput
// Compose stack this domain routes to.
ComposeId pulumi.StringPtrInput
// RFC 3339 timestamp of when the domain was created.
CreatedAt pulumi.StringPtrInput
// Traefik certificate resolver name, when `certificateType` is `custom`.
CustomCertResolver pulumi.StringPtrInput
// Traefik entrypoint to bind, when not using the defaults.
CustomEntrypoint pulumi.StringPtrInput
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
DomainType pulumi.StringPtrInput
// Protect this domain with Dokploy's forward auth.
ForwardAuthEnabled pulumi.BoolPtrInput
// Fully-qualified hostname, for example `api.example.com`.
Host pulumi.StringPtrInput
// Serve the domain over HTTPS and redirect HTTP traffic to it.
Https pulumi.BoolPtrInput
// Path the request is rewritten to before it reaches the container, defaults to `/`.
InternalPath pulumi.StringPtrInput
// Names of Traefik middlewares to apply.
Middlewares pulumi.StringArrayInput
// Path prefix this domain routes, defaults to `/`.
Path pulumi.StringPtrInput
// Container port that receives the traffic, defaults to `3000`.
Port pulumi.IntPtrInput
// Preview deployment this domain routes to.
PreviewDeploymentId pulumi.StringPtrInput
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
ServiceName pulumi.StringPtrInput
// Strip `path` from the request before forwarding it.
StripPath pulumi.BoolPtrInput
}
func (DomainState) ElementType() reflect.Type {
return reflect.TypeOf((*domainState)(nil)).Elem()
}
type domainArgs struct {
// Application this domain routes to.
ApplicationId *string `pulumi:"applicationId"`
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
CertificateType *string `pulumi:"certificateType"`
// Compose stack this domain routes to.
ComposeId *string `pulumi:"composeId"`
// Traefik certificate resolver name, when `certificateType` is `custom`.
CustomCertResolver *string `pulumi:"customCertResolver"`
// Traefik entrypoint to bind, when not using the defaults.
CustomEntrypoint *string `pulumi:"customEntrypoint"`
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
DomainType *string `pulumi:"domainType"`
// Protect this domain with Dokploy's forward auth.
ForwardAuthEnabled *bool `pulumi:"forwardAuthEnabled"`
// Fully-qualified hostname, for example `api.example.com`.
Host string `pulumi:"host"`
// Serve the domain over HTTPS and redirect HTTP traffic to it.
Https *bool `pulumi:"https"`
// Path the request is rewritten to before it reaches the container, defaults to `/`.
InternalPath *string `pulumi:"internalPath"`
// Names of Traefik middlewares to apply.
Middlewares []string `pulumi:"middlewares"`
// Path prefix this domain routes, defaults to `/`.
Path *string `pulumi:"path"`
// Container port that receives the traffic, defaults to `3000`.
Port *int `pulumi:"port"`
// Preview deployment this domain routes to.
PreviewDeploymentId *string `pulumi:"previewDeploymentId"`
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
ServiceName *string `pulumi:"serviceName"`
// Strip `path` from the request before forwarding it.
StripPath *bool `pulumi:"stripPath"`
}
// The set of arguments for constructing a Domain resource.
type DomainArgs struct {
// Application this domain routes to.
ApplicationId pulumi.StringPtrInput
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
CertificateType pulumi.StringPtrInput
// Compose stack this domain routes to.
ComposeId pulumi.StringPtrInput
// Traefik certificate resolver name, when `certificateType` is `custom`.
CustomCertResolver pulumi.StringPtrInput
// Traefik entrypoint to bind, when not using the defaults.
CustomEntrypoint pulumi.StringPtrInput
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
DomainType pulumi.StringPtrInput
// Protect this domain with Dokploy's forward auth.
ForwardAuthEnabled pulumi.BoolPtrInput
// Fully-qualified hostname, for example `api.example.com`.
Host pulumi.StringInput
// Serve the domain over HTTPS and redirect HTTP traffic to it.
Https pulumi.BoolPtrInput
// Path the request is rewritten to before it reaches the container, defaults to `/`.
InternalPath pulumi.StringPtrInput
// Names of Traefik middlewares to apply.
Middlewares pulumi.StringArrayInput
// Path prefix this domain routes, defaults to `/`.
Path pulumi.StringPtrInput
// Container port that receives the traffic, defaults to `3000`.
Port pulumi.IntPtrInput
// Preview deployment this domain routes to.
PreviewDeploymentId pulumi.StringPtrInput
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
ServiceName pulumi.StringPtrInput
// Strip `path` from the request before forwarding it.
StripPath pulumi.BoolPtrInput
}
func (DomainArgs) ElementType() reflect.Type {
return reflect.TypeOf((*domainArgs)(nil)).Elem()
}
type DomainInput interface {
pulumi.Input
ToDomainOutput() DomainOutput
ToDomainOutputWithContext(ctx context.Context) DomainOutput
}
func (*Domain) ElementType() reflect.Type {
return reflect.TypeOf((**Domain)(nil)).Elem()
}
func (i *Domain) ToDomainOutput() DomainOutput {
return i.ToDomainOutputWithContext(context.Background())
}
func (i *Domain) ToDomainOutputWithContext(ctx context.Context) DomainOutput {
return pulumi.ToOutputWithContext(ctx, i).(DomainOutput)
}
// DomainArrayInput is an input type that accepts DomainArray and DomainArrayOutput values.
// You can construct a concrete instance of `DomainArrayInput` via:
//
// DomainArray{ DomainArgs{...} }
type DomainArrayInput interface {
pulumi.Input
ToDomainArrayOutput() DomainArrayOutput
ToDomainArrayOutputWithContext(context.Context) DomainArrayOutput
}
type DomainArray []DomainInput
func (DomainArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Domain)(nil)).Elem()
}
func (i DomainArray) ToDomainArrayOutput() DomainArrayOutput {
return i.ToDomainArrayOutputWithContext(context.Background())
}
func (i DomainArray) ToDomainArrayOutputWithContext(ctx context.Context) DomainArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(DomainArrayOutput)
}
// DomainMapInput is an input type that accepts DomainMap and DomainMapOutput values.
// You can construct a concrete instance of `DomainMapInput` via:
//
// DomainMap{ "key": DomainArgs{...} }
type DomainMapInput interface {
pulumi.Input
ToDomainMapOutput() DomainMapOutput
ToDomainMapOutputWithContext(context.Context) DomainMapOutput
}
type DomainMap map[string]DomainInput
func (DomainMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Domain)(nil)).Elem()
}
func (i DomainMap) ToDomainMapOutput() DomainMapOutput {
return i.ToDomainMapOutputWithContext(context.Background())
}
func (i DomainMap) ToDomainMapOutputWithContext(ctx context.Context) DomainMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(DomainMapOutput)
}
type DomainOutput struct{ *pulumi.OutputState }
func (DomainOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Domain)(nil)).Elem()
}
func (o DomainOutput) ToDomainOutput() DomainOutput {
return o
}
func (o DomainOutput) ToDomainOutputWithContext(ctx context.Context) DomainOutput {
return o
}
// Application this domain routes to.
func (o DomainOutput) ApplicationId() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.ApplicationId }).(pulumi.StringPtrOutput)
}
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
func (o DomainOutput) CertificateType() pulumi.StringOutput {
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.CertificateType }).(pulumi.StringOutput)
}
// Compose stack this domain routes to.
func (o DomainOutput) ComposeId() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.ComposeId }).(pulumi.StringPtrOutput)
}
// RFC 3339 timestamp of when the domain was created.
func (o DomainOutput) CreatedAt() pulumi.StringOutput {
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
}
// Traefik certificate resolver name, when `certificateType` is `custom`.
func (o DomainOutput) CustomCertResolver() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.CustomCertResolver }).(pulumi.StringPtrOutput)
}
// Traefik entrypoint to bind, when not using the defaults.
func (o DomainOutput) CustomEntrypoint() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.CustomEntrypoint }).(pulumi.StringPtrOutput)
}
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
func (o DomainOutput) DomainType() pulumi.StringOutput {
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.DomainType }).(pulumi.StringOutput)
}
// Protect this domain with Dokploy's forward auth.
func (o DomainOutput) ForwardAuthEnabled() pulumi.BoolOutput {
return o.ApplyT(func(v *Domain) pulumi.BoolOutput { return v.ForwardAuthEnabled }).(pulumi.BoolOutput)
}
// Fully-qualified hostname, for example `api.example.com`.
func (o DomainOutput) Host() pulumi.StringOutput {
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.Host }).(pulumi.StringOutput)
}
// Serve the domain over HTTPS and redirect HTTP traffic to it.
func (o DomainOutput) Https() pulumi.BoolOutput {
return o.ApplyT(func(v *Domain) pulumi.BoolOutput { return v.Https }).(pulumi.BoolOutput)
}
// Path the request is rewritten to before it reaches the container, defaults to `/`.
func (o DomainOutput) InternalPath() pulumi.StringOutput {
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.InternalPath }).(pulumi.StringOutput)
}
// Names of Traefik middlewares to apply.
func (o DomainOutput) Middlewares() pulumi.StringArrayOutput {
return o.ApplyT(func(v *Domain) pulumi.StringArrayOutput { return v.Middlewares }).(pulumi.StringArrayOutput)
}
// Path prefix this domain routes, defaults to `/`.
func (o DomainOutput) Path() pulumi.StringOutput {
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.Path }).(pulumi.StringOutput)
}
// Container port that receives the traffic, defaults to `3000`.
func (o DomainOutput) Port() pulumi.IntOutput {
return o.ApplyT(func(v *Domain) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput)
}
// Preview deployment this domain routes to.
func (o DomainOutput) PreviewDeploymentId() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.PreviewDeploymentId }).(pulumi.StringPtrOutput)
}
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
func (o DomainOutput) ServiceName() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.ServiceName }).(pulumi.StringPtrOutput)
}
// Strip `path` from the request before forwarding it.
func (o DomainOutput) StripPath() pulumi.BoolOutput {
return o.ApplyT(func(v *Domain) pulumi.BoolOutput { return v.StripPath }).(pulumi.BoolOutput)
}
type DomainArrayOutput struct{ *pulumi.OutputState }
func (DomainArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Domain)(nil)).Elem()
}
func (o DomainArrayOutput) ToDomainArrayOutput() DomainArrayOutput {
return o
}
func (o DomainArrayOutput) ToDomainArrayOutputWithContext(ctx context.Context) DomainArrayOutput {
return o
}
func (o DomainArrayOutput) Index(i pulumi.IntInput) DomainOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Domain {
return vs[0].([]*Domain)[vs[1].(int)]
}).(DomainOutput)
}
type DomainMapOutput struct{ *pulumi.OutputState }
func (DomainMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Domain)(nil)).Elem()
}
func (o DomainMapOutput) ToDomainMapOutput() DomainMapOutput {
return o
}
func (o DomainMapOutput) ToDomainMapOutputWithContext(ctx context.Context) DomainMapOutput {
return o
}
func (o DomainMapOutput) MapIndex(k pulumi.StringInput) DomainOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Domain {
return vs[0].(map[string]*Domain)[vs[1].(string)]
}).(DomainOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*DomainInput)(nil)).Elem(), &Domain{})
pulumi.RegisterInputType(reflect.TypeOf((*DomainArrayInput)(nil)).Elem(), DomainArray{})
pulumi.RegisterInputType(reflect.TypeOf((*DomainMapInput)(nil)).Elem(), DomainMap{})
pulumi.RegisterOutputType(DomainOutput{})
pulumi.RegisterOutputType(DomainArrayOutput{})
pulumi.RegisterOutputType(DomainMapOutput{})
}