Files
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

888 lines
41 KiB
Python
Generated

# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities
__all__ = ['DomainArgs', 'Domain']
@pulumi.input_type
class DomainArgs:
def __init__(__self__, *,
host: pulumi.Input[_builtins.str],
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None):
"""
The set of arguments for constructing a Domain resource.
:param pulumi.Input[_builtins.str] host: Fully-qualified hostname, for example `api.example.com`.
:param pulumi.Input[_builtins.str] application_id: Application this domain routes to.
:param pulumi.Input[_builtins.str] certificate_type: How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this domain routes to.
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
:param pulumi.Input[_builtins.str] internal_path: Path the request is rewritten to before it reaches the container, defaults to `/`.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] middlewares: Names of Traefik middlewares to apply.
:param pulumi.Input[_builtins.str] path: Path prefix this domain routes, defaults to `/`.
:param pulumi.Input[_builtins.int] port: Container port that receives the traffic, defaults to `3000`.
:param pulumi.Input[_builtins.str] preview_deployment_id: Preview deployment this domain routes to.
:param pulumi.Input[_builtins.str] service_name: Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
:param pulumi.Input[_builtins.bool] strip_path: Strip `path` from the request before forwarding it.
"""
pulumi.set(__self__, "host", host)
if application_id is not None:
pulumi.set(__self__, "application_id", application_id)
if certificate_type is not None:
pulumi.set(__self__, "certificate_type", certificate_type)
if compose_id is not None:
pulumi.set(__self__, "compose_id", compose_id)
if custom_cert_resolver is not None:
pulumi.set(__self__, "custom_cert_resolver", custom_cert_resolver)
if custom_entrypoint is not None:
pulumi.set(__self__, "custom_entrypoint", custom_entrypoint)
if domain_type is not None:
pulumi.set(__self__, "domain_type", domain_type)
if forward_auth_enabled is not None:
pulumi.set(__self__, "forward_auth_enabled", forward_auth_enabled)
if https is not None:
pulumi.set(__self__, "https", https)
if internal_path is not None:
pulumi.set(__self__, "internal_path", internal_path)
if middlewares is not None:
pulumi.set(__self__, "middlewares", middlewares)
if path is not None:
pulumi.set(__self__, "path", path)
if port is not None:
pulumi.set(__self__, "port", port)
if preview_deployment_id is not None:
pulumi.set(__self__, "preview_deployment_id", preview_deployment_id)
if service_name is not None:
pulumi.set(__self__, "service_name", service_name)
if strip_path is not None:
pulumi.set(__self__, "strip_path", strip_path)
@_builtins.property
@pulumi.getter
def host(self) -> pulumi.Input[_builtins.str]:
"""
Fully-qualified hostname, for example `api.example.com`.
"""
return pulumi.get(self, "host")
@host.setter
def host(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "host", value)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Application this domain routes to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter(name="certificateType")
def certificate_type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
"""
return pulumi.get(self, "certificate_type")
@certificate_type.setter
def certificate_type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "certificate_type", value)
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Compose stack this domain routes to.
"""
return pulumi.get(self, "compose_id")
@compose_id.setter
def compose_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "compose_id", value)
@_builtins.property
@pulumi.getter(name="customCertResolver")
def custom_cert_resolver(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Traefik certificate resolver name, when `certificate_type` is `custom`.
"""
return pulumi.get(self, "custom_cert_resolver")
@custom_cert_resolver.setter
def custom_cert_resolver(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "custom_cert_resolver", value)
@_builtins.property
@pulumi.getter(name="customEntrypoint")
def custom_entrypoint(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Traefik entrypoint to bind, when not using the defaults.
"""
return pulumi.get(self, "custom_entrypoint")
@custom_entrypoint.setter
def custom_entrypoint(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "custom_entrypoint", value)
@_builtins.property
@pulumi.getter(name="domainType")
def domain_type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
"""
return pulumi.get(self, "domain_type")
@domain_type.setter
def domain_type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "domain_type", value)
@_builtins.property
@pulumi.getter(name="forwardAuthEnabled")
def forward_auth_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Protect this domain with Dokploy's forward auth.
"""
return pulumi.get(self, "forward_auth_enabled")
@forward_auth_enabled.setter
def forward_auth_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "forward_auth_enabled", value)
@_builtins.property
@pulumi.getter
def https(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Serve the domain over HTTPS and redirect HTTP traffic to it.
"""
return pulumi.get(self, "https")
@https.setter
def https(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "https", value)
@_builtins.property
@pulumi.getter(name="internalPath")
def internal_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path the request is rewritten to before it reaches the container, defaults to `/`.
"""
return pulumi.get(self, "internal_path")
@internal_path.setter
def internal_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "internal_path", value)
@_builtins.property
@pulumi.getter
def middlewares(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Names of Traefik middlewares to apply.
"""
return pulumi.get(self, "middlewares")
@middlewares.setter
def middlewares(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "middlewares", value)
@_builtins.property
@pulumi.getter
def path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path prefix this domain routes, defaults to `/`.
"""
return pulumi.get(self, "path")
@path.setter
def path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "path", value)
@_builtins.property
@pulumi.getter
def port(self) -> Optional[pulumi.Input[_builtins.int]]:
"""
Container port that receives the traffic, defaults to `3000`.
"""
return pulumi.get(self, "port")
@port.setter
def port(self, value: Optional[pulumi.Input[_builtins.int]]):
pulumi.set(self, "port", value)
@_builtins.property
@pulumi.getter(name="previewDeploymentId")
def preview_deployment_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Preview deployment this domain routes to.
"""
return pulumi.get(self, "preview_deployment_id")
@preview_deployment_id.setter
def preview_deployment_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "preview_deployment_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
"""
return pulumi.get(self, "service_name")
@service_name.setter
def service_name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "service_name", value)
@_builtins.property
@pulumi.getter(name="stripPath")
def strip_path(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Strip `path` from the request before forwarding it.
"""
return pulumi.get(self, "strip_path")
@strip_path.setter
def strip_path(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "strip_path", value)
@pulumi.input_type
class _DomainState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None):
"""
Input properties used for looking up and filtering Domain resources.
:param pulumi.Input[_builtins.str] application_id: Application this domain routes to.
:param pulumi.Input[_builtins.str] certificate_type: How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this domain routes to.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the domain was created.
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.str] host: Fully-qualified hostname, for example `api.example.com`.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
:param pulumi.Input[_builtins.str] internal_path: Path the request is rewritten to before it reaches the container, defaults to `/`.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] middlewares: Names of Traefik middlewares to apply.
:param pulumi.Input[_builtins.str] path: Path prefix this domain routes, defaults to `/`.
:param pulumi.Input[_builtins.int] port: Container port that receives the traffic, defaults to `3000`.
:param pulumi.Input[_builtins.str] preview_deployment_id: Preview deployment this domain routes to.
:param pulumi.Input[_builtins.str] service_name: Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
:param pulumi.Input[_builtins.bool] strip_path: Strip `path` from the request before forwarding it.
"""
if application_id is not None:
pulumi.set(__self__, "application_id", application_id)
if certificate_type is not None:
pulumi.set(__self__, "certificate_type", certificate_type)
if compose_id is not None:
pulumi.set(__self__, "compose_id", compose_id)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if custom_cert_resolver is not None:
pulumi.set(__self__, "custom_cert_resolver", custom_cert_resolver)
if custom_entrypoint is not None:
pulumi.set(__self__, "custom_entrypoint", custom_entrypoint)
if domain_type is not None:
pulumi.set(__self__, "domain_type", domain_type)
if forward_auth_enabled is not None:
pulumi.set(__self__, "forward_auth_enabled", forward_auth_enabled)
if host is not None:
pulumi.set(__self__, "host", host)
if https is not None:
pulumi.set(__self__, "https", https)
if internal_path is not None:
pulumi.set(__self__, "internal_path", internal_path)
if middlewares is not None:
pulumi.set(__self__, "middlewares", middlewares)
if path is not None:
pulumi.set(__self__, "path", path)
if port is not None:
pulumi.set(__self__, "port", port)
if preview_deployment_id is not None:
pulumi.set(__self__, "preview_deployment_id", preview_deployment_id)
if service_name is not None:
pulumi.set(__self__, "service_name", service_name)
if strip_path is not None:
pulumi.set(__self__, "strip_path", strip_path)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Application this domain routes to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter(name="certificateType")
def certificate_type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
"""
return pulumi.get(self, "certificate_type")
@certificate_type.setter
def certificate_type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "certificate_type", value)
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Compose stack this domain routes to.
"""
return pulumi.get(self, "compose_id")
@compose_id.setter
def compose_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "compose_id", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the domain was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter(name="customCertResolver")
def custom_cert_resolver(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Traefik certificate resolver name, when `certificate_type` is `custom`.
"""
return pulumi.get(self, "custom_cert_resolver")
@custom_cert_resolver.setter
def custom_cert_resolver(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "custom_cert_resolver", value)
@_builtins.property
@pulumi.getter(name="customEntrypoint")
def custom_entrypoint(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Traefik entrypoint to bind, when not using the defaults.
"""
return pulumi.get(self, "custom_entrypoint")
@custom_entrypoint.setter
def custom_entrypoint(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "custom_entrypoint", value)
@_builtins.property
@pulumi.getter(name="domainType")
def domain_type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
"""
return pulumi.get(self, "domain_type")
@domain_type.setter
def domain_type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "domain_type", value)
@_builtins.property
@pulumi.getter(name="forwardAuthEnabled")
def forward_auth_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Protect this domain with Dokploy's forward auth.
"""
return pulumi.get(self, "forward_auth_enabled")
@forward_auth_enabled.setter
def forward_auth_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "forward_auth_enabled", value)
@_builtins.property
@pulumi.getter
def host(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Fully-qualified hostname, for example `api.example.com`.
"""
return pulumi.get(self, "host")
@host.setter
def host(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "host", value)
@_builtins.property
@pulumi.getter
def https(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Serve the domain over HTTPS and redirect HTTP traffic to it.
"""
return pulumi.get(self, "https")
@https.setter
def https(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "https", value)
@_builtins.property
@pulumi.getter(name="internalPath")
def internal_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path the request is rewritten to before it reaches the container, defaults to `/`.
"""
return pulumi.get(self, "internal_path")
@internal_path.setter
def internal_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "internal_path", value)
@_builtins.property
@pulumi.getter
def middlewares(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Names of Traefik middlewares to apply.
"""
return pulumi.get(self, "middlewares")
@middlewares.setter
def middlewares(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "middlewares", value)
@_builtins.property
@pulumi.getter
def path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path prefix this domain routes, defaults to `/`.
"""
return pulumi.get(self, "path")
@path.setter
def path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "path", value)
@_builtins.property
@pulumi.getter
def port(self) -> Optional[pulumi.Input[_builtins.int]]:
"""
Container port that receives the traffic, defaults to `3000`.
"""
return pulumi.get(self, "port")
@port.setter
def port(self, value: Optional[pulumi.Input[_builtins.int]]):
pulumi.set(self, "port", value)
@_builtins.property
@pulumi.getter(name="previewDeploymentId")
def preview_deployment_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Preview deployment this domain routes to.
"""
return pulumi.get(self, "preview_deployment_id")
@preview_deployment_id.setter
def preview_deployment_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "preview_deployment_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
"""
return pulumi.get(self, "service_name")
@service_name.setter
def service_name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "service_name", value)
@_builtins.property
@pulumi.getter(name="stripPath")
def strip_path(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Strip `path` from the request before forwarding it.
"""
return pulumi.get(self, "strip_path")
@strip_path.setter
def strip_path(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "strip_path", value)
@pulumi.type_token("dokploy:index/domain:Domain")
class Domain(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None,
__props__=None):
"""
Create a Domain resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] application_id: Application this domain routes to.
:param pulumi.Input[_builtins.str] certificate_type: How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this domain routes to.
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.str] host: Fully-qualified hostname, for example `api.example.com`.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
:param pulumi.Input[_builtins.str] internal_path: Path the request is rewritten to before it reaches the container, defaults to `/`.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] middlewares: Names of Traefik middlewares to apply.
:param pulumi.Input[_builtins.str] path: Path prefix this domain routes, defaults to `/`.
:param pulumi.Input[_builtins.int] port: Container port that receives the traffic, defaults to `3000`.
:param pulumi.Input[_builtins.str] preview_deployment_id: Preview deployment this domain routes to.
:param pulumi.Input[_builtins.str] service_name: Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
:param pulumi.Input[_builtins.bool] strip_path: Strip `path` from the request before forwarding it.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: DomainArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Domain resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param DomainArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
"""
...
def __init__(__self__, resource_name: str, *args, **kwargs):
resource_args, opts = _utilities.get_resource_args_opts(DomainArgs, pulumi.ResourceOptions, *args, **kwargs)
if resource_args is not None:
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
else:
__self__._internal_init(resource_name, *args, **kwargs)
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = DomainArgs.__new__(DomainArgs)
__props__.__dict__["application_id"] = application_id
__props__.__dict__["certificate_type"] = certificate_type
__props__.__dict__["compose_id"] = compose_id
__props__.__dict__["custom_cert_resolver"] = custom_cert_resolver
__props__.__dict__["custom_entrypoint"] = custom_entrypoint
__props__.__dict__["domain_type"] = domain_type
__props__.__dict__["forward_auth_enabled"] = forward_auth_enabled
if host is None and not opts.urn:
raise TypeError("Missing required property 'host'")
__props__.__dict__["host"] = host
__props__.__dict__["https"] = https
__props__.__dict__["internal_path"] = internal_path
__props__.__dict__["middlewares"] = middlewares
__props__.__dict__["path"] = path
__props__.__dict__["port"] = port
__props__.__dict__["preview_deployment_id"] = preview_deployment_id
__props__.__dict__["service_name"] = service_name
__props__.__dict__["strip_path"] = strip_path
__props__.__dict__["created_at"] = None
super(Domain, __self__).__init__(
'dokploy:index/domain:Domain',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None) -> 'Domain':
"""
Get an existing Domain resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] application_id: Application this domain routes to.
:param pulumi.Input[_builtins.str] certificate_type: How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this domain routes to.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the domain was created.
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.str] host: Fully-qualified hostname, for example `api.example.com`.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
:param pulumi.Input[_builtins.str] internal_path: Path the request is rewritten to before it reaches the container, defaults to `/`.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] middlewares: Names of Traefik middlewares to apply.
:param pulumi.Input[_builtins.str] path: Path prefix this domain routes, defaults to `/`.
:param pulumi.Input[_builtins.int] port: Container port that receives the traffic, defaults to `3000`.
:param pulumi.Input[_builtins.str] preview_deployment_id: Preview deployment this domain routes to.
:param pulumi.Input[_builtins.str] service_name: Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
:param pulumi.Input[_builtins.bool] strip_path: Strip `path` from the request before forwarding it.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _DomainState.__new__(_DomainState)
__props__.__dict__["application_id"] = application_id
__props__.__dict__["certificate_type"] = certificate_type
__props__.__dict__["compose_id"] = compose_id
__props__.__dict__["created_at"] = created_at
__props__.__dict__["custom_cert_resolver"] = custom_cert_resolver
__props__.__dict__["custom_entrypoint"] = custom_entrypoint
__props__.__dict__["domain_type"] = domain_type
__props__.__dict__["forward_auth_enabled"] = forward_auth_enabled
__props__.__dict__["host"] = host
__props__.__dict__["https"] = https
__props__.__dict__["internal_path"] = internal_path
__props__.__dict__["middlewares"] = middlewares
__props__.__dict__["path"] = path
__props__.__dict__["port"] = port
__props__.__dict__["preview_deployment_id"] = preview_deployment_id
__props__.__dict__["service_name"] = service_name
__props__.__dict__["strip_path"] = strip_path
return Domain(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Application this domain routes to.
"""
return pulumi.get(self, "application_id")
@_builtins.property
@pulumi.getter(name="certificateType")
def certificate_type(self) -> pulumi.Output[_builtins.str]:
"""
How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
"""
return pulumi.get(self, "certificate_type")
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Compose stack this domain routes to.
"""
return pulumi.get(self, "compose_id")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the domain was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter(name="customCertResolver")
def custom_cert_resolver(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Traefik certificate resolver name, when `certificate_type` is `custom`.
"""
return pulumi.get(self, "custom_cert_resolver")
@_builtins.property
@pulumi.getter(name="customEntrypoint")
def custom_entrypoint(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Traefik entrypoint to bind, when not using the defaults.
"""
return pulumi.get(self, "custom_entrypoint")
@_builtins.property
@pulumi.getter(name="domainType")
def domain_type(self) -> pulumi.Output[_builtins.str]:
"""
What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
"""
return pulumi.get(self, "domain_type")
@_builtins.property
@pulumi.getter(name="forwardAuthEnabled")
def forward_auth_enabled(self) -> pulumi.Output[_builtins.bool]:
"""
Protect this domain with Dokploy's forward auth.
"""
return pulumi.get(self, "forward_auth_enabled")
@_builtins.property
@pulumi.getter
def host(self) -> pulumi.Output[_builtins.str]:
"""
Fully-qualified hostname, for example `api.example.com`.
"""
return pulumi.get(self, "host")
@_builtins.property
@pulumi.getter
def https(self) -> pulumi.Output[_builtins.bool]:
"""
Serve the domain over HTTPS and redirect HTTP traffic to it.
"""
return pulumi.get(self, "https")
@_builtins.property
@pulumi.getter(name="internalPath")
def internal_path(self) -> pulumi.Output[_builtins.str]:
"""
Path the request is rewritten to before it reaches the container, defaults to `/`.
"""
return pulumi.get(self, "internal_path")
@_builtins.property
@pulumi.getter
def middlewares(self) -> pulumi.Output[Sequence[_builtins.str]]:
"""
Names of Traefik middlewares to apply.
"""
return pulumi.get(self, "middlewares")
@_builtins.property
@pulumi.getter
def path(self) -> pulumi.Output[_builtins.str]:
"""
Path prefix this domain routes, defaults to `/`.
"""
return pulumi.get(self, "path")
@_builtins.property
@pulumi.getter
def port(self) -> pulumi.Output[_builtins.int]:
"""
Container port that receives the traffic, defaults to `3000`.
"""
return pulumi.get(self, "port")
@_builtins.property
@pulumi.getter(name="previewDeploymentId")
def preview_deployment_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Preview deployment this domain routes to.
"""
return pulumi.get(self, "preview_deployment_id")
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
"""
return pulumi.get(self, "service_name")
@_builtins.property
@pulumi.getter(name="stripPath")
def strip_path(self) -> pulumi.Output[_builtins.bool]:
"""
Strip `path` from the request before forwarding it.
"""
return pulumi.get(self, "strip_path")