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.
This commit is contained in:
2026-08-08 15:28:16 +03:00
commit bb3c15135b
175 changed files with 61774 additions and 0 deletions

4
sdk/python/pulumi_dokploy/README.md generated Normal file
View File

@@ -0,0 +1,4 @@
> This provider is a derived work of the [Terraform Provider](https://github.com/maxvojtkov/terraform-provider-dokploy)
> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,
> first check the [`pulumi-dokploy` repo](https://github.com/maxvojtkov/pulumi-dokploy/issues); however, if that doesn't turn up anything,
> please consult the source [`terraform-provider-dokploy` repo](https://github.com/maxvojtkov/terraform-provider-dokploy/issues).

201
sdk/python/pulumi_dokploy/__init__.py generated Normal file
View File

@@ -0,0 +1,201 @@
# 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
from . import _utilities
import typing
# Export this package's modules as members:
from .application import *
from .certificate import *
from .compose import *
from .destination import *
from .domain import *
from .environment import *
from .get_application import *
from .get_environment import *
from .get_project import *
from .get_projects import *
from .get_servers import *
from .maria_db import *
from .mongo import *
from .mount import *
from .my_sql import *
from .port import *
from .postgres import *
from .project import *
from .provider import *
from .redirect import *
from .redis import *
from .registry import *
from .security import *
from .ssh_key import *
from . import outputs
# Make subpackages available:
if typing.TYPE_CHECKING:
import pulumi_dokploy.config as __config
config = __config
else:
config = _utilities.lazy_import('pulumi_dokploy.config')
_utilities.register(
resource_modules="""
[
{
"pkg": "dokploy",
"mod": "index/application",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/application:Application": "Application"
}
},
{
"pkg": "dokploy",
"mod": "index/certificate",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/certificate:Certificate": "Certificate"
}
},
{
"pkg": "dokploy",
"mod": "index/compose",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/compose:Compose": "Compose"
}
},
{
"pkg": "dokploy",
"mod": "index/destination",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/destination:Destination": "Destination"
}
},
{
"pkg": "dokploy",
"mod": "index/domain",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/domain:Domain": "Domain"
}
},
{
"pkg": "dokploy",
"mod": "index/environment",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/environment:Environment": "Environment"
}
},
{
"pkg": "dokploy",
"mod": "index/mariaDb",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/mariaDb:MariaDb": "MariaDb"
}
},
{
"pkg": "dokploy",
"mod": "index/mongo",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/mongo:Mongo": "Mongo"
}
},
{
"pkg": "dokploy",
"mod": "index/mount",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/mount:Mount": "Mount"
}
},
{
"pkg": "dokploy",
"mod": "index/mySql",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/mySql:MySql": "MySql"
}
},
{
"pkg": "dokploy",
"mod": "index/port",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/port:Port": "Port"
}
},
{
"pkg": "dokploy",
"mod": "index/postgres",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/postgres:Postgres": "Postgres"
}
},
{
"pkg": "dokploy",
"mod": "index/project",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/project:Project": "Project"
}
},
{
"pkg": "dokploy",
"mod": "index/redirect",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/redirect:Redirect": "Redirect"
}
},
{
"pkg": "dokploy",
"mod": "index/redis",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/redis:Redis": "Redis"
}
},
{
"pkg": "dokploy",
"mod": "index/registry",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/registry:Registry": "Registry"
}
},
{
"pkg": "dokploy",
"mod": "index/security",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/security:Security": "Security"
}
},
{
"pkg": "dokploy",
"mod": "index/sshKey",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/sshKey:SshKey": "SshKey"
}
}
]
""",
resource_packages="""
[
{
"pkg": "dokploy",
"token": "pulumi:providers:dokploy",
"fqn": "pulumi_dokploy",
"class": "Provider"
}
]
"""
)

328
sdk/python/pulumi_dokploy/_utilities.py generated Normal file
View File

@@ -0,0 +1,328 @@
# 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 asyncio
import functools
import importlib.metadata
import importlib.util
import inspect
import json
import os
import sys
import typing
import warnings
import base64
import pulumi
import pulumi.runtime
from pulumi.runtime.sync_await import _sync_await
from pulumi.runtime.proto import resource_pb2
from semver import VersionInfo as SemverVersion
from parver import Version as PEP440Version
C = typing.TypeVar("C", bound=typing.Callable)
def get_env(*args):
for v in args:
value = os.getenv(v)
if value is not None:
return value
return None
def get_env_bool(*args):
str = get_env(*args)
if str is not None:
# NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what
# Terraform uses internally when parsing boolean values.
if str in ["1", "t", "T", "true", "TRUE", "True"]:
return True
if str in ["0", "f", "F", "false", "FALSE", "False"]:
return False
return None
def get_env_int(*args):
str = get_env(*args)
if str is not None:
try:
return int(str)
except:
return None
return None
def get_env_float(*args):
str = get_env(*args)
if str is not None:
try:
return float(str)
except:
return None
return None
def _get_semver_version():
# __name__ is set to the fully-qualified name of the current module, In our case, it will be
# <some module>._utilities. <some module> is the module we want to query the version for.
root_package, *rest = __name__.split('.')
# Unfortunately, PEP440 and semver differ slightly in incompatible ways. The Pulumi engine expects
# to receive a valid semver string when receiving requests from the language host, so it's our
# responsibility as the library to convert our own PEP440 version into a valid semver string.
pep440_version_string = importlib.metadata.version(root_package)
pep440_version = PEP440Version.parse(pep440_version_string)
(major, minor, patch) = pep440_version.release
prerelease = None
if pep440_version.pre_tag == 'a':
prerelease = f"alpha.{pep440_version.pre}"
elif pep440_version.pre_tag == 'b':
prerelease = f"beta.{pep440_version.pre}"
elif pep440_version.pre_tag == 'rc':
prerelease = f"rc.{pep440_version.pre}"
elif pep440_version.dev is not None:
# PEP440 has explicit support for dev builds, while semver encodes them as "prerelease" versions. To bridge
# between the two, we convert our dev build version into a prerelease tag. This matches what all of our other
# packages do when constructing their own semver string.
prerelease = f"dev.{pep440_version.dev}"
elif pep440_version.local is not None:
# PEP440 only allows a small set of prerelease tags, so when converting an arbitrary prerelease,
# PypiVersion in /pkg/codegen/python/utilities.go converts it to a local version. Therefore, we need to
# do the reverse conversion here and set the local version as the prerelease tag.
prerelease = pep440_version.local
return SemverVersion(major=major, minor=minor, patch=patch, prerelease=prerelease)
# Determine the version once and cache the value, which measurably improves program performance.
_version = _get_semver_version()
_version_str = str(_version)
def get_resource_opts_defaults() -> pulumi.ResourceOptions:
return pulumi.ResourceOptions(
version=get_version(),
plugin_download_url=get_plugin_download_url(),
)
def get_invoke_opts_defaults() -> pulumi.InvokeOptions:
return pulumi.InvokeOptions(
version=get_version(),
plugin_download_url=get_plugin_download_url(),
)
def get_resource_args_opts(resource_args_type, resource_options_type, *args, **kwargs):
"""
Return the resource args and options given the *args and **kwargs of a resource's
__init__ method.
"""
resource_args, opts = None, None
# If the first item is the resource args type, save it and remove it from the args list.
if args and isinstance(args[0], resource_args_type):
resource_args, args = args[0], args[1:]
# Now look at the first item in the args list again.
# If the first item is the resource options class, save it.
if args and isinstance(args[0], resource_options_type):
opts = args[0]
# If resource_args is None, see if "args" is in kwargs, and, if so, if it's typed as the
# the resource args type.
if resource_args is None:
a = kwargs.get("args")
if isinstance(a, resource_args_type):
resource_args = a
# If opts is None, look it up in kwargs.
if opts is None:
opts = kwargs.get("opts")
return resource_args, opts
# Temporary: just use pulumi._utils.lazy_import once everyone upgrades.
def lazy_import(fullname):
import pulumi._utils as u
f = getattr(u, 'lazy_import', None)
if f is None:
f = _lazy_import_temp
return f(fullname)
# Copied from pulumi._utils.lazy_import, see comments there.
def _lazy_import_temp(fullname):
m = sys.modules.get(fullname, None)
if m is not None:
return m
spec = importlib.util.find_spec(fullname)
m = sys.modules.get(fullname, None)
if m is not None:
return m
loader = importlib.util.LazyLoader(spec.loader)
spec.loader = loader
module = importlib.util.module_from_spec(spec)
m = sys.modules.get(fullname, None)
if m is not None:
return m
sys.modules[fullname] = module
loader.exec_module(module)
return module
class Package(pulumi.runtime.ResourcePackage):
def __init__(self, pkg_info):
super().__init__()
self.pkg_info = pkg_info
def version(self):
return _version
def construct_provider(self, name: str, typ: str, urn: str) -> pulumi.ProviderResource:
if typ != self.pkg_info['token']:
raise Exception(f"unknown provider type {typ}")
Provider = getattr(lazy_import(self.pkg_info['fqn']), self.pkg_info['class'])
return Provider(name, pulumi.ResourceOptions(urn=urn))
class Module(pulumi.runtime.ResourceModule):
def __init__(self, mod_info):
super().__init__()
self.mod_info = mod_info
def version(self):
return _version
def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource:
class_name = self.mod_info['classes'].get(typ, None)
if class_name is None:
raise Exception(f"unknown resource type {typ}")
TheClass = getattr(lazy_import(self.mod_info['fqn']), class_name)
return TheClass(name, pulumi.ResourceOptions(urn=urn))
def register(resource_modules, resource_packages):
resource_modules = json.loads(resource_modules)
resource_packages = json.loads(resource_packages)
for pkg_info in resource_packages:
pulumi.runtime.register_resource_package(pkg_info['pkg'], Package(pkg_info))
for mod_info in resource_modules:
pulumi.runtime.register_resource_module(
mod_info['pkg'],
mod_info['mod'],
Module(mod_info))
_F = typing.TypeVar('_F', bound=typing.Callable[..., typing.Any])
def lift_output_func(func: typing.Any) -> typing.Callable[[_F], _F]:
"""Decorator internally used on {fn}_output lifted function versions
to implement them automatically from the un-lifted function."""
func_sig = inspect.signature(func)
def lifted_func(*args, opts=None, **kwargs):
bound_args = func_sig.bind(*args, **kwargs)
# Convert tuple to list, see pulumi/pulumi#8172
args_list = list(bound_args.args)
return pulumi.Output.from_input({
'args': args_list,
'kwargs': bound_args.kwargs
}).apply(lambda resolved_args: func(*resolved_args['args'],
opts=opts,
**resolved_args['kwargs']))
return (lambda _: lifted_func)
def call_plain(
tok: str,
props: pulumi.Inputs,
res: typing.Optional[pulumi.Resource] = None,
typ: typing.Optional[type] = None,
) -> typing.Any:
"""
Wraps pulumi.runtime.plain to force the output and return it plainly.
"""
output = pulumi.runtime.call(tok, props, res, typ)
# Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency.
result, known, secret, _ = _sync_await(asyncio.create_task(_await_output(output)))
problem = None
if not known:
problem = ' an unknown value'
elif secret:
problem = ' a secret value'
if problem:
raise AssertionError(
f"Plain resource method '{tok}' incorrectly returned {problem}. "
+ "This is an error in the provider, please report this to the provider developer."
)
return result
async def _await_output(o: pulumi.Output[typing.Any]) -> typing.Tuple[object, bool, bool, set]:
return (
await o._future,
await o._is_known,
await o._is_secret,
await o._resources,
)
# This is included to provide an upgrade path for users who are using a version
# of the Pulumi SDK (<3.121.0) that does not include the `deprecated` decorator.
def deprecated(message: str) -> typing.Callable[[C], C]:
"""
Decorator to indicate a function is deprecated.
As well as inserting appropriate statements to indicate that the function is
deprecated, this decorator also tags the function with a special attribute
so that Pulumi code can detect that it is deprecated and react appropriately
in certain situations.
message is the deprecation message that should be printed if the function is called.
"""
def decorator(fn: C) -> C:
if not callable(fn):
raise TypeError("Expected fn to be callable")
@functools.wraps(fn)
def deprecated_fn(*args, **kwargs):
warnings.warn(message)
pulumi.warn(f"{fn.__name__} is deprecated: {message}")
return fn(*args, **kwargs)
deprecated_fn.__dict__["_pulumi_deprecated_callable"] = fn
return typing.cast(C, deprecated_fn)
return decorator
def get_plugin_download_url():
return "github://api.github.com/maxvojtkov/pulumi-dokploy"
def get_version():
return _version_str

4583
sdk/python/pulumi_dokploy/application.py generated Normal file

File diff suppressed because it is too large Load Diff

373
sdk/python/pulumi_dokploy/certificate.py generated Normal file
View File

@@ -0,0 +1,373 @@
# 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__ = ['CertificateArgs', 'Certificate']
@pulumi.input_type
class CertificateArgs:
def __init__(__self__, *,
certificate_data: pulumi.Input[_builtins.str],
private_key: pulumi.Input[_builtins.str],
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a Certificate resource.
:param pulumi.Input[_builtins.str] certificate_data: PEM-encoded certificate chain.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.bool] auto_renew: Whether Dokploy should renew this certificate automatically.
:param pulumi.Input[_builtins.str] name: Display name of the certificate.
:param pulumi.Input[_builtins.str] server_id: Server this certificate is installed on.
"""
pulumi.set(__self__, "certificate_data", certificate_data)
pulumi.set(__self__, "private_key", private_key)
if auto_renew is not None:
pulumi.set(__self__, "auto_renew", auto_renew)
if name is not None:
pulumi.set(__self__, "name", name)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
@_builtins.property
@pulumi.getter(name="certificateData")
def certificate_data(self) -> pulumi.Input[_builtins.str]:
"""
PEM-encoded certificate chain.
"""
return pulumi.get(self, "certificate_data")
@certificate_data.setter
def certificate_data(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "certificate_data", value)
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> pulumi.Input[_builtins.str]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@private_key.setter
def private_key(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "private_key", value)
@_builtins.property
@pulumi.getter(name="autoRenew")
def auto_renew(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Whether Dokploy should renew this certificate automatically.
"""
return pulumi.get(self, "auto_renew")
@auto_renew.setter
def auto_renew(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "auto_renew", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the certificate.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Server this certificate is installed on.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.input_type
class _CertificateState:
def __init__(__self__, *,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
certificate_path: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Certificate resources.
:param pulumi.Input[_builtins.bool] auto_renew: Whether Dokploy should renew this certificate automatically.
:param pulumi.Input[_builtins.str] certificate_data: PEM-encoded certificate chain.
:param pulumi.Input[_builtins.str] certificate_path: Path where Dokploy writes the certificate on disk.
:param pulumi.Input[_builtins.str] name: Display name of the certificate.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.str] server_id: Server this certificate is installed on.
"""
if auto_renew is not None:
pulumi.set(__self__, "auto_renew", auto_renew)
if certificate_data is not None:
pulumi.set(__self__, "certificate_data", certificate_data)
if certificate_path is not None:
pulumi.set(__self__, "certificate_path", certificate_path)
if name is not None:
pulumi.set(__self__, "name", name)
if private_key is not None:
pulumi.set(__self__, "private_key", private_key)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
@_builtins.property
@pulumi.getter(name="autoRenew")
def auto_renew(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Whether Dokploy should renew this certificate automatically.
"""
return pulumi.get(self, "auto_renew")
@auto_renew.setter
def auto_renew(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "auto_renew", value)
@_builtins.property
@pulumi.getter(name="certificateData")
def certificate_data(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
PEM-encoded certificate chain.
"""
return pulumi.get(self, "certificate_data")
@certificate_data.setter
def certificate_data(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "certificate_data", value)
@_builtins.property
@pulumi.getter(name="certificatePath")
def certificate_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path where Dokploy writes the certificate on disk.
"""
return pulumi.get(self, "certificate_path")
@certificate_path.setter
def certificate_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "certificate_path", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the certificate.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@private_key.setter
def private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "private_key", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Server this certificate is installed on.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.type_token("dokploy:index/certificate:Certificate")
class Certificate(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Certificate 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.bool] auto_renew: Whether Dokploy should renew this certificate automatically.
:param pulumi.Input[_builtins.str] certificate_data: PEM-encoded certificate chain.
:param pulumi.Input[_builtins.str] name: Display name of the certificate.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.str] server_id: Server this certificate is installed on.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: CertificateArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Certificate resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param CertificateArgs 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(CertificateArgs, 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,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = 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__ = CertificateArgs.__new__(CertificateArgs)
__props__.__dict__["auto_renew"] = auto_renew
if certificate_data is None and not opts.urn:
raise TypeError("Missing required property 'certificate_data'")
__props__.__dict__["certificate_data"] = certificate_data
__props__.__dict__["name"] = name
if private_key is None and not opts.urn:
raise TypeError("Missing required property 'private_key'")
__props__.__dict__["private_key"] = None if private_key is None else pulumi.Output.secret(private_key)
__props__.__dict__["server_id"] = server_id
__props__.__dict__["certificate_path"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["privateKey"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(Certificate, __self__).__init__(
'dokploy:index/certificate:Certificate',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
certificate_path: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Certificate':
"""
Get an existing Certificate 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.bool] auto_renew: Whether Dokploy should renew this certificate automatically.
:param pulumi.Input[_builtins.str] certificate_data: PEM-encoded certificate chain.
:param pulumi.Input[_builtins.str] certificate_path: Path where Dokploy writes the certificate on disk.
:param pulumi.Input[_builtins.str] name: Display name of the certificate.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.str] server_id: Server this certificate is installed on.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _CertificateState.__new__(_CertificateState)
__props__.__dict__["auto_renew"] = auto_renew
__props__.__dict__["certificate_data"] = certificate_data
__props__.__dict__["certificate_path"] = certificate_path
__props__.__dict__["name"] = name
__props__.__dict__["private_key"] = private_key
__props__.__dict__["server_id"] = server_id
return Certificate(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="autoRenew")
def auto_renew(self) -> pulumi.Output[_builtins.bool]:
"""
Whether Dokploy should renew this certificate automatically.
"""
return pulumi.get(self, "auto_renew")
@_builtins.property
@pulumi.getter(name="certificateData")
def certificate_data(self) -> pulumi.Output[_builtins.str]:
"""
PEM-encoded certificate chain.
"""
return pulumi.get(self, "certificate_data")
@_builtins.property
@pulumi.getter(name="certificatePath")
def certificate_path(self) -> pulumi.Output[_builtins.str]:
"""
Path where Dokploy writes the certificate on disk.
"""
return pulumi.get(self, "certificate_path")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the certificate.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> pulumi.Output[_builtins.str]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Server this certificate is installed on.
"""
return pulumi.get(self, "server_id")

2137
sdk/python/pulumi_dokploy/compose.py generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
# 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 sys
from .vars import _ExportableConfig
sys.modules[__name__].__class__ = _ExportableConfig

View File

@@ -0,0 +1,36 @@
# 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
apiKey: Optional[str]
"""
API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
"""
host: Optional[str]
"""
Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
"""
insecureSkipVerify: Optional[bool]
"""
Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
"""
timeoutSeconds: Optional[int]
"""
Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
"""

50
sdk/python/pulumi_dokploy/config/vars.py generated Normal file
View File

@@ -0,0 +1,50 @@
# 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
import types
__config__ = pulumi.Config('dokploy')
class _ExportableConfig(types.ModuleType):
@_builtins.property
def api_key(self) -> Optional[str]:
"""
API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
"""
return __config__.get('apiKey') or _utilities.get_env('DOKPLOY_API_KEY')
@_builtins.property
def host(self) -> Optional[str]:
"""
Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
"""
return __config__.get('host') or _utilities.get_env('DOKPLOY_HOST')
@_builtins.property
def insecure_skip_verify(self) -> Optional[bool]:
"""
Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
"""
return __config__.get_bool('insecureSkipVerify')
@_builtins.property
def timeout_seconds(self) -> Optional[int]:
"""
Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
"""
return __config__.get_int('timeoutSeconds') or _utilities.get_env_int('DOKPLOY_TIMEOUT_SECONDS')

564
sdk/python/pulumi_dokploy/destination.py generated Normal file
View File

@@ -0,0 +1,564 @@
# 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__ = ['DestinationArgs', 'Destination']
@pulumi.input_type
class DestinationArgs:
def __init__(__self__, *,
access_key: pulumi.Input[_builtins.str],
bucket: pulumi.Input[_builtins.str],
endpoint: pulumi.Input[_builtins.str],
region: pulumi.Input[_builtins.str],
secret_access_key: pulumi.Input[_builtins.str],
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a Destination resource.
:param pulumi.Input[_builtins.str] access_key: S3 access key ID.
:param pulumi.Input[_builtins.str] bucket: Bucket name.
:param pulumi.Input[_builtins.str] endpoint: S3 endpoint URL.
:param pulumi.Input[_builtins.str] region: Bucket region, for example `us-east-1`.
:param pulumi.Input[_builtins.str] secret_access_key: S3 secret access key.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_flags: Extra flags passed to the underlying `rclone` invocation.
:param pulumi.Input[_builtins.str] name: Display name of the destination.
:param pulumi.Input[_builtins.str] provider_name: Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
:param pulumi.Input[_builtins.str] server_id: Server this destination is scoped to.
"""
pulumi.set(__self__, "access_key", access_key)
pulumi.set(__self__, "bucket", bucket)
pulumi.set(__self__, "endpoint", endpoint)
pulumi.set(__self__, "region", region)
pulumi.set(__self__, "secret_access_key", secret_access_key)
if additional_flags is not None:
pulumi.set(__self__, "additional_flags", additional_flags)
if name is not None:
pulumi.set(__self__, "name", name)
if provider_name is not None:
pulumi.set(__self__, "provider_name", provider_name)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
@_builtins.property
@pulumi.getter(name="accessKey")
def access_key(self) -> pulumi.Input[_builtins.str]:
"""
S3 access key ID.
"""
return pulumi.get(self, "access_key")
@access_key.setter
def access_key(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "access_key", value)
@_builtins.property
@pulumi.getter
def bucket(self) -> pulumi.Input[_builtins.str]:
"""
Bucket name.
"""
return pulumi.get(self, "bucket")
@bucket.setter
def bucket(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "bucket", value)
@_builtins.property
@pulumi.getter
def endpoint(self) -> pulumi.Input[_builtins.str]:
"""
S3 endpoint URL.
"""
return pulumi.get(self, "endpoint")
@endpoint.setter
def endpoint(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "endpoint", value)
@_builtins.property
@pulumi.getter
def region(self) -> pulumi.Input[_builtins.str]:
"""
Bucket region, for example `us-east-1`.
"""
return pulumi.get(self, "region")
@region.setter
def region(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "region", value)
@_builtins.property
@pulumi.getter(name="secretAccessKey")
def secret_access_key(self) -> pulumi.Input[_builtins.str]:
"""
S3 secret access key.
"""
return pulumi.get(self, "secret_access_key")
@secret_access_key.setter
def secret_access_key(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "secret_access_key", value)
@_builtins.property
@pulumi.getter(name="additionalFlags")
def additional_flags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Extra flags passed to the underlying `rclone` invocation.
"""
return pulumi.get(self, "additional_flags")
@additional_flags.setter
def additional_flags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "additional_flags", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the destination.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="providerName")
def provider_name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
"""
return pulumi.get(self, "provider_name")
@provider_name.setter
def provider_name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "provider_name", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Server this destination is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.input_type
class _DestinationState:
def __init__(__self__, *,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Destination resources.
:param pulumi.Input[_builtins.str] access_key: S3 access key ID.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_flags: Extra flags passed to the underlying `rclone` invocation.
:param pulumi.Input[_builtins.str] bucket: Bucket name.
:param pulumi.Input[_builtins.str] created_at: Timestamp of when the destination was created.
:param pulumi.Input[_builtins.str] endpoint: S3 endpoint URL.
:param pulumi.Input[_builtins.str] name: Display name of the destination.
:param pulumi.Input[_builtins.str] provider_name: Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
:param pulumi.Input[_builtins.str] region: Bucket region, for example `us-east-1`.
:param pulumi.Input[_builtins.str] secret_access_key: S3 secret access key.
:param pulumi.Input[_builtins.str] server_id: Server this destination is scoped to.
"""
if access_key is not None:
pulumi.set(__self__, "access_key", access_key)
if additional_flags is not None:
pulumi.set(__self__, "additional_flags", additional_flags)
if bucket is not None:
pulumi.set(__self__, "bucket", bucket)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if endpoint is not None:
pulumi.set(__self__, "endpoint", endpoint)
if name is not None:
pulumi.set(__self__, "name", name)
if provider_name is not None:
pulumi.set(__self__, "provider_name", provider_name)
if region is not None:
pulumi.set(__self__, "region", region)
if secret_access_key is not None:
pulumi.set(__self__, "secret_access_key", secret_access_key)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
@_builtins.property
@pulumi.getter(name="accessKey")
def access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
S3 access key ID.
"""
return pulumi.get(self, "access_key")
@access_key.setter
def access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "access_key", value)
@_builtins.property
@pulumi.getter(name="additionalFlags")
def additional_flags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Extra flags passed to the underlying `rclone` invocation.
"""
return pulumi.get(self, "additional_flags")
@additional_flags.setter
def additional_flags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "additional_flags", value)
@_builtins.property
@pulumi.getter
def bucket(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Bucket name.
"""
return pulumi.get(self, "bucket")
@bucket.setter
def bucket(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "bucket", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Timestamp of when the destination 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
def endpoint(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
S3 endpoint URL.
"""
return pulumi.get(self, "endpoint")
@endpoint.setter
def endpoint(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "endpoint", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the destination.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="providerName")
def provider_name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
"""
return pulumi.get(self, "provider_name")
@provider_name.setter
def provider_name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "provider_name", value)
@_builtins.property
@pulumi.getter
def region(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Bucket region, for example `us-east-1`.
"""
return pulumi.get(self, "region")
@region.setter
def region(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "region", value)
@_builtins.property
@pulumi.getter(name="secretAccessKey")
def secret_access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
S3 secret access key.
"""
return pulumi.get(self, "secret_access_key")
@secret_access_key.setter
def secret_access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "secret_access_key", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Server this destination is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.type_token("dokploy:index/destination:Destination")
class Destination(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Destination 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] access_key: S3 access key ID.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_flags: Extra flags passed to the underlying `rclone` invocation.
:param pulumi.Input[_builtins.str] bucket: Bucket name.
:param pulumi.Input[_builtins.str] endpoint: S3 endpoint URL.
:param pulumi.Input[_builtins.str] name: Display name of the destination.
:param pulumi.Input[_builtins.str] provider_name: Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
:param pulumi.Input[_builtins.str] region: Bucket region, for example `us-east-1`.
:param pulumi.Input[_builtins.str] secret_access_key: S3 secret access key.
:param pulumi.Input[_builtins.str] server_id: Server this destination is scoped to.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: DestinationArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Destination resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param DestinationArgs 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(DestinationArgs, 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,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = 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__ = DestinationArgs.__new__(DestinationArgs)
if access_key is None and not opts.urn:
raise TypeError("Missing required property 'access_key'")
__props__.__dict__["access_key"] = access_key
__props__.__dict__["additional_flags"] = additional_flags
if bucket is None and not opts.urn:
raise TypeError("Missing required property 'bucket'")
__props__.__dict__["bucket"] = bucket
if endpoint is None and not opts.urn:
raise TypeError("Missing required property 'endpoint'")
__props__.__dict__["endpoint"] = endpoint
__props__.__dict__["name"] = name
__props__.__dict__["provider_name"] = provider_name
if region is None and not opts.urn:
raise TypeError("Missing required property 'region'")
__props__.__dict__["region"] = region
if secret_access_key is None and not opts.urn:
raise TypeError("Missing required property 'secret_access_key'")
__props__.__dict__["secret_access_key"] = None if secret_access_key is None else pulumi.Output.secret(secret_access_key)
__props__.__dict__["server_id"] = server_id
__props__.__dict__["created_at"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["secretAccessKey"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(Destination, __self__).__init__(
'dokploy:index/destination:Destination',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Destination':
"""
Get an existing Destination 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] access_key: S3 access key ID.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_flags: Extra flags passed to the underlying `rclone` invocation.
:param pulumi.Input[_builtins.str] bucket: Bucket name.
:param pulumi.Input[_builtins.str] created_at: Timestamp of when the destination was created.
:param pulumi.Input[_builtins.str] endpoint: S3 endpoint URL.
:param pulumi.Input[_builtins.str] name: Display name of the destination.
:param pulumi.Input[_builtins.str] provider_name: Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
:param pulumi.Input[_builtins.str] region: Bucket region, for example `us-east-1`.
:param pulumi.Input[_builtins.str] secret_access_key: S3 secret access key.
:param pulumi.Input[_builtins.str] server_id: Server this destination is scoped to.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _DestinationState.__new__(_DestinationState)
__props__.__dict__["access_key"] = access_key
__props__.__dict__["additional_flags"] = additional_flags
__props__.__dict__["bucket"] = bucket
__props__.__dict__["created_at"] = created_at
__props__.__dict__["endpoint"] = endpoint
__props__.__dict__["name"] = name
__props__.__dict__["provider_name"] = provider_name
__props__.__dict__["region"] = region
__props__.__dict__["secret_access_key"] = secret_access_key
__props__.__dict__["server_id"] = server_id
return Destination(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="accessKey")
def access_key(self) -> pulumi.Output[_builtins.str]:
"""
S3 access key ID.
"""
return pulumi.get(self, "access_key")
@_builtins.property
@pulumi.getter(name="additionalFlags")
def additional_flags(self) -> pulumi.Output[Sequence[_builtins.str]]:
"""
Extra flags passed to the underlying `rclone` invocation.
"""
return pulumi.get(self, "additional_flags")
@_builtins.property
@pulumi.getter
def bucket(self) -> pulumi.Output[_builtins.str]:
"""
Bucket name.
"""
return pulumi.get(self, "bucket")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
Timestamp of when the destination was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def endpoint(self) -> pulumi.Output[_builtins.str]:
"""
S3 endpoint URL.
"""
return pulumi.get(self, "endpoint")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the destination.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="providerName")
def provider_name(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
"""
return pulumi.get(self, "provider_name")
@_builtins.property
@pulumi.getter
def region(self) -> pulumi.Output[_builtins.str]:
"""
Bucket region, for example `us-east-1`.
"""
return pulumi.get(self, "region")
@_builtins.property
@pulumi.getter(name="secretAccessKey")
def secret_access_key(self) -> pulumi.Output[_builtins.str]:
"""
S3 secret access key.
"""
return pulumi.get(self, "secret_access_key")
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Server this destination is scoped to.
"""
return pulumi.get(self, "server_id")

887
sdk/python/pulumi_dokploy/domain.py generated Normal file
View File

@@ -0,0 +1,887 @@
# 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")

351
sdk/python/pulumi_dokploy/environment.py generated Normal file
View File

@@ -0,0 +1,351 @@
# 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__ = ['EnvironmentArgs', 'Environment']
@pulumi.input_type
class EnvironmentArgs:
def __init__(__self__, *,
project_id: pulumi.Input[_builtins.str],
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a Environment resource.
:param pulumi.Input[_builtins.str] project_id: Project this environment belongs to.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
:param pulumi.Input[_builtins.str] name: Environment name, for example `staging`.
"""
pulumi.set(__self__, "project_id", project_id)
if description is not None:
pulumi.set(__self__, "description", description)
if env is not None:
pulumi.set(__self__, "env", env)
if name is not None:
pulumi.set(__self__, "name", name)
@_builtins.property
@pulumi.getter(name="projectId")
def project_id(self) -> pulumi.Input[_builtins.str]:
"""
Project this environment belongs to.
"""
return pulumi.get(self, "project_id")
@project_id.setter
def project_id(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "project_id", value)
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Environment name, for example `staging`.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _EnvironmentState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
is_default: Optional[pulumi.Input[_builtins.bool]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Environment resources.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the environment was created.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
:param pulumi.Input[_builtins.bool] is_default: Whether this is the project's default environment.
:param pulumi.Input[_builtins.str] name: Environment name, for example `staging`.
:param pulumi.Input[_builtins.str] project_id: Project this environment belongs to.
"""
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if description is not None:
pulumi.set(__self__, "description", description)
if env is not None:
pulumi.set(__self__, "env", env)
if is_default is not None:
pulumi.set(__self__, "is_default", is_default)
if name is not None:
pulumi.set(__self__, "name", name)
if project_id is not None:
pulumi.set(__self__, "project_id", project_id)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the environment 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
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter(name="isDefault")
def is_default(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Whether this is the project's default environment.
"""
return pulumi.get(self, "is_default")
@is_default.setter
def is_default(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "is_default", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Environment name, for example `staging`.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="projectId")
def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Project this environment belongs to.
"""
return pulumi.get(self, "project_id")
@project_id.setter
def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "project_id", value)
@pulumi.type_token("dokploy:index/environment:Environment")
class Environment(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Environment 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] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
:param pulumi.Input[_builtins.str] name: Environment name, for example `staging`.
:param pulumi.Input[_builtins.str] project_id: Project this environment belongs to.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: EnvironmentArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Environment resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param EnvironmentArgs 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(EnvironmentArgs, 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,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = 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__ = EnvironmentArgs.__new__(EnvironmentArgs)
__props__.__dict__["description"] = description
__props__.__dict__["env"] = env
__props__.__dict__["name"] = name
if project_id is None and not opts.urn:
raise TypeError("Missing required property 'project_id'")
__props__.__dict__["project_id"] = project_id
__props__.__dict__["created_at"] = None
__props__.__dict__["is_default"] = None
super(Environment, __self__).__init__(
'dokploy:index/environment:Environment',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
is_default: Optional[pulumi.Input[_builtins.bool]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Environment':
"""
Get an existing Environment 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] created_at: RFC 3339 timestamp of when the environment was created.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
:param pulumi.Input[_builtins.bool] is_default: Whether this is the project's default environment.
:param pulumi.Input[_builtins.str] name: Environment name, for example `staging`.
:param pulumi.Input[_builtins.str] project_id: Project this environment belongs to.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _EnvironmentState.__new__(_EnvironmentState)
__props__.__dict__["created_at"] = created_at
__props__.__dict__["description"] = description
__props__.__dict__["env"] = env
__props__.__dict__["is_default"] = is_default
__props__.__dict__["name"] = name
__props__.__dict__["project_id"] = project_id
return Environment(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the environment was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def description(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def env(self) -> pulumi.Output[_builtins.str]:
"""
Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
"""
return pulumi.get(self, "env")
@_builtins.property
@pulumi.getter(name="isDefault")
def is_default(self) -> pulumi.Output[_builtins.bool]:
"""
Whether this is the project's default environment.
"""
return pulumi.get(self, "is_default")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Environment name, for example `staging`.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="projectId")
def project_id(self) -> pulumi.Output[_builtins.str]:
"""
Project this environment belongs to.
"""
return pulumi.get(self, "project_id")

View File

@@ -0,0 +1,159 @@
# 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__ = [
'GetApplicationResult',
'AwaitableGetApplicationResult',
'get_application',
'get_application_output',
]
@pulumi.output_type
class GetApplicationResult:
"""
A collection of values returned by getApplication.
"""
def __init__(__self__, app_name=None, application_status=None, build_type=None, created_at=None, description=None, environment_id=None, id=None, name=None, source_type=None):
if app_name and not isinstance(app_name, str):
raise TypeError("Expected argument 'app_name' to be a str")
pulumi.set(__self__, "app_name", app_name)
if application_status and not isinstance(application_status, str):
raise TypeError("Expected argument 'application_status' to be a str")
pulumi.set(__self__, "application_status", application_status)
if build_type and not isinstance(build_type, str):
raise TypeError("Expected argument 'build_type' to be a str")
pulumi.set(__self__, "build_type", build_type)
if created_at and not isinstance(created_at, str):
raise TypeError("Expected argument 'created_at' to be a str")
pulumi.set(__self__, "created_at", created_at)
if description and not isinstance(description, str):
raise TypeError("Expected argument 'description' to be a str")
pulumi.set(__self__, "description", description)
if environment_id and not isinstance(environment_id, str):
raise TypeError("Expected argument 'environment_id' to be a str")
pulumi.set(__self__, "environment_id", environment_id)
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
pulumi.set(__self__, "id", id)
if name and not isinstance(name, str):
raise TypeError("Expected argument 'name' to be a str")
pulumi.set(__self__, "name", name)
if source_type and not isinstance(source_type, str):
raise TypeError("Expected argument 'source_type' to be a str")
pulumi.set(__self__, "source_type", source_type)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> _builtins.str:
return pulumi.get(self, "app_name")
@_builtins.property
@pulumi.getter(name="applicationStatus")
def application_status(self) -> _builtins.str:
return pulumi.get(self, "application_status")
@_builtins.property
@pulumi.getter(name="buildType")
def build_type(self) -> _builtins.str:
return pulumi.get(self, "build_type")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> _builtins.str:
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def description(self) -> _builtins.str:
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter(name="environmentId")
def environment_id(self) -> _builtins.str:
return pulumi.get(self, "environment_id")
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="sourceType")
def source_type(self) -> _builtins.str:
return pulumi.get(self, "source_type")
class AwaitableGetApplicationResult(GetApplicationResult):
# pylint: disable=using-constant-test
def __await__(self):
if False:
yield self
return GetApplicationResult(
app_name=self.app_name,
application_status=self.application_status,
build_type=self.build_type,
created_at=self.created_at,
description=self.description,
environment_id=self.environment_id,
id=self.id,
name=self.name,
source_type=self.source_type)
def get_application(id: Optional[_builtins.str] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApplicationResult:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
__args__['id'] = id
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke('dokploy:index/getApplication:getApplication', __args__, opts=opts, typ=GetApplicationResult).value
return AwaitableGetApplicationResult(
app_name=pulumi.get(__ret__, 'app_name'),
application_status=pulumi.get(__ret__, 'application_status'),
build_type=pulumi.get(__ret__, 'build_type'),
created_at=pulumi.get(__ret__, 'created_at'),
description=pulumi.get(__ret__, 'description'),
environment_id=pulumi.get(__ret__, 'environment_id'),
id=pulumi.get(__ret__, 'id'),
name=pulumi.get(__ret__, 'name'),
source_type=pulumi.get(__ret__, 'source_type'))
def get_application_output(id: Optional[pulumi.Input[_builtins.str]] = None,
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetApplicationResult]:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
__args__['id'] = id
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke_output('dokploy:index/getApplication:getApplication', __args__, opts=opts, typ=GetApplicationResult)
return __ret__.apply(lambda __response__: GetApplicationResult(
app_name=pulumi.get(__response__, 'app_name'),
application_status=pulumi.get(__response__, 'application_status'),
build_type=pulumi.get(__response__, 'build_type'),
created_at=pulumi.get(__response__, 'created_at'),
description=pulumi.get(__response__, 'description'),
environment_id=pulumi.get(__response__, 'environment_id'),
id=pulumi.get(__response__, 'id'),
name=pulumi.get(__response__, 'name'),
source_type=pulumi.get(__response__, 'source_type')))

View File

@@ -0,0 +1,137 @@
# 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__ = [
'GetEnvironmentResult',
'AwaitableGetEnvironmentResult',
'get_environment',
'get_environment_output',
]
@pulumi.output_type
class GetEnvironmentResult:
"""
A collection of values returned by getEnvironment.
"""
def __init__(__self__, created_at=None, description=None, env=None, id=None, is_default=None, name=None, project_id=None):
if created_at and not isinstance(created_at, str):
raise TypeError("Expected argument 'created_at' to be a str")
pulumi.set(__self__, "created_at", created_at)
if description and not isinstance(description, str):
raise TypeError("Expected argument 'description' to be a str")
pulumi.set(__self__, "description", description)
if env and not isinstance(env, str):
raise TypeError("Expected argument 'env' to be a str")
pulumi.set(__self__, "env", env)
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
pulumi.set(__self__, "id", id)
if is_default and not isinstance(is_default, bool):
raise TypeError("Expected argument 'is_default' to be a bool")
pulumi.set(__self__, "is_default", is_default)
if name and not isinstance(name, str):
raise TypeError("Expected argument 'name' to be a str")
pulumi.set(__self__, "name", name)
if project_id and not isinstance(project_id, str):
raise TypeError("Expected argument 'project_id' to be a str")
pulumi.set(__self__, "project_id", project_id)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> _builtins.str:
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def description(self) -> _builtins.str:
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def env(self) -> _builtins.str:
return pulumi.get(self, "env")
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter(name="isDefault")
def is_default(self) -> _builtins.bool:
return pulumi.get(self, "is_default")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="projectId")
def project_id(self) -> _builtins.str:
return pulumi.get(self, "project_id")
class AwaitableGetEnvironmentResult(GetEnvironmentResult):
# pylint: disable=using-constant-test
def __await__(self):
if False:
yield self
return GetEnvironmentResult(
created_at=self.created_at,
description=self.description,
env=self.env,
id=self.id,
is_default=self.is_default,
name=self.name,
project_id=self.project_id)
def get_environment(id: Optional[_builtins.str] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEnvironmentResult:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
__args__['id'] = id
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke('dokploy:index/getEnvironment:getEnvironment', __args__, opts=opts, typ=GetEnvironmentResult).value
return AwaitableGetEnvironmentResult(
created_at=pulumi.get(__ret__, 'created_at'),
description=pulumi.get(__ret__, 'description'),
env=pulumi.get(__ret__, 'env'),
id=pulumi.get(__ret__, 'id'),
is_default=pulumi.get(__ret__, 'is_default'),
name=pulumi.get(__ret__, 'name'),
project_id=pulumi.get(__ret__, 'project_id'))
def get_environment_output(id: Optional[pulumi.Input[_builtins.str]] = None,
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetEnvironmentResult]:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
__args__['id'] = id
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke_output('dokploy:index/getEnvironment:getEnvironment', __args__, opts=opts, typ=GetEnvironmentResult)
return __ret__.apply(lambda __response__: GetEnvironmentResult(
created_at=pulumi.get(__response__, 'created_at'),
description=pulumi.get(__response__, 'description'),
env=pulumi.get(__response__, 'env'),
id=pulumi.get(__response__, 'id'),
is_default=pulumi.get(__response__, 'is_default'),
name=pulumi.get(__response__, 'name'),
project_id=pulumi.get(__response__, 'project_id')))

149
sdk/python/pulumi_dokploy/get_project.py generated Normal file
View File

@@ -0,0 +1,149 @@
# 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
from . import outputs
__all__ = [
'GetProjectResult',
'AwaitableGetProjectResult',
'get_project',
'get_project_output',
]
@pulumi.output_type
class GetProjectResult:
"""
A collection of values returned by getProject.
"""
def __init__(__self__, created_at=None, default_environment_id=None, description=None, env=None, environments=None, id=None, name=None, organization_id=None):
if created_at and not isinstance(created_at, str):
raise TypeError("Expected argument 'created_at' to be a str")
pulumi.set(__self__, "created_at", created_at)
if default_environment_id and not isinstance(default_environment_id, str):
raise TypeError("Expected argument 'default_environment_id' to be a str")
pulumi.set(__self__, "default_environment_id", default_environment_id)
if description and not isinstance(description, str):
raise TypeError("Expected argument 'description' to be a str")
pulumi.set(__self__, "description", description)
if env and not isinstance(env, str):
raise TypeError("Expected argument 'env' to be a str")
pulumi.set(__self__, "env", env)
if environments and not isinstance(environments, list):
raise TypeError("Expected argument 'environments' to be a list")
pulumi.set(__self__, "environments", environments)
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
pulumi.set(__self__, "id", id)
if name and not isinstance(name, str):
raise TypeError("Expected argument 'name' to be a str")
pulumi.set(__self__, "name", name)
if organization_id and not isinstance(organization_id, str):
raise TypeError("Expected argument 'organization_id' to be a str")
pulumi.set(__self__, "organization_id", organization_id)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> _builtins.str:
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter(name="defaultEnvironmentId")
def default_environment_id(self) -> _builtins.str:
return pulumi.get(self, "default_environment_id")
@_builtins.property
@pulumi.getter
def description(self) -> _builtins.str:
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def env(self) -> _builtins.str:
return pulumi.get(self, "env")
@_builtins.property
@pulumi.getter
def environments(self) -> Sequence['outputs.GetProjectEnvironmentResult']:
return pulumi.get(self, "environments")
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> _builtins.str:
return pulumi.get(self, "organization_id")
class AwaitableGetProjectResult(GetProjectResult):
# pylint: disable=using-constant-test
def __await__(self):
if False:
yield self
return GetProjectResult(
created_at=self.created_at,
default_environment_id=self.default_environment_id,
description=self.description,
env=self.env,
environments=self.environments,
id=self.id,
name=self.name,
organization_id=self.organization_id)
def get_project(id: Optional[_builtins.str] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectResult:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
__args__['id'] = id
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke('dokploy:index/getProject:getProject', __args__, opts=opts, typ=GetProjectResult).value
return AwaitableGetProjectResult(
created_at=pulumi.get(__ret__, 'created_at'),
default_environment_id=pulumi.get(__ret__, 'default_environment_id'),
description=pulumi.get(__ret__, 'description'),
env=pulumi.get(__ret__, 'env'),
environments=pulumi.get(__ret__, 'environments'),
id=pulumi.get(__ret__, 'id'),
name=pulumi.get(__ret__, 'name'),
organization_id=pulumi.get(__ret__, 'organization_id'))
def get_project_output(id: Optional[pulumi.Input[_builtins.str]] = None,
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetProjectResult]:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
__args__['id'] = id
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke_output('dokploy:index/getProject:getProject', __args__, opts=opts, typ=GetProjectResult)
return __ret__.apply(lambda __response__: GetProjectResult(
created_at=pulumi.get(__response__, 'created_at'),
default_environment_id=pulumi.get(__response__, 'default_environment_id'),
description=pulumi.get(__response__, 'description'),
env=pulumi.get(__response__, 'env'),
environments=pulumi.get(__response__, 'environments'),
id=pulumi.get(__response__, 'id'),
name=pulumi.get(__response__, 'name'),
organization_id=pulumi.get(__response__, 'organization_id')))

View File

@@ -0,0 +1,68 @@
# 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
from . import outputs
__all__ = [
'GetProjectsResult',
'AwaitableGetProjectsResult',
'get_projects',
'get_projects_output',
]
@pulumi.output_type
class GetProjectsResult:
"""
A collection of values returned by getProjects.
"""
def __init__(__self__, projects=None):
if projects and not isinstance(projects, list):
raise TypeError("Expected argument 'projects' to be a list")
pulumi.set(__self__, "projects", projects)
@_builtins.property
@pulumi.getter
def projects(self) -> Sequence['outputs.GetProjectsProjectResult']:
return pulumi.get(self, "projects")
class AwaitableGetProjectsResult(GetProjectsResult):
# pylint: disable=using-constant-test
def __await__(self):
if False:
yield self
return GetProjectsResult(
projects=self.projects)
def get_projects(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectsResult:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke('dokploy:index/getProjects:getProjects', __args__, opts=opts, typ=GetProjectsResult).value
return AwaitableGetProjectsResult(
projects=pulumi.get(__ret__, 'projects'))
def get_projects_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetProjectsResult]:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke_output('dokploy:index/getProjects:getProjects', __args__, opts=opts, typ=GetProjectsResult)
return __ret__.apply(lambda __response__: GetProjectsResult(
projects=pulumi.get(__response__, 'projects')))

68
sdk/python/pulumi_dokploy/get_servers.py generated Normal file
View File

@@ -0,0 +1,68 @@
# 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
from . import outputs
__all__ = [
'GetServersResult',
'AwaitableGetServersResult',
'get_servers',
'get_servers_output',
]
@pulumi.output_type
class GetServersResult:
"""
A collection of values returned by getServers.
"""
def __init__(__self__, servers=None):
if servers and not isinstance(servers, list):
raise TypeError("Expected argument 'servers' to be a list")
pulumi.set(__self__, "servers", servers)
@_builtins.property
@pulumi.getter
def servers(self) -> Sequence['outputs.GetServersServerResult']:
return pulumi.get(self, "servers")
class AwaitableGetServersResult(GetServersResult):
# pylint: disable=using-constant-test
def __await__(self):
if False:
yield self
return GetServersResult(
servers=self.servers)
def get_servers(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServersResult:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke('dokploy:index/getServers:getServers', __args__, opts=opts, typ=GetServersResult).value
return AwaitableGetServersResult(
servers=pulumi.get(__ret__, 'servers'))
def get_servers_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetServersResult]:
"""
Use this data source to access information about an existing resource.
"""
__args__ = dict()
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
__ret__ = pulumi.runtime.invoke_output('dokploy:index/getServers:getServers', __args__, opts=opts, typ=GetServersResult)
return __ret__.apply(lambda __response__: GetServersResult(
servers=pulumi.get(__response__, 'servers')))

1674
sdk/python/pulumi_dokploy/maria_db.py generated Normal file

File diff suppressed because it is too large Load Diff

1624
sdk/python/pulumi_dokploy/mongo.py generated Normal file

File diff suppressed because it is too large Load Diff

486
sdk/python/pulumi_dokploy/mount.py generated Normal file
View File

@@ -0,0 +1,486 @@
# 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__ = ['MountArgs', 'Mount']
@pulumi.input_type
class MountArgs:
def __init__(__self__, *,
mount_path: pulumi.Input[_builtins.str],
service_id: pulumi.Input[_builtins.str],
service_type: pulumi.Input[_builtins.str],
type: pulumi.Input[_builtins.str],
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a Mount resource.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] content: Contents of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] file_path: Path of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
"""
pulumi.set(__self__, "mount_path", mount_path)
pulumi.set(__self__, "service_id", service_id)
pulumi.set(__self__, "service_type", service_type)
pulumi.set(__self__, "type", type)
if content is not None:
pulumi.set(__self__, "content", content)
if file_path is not None:
pulumi.set(__self__, "file_path", file_path)
if host_path is not None:
pulumi.set(__self__, "host_path", host_path)
if volume_name is not None:
pulumi.set(__self__, "volume_name", volume_name)
@_builtins.property
@pulumi.getter(name="mountPath")
def mount_path(self) -> pulumi.Input[_builtins.str]:
"""
Path inside the container where the mount appears.
"""
return pulumi.get(self, "mount_path")
@mount_path.setter
def mount_path(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "mount_path", value)
@_builtins.property
@pulumi.getter(name="serviceId")
def service_id(self) -> pulumi.Input[_builtins.str]:
"""
ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
"""
return pulumi.get(self, "service_id")
@service_id.setter
def service_id(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "service_id", value)
@_builtins.property
@pulumi.getter(name="serviceType")
def service_type(self) -> pulumi.Input[_builtins.str]:
"""
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
"""
return pulumi.get(self, "service_type")
@service_type.setter
def service_type(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "service_type", value)
@_builtins.property
@pulumi.getter
def type(self) -> pulumi.Input[_builtins.str]:
"""
The kind of mount to create. Valid values: `bind`, `volume`, `file`.
"""
return pulumi.get(self, "type")
@type.setter
def type(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "type", value)
@_builtins.property
@pulumi.getter
def content(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Contents of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "content")
@content.setter
def content(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "content", value)
@_builtins.property
@pulumi.getter(name="filePath")
def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "file_path")
@file_path.setter
def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "file_path", value)
@_builtins.property
@pulumi.getter(name="hostPath")
def host_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path on the host, when `type` is `bind`.
"""
return pulumi.get(self, "host_path")
@host_path.setter
def host_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "host_path", value)
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Name of the Docker volume, when `type` is `volume`.
"""
return pulumi.get(self, "volume_name")
@volume_name.setter
def volume_name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "volume_name", value)
@pulumi.input_type
class _MountState:
def __init__(__self__, *,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Mount resources.
:param pulumi.Input[_builtins.str] content: Contents of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] file_path: Path of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
"""
if content is not None:
pulumi.set(__self__, "content", content)
if file_path is not None:
pulumi.set(__self__, "file_path", file_path)
if host_path is not None:
pulumi.set(__self__, "host_path", host_path)
if mount_path is not None:
pulumi.set(__self__, "mount_path", mount_path)
if service_id is not None:
pulumi.set(__self__, "service_id", service_id)
if service_type is not None:
pulumi.set(__self__, "service_type", service_type)
if type is not None:
pulumi.set(__self__, "type", type)
if volume_name is not None:
pulumi.set(__self__, "volume_name", volume_name)
@_builtins.property
@pulumi.getter
def content(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Contents of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "content")
@content.setter
def content(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "content", value)
@_builtins.property
@pulumi.getter(name="filePath")
def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "file_path")
@file_path.setter
def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "file_path", value)
@_builtins.property
@pulumi.getter(name="hostPath")
def host_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path on the host, when `type` is `bind`.
"""
return pulumi.get(self, "host_path")
@host_path.setter
def host_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "host_path", value)
@_builtins.property
@pulumi.getter(name="mountPath")
def mount_path(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Path inside the container where the mount appears.
"""
return pulumi.get(self, "mount_path")
@mount_path.setter
def mount_path(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "mount_path", value)
@_builtins.property
@pulumi.getter(name="serviceId")
def service_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
"""
return pulumi.get(self, "service_id")
@service_id.setter
def service_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "service_id", value)
@_builtins.property
@pulumi.getter(name="serviceType")
def service_type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
"""
return pulumi.get(self, "service_type")
@service_type.setter
def service_type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "service_type", value)
@_builtins.property
@pulumi.getter
def type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
The kind of mount to create. Valid values: `bind`, `volume`, `file`.
"""
return pulumi.get(self, "type")
@type.setter
def type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "type", value)
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Name of the Docker volume, when `type` is `volume`.
"""
return pulumi.get(self, "volume_name")
@volume_name.setter
def volume_name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "volume_name", value)
@pulumi.type_token("dokploy:index/mount:Mount")
class Mount(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Mount 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] content: Contents of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] file_path: Path of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: MountArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Mount resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param MountArgs 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(MountArgs, 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,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = 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__ = MountArgs.__new__(MountArgs)
__props__.__dict__["content"] = content
__props__.__dict__["file_path"] = file_path
__props__.__dict__["host_path"] = host_path
if mount_path is None and not opts.urn:
raise TypeError("Missing required property 'mount_path'")
__props__.__dict__["mount_path"] = mount_path
if service_id is None and not opts.urn:
raise TypeError("Missing required property 'service_id'")
__props__.__dict__["service_id"] = service_id
if service_type is None and not opts.urn:
raise TypeError("Missing required property 'service_type'")
__props__.__dict__["service_type"] = service_type
if type is None and not opts.urn:
raise TypeError("Missing required property 'type'")
__props__.__dict__["type"] = type
__props__.__dict__["volume_name"] = volume_name
super(Mount, __self__).__init__(
'dokploy:index/mount:Mount',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'Mount':
"""
Get an existing Mount 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] content: Contents of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] file_path: Path of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _MountState.__new__(_MountState)
__props__.__dict__["content"] = content
__props__.__dict__["file_path"] = file_path
__props__.__dict__["host_path"] = host_path
__props__.__dict__["mount_path"] = mount_path
__props__.__dict__["service_id"] = service_id
__props__.__dict__["service_type"] = service_type
__props__.__dict__["type"] = type
__props__.__dict__["volume_name"] = volume_name
return Mount(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter
def content(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Contents of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "content")
@_builtins.property
@pulumi.getter(name="filePath")
def file_path(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Path of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "file_path")
@_builtins.property
@pulumi.getter(name="hostPath")
def host_path(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Path on the host, when `type` is `bind`.
"""
return pulumi.get(self, "host_path")
@_builtins.property
@pulumi.getter(name="mountPath")
def mount_path(self) -> pulumi.Output[_builtins.str]:
"""
Path inside the container where the mount appears.
"""
return pulumi.get(self, "mount_path")
@_builtins.property
@pulumi.getter(name="serviceId")
def service_id(self) -> pulumi.Output[_builtins.str]:
"""
ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
"""
return pulumi.get(self, "service_id")
@_builtins.property
@pulumi.getter(name="serviceType")
def service_type(self) -> pulumi.Output[_builtins.str]:
"""
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
"""
return pulumi.get(self, "service_type")
@_builtins.property
@pulumi.getter
def type(self) -> pulumi.Output[_builtins.str]:
"""
The kind of mount to create. Valid values: `bind`, `volume`, `file`.
"""
return pulumi.get(self, "type")
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Name of the Docker volume, when `type` is `volume`.
"""
return pulumi.get(self, "volume_name")

1674
sdk/python/pulumi_dokploy/my_sql.py generated Normal file

File diff suppressed because it is too large Load Diff

114
sdk/python/pulumi_dokploy/outputs.py generated Normal file
View File

@@ -0,0 +1,114 @@
# 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__ = [
'GetProjectEnvironmentResult',
'GetProjectsProjectResult',
'GetServersServerResult',
]
@pulumi.output_type
class GetProjectEnvironmentResult(dict):
def __init__(__self__, *,
id: _builtins.str,
is_default: _builtins.bool,
name: _builtins.str):
pulumi.set(__self__, "id", id)
pulumi.set(__self__, "is_default", is_default)
pulumi.set(__self__, "name", name)
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter(name="isDefault")
def is_default(self) -> _builtins.bool:
return pulumi.get(self, "is_default")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
return pulumi.get(self, "name")
@pulumi.output_type
class GetProjectsProjectResult(dict):
def __init__(__self__, *,
default_environment_id: _builtins.str,
description: _builtins.str,
id: _builtins.str,
name: _builtins.str):
pulumi.set(__self__, "default_environment_id", default_environment_id)
pulumi.set(__self__, "description", description)
pulumi.set(__self__, "id", id)
pulumi.set(__self__, "name", name)
@_builtins.property
@pulumi.getter(name="defaultEnvironmentId")
def default_environment_id(self) -> _builtins.str:
return pulumi.get(self, "default_environment_id")
@_builtins.property
@pulumi.getter
def description(self) -> _builtins.str:
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
return pulumi.get(self, "name")
@pulumi.output_type
class GetServersServerResult(dict):
def __init__(__self__, *,
id: _builtins.str,
ip_address: _builtins.str,
name: _builtins.str,
server_status: _builtins.str):
pulumi.set(__self__, "id", id)
pulumi.set(__self__, "ip_address", ip_address)
pulumi.set(__self__, "name", name)
pulumi.set(__self__, "server_status", server_status)
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter(name="ipAddress")
def ip_address(self) -> _builtins.str:
return pulumi.get(self, "ip_address")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="serverStatus")
def server_status(self) -> _builtins.str:
return pulumi.get(self, "server_status")

345
sdk/python/pulumi_dokploy/port.py generated Normal file
View File

@@ -0,0 +1,345 @@
# 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__ = ['PortArgs', 'Port']
@pulumi.input_type
class PortArgs:
def __init__(__self__, *,
application_id: pulumi.Input[_builtins.str],
protocol: pulumi.Input[_builtins.str],
published_port: pulumi.Input[_builtins.int],
target_port: pulumi.Input[_builtins.int],
publish_mode: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a Port resource.
:param pulumi.Input[_builtins.str] application_id: Application this port belongs to.
:param pulumi.Input[_builtins.str] protocol: Transport protocol. Valid values: `tcp`, `udp`.
:param pulumi.Input[_builtins.int] published_port: Port exposed on the host.
:param pulumi.Input[_builtins.int] target_port: Port the container listens on.
:param pulumi.Input[_builtins.str] publish_mode: Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
"""
pulumi.set(__self__, "application_id", application_id)
pulumi.set(__self__, "protocol", protocol)
pulumi.set(__self__, "published_port", published_port)
pulumi.set(__self__, "target_port", target_port)
if publish_mode is not None:
pulumi.set(__self__, "publish_mode", publish_mode)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Input[_builtins.str]:
"""
Application this port belongs to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter
def protocol(self) -> pulumi.Input[_builtins.str]:
"""
Transport protocol. Valid values: `tcp`, `udp`.
"""
return pulumi.get(self, "protocol")
@protocol.setter
def protocol(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "protocol", value)
@_builtins.property
@pulumi.getter(name="publishedPort")
def published_port(self) -> pulumi.Input[_builtins.int]:
"""
Port exposed on the host.
"""
return pulumi.get(self, "published_port")
@published_port.setter
def published_port(self, value: pulumi.Input[_builtins.int]):
pulumi.set(self, "published_port", value)
@_builtins.property
@pulumi.getter(name="targetPort")
def target_port(self) -> pulumi.Input[_builtins.int]:
"""
Port the container listens on.
"""
return pulumi.get(self, "target_port")
@target_port.setter
def target_port(self, value: pulumi.Input[_builtins.int]):
pulumi.set(self, "target_port", value)
@_builtins.property
@pulumi.getter(name="publishMode")
def publish_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
"""
return pulumi.get(self, "publish_mode")
@publish_mode.setter
def publish_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "publish_mode", value)
@pulumi.input_type
class _PortState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = None):
"""
Input properties used for looking up and filtering Port resources.
:param pulumi.Input[_builtins.str] application_id: Application this port belongs to.
:param pulumi.Input[_builtins.str] protocol: Transport protocol. Valid values: `tcp`, `udp`.
:param pulumi.Input[_builtins.str] publish_mode: Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
:param pulumi.Input[_builtins.int] published_port: Port exposed on the host.
:param pulumi.Input[_builtins.int] target_port: Port the container listens on.
"""
if application_id is not None:
pulumi.set(__self__, "application_id", application_id)
if protocol is not None:
pulumi.set(__self__, "protocol", protocol)
if publish_mode is not None:
pulumi.set(__self__, "publish_mode", publish_mode)
if published_port is not None:
pulumi.set(__self__, "published_port", published_port)
if target_port is not None:
pulumi.set(__self__, "target_port", target_port)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Application this port belongs 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
def protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Transport protocol. Valid values: `tcp`, `udp`.
"""
return pulumi.get(self, "protocol")
@protocol.setter
def protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "protocol", value)
@_builtins.property
@pulumi.getter(name="publishMode")
def publish_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
"""
return pulumi.get(self, "publish_mode")
@publish_mode.setter
def publish_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "publish_mode", value)
@_builtins.property
@pulumi.getter(name="publishedPort")
def published_port(self) -> Optional[pulumi.Input[_builtins.int]]:
"""
Port exposed on the host.
"""
return pulumi.get(self, "published_port")
@published_port.setter
def published_port(self, value: Optional[pulumi.Input[_builtins.int]]):
pulumi.set(self, "published_port", value)
@_builtins.property
@pulumi.getter(name="targetPort")
def target_port(self) -> Optional[pulumi.Input[_builtins.int]]:
"""
Port the container listens on.
"""
return pulumi.get(self, "target_port")
@target_port.setter
def target_port(self, value: Optional[pulumi.Input[_builtins.int]]):
pulumi.set(self, "target_port", value)
@pulumi.type_token("dokploy:index/port:Port")
class Port(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = None,
__props__=None):
"""
Create a Port 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 port belongs to.
:param pulumi.Input[_builtins.str] protocol: Transport protocol. Valid values: `tcp`, `udp`.
:param pulumi.Input[_builtins.str] publish_mode: Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
:param pulumi.Input[_builtins.int] published_port: Port exposed on the host.
:param pulumi.Input[_builtins.int] target_port: Port the container listens on.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: PortArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Port resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param PortArgs 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(PortArgs, 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,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = 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__ = PortArgs.__new__(PortArgs)
if application_id is None and not opts.urn:
raise TypeError("Missing required property 'application_id'")
__props__.__dict__["application_id"] = application_id
if protocol is None and not opts.urn:
raise TypeError("Missing required property 'protocol'")
__props__.__dict__["protocol"] = protocol
__props__.__dict__["publish_mode"] = publish_mode
if published_port is None and not opts.urn:
raise TypeError("Missing required property 'published_port'")
__props__.__dict__["published_port"] = published_port
if target_port is None and not opts.urn:
raise TypeError("Missing required property 'target_port'")
__props__.__dict__["target_port"] = target_port
super(Port, __self__).__init__(
'dokploy:index/port:Port',
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,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = None) -> 'Port':
"""
Get an existing Port 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 port belongs to.
:param pulumi.Input[_builtins.str] protocol: Transport protocol. Valid values: `tcp`, `udp`.
:param pulumi.Input[_builtins.str] publish_mode: Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
:param pulumi.Input[_builtins.int] published_port: Port exposed on the host.
:param pulumi.Input[_builtins.int] target_port: Port the container listens on.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _PortState.__new__(_PortState)
__props__.__dict__["application_id"] = application_id
__props__.__dict__["protocol"] = protocol
__props__.__dict__["publish_mode"] = publish_mode
__props__.__dict__["published_port"] = published_port
__props__.__dict__["target_port"] = target_port
return Port(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Output[_builtins.str]:
"""
Application this port belongs to.
"""
return pulumi.get(self, "application_id")
@_builtins.property
@pulumi.getter
def protocol(self) -> pulumi.Output[_builtins.str]:
"""
Transport protocol. Valid values: `tcp`, `udp`.
"""
return pulumi.get(self, "protocol")
@_builtins.property
@pulumi.getter(name="publishMode")
def publish_mode(self) -> pulumi.Output[_builtins.str]:
"""
Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
"""
return pulumi.get(self, "publish_mode")
@_builtins.property
@pulumi.getter(name="publishedPort")
def published_port(self) -> pulumi.Output[_builtins.int]:
"""
Port exposed on the host.
"""
return pulumi.get(self, "published_port")
@_builtins.property
@pulumi.getter(name="targetPort")
def target_port(self) -> pulumi.Output[_builtins.int]:
"""
Port the container listens on.
"""
return pulumi.get(self, "target_port")

1626
sdk/python/pulumi_dokploy/postgres.py generated Normal file

File diff suppressed because it is too large Load Diff

331
sdk/python/pulumi_dokploy/project.py generated Normal file
View File

@@ -0,0 +1,331 @@
# 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__ = ['ProjectArgs', 'Project']
@pulumi.input_type
class ProjectArgs:
def __init__(__self__, *,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a Project resource.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
:param pulumi.Input[_builtins.str] name: Display name of the project.
"""
if description is not None:
pulumi.set(__self__, "description", description)
if env is not None:
pulumi.set(__self__, "env", env)
if name is not None:
pulumi.set(__self__, "name", name)
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the project.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _ProjectState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
default_environment_id: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
organization_id: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Project resources.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the project was created.
:param pulumi.Input[_builtins.str] default_environment_id: ID of the `production` environment that Dokploy creates automatically with the project.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
:param pulumi.Input[_builtins.str] name: Display name of the project.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the project.
"""
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if default_environment_id is not None:
pulumi.set(__self__, "default_environment_id", default_environment_id)
if description is not None:
pulumi.set(__self__, "description", description)
if env is not None:
pulumi.set(__self__, "env", env)
if name is not None:
pulumi.set(__self__, "name", name)
if organization_id is not None:
pulumi.set(__self__, "organization_id", organization_id)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the project 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="defaultEnvironmentId")
def default_environment_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
ID of the `production` environment that Dokploy creates automatically with the project.
"""
return pulumi.get(self, "default_environment_id")
@default_environment_id.setter
def default_environment_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "default_environment_id", value)
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the project.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Organization that owns the project.
"""
return pulumi.get(self, "organization_id")
@organization_id.setter
def organization_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "organization_id", value)
@pulumi.type_token("dokploy:index/project:Project")
class Project(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Project 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] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
:param pulumi.Input[_builtins.str] name: Display name of the project.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: Optional[ProjectArgs] = None,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Project resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param ProjectArgs 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(ProjectArgs, 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,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = 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__ = ProjectArgs.__new__(ProjectArgs)
__props__.__dict__["description"] = description
__props__.__dict__["env"] = env
__props__.__dict__["name"] = name
__props__.__dict__["created_at"] = None
__props__.__dict__["default_environment_id"] = None
__props__.__dict__["organization_id"] = None
super(Project, __self__).__init__(
'dokploy:index/project:Project',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
default_environment_id: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
organization_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Project':
"""
Get an existing Project 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] created_at: RFC 3339 timestamp of when the project was created.
:param pulumi.Input[_builtins.str] default_environment_id: ID of the `production` environment that Dokploy creates automatically with the project.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] env: Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
:param pulumi.Input[_builtins.str] name: Display name of the project.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the project.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _ProjectState.__new__(_ProjectState)
__props__.__dict__["created_at"] = created_at
__props__.__dict__["default_environment_id"] = default_environment_id
__props__.__dict__["description"] = description
__props__.__dict__["env"] = env
__props__.__dict__["name"] = name
__props__.__dict__["organization_id"] = organization_id
return Project(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the project was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter(name="defaultEnvironmentId")
def default_environment_id(self) -> pulumi.Output[_builtins.str]:
"""
ID of the `production` environment that Dokploy creates automatically with the project.
"""
return pulumi.get(self, "default_environment_id")
@_builtins.property
@pulumi.getter
def description(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def env(self) -> pulumi.Output[_builtins.str]:
"""
Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
"""
return pulumi.get(self, "env")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the project.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> pulumi.Output[_builtins.str]:
"""
Organization that owns the project.
"""
return pulumi.get(self, "organization_id")

217
sdk/python/pulumi_dokploy/provider.py generated Normal file
View File

@@ -0,0 +1,217 @@
# 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__ = ['ProviderArgs', 'Provider']
@pulumi.input_type
class ProviderArgs:
def __init__(__self__, *,
api_key: Optional[pulumi.Input[_builtins.str]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
insecure_skip_verify: Optional[pulumi.Input[_builtins.bool]] = None,
timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None):
"""
The set of arguments for constructing a Provider resource.
:param pulumi.Input[_builtins.str] api_key: API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
:param pulumi.Input[_builtins.str] host: Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
:param pulumi.Input[_builtins.bool] insecure_skip_verify: Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
:param pulumi.Input[_builtins.int] timeout_seconds: Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
"""
if api_key is None:
api_key = _utilities.get_env('DOKPLOY_API_KEY')
if api_key is not None:
pulumi.set(__self__, "api_key", api_key)
if host is None:
host = _utilities.get_env('DOKPLOY_HOST')
if host is not None:
pulumi.set(__self__, "host", host)
if insecure_skip_verify is not None:
pulumi.set(__self__, "insecure_skip_verify", insecure_skip_verify)
if timeout_seconds is None:
timeout_seconds = _utilities.get_env_int('DOKPLOY_TIMEOUT_SECONDS')
if timeout_seconds is not None:
pulumi.set(__self__, "timeout_seconds", timeout_seconds)
@_builtins.property
@pulumi.getter(name="apiKey")
def api_key(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
"""
return pulumi.get(self, "api_key")
@api_key.setter
def api_key(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "api_key", value)
@_builtins.property
@pulumi.getter
def host(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
"""
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(name="insecureSkipVerify")
def insecure_skip_verify(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
"""
return pulumi.get(self, "insecure_skip_verify")
@insecure_skip_verify.setter
def insecure_skip_verify(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "insecure_skip_verify", value)
@_builtins.property
@pulumi.getter(name="timeoutSeconds")
def timeout_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
"""
Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
"""
return pulumi.get(self, "timeout_seconds")
@timeout_seconds.setter
def timeout_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
pulumi.set(self, "timeout_seconds", value)
@pulumi.type_token("pulumi:providers:dokploy")
class Provider(pulumi.ProviderResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
api_key: Optional[pulumi.Input[_builtins.str]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
insecure_skip_verify: Optional[pulumi.Input[_builtins.bool]] = None,
timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None,
__props__=None):
"""
The provider type for the dokploy package. By default, resources use package-wide configuration
settings, however an explicit `Provider` instance may be created and passed during resource
construction to achieve fine-grained programmatic control over provider settings. See the
[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] api_key: API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
:param pulumi.Input[_builtins.str] host: Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
:param pulumi.Input[_builtins.bool] insecure_skip_verify: Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
:param pulumi.Input[_builtins.int] timeout_seconds: Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: Optional[ProviderArgs] = None,
opts: Optional[pulumi.ResourceOptions] = None):
"""
The provider type for the dokploy package. By default, resources use package-wide configuration
settings, however an explicit `Provider` instance may be created and passed during resource
construction to achieve fine-grained programmatic control over provider settings. See the
[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
:param str resource_name: The name of the resource.
:param ProviderArgs 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(ProviderArgs, 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,
api_key: Optional[pulumi.Input[_builtins.str]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
insecure_skip_verify: Optional[pulumi.Input[_builtins.bool]] = None,
timeout_seconds: Optional[pulumi.Input[_builtins.int]] = 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__ = ProviderArgs.__new__(ProviderArgs)
if api_key is None:
api_key = _utilities.get_env('DOKPLOY_API_KEY')
__props__.__dict__["api_key"] = None if api_key is None else pulumi.Output.secret(api_key)
if host is None:
host = _utilities.get_env('DOKPLOY_HOST')
__props__.__dict__["host"] = host
__props__.__dict__["insecure_skip_verify"] = pulumi.Output.from_input(insecure_skip_verify).apply(pulumi.runtime.to_json) if insecure_skip_verify is not None else None
if timeout_seconds is None:
timeout_seconds = _utilities.get_env_int('DOKPLOY_TIMEOUT_SECONDS')
__props__.__dict__["timeout_seconds"] = pulumi.Output.from_input(timeout_seconds).apply(pulumi.runtime.to_json) if timeout_seconds is not None else None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["apiKey"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(Provider, __self__).__init__(
'dokploy',
resource_name,
__props__,
opts)
@_builtins.property
@pulumi.getter(name="apiKey")
def api_key(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
"""
return pulumi.get(self, "api_key")
@_builtins.property
@pulumi.getter
def host(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
"""
return pulumi.get(self, "host")
@pulumi.output_type
class TerraformConfigResult:
def __init__(__self__, result=None):
if result and not isinstance(result, dict):
raise TypeError("Expected argument 'result' to be a dict")
pulumi.set(__self__, "result", result)
@_builtins.property
@pulumi.getter
def result(self) -> Mapping[str, Any]:
return pulumi.get(self, "result")
def terraform_config(__self__) -> pulumi.Output['Provider.TerraformConfigResult']:
"""
This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.
"""
__args__ = dict()
__args__['__self__'] = __self__
return pulumi.runtime.call('pulumi:providers:dokploy/terraformConfig', __args__, res=__self__, typ=Provider.TerraformConfigResult)

View File

@@ -0,0 +1,6 @@
{
"resource": true,
"name": "dokploy",
"version": "0.1.0",
"server": "github://api.github.com/maxvojtkov/pulumi-dokploy"
}

0
sdk/python/pulumi_dokploy/py.typed generated Normal file
View File

325
sdk/python/pulumi_dokploy/redirect.py generated Normal file
View File

@@ -0,0 +1,325 @@
# 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__ = ['RedirectArgs', 'Redirect']
@pulumi.input_type
class RedirectArgs:
def __init__(__self__, *,
application_id: pulumi.Input[_builtins.str],
regex: pulumi.Input[_builtins.str],
replacement: pulumi.Input[_builtins.str],
permanent: Optional[pulumi.Input[_builtins.bool]] = None):
"""
The set of arguments for constructing a Redirect resource.
:param pulumi.Input[_builtins.str] application_id: Application this redirect belongs to.
:param pulumi.Input[_builtins.str] regex: Regular expression matched against the incoming URL.
:param pulumi.Input[_builtins.str] replacement: Replacement URL, which may reference capture groups such as `${1}`.
:param pulumi.Input[_builtins.bool] permanent: Issue a permanent (301) redirect instead of a temporary (302) one.
"""
pulumi.set(__self__, "application_id", application_id)
pulumi.set(__self__, "regex", regex)
pulumi.set(__self__, "replacement", replacement)
if permanent is not None:
pulumi.set(__self__, "permanent", permanent)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Input[_builtins.str]:
"""
Application this redirect belongs to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter
def regex(self) -> pulumi.Input[_builtins.str]:
"""
Regular expression matched against the incoming URL.
"""
return pulumi.get(self, "regex")
@regex.setter
def regex(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "regex", value)
@_builtins.property
@pulumi.getter
def replacement(self) -> pulumi.Input[_builtins.str]:
"""
Replacement URL, which may reference capture groups such as `${1}`.
"""
return pulumi.get(self, "replacement")
@replacement.setter
def replacement(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "replacement", value)
@_builtins.property
@pulumi.getter
def permanent(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Issue a permanent (301) redirect instead of a temporary (302) one.
"""
return pulumi.get(self, "permanent")
@permanent.setter
def permanent(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "permanent", value)
@pulumi.input_type
class _RedirectState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Redirect resources.
:param pulumi.Input[_builtins.str] application_id: Application this redirect belongs to.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the redirect was created.
:param pulumi.Input[_builtins.bool] permanent: Issue a permanent (301) redirect instead of a temporary (302) one.
:param pulumi.Input[_builtins.str] regex: Regular expression matched against the incoming URL.
:param pulumi.Input[_builtins.str] replacement: Replacement URL, which may reference capture groups such as `${1}`.
"""
if application_id is not None:
pulumi.set(__self__, "application_id", application_id)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if permanent is not None:
pulumi.set(__self__, "permanent", permanent)
if regex is not None:
pulumi.set(__self__, "regex", regex)
if replacement is not None:
pulumi.set(__self__, "replacement", replacement)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Application this redirect belongs 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="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the redirect 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
def permanent(self) -> Optional[pulumi.Input[_builtins.bool]]:
"""
Issue a permanent (301) redirect instead of a temporary (302) one.
"""
return pulumi.get(self, "permanent")
@permanent.setter
def permanent(self, value: Optional[pulumi.Input[_builtins.bool]]):
pulumi.set(self, "permanent", value)
@_builtins.property
@pulumi.getter
def regex(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Regular expression matched against the incoming URL.
"""
return pulumi.get(self, "regex")
@regex.setter
def regex(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "regex", value)
@_builtins.property
@pulumi.getter
def replacement(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Replacement URL, which may reference capture groups such as `${1}`.
"""
return pulumi.get(self, "replacement")
@replacement.setter
def replacement(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "replacement", value)
@pulumi.type_token("dokploy:index/redirect:Redirect")
class Redirect(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Redirect 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 redirect belongs to.
:param pulumi.Input[_builtins.bool] permanent: Issue a permanent (301) redirect instead of a temporary (302) one.
:param pulumi.Input[_builtins.str] regex: Regular expression matched against the incoming URL.
:param pulumi.Input[_builtins.str] replacement: Replacement URL, which may reference capture groups such as `${1}`.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: RedirectArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Redirect resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param RedirectArgs 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(RedirectArgs, 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,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = 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__ = RedirectArgs.__new__(RedirectArgs)
if application_id is None and not opts.urn:
raise TypeError("Missing required property 'application_id'")
__props__.__dict__["application_id"] = application_id
__props__.__dict__["permanent"] = permanent
if regex is None and not opts.urn:
raise TypeError("Missing required property 'regex'")
__props__.__dict__["regex"] = regex
if replacement is None and not opts.urn:
raise TypeError("Missing required property 'replacement'")
__props__.__dict__["replacement"] = replacement
__props__.__dict__["created_at"] = None
super(Redirect, __self__).__init__(
'dokploy:index/redirect:Redirect',
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,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = None) -> 'Redirect':
"""
Get an existing Redirect 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 redirect belongs to.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the redirect was created.
:param pulumi.Input[_builtins.bool] permanent: Issue a permanent (301) redirect instead of a temporary (302) one.
:param pulumi.Input[_builtins.str] regex: Regular expression matched against the incoming URL.
:param pulumi.Input[_builtins.str] replacement: Replacement URL, which may reference capture groups such as `${1}`.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _RedirectState.__new__(_RedirectState)
__props__.__dict__["application_id"] = application_id
__props__.__dict__["created_at"] = created_at
__props__.__dict__["permanent"] = permanent
__props__.__dict__["regex"] = regex
__props__.__dict__["replacement"] = replacement
return Redirect(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Output[_builtins.str]:
"""
Application this redirect belongs to.
"""
return pulumi.get(self, "application_id")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the redirect was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def permanent(self) -> pulumi.Output[_builtins.bool]:
"""
Issue a permanent (301) redirect instead of a temporary (302) one.
"""
return pulumi.get(self, "permanent")
@_builtins.property
@pulumi.getter
def regex(self) -> pulumi.Output[_builtins.str]:
"""
Regular expression matched against the incoming URL.
"""
return pulumi.get(self, "regex")
@_builtins.property
@pulumi.getter
def replacement(self) -> pulumi.Output[_builtins.str]:
"""
Replacement URL, which may reference capture groups such as `${1}`.
"""
return pulumi.get(self, "replacement")

1530
sdk/python/pulumi_dokploy/redis.py generated Normal file

File diff suppressed because it is too large Load Diff

469
sdk/python/pulumi_dokploy/registry.py generated Normal file
View File

@@ -0,0 +1,469 @@
# 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__ = ['RegistryArgs', 'Registry']
@pulumi.input_type
class RegistryArgs:
def __init__(__self__, *,
password: pulumi.Input[_builtins.str],
registry_name: pulumi.Input[_builtins.str],
registry_url: pulumi.Input[_builtins.str],
username: pulumi.Input[_builtins.str],
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a Registry resource.
:param pulumi.Input[_builtins.str] password: Password or access token used to authenticate.
:param pulumi.Input[_builtins.str] registry_name: Display name of the registry.
:param pulumi.Input[_builtins.str] registry_url: Registry hostname, for example `ghcr.io`.
:param pulumi.Input[_builtins.str] username: Username used to authenticate to the registry.
:param pulumi.Input[_builtins.str] image_prefix: Prefix prepended to pushed image names, for example an organization or namespace.
:param pulumi.Input[_builtins.str] registry_type: Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
:param pulumi.Input[_builtins.str] server_id: Server this registry is scoped to.
"""
pulumi.set(__self__, "password", password)
pulumi.set(__self__, "registry_name", registry_name)
pulumi.set(__self__, "registry_url", registry_url)
pulumi.set(__self__, "username", username)
if image_prefix is not None:
pulumi.set(__self__, "image_prefix", image_prefix)
if registry_type is not None:
pulumi.set(__self__, "registry_type", registry_type)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
@_builtins.property
@pulumi.getter
def password(self) -> pulumi.Input[_builtins.str]:
"""
Password or access token used to authenticate.
"""
return pulumi.get(self, "password")
@password.setter
def password(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "password", value)
@_builtins.property
@pulumi.getter(name="registryName")
def registry_name(self) -> pulumi.Input[_builtins.str]:
"""
Display name of the registry.
"""
return pulumi.get(self, "registry_name")
@registry_name.setter
def registry_name(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "registry_name", value)
@_builtins.property
@pulumi.getter(name="registryUrl")
def registry_url(self) -> pulumi.Input[_builtins.str]:
"""
Registry hostname, for example `ghcr.io`.
"""
return pulumi.get(self, "registry_url")
@registry_url.setter
def registry_url(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "registry_url", value)
@_builtins.property
@pulumi.getter
def username(self) -> pulumi.Input[_builtins.str]:
"""
Username used to authenticate to the registry.
"""
return pulumi.get(self, "username")
@username.setter
def username(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "username", value)
@_builtins.property
@pulumi.getter(name="imagePrefix")
def image_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Prefix prepended to pushed image names, for example an organization or namespace.
"""
return pulumi.get(self, "image_prefix")
@image_prefix.setter
def image_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "image_prefix", value)
@_builtins.property
@pulumi.getter(name="registryType")
def registry_type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
"""
return pulumi.get(self, "registry_type")
@registry_type.setter
def registry_type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "registry_type", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Server this registry is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.input_type
class _RegistryState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Registry resources.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the registry was created.
:param pulumi.Input[_builtins.str] image_prefix: Prefix prepended to pushed image names, for example an organization or namespace.
:param pulumi.Input[_builtins.str] password: Password or access token used to authenticate.
:param pulumi.Input[_builtins.str] registry_name: Display name of the registry.
:param pulumi.Input[_builtins.str] registry_type: Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
:param pulumi.Input[_builtins.str] registry_url: Registry hostname, for example `ghcr.io`.
:param pulumi.Input[_builtins.str] server_id: Server this registry is scoped to.
:param pulumi.Input[_builtins.str] username: Username used to authenticate to the registry.
"""
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if image_prefix is not None:
pulumi.set(__self__, "image_prefix", image_prefix)
if password is not None:
pulumi.set(__self__, "password", password)
if registry_name is not None:
pulumi.set(__self__, "registry_name", registry_name)
if registry_type is not None:
pulumi.set(__self__, "registry_type", registry_type)
if registry_url is not None:
pulumi.set(__self__, "registry_url", registry_url)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
if username is not None:
pulumi.set(__self__, "username", username)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the registry 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="imagePrefix")
def image_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Prefix prepended to pushed image names, for example an organization or namespace.
"""
return pulumi.get(self, "image_prefix")
@image_prefix.setter
def image_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "image_prefix", value)
@_builtins.property
@pulumi.getter
def password(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Password or access token used to authenticate.
"""
return pulumi.get(self, "password")
@password.setter
def password(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "password", value)
@_builtins.property
@pulumi.getter(name="registryName")
def registry_name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the registry.
"""
return pulumi.get(self, "registry_name")
@registry_name.setter
def registry_name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "registry_name", value)
@_builtins.property
@pulumi.getter(name="registryType")
def registry_type(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
"""
return pulumi.get(self, "registry_type")
@registry_type.setter
def registry_type(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "registry_type", value)
@_builtins.property
@pulumi.getter(name="registryUrl")
def registry_url(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Registry hostname, for example `ghcr.io`.
"""
return pulumi.get(self, "registry_url")
@registry_url.setter
def registry_url(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "registry_url", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Server this registry is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "server_id", value)
@_builtins.property
@pulumi.getter
def username(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Username used to authenticate to the registry.
"""
return pulumi.get(self, "username")
@username.setter
def username(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "username", value)
@pulumi.type_token("dokploy:index/registry:Registry")
class Registry(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Registry 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] image_prefix: Prefix prepended to pushed image names, for example an organization or namespace.
:param pulumi.Input[_builtins.str] password: Password or access token used to authenticate.
:param pulumi.Input[_builtins.str] registry_name: Display name of the registry.
:param pulumi.Input[_builtins.str] registry_type: Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
:param pulumi.Input[_builtins.str] registry_url: Registry hostname, for example `ghcr.io`.
:param pulumi.Input[_builtins.str] server_id: Server this registry is scoped to.
:param pulumi.Input[_builtins.str] username: Username used to authenticate to the registry.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: RegistryArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Registry resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param RegistryArgs 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(RegistryArgs, 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,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = 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__ = RegistryArgs.__new__(RegistryArgs)
__props__.__dict__["image_prefix"] = image_prefix
if password is None and not opts.urn:
raise TypeError("Missing required property 'password'")
__props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
if registry_name is None and not opts.urn:
raise TypeError("Missing required property 'registry_name'")
__props__.__dict__["registry_name"] = registry_name
__props__.__dict__["registry_type"] = registry_type
if registry_url is None and not opts.urn:
raise TypeError("Missing required property 'registry_url'")
__props__.__dict__["registry_url"] = registry_url
__props__.__dict__["server_id"] = server_id
if username is None and not opts.urn:
raise TypeError("Missing required property 'username'")
__props__.__dict__["username"] = username
__props__.__dict__["created_at"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(Registry, __self__).__init__(
'dokploy:index/registry:Registry',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None) -> 'Registry':
"""
Get an existing Registry 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] created_at: RFC 3339 timestamp of when the registry was created.
:param pulumi.Input[_builtins.str] image_prefix: Prefix prepended to pushed image names, for example an organization or namespace.
:param pulumi.Input[_builtins.str] password: Password or access token used to authenticate.
:param pulumi.Input[_builtins.str] registry_name: Display name of the registry.
:param pulumi.Input[_builtins.str] registry_type: Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
:param pulumi.Input[_builtins.str] registry_url: Registry hostname, for example `ghcr.io`.
:param pulumi.Input[_builtins.str] server_id: Server this registry is scoped to.
:param pulumi.Input[_builtins.str] username: Username used to authenticate to the registry.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _RegistryState.__new__(_RegistryState)
__props__.__dict__["created_at"] = created_at
__props__.__dict__["image_prefix"] = image_prefix
__props__.__dict__["password"] = password
__props__.__dict__["registry_name"] = registry_name
__props__.__dict__["registry_type"] = registry_type
__props__.__dict__["registry_url"] = registry_url
__props__.__dict__["server_id"] = server_id
__props__.__dict__["username"] = username
return Registry(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the registry was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter(name="imagePrefix")
def image_prefix(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Prefix prepended to pushed image names, for example an organization or namespace.
"""
return pulumi.get(self, "image_prefix")
@_builtins.property
@pulumi.getter
def password(self) -> pulumi.Output[_builtins.str]:
"""
Password or access token used to authenticate.
"""
return pulumi.get(self, "password")
@_builtins.property
@pulumi.getter(name="registryName")
def registry_name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the registry.
"""
return pulumi.get(self, "registry_name")
@_builtins.property
@pulumi.getter(name="registryType")
def registry_type(self) -> pulumi.Output[_builtins.str]:
"""
Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
"""
return pulumi.get(self, "registry_type")
@_builtins.property
@pulumi.getter(name="registryUrl")
def registry_url(self) -> pulumi.Output[_builtins.str]:
"""
Registry hostname, for example `ghcr.io`.
"""
return pulumi.get(self, "registry_url")
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Server this registry is scoped to.
"""
return pulumi.get(self, "server_id")
@_builtins.property
@pulumi.getter
def username(self) -> pulumi.Output[_builtins.str]:
"""
Username used to authenticate to the registry.
"""
return pulumi.get(self, "username")

280
sdk/python/pulumi_dokploy/security.py generated Normal file
View File

@@ -0,0 +1,280 @@
# 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__ = ['SecurityArgs', 'Security']
@pulumi.input_type
class SecurityArgs:
def __init__(__self__, *,
application_id: pulumi.Input[_builtins.str],
password: pulumi.Input[_builtins.str],
username: pulumi.Input[_builtins.str]):
"""
The set of arguments for constructing a Security resource.
:param pulumi.Input[_builtins.str] application_id: Application these credentials protect.
:param pulumi.Input[_builtins.str] password: Basic auth password.
:param pulumi.Input[_builtins.str] username: Basic auth username.
"""
pulumi.set(__self__, "application_id", application_id)
pulumi.set(__self__, "password", password)
pulumi.set(__self__, "username", username)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Input[_builtins.str]:
"""
Application these credentials protect.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter
def password(self) -> pulumi.Input[_builtins.str]:
"""
Basic auth password.
"""
return pulumi.get(self, "password")
@password.setter
def password(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "password", value)
@_builtins.property
@pulumi.getter
def username(self) -> pulumi.Input[_builtins.str]:
"""
Basic auth username.
"""
return pulumi.get(self, "username")
@username.setter
def username(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "username", value)
@pulumi.input_type
class _SecurityState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Security resources.
:param pulumi.Input[_builtins.str] application_id: Application these credentials protect.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the credentials were created.
:param pulumi.Input[_builtins.str] password: Basic auth password.
:param pulumi.Input[_builtins.str] username: Basic auth username.
"""
if application_id is not None:
pulumi.set(__self__, "application_id", application_id)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if password is not None:
pulumi.set(__self__, "password", password)
if username is not None:
pulumi.set(__self__, "username", username)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Application these credentials protect.
"""
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="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the credentials were 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
def password(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Basic auth password.
"""
return pulumi.get(self, "password")
@password.setter
def password(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "password", value)
@_builtins.property
@pulumi.getter
def username(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Basic auth username.
"""
return pulumi.get(self, "username")
@username.setter
def username(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "username", value)
@pulumi.type_token("dokploy:index/security:Security")
class Security(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a Security 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 these credentials protect.
:param pulumi.Input[_builtins.str] password: Basic auth password.
:param pulumi.Input[_builtins.str] username: Basic auth username.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: SecurityArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Security resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param SecurityArgs 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(SecurityArgs, 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,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = 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__ = SecurityArgs.__new__(SecurityArgs)
if application_id is None and not opts.urn:
raise TypeError("Missing required property 'application_id'")
__props__.__dict__["application_id"] = application_id
if password is None and not opts.urn:
raise TypeError("Missing required property 'password'")
__props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
if username is None and not opts.urn:
raise TypeError("Missing required property 'username'")
__props__.__dict__["username"] = username
__props__.__dict__["created_at"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(Security, __self__).__init__(
'dokploy:index/security:Security',
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,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None) -> 'Security':
"""
Get an existing Security 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 these credentials protect.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the credentials were created.
:param pulumi.Input[_builtins.str] password: Basic auth password.
:param pulumi.Input[_builtins.str] username: Basic auth username.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _SecurityState.__new__(_SecurityState)
__props__.__dict__["application_id"] = application_id
__props__.__dict__["created_at"] = created_at
__props__.__dict__["password"] = password
__props__.__dict__["username"] = username
return Security(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Output[_builtins.str]:
"""
Application these credentials protect.
"""
return pulumi.get(self, "application_id")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the credentials were created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def password(self) -> pulumi.Output[_builtins.str]:
"""
Basic auth password.
"""
return pulumi.get(self, "password")
@_builtins.property
@pulumi.getter
def username(self) -> pulumi.Output[_builtins.str]:
"""
Basic auth username.
"""
return pulumi.get(self, "username")

354
sdk/python/pulumi_dokploy/ssh_key.py generated Normal file
View File

@@ -0,0 +1,354 @@
# 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__ = ['SshKeyArgs', 'SshKey']
@pulumi.input_type
class SshKeyArgs:
def __init__(__self__, *,
private_key: pulumi.Input[_builtins.str],
public_key: pulumi.Input[_builtins.str],
description: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None):
"""
The set of arguments for constructing a SshKey resource.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.str] public_key: OpenSSH-formatted public key.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] name: Display name of the key pair.
"""
pulumi.set(__self__, "private_key", private_key)
pulumi.set(__self__, "public_key", public_key)
if description is not None:
pulumi.set(__self__, "description", description)
if name is not None:
pulumi.set(__self__, "name", name)
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> pulumi.Input[_builtins.str]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@private_key.setter
def private_key(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "private_key", value)
@_builtins.property
@pulumi.getter(name="publicKey")
def public_key(self) -> pulumi.Input[_builtins.str]:
"""
OpenSSH-formatted public key.
"""
return pulumi.get(self, "public_key")
@public_key.setter
def public_key(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "public_key", value)
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the key pair.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _SshKeyState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
last_used_at: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = None):
"""
Input properties used for looking up and filtering SshKey resources.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the key was created.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] last_used_at: RFC 3339 timestamp of when the key was last used, if ever.
:param pulumi.Input[_builtins.str] name: Display name of the key pair.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.str] public_key: OpenSSH-formatted public key.
"""
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if description is not None:
pulumi.set(__self__, "description", description)
if last_used_at is not None:
pulumi.set(__self__, "last_used_at", last_used_at)
if name is not None:
pulumi.set(__self__, "name", name)
if private_key is not None:
pulumi.set(__self__, "private_key", private_key)
if public_key is not None:
pulumi.set(__self__, "public_key", public_key)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the key 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
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter(name="lastUsedAt")
def last_used_at(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
RFC 3339 timestamp of when the key was last used, if ever.
"""
return pulumi.get(self, "last_used_at")
@last_used_at.setter
def last_used_at(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "last_used_at", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
Display name of the key pair.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@private_key.setter
def private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "private_key", value)
@_builtins.property
@pulumi.getter(name="publicKey")
def public_key(self) -> Optional[pulumi.Input[_builtins.str]]:
"""
OpenSSH-formatted public key.
"""
return pulumi.get(self, "public_key")
@public_key.setter
def public_key(self, value: Optional[pulumi.Input[_builtins.str]]):
pulumi.set(self, "public_key", value)
@pulumi.type_token("dokploy:index/sshKey:SshKey")
class SshKey(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = None,
__props__=None):
"""
Create a SshKey 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] description: Free-form description.
:param pulumi.Input[_builtins.str] name: Display name of the key pair.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.str] public_key: OpenSSH-formatted public key.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: SshKeyArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a SshKey resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param SshKeyArgs 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(SshKeyArgs, 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,
description: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = 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__ = SshKeyArgs.__new__(SshKeyArgs)
__props__.__dict__["description"] = description
__props__.__dict__["name"] = name
if private_key is None and not opts.urn:
raise TypeError("Missing required property 'private_key'")
__props__.__dict__["private_key"] = None if private_key is None else pulumi.Output.secret(private_key)
if public_key is None and not opts.urn:
raise TypeError("Missing required property 'public_key'")
__props__.__dict__["public_key"] = public_key
__props__.__dict__["created_at"] = None
__props__.__dict__["last_used_at"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["privateKey"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(SshKey, __self__).__init__(
'dokploy:index/sshKey:SshKey',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
last_used_at: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = None) -> 'SshKey':
"""
Get an existing SshKey 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] created_at: RFC 3339 timestamp of when the key was created.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.str] last_used_at: RFC 3339 timestamp of when the key was last used, if ever.
:param pulumi.Input[_builtins.str] name: Display name of the key pair.
:param pulumi.Input[_builtins.str] private_key: PEM-encoded private key.
:param pulumi.Input[_builtins.str] public_key: OpenSSH-formatted public key.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _SshKeyState.__new__(_SshKeyState)
__props__.__dict__["created_at"] = created_at
__props__.__dict__["description"] = description
__props__.__dict__["last_used_at"] = last_used_at
__props__.__dict__["name"] = name
__props__.__dict__["private_key"] = private_key
__props__.__dict__["public_key"] = public_key
return SshKey(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the key was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def description(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter(name="lastUsedAt")
def last_used_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the key was last used, if ever.
"""
return pulumi.get(self, "last_used_at")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the key pair.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> pulumi.Output[_builtins.str]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@_builtins.property
@pulumi.getter(name="publicKey")
def public_key(self) -> pulumi.Output[_builtins.str]:
"""
OpenSSH-formatted public key.
"""
return pulumi.get(self, "public_key")