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:
1
sdk/dotnet/.gitattributes
generated
vendored
Normal file
1
sdk/dotnet/.gitattributes
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* linguist-generated
|
||||
2
sdk/dotnet/.gitignore
generated
vendored
Normal file
2
sdk/dotnet/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
bin
|
||||
obj
|
||||
1906
sdk/dotnet/Application.cs
generated
Normal file
1906
sdk/dotnet/Application.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
202
sdk/dotnet/Certificate.cs
generated
Normal file
202
sdk/dotnet/Certificate.cs
generated
Normal file
@@ -0,0 +1,202 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/certificate:Certificate")]
|
||||
public partial class Certificate : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether Dokploy should renew this certificate automatically.
|
||||
/// </summary>
|
||||
[Output("autoRenew")]
|
||||
public Output<bool> AutoRenew { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded certificate chain.
|
||||
/// </summary>
|
||||
[Output("certificateData")]
|
||||
public Output<string> CertificateData { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Path where Dokploy writes the certificate on disk.
|
||||
/// </summary>
|
||||
[Output("certificatePath")]
|
||||
public Output<string> CertificatePath { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the certificate.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded private key.
|
||||
/// </summary>
|
||||
[Output("privateKey")]
|
||||
public Output<string> PrivateKey { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Server this certificate is installed on.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Certificate resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Certificate(string name, CertificateArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/certificate:Certificate", name, args ?? new CertificateArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Certificate(string name, Input<string> id, CertificateState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/certificate:Certificate", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"privateKey",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Certificate resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Certificate Get(string name, Input<string> id, CertificateState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Certificate(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class CertificateArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether Dokploy should renew this certificate automatically.
|
||||
/// </summary>
|
||||
[Input("autoRenew")]
|
||||
public Input<bool>? AutoRenew { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded certificate chain.
|
||||
/// </summary>
|
||||
[Input("certificateData", required: true)]
|
||||
public Input<string> CertificateData { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the certificate.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("privateKey", required: true)]
|
||||
private Input<string>? _privateKey;
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded private key.
|
||||
/// </summary>
|
||||
public Input<string>? PrivateKey
|
||||
{
|
||||
get => _privateKey;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Server this certificate is installed on.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
public CertificateArgs()
|
||||
{
|
||||
}
|
||||
public static new CertificateArgs Empty => new CertificateArgs();
|
||||
}
|
||||
|
||||
public sealed class CertificateState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether Dokploy should renew this certificate automatically.
|
||||
/// </summary>
|
||||
[Input("autoRenew")]
|
||||
public Input<bool>? AutoRenew { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded certificate chain.
|
||||
/// </summary>
|
||||
[Input("certificateData")]
|
||||
public Input<string>? CertificateData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path where Dokploy writes the certificate on disk.
|
||||
/// </summary>
|
||||
[Input("certificatePath")]
|
||||
public Input<string>? CertificatePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the certificate.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("privateKey")]
|
||||
private Input<string>? _privateKey;
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded private key.
|
||||
/// </summary>
|
||||
public Input<string>? PrivateKey
|
||||
{
|
||||
get => _privateKey;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Server this certificate is installed on.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
public CertificateState()
|
||||
{
|
||||
}
|
||||
public static new CertificateState Empty => new CertificateState();
|
||||
}
|
||||
}
|
||||
868
sdk/dotnet/Compose.cs
generated
Normal file
868
sdk/dotnet/Compose.cs
generated
Normal file
@@ -0,0 +1,868 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/compose:Compose")]
|
||||
public partial class Compose : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||
/// </summary>
|
||||
[Output("appName")]
|
||||
public Output<string> AppName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Deploy automatically when the configured trigger fires.
|
||||
/// </summary>
|
||||
[Output("autoDeploy")]
|
||||
public Output<bool> AutoDeploy { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket branch to deploy.
|
||||
/// </summary>
|
||||
[Output("bitbucketBranch")]
|
||||
public Output<string?> BitbucketBranch { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured Bitbucket provider connection.
|
||||
/// </summary>
|
||||
[Output("bitbucketId")]
|
||||
public Output<string?> BitbucketId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository owner.
|
||||
/// </summary>
|
||||
[Output("bitbucketOwner")]
|
||||
public Output<string?> BitbucketOwner { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository name.
|
||||
/// </summary>
|
||||
[Output("bitbucketRepository")]
|
||||
public Output<string?> BitbucketRepository { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository slug.
|
||||
/// </summary>
|
||||
[Output("bitbucketRepositorySlug")]
|
||||
public Output<string?> BitbucketRepositorySlug { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// GitHub branch to deploy.
|
||||
/// </summary>
|
||||
[Output("branch")]
|
||||
public Output<string?> Branch { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Custom `docker compose` command to run.
|
||||
/// </summary>
|
||||
[Output("command")]
|
||||
public Output<string> Command { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Inline Compose file contents. Used when `SourceType` is `Raw`.
|
||||
/// </summary>
|
||||
[Output("composeFile")]
|
||||
public Output<string> ComposeFile { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Path to the Compose file within the repository.
|
||||
/// </summary>
|
||||
[Output("composePath")]
|
||||
public Output<string> ComposePath { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Output("composeStatus")]
|
||||
public Output<string> ComposeStatus { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`.
|
||||
/// </summary>
|
||||
[Output("composeType")]
|
||||
public Output<string> ComposeType { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the stack was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Branch to deploy for a custom Git remote.
|
||||
/// </summary>
|
||||
[Output("customGitBranch")]
|
||||
public Output<string?> CustomGitBranch { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// SSH key used to clone a private custom Git remote.
|
||||
/// </summary>
|
||||
[Output("customGitSshKeyId")]
|
||||
public Output<string?> CustomGitSshKeyId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Git remote URL, when `SourceType` is `Git`.
|
||||
/// </summary>
|
||||
[Output("customGitUrl")]
|
||||
public Output<string?> CustomGitUrl { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data.
|
||||
/// </summary>
|
||||
[Output("deleteVolumes")]
|
||||
public Output<bool?> DeleteVolumes { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Clone Git submodules when checking out the repository.
|
||||
/// </summary>
|
||||
[Output("enableSubmodules")]
|
||||
public Output<bool> EnableSubmodules { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string?> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment this stack belongs to.
|
||||
/// </summary>
|
||||
[Output("environmentId")]
|
||||
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Gitea branch to deploy.
|
||||
/// </summary>
|
||||
[Output("giteaBranch")]
|
||||
public Output<string?> GiteaBranch { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured Gitea provider connection.
|
||||
/// </summary>
|
||||
[Output("giteaId")]
|
||||
public Output<string?> GiteaId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Gitea repository owner.
|
||||
/// </summary>
|
||||
[Output("giteaOwner")]
|
||||
public Output<string?> GiteaOwner { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Gitea repository name.
|
||||
/// </summary>
|
||||
[Output("giteaRepository")]
|
||||
public Output<string?> GiteaRepository { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured GitHub provider connection.
|
||||
/// </summary>
|
||||
[Output("githubId")]
|
||||
public Output<string?> GithubId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// GitLab branch to deploy.
|
||||
/// </summary>
|
||||
[Output("gitlabBranch")]
|
||||
public Output<string?> GitlabBranch { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured GitLab provider connection.
|
||||
/// </summary>
|
||||
[Output("gitlabId")]
|
||||
public Output<string?> GitlabId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// GitLab repository owner.
|
||||
/// </summary>
|
||||
[Output("gitlabOwner")]
|
||||
public Output<string?> GitlabOwner { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Full GitLab namespace path.
|
||||
/// </summary>
|
||||
[Output("gitlabPathNamespace")]
|
||||
public Output<string?> GitlabPathNamespace { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Numeric GitLab project ID.
|
||||
/// </summary>
|
||||
[Output("gitlabProjectId")]
|
||||
public Output<int?> GitlabProjectId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// GitLab repository name.
|
||||
/// </summary>
|
||||
[Output("gitlabRepository")]
|
||||
public Output<string?> GitlabRepository { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Run the stack on its own isolated Docker network.
|
||||
/// </summary>
|
||||
[Output("isolatedDeployment")]
|
||||
public Output<bool> IsolatedDeployment { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||
/// </summary>
|
||||
[Output("isolatedDeploymentsVolume")]
|
||||
public Output<bool> IsolatedDeploymentsVolume { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the stack.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// GitHub repository owner.
|
||||
/// </summary>
|
||||
[Output("owner")]
|
||||
public Output<string?> Owner { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Append a random suffix to service and volume names.
|
||||
/// </summary>
|
||||
[Output("randomize")]
|
||||
public Output<bool> Randomize { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// GitHub repository name.
|
||||
/// </summary>
|
||||
[Output("repository")]
|
||||
public Output<string?> Repository { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`.
|
||||
/// </summary>
|
||||
[Output("sourceType")]
|
||||
public Output<string> SourceType { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Suffix appended to generated resource names.
|
||||
/// </summary>
|
||||
[Output("suffix")]
|
||||
public Output<string> Suffix { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// What triggers an automatic deployment. Valid values: `Push`, `Tag`.
|
||||
/// </summary>
|
||||
[Output("triggerType")]
|
||||
public Output<string> TriggerType { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||
/// </summary>
|
||||
[Output("watchPaths")]
|
||||
public Output<ImmutableArray<string>> WatchPaths { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Compose resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Compose(string name, ComposeArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/compose:Compose", name, args ?? new ComposeArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Compose(string name, Input<string> id, ComposeState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/compose:Compose", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Compose resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Compose Get(string name, Input<string> id, ComposeState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Compose(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ComposeArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Deploy automatically when the configured trigger fires.
|
||||
/// </summary>
|
||||
[Input("autoDeploy")]
|
||||
public Input<bool>? AutoDeploy { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket branch to deploy.
|
||||
/// </summary>
|
||||
[Input("bitbucketBranch")]
|
||||
public Input<string>? BitbucketBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured Bitbucket provider connection.
|
||||
/// </summary>
|
||||
[Input("bitbucketId")]
|
||||
public Input<string>? BitbucketId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository owner.
|
||||
/// </summary>
|
||||
[Input("bitbucketOwner")]
|
||||
public Input<string>? BitbucketOwner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository name.
|
||||
/// </summary>
|
||||
[Input("bitbucketRepository")]
|
||||
public Input<string>? BitbucketRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository slug.
|
||||
/// </summary>
|
||||
[Input("bitbucketRepositorySlug")]
|
||||
public Input<string>? BitbucketRepositorySlug { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitHub branch to deploy.
|
||||
/// </summary>
|
||||
[Input("branch")]
|
||||
public Input<string>? Branch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Custom `docker compose` command to run.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Inline Compose file contents. Used when `SourceType` is `Raw`.
|
||||
/// </summary>
|
||||
[Input("composeFile")]
|
||||
public Input<string>? ComposeFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path to the Compose file within the repository.
|
||||
/// </summary>
|
||||
[Input("composePath")]
|
||||
public Input<string>? ComposePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`.
|
||||
/// </summary>
|
||||
[Input("composeType")]
|
||||
public Input<string>? ComposeType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Branch to deploy for a custom Git remote.
|
||||
/// </summary>
|
||||
[Input("customGitBranch")]
|
||||
public Input<string>? CustomGitBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SSH key used to clone a private custom Git remote.
|
||||
/// </summary>
|
||||
[Input("customGitSshKeyId")]
|
||||
public Input<string>? CustomGitSshKeyId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Git remote URL, when `SourceType` is `Git`.
|
||||
/// </summary>
|
||||
[Input("customGitUrl")]
|
||||
public Input<string>? CustomGitUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data.
|
||||
/// </summary>
|
||||
[Input("deleteVolumes")]
|
||||
public Input<bool>? DeleteVolumes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Clone Git submodules when checking out the repository.
|
||||
/// </summary>
|
||||
[Input("enableSubmodules")]
|
||||
public Input<bool>? EnableSubmodules { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this stack belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId", required: true)]
|
||||
public Input<string> EnvironmentId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Gitea branch to deploy.
|
||||
/// </summary>
|
||||
[Input("giteaBranch")]
|
||||
public Input<string>? GiteaBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured Gitea provider connection.
|
||||
/// </summary>
|
||||
[Input("giteaId")]
|
||||
public Input<string>? GiteaId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gitea repository owner.
|
||||
/// </summary>
|
||||
[Input("giteaOwner")]
|
||||
public Input<string>? GiteaOwner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gitea repository name.
|
||||
/// </summary>
|
||||
[Input("giteaRepository")]
|
||||
public Input<string>? GiteaRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured GitHub provider connection.
|
||||
/// </summary>
|
||||
[Input("githubId")]
|
||||
public Input<string>? GithubId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitLab branch to deploy.
|
||||
/// </summary>
|
||||
[Input("gitlabBranch")]
|
||||
public Input<string>? GitlabBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured GitLab provider connection.
|
||||
/// </summary>
|
||||
[Input("gitlabId")]
|
||||
public Input<string>? GitlabId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitLab repository owner.
|
||||
/// </summary>
|
||||
[Input("gitlabOwner")]
|
||||
public Input<string>? GitlabOwner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Full GitLab namespace path.
|
||||
/// </summary>
|
||||
[Input("gitlabPathNamespace")]
|
||||
public Input<string>? GitlabPathNamespace { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Numeric GitLab project ID.
|
||||
/// </summary>
|
||||
[Input("gitlabProjectId")]
|
||||
public Input<int>? GitlabProjectId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitLab repository name.
|
||||
/// </summary>
|
||||
[Input("gitlabRepository")]
|
||||
public Input<string>? GitlabRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Run the stack on its own isolated Docker network.
|
||||
/// </summary>
|
||||
[Input("isolatedDeployment")]
|
||||
public Input<bool>? IsolatedDeployment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||
/// </summary>
|
||||
[Input("isolatedDeploymentsVolume")]
|
||||
public Input<bool>? IsolatedDeploymentsVolume { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the stack.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitHub repository owner.
|
||||
/// </summary>
|
||||
[Input("owner")]
|
||||
public Input<string>? Owner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Append a random suffix to service and volume names.
|
||||
/// </summary>
|
||||
[Input("randomize")]
|
||||
public Input<bool>? Randomize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitHub repository name.
|
||||
/// </summary>
|
||||
[Input("repository")]
|
||||
public Input<string>? Repository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`.
|
||||
/// </summary>
|
||||
[Input("sourceType")]
|
||||
public Input<string>? SourceType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Suffix appended to generated resource names.
|
||||
/// </summary>
|
||||
[Input("suffix")]
|
||||
public Input<string>? Suffix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// What triggers an automatic deployment. Valid values: `Push`, `Tag`.
|
||||
/// </summary>
|
||||
[Input("triggerType")]
|
||||
public Input<string>? TriggerType { get; set; }
|
||||
|
||||
[Input("watchPaths")]
|
||||
private InputList<string>? _watchPaths;
|
||||
|
||||
/// <summary>
|
||||
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||
/// </summary>
|
||||
public InputList<string> WatchPaths
|
||||
{
|
||||
get => _watchPaths ?? (_watchPaths = new InputList<string>());
|
||||
set => _watchPaths = value;
|
||||
}
|
||||
|
||||
public ComposeArgs()
|
||||
{
|
||||
}
|
||||
public static new ComposeArgs Empty => new ComposeArgs();
|
||||
}
|
||||
|
||||
public sealed class ComposeState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Deploy automatically when the configured trigger fires.
|
||||
/// </summary>
|
||||
[Input("autoDeploy")]
|
||||
public Input<bool>? AutoDeploy { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket branch to deploy.
|
||||
/// </summary>
|
||||
[Input("bitbucketBranch")]
|
||||
public Input<string>? BitbucketBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured Bitbucket provider connection.
|
||||
/// </summary>
|
||||
[Input("bitbucketId")]
|
||||
public Input<string>? BitbucketId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository owner.
|
||||
/// </summary>
|
||||
[Input("bitbucketOwner")]
|
||||
public Input<string>? BitbucketOwner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository name.
|
||||
/// </summary>
|
||||
[Input("bitbucketRepository")]
|
||||
public Input<string>? BitbucketRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitbucket repository slug.
|
||||
/// </summary>
|
||||
[Input("bitbucketRepositorySlug")]
|
||||
public Input<string>? BitbucketRepositorySlug { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitHub branch to deploy.
|
||||
/// </summary>
|
||||
[Input("branch")]
|
||||
public Input<string>? Branch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Custom `docker compose` command to run.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Inline Compose file contents. Used when `SourceType` is `Raw`.
|
||||
/// </summary>
|
||||
[Input("composeFile")]
|
||||
public Input<string>? ComposeFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path to the Compose file within the repository.
|
||||
/// </summary>
|
||||
[Input("composePath")]
|
||||
public Input<string>? ComposePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Input("composeStatus")]
|
||||
public Input<string>? ComposeStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`.
|
||||
/// </summary>
|
||||
[Input("composeType")]
|
||||
public Input<string>? ComposeType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the stack was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Branch to deploy for a custom Git remote.
|
||||
/// </summary>
|
||||
[Input("customGitBranch")]
|
||||
public Input<string>? CustomGitBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SSH key used to clone a private custom Git remote.
|
||||
/// </summary>
|
||||
[Input("customGitSshKeyId")]
|
||||
public Input<string>? CustomGitSshKeyId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Git remote URL, when `SourceType` is `Git`.
|
||||
/// </summary>
|
||||
[Input("customGitUrl")]
|
||||
public Input<string>? CustomGitUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data.
|
||||
/// </summary>
|
||||
[Input("deleteVolumes")]
|
||||
public Input<bool>? DeleteVolumes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Clone Git submodules when checking out the repository.
|
||||
/// </summary>
|
||||
[Input("enableSubmodules")]
|
||||
public Input<bool>? EnableSubmodules { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this stack belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId")]
|
||||
public Input<string>? EnvironmentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gitea branch to deploy.
|
||||
/// </summary>
|
||||
[Input("giteaBranch")]
|
||||
public Input<string>? GiteaBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured Gitea provider connection.
|
||||
/// </summary>
|
||||
[Input("giteaId")]
|
||||
public Input<string>? GiteaId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gitea repository owner.
|
||||
/// </summary>
|
||||
[Input("giteaOwner")]
|
||||
public Input<string>? GiteaOwner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gitea repository name.
|
||||
/// </summary>
|
||||
[Input("giteaRepository")]
|
||||
public Input<string>? GiteaRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured GitHub provider connection.
|
||||
/// </summary>
|
||||
[Input("githubId")]
|
||||
public Input<string>? GithubId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitLab branch to deploy.
|
||||
/// </summary>
|
||||
[Input("gitlabBranch")]
|
||||
public Input<string>? GitlabBranch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the configured GitLab provider connection.
|
||||
/// </summary>
|
||||
[Input("gitlabId")]
|
||||
public Input<string>? GitlabId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitLab repository owner.
|
||||
/// </summary>
|
||||
[Input("gitlabOwner")]
|
||||
public Input<string>? GitlabOwner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Full GitLab namespace path.
|
||||
/// </summary>
|
||||
[Input("gitlabPathNamespace")]
|
||||
public Input<string>? GitlabPathNamespace { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Numeric GitLab project ID.
|
||||
/// </summary>
|
||||
[Input("gitlabProjectId")]
|
||||
public Input<int>? GitlabProjectId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitLab repository name.
|
||||
/// </summary>
|
||||
[Input("gitlabRepository")]
|
||||
public Input<string>? GitlabRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Run the stack on its own isolated Docker network.
|
||||
/// </summary>
|
||||
[Input("isolatedDeployment")]
|
||||
public Input<bool>? IsolatedDeployment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||
/// </summary>
|
||||
[Input("isolatedDeploymentsVolume")]
|
||||
public Input<bool>? IsolatedDeploymentsVolume { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the stack.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitHub repository owner.
|
||||
/// </summary>
|
||||
[Input("owner")]
|
||||
public Input<string>? Owner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Append a random suffix to service and volume names.
|
||||
/// </summary>
|
||||
[Input("randomize")]
|
||||
public Input<bool>? Randomize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GitHub repository name.
|
||||
/// </summary>
|
||||
[Input("repository")]
|
||||
public Input<string>? Repository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`.
|
||||
/// </summary>
|
||||
[Input("sourceType")]
|
||||
public Input<string>? SourceType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Suffix appended to generated resource names.
|
||||
/// </summary>
|
||||
[Input("suffix")]
|
||||
public Input<string>? Suffix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// What triggers an automatic deployment. Valid values: `Push`, `Tag`.
|
||||
/// </summary>
|
||||
[Input("triggerType")]
|
||||
public Input<string>? TriggerType { get; set; }
|
||||
|
||||
[Input("watchPaths")]
|
||||
private InputList<string>? _watchPaths;
|
||||
|
||||
/// <summary>
|
||||
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||
/// </summary>
|
||||
public InputList<string> WatchPaths
|
||||
{
|
||||
get => _watchPaths ?? (_watchPaths = new InputList<string>());
|
||||
set => _watchPaths = value;
|
||||
}
|
||||
|
||||
public ComposeState()
|
||||
{
|
||||
}
|
||||
public static new ComposeState Empty => new ComposeState();
|
||||
}
|
||||
}
|
||||
76
sdk/dotnet/Config/Config.cs
generated
Normal file
76
sdk/dotnet/Config/Config.cs
generated
Normal file
@@ -0,0 +1,76 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
public static class Config
|
||||
{
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification =
|
||||
"Double underscore prefix used to avoid conflicts with variable names.")]
|
||||
private sealed class __Value<T>
|
||||
{
|
||||
private readonly Func<T> _getter;
|
||||
private T _value = default!;
|
||||
private bool _set;
|
||||
|
||||
public __Value(Func<T> getter)
|
||||
{
|
||||
_getter = getter;
|
||||
}
|
||||
|
||||
public T Get() => _set ? _value : _getter();
|
||||
|
||||
public void Set(T value)
|
||||
{
|
||||
_value = value;
|
||||
_set = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static readonly global::Pulumi.Config __config = new global::Pulumi.Config("dokploy");
|
||||
|
||||
private static readonly __Value<string?> _apiKey = new __Value<string?>(() => __config.Get("apiKey") ?? Utilities.GetEnv("DOKPLOY_API_KEY"));
|
||||
/// <summary>
|
||||
/// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||
/// </summary>
|
||||
public static string? ApiKey
|
||||
{
|
||||
get => _apiKey.Get();
|
||||
set => _apiKey.Set(value);
|
||||
}
|
||||
|
||||
private static readonly __Value<string?> _host = new __Value<string?>(() => __config.Get("host") ?? Utilities.GetEnv("DOKPLOY_HOST"));
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public static string? Host
|
||||
{
|
||||
get => _host.Get();
|
||||
set => _host.Set(value);
|
||||
}
|
||||
|
||||
private static readonly __Value<bool?> _insecureSkipVerify = new __Value<bool?>(() => __config.GetBoolean("insecureSkipVerify"));
|
||||
/// <summary>
|
||||
/// Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `False`.
|
||||
/// </summary>
|
||||
public static bool? InsecureSkipVerify
|
||||
{
|
||||
get => _insecureSkipVerify.Get();
|
||||
set => _insecureSkipVerify.Set(value);
|
||||
}
|
||||
|
||||
private static readonly __Value<int?> _timeoutSeconds = new __Value<int?>(() => __config.GetInt32("timeoutSeconds") ?? Utilities.GetEnvInt32("DOKPLOY_TIMEOUT_SECONDS"));
|
||||
/// <summary>
|
||||
/// Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
|
||||
/// </summary>
|
||||
public static int? TimeoutSeconds
|
||||
{
|
||||
get => _timeoutSeconds.Get();
|
||||
set => _timeoutSeconds.Set(value);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
1
sdk/dotnet/Config/README.md
generated
Normal file
1
sdk/dotnet/Config/README.md
generated
Normal file
@@ -0,0 +1 @@
|
||||
A Pulumi package for creating and managing Dokploy resources
|
||||
286
sdk/dotnet/Destination.cs
generated
Normal file
286
sdk/dotnet/Destination.cs
generated
Normal file
@@ -0,0 +1,286 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/destination:Destination")]
|
||||
public partial class Destination : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// S3 access key ID.
|
||||
/// </summary>
|
||||
[Output("accessKey")]
|
||||
public Output<string> AccessKey { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Extra flags passed to the underlying `Rclone` invocation.
|
||||
/// </summary>
|
||||
[Output("additionalFlags")]
|
||||
public Output<ImmutableArray<string>> AdditionalFlags { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Bucket name.
|
||||
/// </summary>
|
||||
[Output("bucket")]
|
||||
public Output<string> Bucket { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Timestamp of when the destination was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// S3 endpoint URL.
|
||||
/// </summary>
|
||||
[Output("endpoint")]
|
||||
public Output<string> Endpoint { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the destination.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
|
||||
/// </summary>
|
||||
[Output("providerName")]
|
||||
public Output<string?> ProviderName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Bucket region, for example `us-east-1`.
|
||||
/// </summary>
|
||||
[Output("region")]
|
||||
public Output<string> Region { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// S3 secret access key.
|
||||
/// </summary>
|
||||
[Output("secretAccessKey")]
|
||||
public Output<string> SecretAccessKey { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Server this destination is scoped to.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Destination resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Destination(string name, DestinationArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/destination:Destination", name, args ?? new DestinationArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Destination(string name, Input<string> id, DestinationState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/destination:Destination", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"secretAccessKey",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Destination resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Destination Get(string name, Input<string> id, DestinationState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Destination(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class DestinationArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// S3 access key ID.
|
||||
/// </summary>
|
||||
[Input("accessKey", required: true)]
|
||||
public Input<string> AccessKey { get; set; } = null!;
|
||||
|
||||
[Input("additionalFlags")]
|
||||
private InputList<string>? _additionalFlags;
|
||||
|
||||
/// <summary>
|
||||
/// Extra flags passed to the underlying `Rclone` invocation.
|
||||
/// </summary>
|
||||
public InputList<string> AdditionalFlags
|
||||
{
|
||||
get => _additionalFlags ?? (_additionalFlags = new InputList<string>());
|
||||
set => _additionalFlags = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Bucket name.
|
||||
/// </summary>
|
||||
[Input("bucket", required: true)]
|
||||
public Input<string> Bucket { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// S3 endpoint URL.
|
||||
/// </summary>
|
||||
[Input("endpoint", required: true)]
|
||||
public Input<string> Endpoint { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the destination.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
|
||||
/// </summary>
|
||||
[Input("providerName")]
|
||||
public Input<string>? ProviderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bucket region, for example `us-east-1`.
|
||||
/// </summary>
|
||||
[Input("region", required: true)]
|
||||
public Input<string> Region { get; set; } = null!;
|
||||
|
||||
[Input("secretAccessKey", required: true)]
|
||||
private Input<string>? _secretAccessKey;
|
||||
|
||||
/// <summary>
|
||||
/// S3 secret access key.
|
||||
/// </summary>
|
||||
public Input<string>? SecretAccessKey
|
||||
{
|
||||
get => _secretAccessKey;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Server this destination is scoped to.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
public DestinationArgs()
|
||||
{
|
||||
}
|
||||
public static new DestinationArgs Empty => new DestinationArgs();
|
||||
}
|
||||
|
||||
public sealed class DestinationState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// S3 access key ID.
|
||||
/// </summary>
|
||||
[Input("accessKey")]
|
||||
public Input<string>? AccessKey { get; set; }
|
||||
|
||||
[Input("additionalFlags")]
|
||||
private InputList<string>? _additionalFlags;
|
||||
|
||||
/// <summary>
|
||||
/// Extra flags passed to the underlying `Rclone` invocation.
|
||||
/// </summary>
|
||||
public InputList<string> AdditionalFlags
|
||||
{
|
||||
get => _additionalFlags ?? (_additionalFlags = new InputList<string>());
|
||||
set => _additionalFlags = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Bucket name.
|
||||
/// </summary>
|
||||
[Input("bucket")]
|
||||
public Input<string>? Bucket { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Timestamp of when the destination was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// S3 endpoint URL.
|
||||
/// </summary>
|
||||
[Input("endpoint")]
|
||||
public Input<string>? Endpoint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the destination.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
|
||||
/// </summary>
|
||||
[Input("providerName")]
|
||||
public Input<string>? ProviderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bucket region, for example `us-east-1`.
|
||||
/// </summary>
|
||||
[Input("region")]
|
||||
public Input<string>? Region { get; set; }
|
||||
|
||||
[Input("secretAccessKey")]
|
||||
private Input<string>? _secretAccessKey;
|
||||
|
||||
/// <summary>
|
||||
/// S3 secret access key.
|
||||
/// </summary>
|
||||
public Input<string>? SecretAccessKey
|
||||
{
|
||||
get => _secretAccessKey;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Server this destination is scoped to.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
public DestinationState()
|
||||
{
|
||||
}
|
||||
public static new DestinationState Empty => new DestinationState();
|
||||
}
|
||||
}
|
||||
388
sdk/dotnet/Domain.cs
generated
Normal file
388
sdk/dotnet/Domain.cs
generated
Normal file
@@ -0,0 +1,388 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/domain:Domain")]
|
||||
public partial class Domain : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this domain routes to.
|
||||
/// </summary>
|
||||
[Output("applicationId")]
|
||||
public Output<string?> ApplicationId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
|
||||
/// </summary>
|
||||
[Output("certificateType")]
|
||||
public Output<string> CertificateType { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Compose stack this domain routes to.
|
||||
/// </summary>
|
||||
[Output("composeId")]
|
||||
public Output<string?> ComposeId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the domain was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
|
||||
/// </summary>
|
||||
[Output("customCertResolver")]
|
||||
public Output<string?> CustomCertResolver { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Traefik entrypoint to bind, when not using the defaults.
|
||||
/// </summary>
|
||||
[Output("customEntrypoint")]
|
||||
public Output<string?> CustomEntrypoint { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
|
||||
/// </summary>
|
||||
[Output("domainType")]
|
||||
public Output<string> DomainType { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Protect this domain with Dokploy's forward auth.
|
||||
/// </summary>
|
||||
[Output("forwardAuthEnabled")]
|
||||
public Output<bool> ForwardAuthEnabled { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Fully-qualified hostname, for example `api.example.com`.
|
||||
/// </summary>
|
||||
[Output("host")]
|
||||
public Output<string> Host { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||
/// </summary>
|
||||
[Output("https")]
|
||||
public Output<bool> Https { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||
/// </summary>
|
||||
[Output("internalPath")]
|
||||
public Output<string> InternalPath { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Names of Traefik middlewares to apply.
|
||||
/// </summary>
|
||||
[Output("middlewares")]
|
||||
public Output<ImmutableArray<string>> Middlewares { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Path prefix this domain routes, defaults to `/`.
|
||||
/// </summary>
|
||||
[Output("path")]
|
||||
public Output<string> Path { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Container port that receives the traffic, defaults to `3000`.
|
||||
/// </summary>
|
||||
[Output("port")]
|
||||
public Output<int> Port { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Preview deployment this domain routes to.
|
||||
/// </summary>
|
||||
[Output("previewDeploymentId")]
|
||||
public Output<string?> PreviewDeploymentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
|
||||
/// </summary>
|
||||
[Output("serviceName")]
|
||||
public Output<string?> ServiceName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Strip `Path` from the request before forwarding it.
|
||||
/// </summary>
|
||||
[Output("stripPath")]
|
||||
public Output<bool> StripPath { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Domain resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Domain(string name, DomainArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/domain:Domain", name, args ?? new DomainArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Domain(string name, Input<string> id, DomainState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/domain:Domain", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Domain resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Domain Get(string name, Input<string> id, DomainState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Domain(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class DomainArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this domain routes to.
|
||||
/// </summary>
|
||||
[Input("applicationId")]
|
||||
public Input<string>? ApplicationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
|
||||
/// </summary>
|
||||
[Input("certificateType")]
|
||||
public Input<string>? CertificateType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Compose stack this domain routes to.
|
||||
/// </summary>
|
||||
[Input("composeId")]
|
||||
public Input<string>? ComposeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
|
||||
/// </summary>
|
||||
[Input("customCertResolver")]
|
||||
public Input<string>? CustomCertResolver { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Traefik entrypoint to bind, when not using the defaults.
|
||||
/// </summary>
|
||||
[Input("customEntrypoint")]
|
||||
public Input<string>? CustomEntrypoint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
|
||||
/// </summary>
|
||||
[Input("domainType")]
|
||||
public Input<string>? DomainType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Protect this domain with Dokploy's forward auth.
|
||||
/// </summary>
|
||||
[Input("forwardAuthEnabled")]
|
||||
public Input<bool>? ForwardAuthEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fully-qualified hostname, for example `api.example.com`.
|
||||
/// </summary>
|
||||
[Input("host", required: true)]
|
||||
public Input<string> Host { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||
/// </summary>
|
||||
[Input("https")]
|
||||
public Input<bool>? Https { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||
/// </summary>
|
||||
[Input("internalPath")]
|
||||
public Input<string>? InternalPath { get; set; }
|
||||
|
||||
[Input("middlewares")]
|
||||
private InputList<string>? _middlewares;
|
||||
|
||||
/// <summary>
|
||||
/// Names of Traefik middlewares to apply.
|
||||
/// </summary>
|
||||
public InputList<string> Middlewares
|
||||
{
|
||||
get => _middlewares ?? (_middlewares = new InputList<string>());
|
||||
set => _middlewares = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Path prefix this domain routes, defaults to `/`.
|
||||
/// </summary>
|
||||
[Input("path")]
|
||||
public Input<string>? Path { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Container port that receives the traffic, defaults to `3000`.
|
||||
/// </summary>
|
||||
[Input("port")]
|
||||
public Input<int>? Port { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Preview deployment this domain routes to.
|
||||
/// </summary>
|
||||
[Input("previewDeploymentId")]
|
||||
public Input<string>? PreviewDeploymentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
|
||||
/// </summary>
|
||||
[Input("serviceName")]
|
||||
public Input<string>? ServiceName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Strip `Path` from the request before forwarding it.
|
||||
/// </summary>
|
||||
[Input("stripPath")]
|
||||
public Input<bool>? StripPath { get; set; }
|
||||
|
||||
public DomainArgs()
|
||||
{
|
||||
}
|
||||
public static new DomainArgs Empty => new DomainArgs();
|
||||
}
|
||||
|
||||
public sealed class DomainState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this domain routes to.
|
||||
/// </summary>
|
||||
[Input("applicationId")]
|
||||
public Input<string>? ApplicationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
|
||||
/// </summary>
|
||||
[Input("certificateType")]
|
||||
public Input<string>? CertificateType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Compose stack this domain routes to.
|
||||
/// </summary>
|
||||
[Input("composeId")]
|
||||
public Input<string>? ComposeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the domain was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
|
||||
/// </summary>
|
||||
[Input("customCertResolver")]
|
||||
public Input<string>? CustomCertResolver { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Traefik entrypoint to bind, when not using the defaults.
|
||||
/// </summary>
|
||||
[Input("customEntrypoint")]
|
||||
public Input<string>? CustomEntrypoint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
|
||||
/// </summary>
|
||||
[Input("domainType")]
|
||||
public Input<string>? DomainType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Protect this domain with Dokploy's forward auth.
|
||||
/// </summary>
|
||||
[Input("forwardAuthEnabled")]
|
||||
public Input<bool>? ForwardAuthEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fully-qualified hostname, for example `api.example.com`.
|
||||
/// </summary>
|
||||
[Input("host")]
|
||||
public Input<string>? Host { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||
/// </summary>
|
||||
[Input("https")]
|
||||
public Input<bool>? Https { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||
/// </summary>
|
||||
[Input("internalPath")]
|
||||
public Input<string>? InternalPath { get; set; }
|
||||
|
||||
[Input("middlewares")]
|
||||
private InputList<string>? _middlewares;
|
||||
|
||||
/// <summary>
|
||||
/// Names of Traefik middlewares to apply.
|
||||
/// </summary>
|
||||
public InputList<string> Middlewares
|
||||
{
|
||||
get => _middlewares ?? (_middlewares = new InputList<string>());
|
||||
set => _middlewares = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Path prefix this domain routes, defaults to `/`.
|
||||
/// </summary>
|
||||
[Input("path")]
|
||||
public Input<string>? Path { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Container port that receives the traffic, defaults to `3000`.
|
||||
/// </summary>
|
||||
[Input("port")]
|
||||
public Input<int>? Port { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Preview deployment this domain routes to.
|
||||
/// </summary>
|
||||
[Input("previewDeploymentId")]
|
||||
public Input<string>? PreviewDeploymentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
|
||||
/// </summary>
|
||||
[Input("serviceName")]
|
||||
public Input<string>? ServiceName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Strip `Path` from the request before forwarding it.
|
||||
/// </summary>
|
||||
[Input("stripPath")]
|
||||
public Input<bool>? StripPath { get; set; }
|
||||
|
||||
public DomainState()
|
||||
{
|
||||
}
|
||||
public static new DomainState Empty => new DomainState();
|
||||
}
|
||||
}
|
||||
172
sdk/dotnet/Environment.cs
generated
Normal file
172
sdk/dotnet/Environment.cs
generated
Normal file
@@ -0,0 +1,172 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/environment:Environment")]
|
||||
public partial class Environment : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the environment was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Whether this is the project's default environment.
|
||||
/// </summary>
|
||||
[Output("isDefault")]
|
||||
public Output<bool> IsDefault { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment name, for example `Staging`.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Project this environment belongs to.
|
||||
/// </summary>
|
||||
[Output("projectId")]
|
||||
public Output<string> ProjectId { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Environment resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Environment(string name, EnvironmentArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/environment:Environment", name, args ?? new EnvironmentArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Environment(string name, Input<string> id, EnvironmentState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/environment:Environment", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Environment resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Environment Get(string name, Input<string> id, EnvironmentState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Environment(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class EnvironmentArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment name, for example `Staging`.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Project this environment belongs to.
|
||||
/// </summary>
|
||||
[Input("projectId", required: true)]
|
||||
public Input<string> ProjectId { get; set; } = null!;
|
||||
|
||||
public EnvironmentArgs()
|
||||
{
|
||||
}
|
||||
public static new EnvironmentArgs Empty => new EnvironmentArgs();
|
||||
}
|
||||
|
||||
public sealed class EnvironmentState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the environment was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether this is the project's default environment.
|
||||
/// </summary>
|
||||
[Input("isDefault")]
|
||||
public Input<bool>? IsDefault { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment name, for example `Staging`.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Project this environment belongs to.
|
||||
/// </summary>
|
||||
[Input("projectId")]
|
||||
public Input<string>? ProjectId { get; set; }
|
||||
|
||||
public EnvironmentState()
|
||||
{
|
||||
}
|
||||
public static new EnvironmentState Empty => new EnvironmentState();
|
||||
}
|
||||
}
|
||||
93
sdk/dotnet/GetApplication.cs
generated
Normal file
93
sdk/dotnet/GetApplication.cs
generated
Normal file
@@ -0,0 +1,93 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
public static class GetApplication
|
||||
{
|
||||
public static Task<GetApplicationResult> InvokeAsync(GetApplicationArgs args, InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetApplicationResult>("dokploy:index/getApplication:getApplication", args ?? new GetApplicationArgs(), options.WithDefaults());
|
||||
|
||||
public static Output<GetApplicationResult> Invoke(GetApplicationInvokeArgs args, InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetApplicationResult>("dokploy:index/getApplication:getApplication", args ?? new GetApplicationInvokeArgs(), options.WithDefaults());
|
||||
|
||||
public static Output<GetApplicationResult> Invoke(GetApplicationInvokeArgs args, InvokeOutputOptions options)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetApplicationResult>("dokploy:index/getApplication:getApplication", args ?? new GetApplicationInvokeArgs(), options.WithDefaults());
|
||||
}
|
||||
|
||||
|
||||
public sealed class GetApplicationArgs : global::Pulumi.InvokeArgs
|
||||
{
|
||||
[Input("id", required: true)]
|
||||
public string Id { get; set; } = null!;
|
||||
|
||||
public GetApplicationArgs()
|
||||
{
|
||||
}
|
||||
public static new GetApplicationArgs Empty => new GetApplicationArgs();
|
||||
}
|
||||
|
||||
public sealed class GetApplicationInvokeArgs : global::Pulumi.InvokeArgs
|
||||
{
|
||||
[Input("id", required: true)]
|
||||
public Input<string> Id { get; set; } = null!;
|
||||
|
||||
public GetApplicationInvokeArgs()
|
||||
{
|
||||
}
|
||||
public static new GetApplicationInvokeArgs Empty => new GetApplicationInvokeArgs();
|
||||
}
|
||||
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetApplicationResult
|
||||
{
|
||||
public readonly string AppName;
|
||||
public readonly string ApplicationStatus;
|
||||
public readonly string BuildType;
|
||||
public readonly string CreatedAt;
|
||||
public readonly string Description;
|
||||
public readonly string EnvironmentId;
|
||||
public readonly string Id;
|
||||
public readonly string Name;
|
||||
public readonly string SourceType;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetApplicationResult(
|
||||
string appName,
|
||||
|
||||
string applicationStatus,
|
||||
|
||||
string buildType,
|
||||
|
||||
string createdAt,
|
||||
|
||||
string description,
|
||||
|
||||
string environmentId,
|
||||
|
||||
string id,
|
||||
|
||||
string name,
|
||||
|
||||
string sourceType)
|
||||
{
|
||||
AppName = appName;
|
||||
ApplicationStatus = applicationStatus;
|
||||
BuildType = buildType;
|
||||
CreatedAt = createdAt;
|
||||
Description = description;
|
||||
EnvironmentId = environmentId;
|
||||
Id = id;
|
||||
Name = name;
|
||||
SourceType = sourceType;
|
||||
}
|
||||
}
|
||||
}
|
||||
85
sdk/dotnet/GetEnvironment.cs
generated
Normal file
85
sdk/dotnet/GetEnvironment.cs
generated
Normal file
@@ -0,0 +1,85 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
public static class GetEnvironment
|
||||
{
|
||||
public static Task<GetEnvironmentResult> InvokeAsync(GetEnvironmentArgs args, InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetEnvironmentResult>("dokploy:index/getEnvironment:getEnvironment", args ?? new GetEnvironmentArgs(), options.WithDefaults());
|
||||
|
||||
public static Output<GetEnvironmentResult> Invoke(GetEnvironmentInvokeArgs args, InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetEnvironmentResult>("dokploy:index/getEnvironment:getEnvironment", args ?? new GetEnvironmentInvokeArgs(), options.WithDefaults());
|
||||
|
||||
public static Output<GetEnvironmentResult> Invoke(GetEnvironmentInvokeArgs args, InvokeOutputOptions options)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetEnvironmentResult>("dokploy:index/getEnvironment:getEnvironment", args ?? new GetEnvironmentInvokeArgs(), options.WithDefaults());
|
||||
}
|
||||
|
||||
|
||||
public sealed class GetEnvironmentArgs : global::Pulumi.InvokeArgs
|
||||
{
|
||||
[Input("id", required: true)]
|
||||
public string Id { get; set; } = null!;
|
||||
|
||||
public GetEnvironmentArgs()
|
||||
{
|
||||
}
|
||||
public static new GetEnvironmentArgs Empty => new GetEnvironmentArgs();
|
||||
}
|
||||
|
||||
public sealed class GetEnvironmentInvokeArgs : global::Pulumi.InvokeArgs
|
||||
{
|
||||
[Input("id", required: true)]
|
||||
public Input<string> Id { get; set; } = null!;
|
||||
|
||||
public GetEnvironmentInvokeArgs()
|
||||
{
|
||||
}
|
||||
public static new GetEnvironmentInvokeArgs Empty => new GetEnvironmentInvokeArgs();
|
||||
}
|
||||
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetEnvironmentResult
|
||||
{
|
||||
public readonly string CreatedAt;
|
||||
public readonly string Description;
|
||||
public readonly string Env;
|
||||
public readonly string Id;
|
||||
public readonly bool IsDefault;
|
||||
public readonly string Name;
|
||||
public readonly string ProjectId;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetEnvironmentResult(
|
||||
string createdAt,
|
||||
|
||||
string description,
|
||||
|
||||
string env,
|
||||
|
||||
string id,
|
||||
|
||||
bool isDefault,
|
||||
|
||||
string name,
|
||||
|
||||
string projectId)
|
||||
{
|
||||
CreatedAt = createdAt;
|
||||
Description = description;
|
||||
Env = env;
|
||||
Id = id;
|
||||
IsDefault = isDefault;
|
||||
Name = name;
|
||||
ProjectId = projectId;
|
||||
}
|
||||
}
|
||||
}
|
||||
89
sdk/dotnet/GetProject.cs
generated
Normal file
89
sdk/dotnet/GetProject.cs
generated
Normal file
@@ -0,0 +1,89 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
public static class GetProject
|
||||
{
|
||||
public static Task<GetProjectResult> InvokeAsync(GetProjectArgs args, InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetProjectResult>("dokploy:index/getProject:getProject", args ?? new GetProjectArgs(), options.WithDefaults());
|
||||
|
||||
public static Output<GetProjectResult> Invoke(GetProjectInvokeArgs args, InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectResult>("dokploy:index/getProject:getProject", args ?? new GetProjectInvokeArgs(), options.WithDefaults());
|
||||
|
||||
public static Output<GetProjectResult> Invoke(GetProjectInvokeArgs args, InvokeOutputOptions options)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectResult>("dokploy:index/getProject:getProject", args ?? new GetProjectInvokeArgs(), options.WithDefaults());
|
||||
}
|
||||
|
||||
|
||||
public sealed class GetProjectArgs : global::Pulumi.InvokeArgs
|
||||
{
|
||||
[Input("id", required: true)]
|
||||
public string Id { get; set; } = null!;
|
||||
|
||||
public GetProjectArgs()
|
||||
{
|
||||
}
|
||||
public static new GetProjectArgs Empty => new GetProjectArgs();
|
||||
}
|
||||
|
||||
public sealed class GetProjectInvokeArgs : global::Pulumi.InvokeArgs
|
||||
{
|
||||
[Input("id", required: true)]
|
||||
public Input<string> Id { get; set; } = null!;
|
||||
|
||||
public GetProjectInvokeArgs()
|
||||
{
|
||||
}
|
||||
public static new GetProjectInvokeArgs Empty => new GetProjectInvokeArgs();
|
||||
}
|
||||
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetProjectResult
|
||||
{
|
||||
public readonly string CreatedAt;
|
||||
public readonly string DefaultEnvironmentId;
|
||||
public readonly string Description;
|
||||
public readonly string Env;
|
||||
public readonly ImmutableArray<Outputs.GetProjectEnvironmentResult> Environments;
|
||||
public readonly string Id;
|
||||
public readonly string Name;
|
||||
public readonly string OrganizationId;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetProjectResult(
|
||||
string createdAt,
|
||||
|
||||
string defaultEnvironmentId,
|
||||
|
||||
string description,
|
||||
|
||||
string env,
|
||||
|
||||
ImmutableArray<Outputs.GetProjectEnvironmentResult> environments,
|
||||
|
||||
string id,
|
||||
|
||||
string name,
|
||||
|
||||
string organizationId)
|
||||
{
|
||||
CreatedAt = createdAt;
|
||||
DefaultEnvironmentId = defaultEnvironmentId;
|
||||
Description = description;
|
||||
Env = env;
|
||||
Environments = environments;
|
||||
Id = id;
|
||||
Name = name;
|
||||
OrganizationId = organizationId;
|
||||
}
|
||||
}
|
||||
}
|
||||
37
sdk/dotnet/GetProjects.cs
generated
Normal file
37
sdk/dotnet/GetProjects.cs
generated
Normal file
@@ -0,0 +1,37 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
public static class GetProjects
|
||||
{
|
||||
public static Task<GetProjectsResult> InvokeAsync(InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetProjectsResult>("dokploy:index/getProjects:getProjects", InvokeArgs.Empty, options.WithDefaults());
|
||||
|
||||
public static Output<GetProjectsResult> Invoke(InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectsResult>("dokploy:index/getProjects:getProjects", InvokeArgs.Empty, options.WithDefaults());
|
||||
|
||||
public static Output<GetProjectsResult> Invoke(InvokeOutputOptions options)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectsResult>("dokploy:index/getProjects:getProjects", InvokeArgs.Empty, options.WithDefaults());
|
||||
}
|
||||
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetProjectsResult
|
||||
{
|
||||
public readonly ImmutableArray<Outputs.GetProjectsProjectResult> Projects;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetProjectsResult(ImmutableArray<Outputs.GetProjectsProjectResult> projects)
|
||||
{
|
||||
Projects = projects;
|
||||
}
|
||||
}
|
||||
}
|
||||
37
sdk/dotnet/GetServers.cs
generated
Normal file
37
sdk/dotnet/GetServers.cs
generated
Normal file
@@ -0,0 +1,37 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
public static class GetServers
|
||||
{
|
||||
public static Task<GetServersResult> InvokeAsync(InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetServersResult>("dokploy:index/getServers:getServers", InvokeArgs.Empty, options.WithDefaults());
|
||||
|
||||
public static Output<GetServersResult> Invoke(InvokeOptions? options = null)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetServersResult>("dokploy:index/getServers:getServers", InvokeArgs.Empty, options.WithDefaults());
|
||||
|
||||
public static Output<GetServersResult> Invoke(InvokeOutputOptions options)
|
||||
=> global::Pulumi.Deployment.Instance.Invoke<GetServersResult>("dokploy:index/getServers:getServers", InvokeArgs.Empty, options.WithDefaults());
|
||||
}
|
||||
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetServersResult
|
||||
{
|
||||
public readonly ImmutableArray<Outputs.GetServersServerResult> Servers;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetServersResult(ImmutableArray<Outputs.GetServersServerResult> servers)
|
||||
{
|
||||
Servers = servers;
|
||||
}
|
||||
}
|
||||
}
|
||||
356
sdk/dotnet/LICENSE
generated
Normal file
356
sdk/dotnet/LICENSE
generated
Normal file
@@ -0,0 +1,356 @@
|
||||
Copyright (c) 2026 Max Vojtkov
|
||||
|
||||
Mozilla Public License, version 2.0
|
||||
|
||||
1. Definitions
|
||||
|
||||
1.1. “Contributor”
|
||||
|
||||
means each individual or legal entity that creates, contributes to the
|
||||
creation of, or owns Covered Software.
|
||||
|
||||
1.2. “Contributor Version”
|
||||
|
||||
means the combination of the Contributions of others (if any) used by a
|
||||
Contributor and that particular Contributor’s Contribution.
|
||||
|
||||
1.3. “Contribution”
|
||||
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. “Covered Software”
|
||||
|
||||
means Source Code Form to which the initial Contributor has attached the
|
||||
notice in Exhibit A, the Executable Form of such Source Code Form, and
|
||||
Modifications of such Source Code Form, in each case including portions
|
||||
thereof.
|
||||
|
||||
1.5. “Incompatible With Secondary Licenses”
|
||||
means
|
||||
|
||||
a. that the initial Contributor has attached the notice described in
|
||||
Exhibit B to the Covered Software; or
|
||||
|
||||
b. that the Covered Software was made available under the terms of version
|
||||
1.1 or earlier of the License, but not also under the terms of a
|
||||
Secondary License.
|
||||
|
||||
1.6. “Executable Form”
|
||||
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. “Larger Work”
|
||||
|
||||
means a work that combines Covered Software with other material, in a separate
|
||||
file or files, that is not Covered Software.
|
||||
|
||||
1.8. “License”
|
||||
|
||||
means this document.
|
||||
|
||||
1.9. “Licensable”
|
||||
|
||||
means having the right to grant, to the maximum extent possible, whether at the
|
||||
time of the initial grant or subsequently, any and all of the rights conveyed by
|
||||
this License.
|
||||
|
||||
1.10. “Modifications”
|
||||
|
||||
means any of the following:
|
||||
|
||||
a. any file in Source Code Form that results from an addition to, deletion
|
||||
from, or modification of the contents of Covered Software; or
|
||||
|
||||
b. any new file in Source Code Form that contains any Covered Software.
|
||||
|
||||
1.11. “Patent Claims” of a Contributor
|
||||
|
||||
means any patent claim(s), including without limitation, method, process,
|
||||
and apparatus claims, in any patent Licensable by such Contributor that
|
||||
would be infringed, but for the grant of the License, by the making,
|
||||
using, selling, offering for sale, having made, import, or transfer of
|
||||
either its Contributions or its Contributor Version.
|
||||
|
||||
1.12. “Secondary License”
|
||||
|
||||
means either the GNU General Public License, Version 2.0, the GNU Lesser
|
||||
General Public License, Version 2.1, the GNU Affero General Public
|
||||
License, Version 3.0, or any later versions of those licenses.
|
||||
|
||||
1.13. “Source Code Form”
|
||||
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. “You” (or “Your”)
|
||||
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, “You” includes any entity that controls, is
|
||||
controlled by, or is under common control with You. For purposes of this
|
||||
definition, “control” means (a) the power, direct or indirect, to cause
|
||||
the direction or management of such entity, whether by contract or
|
||||
otherwise, or (b) ownership of more than fifty percent (50%) of the
|
||||
outstanding shares or beneficial ownership of such entity.
|
||||
|
||||
|
||||
2. License Grants and Conditions
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
a. under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or as
|
||||
part of a Larger Work; and
|
||||
|
||||
b. under Patent Claims of such Contributor to make, use, sell, offer for
|
||||
sale, have made, import, and otherwise transfer either its Contributions
|
||||
or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution become
|
||||
effective for each Contribution on the date the Contributor first distributes
|
||||
such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under this
|
||||
License. No additional rights or licenses will be implied from the distribution
|
||||
or licensing of Covered Software under this License. Notwithstanding Section
|
||||
2.1(b) above, no patent license is granted by a Contributor:
|
||||
|
||||
a. for any code that a Contributor has removed from Covered Software; or
|
||||
|
||||
b. for infringements caused by: (i) Your and any other third party’s
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
c. under Patent Claims infringed by Covered Software in the absence of its
|
||||
Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks, or
|
||||
logos of any Contributor (except as may be necessary to comply with the
|
||||
notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this License
|
||||
(see Section 10.2) or under the terms of a Secondary License (if permitted
|
||||
under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its Contributions
|
||||
are its original creation(s) or it has sufficient rights to grant the
|
||||
rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under applicable
|
||||
copyright doctrines of fair use, fair dealing, or other equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
|
||||
Section 2.1.
|
||||
|
||||
|
||||
3. Responsibilities
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under the
|
||||
terms of this License. You must inform recipients that the Source Code Form
|
||||
of the Covered Software is governed by the terms of this License, and how
|
||||
they can obtain a copy of this License. You may not attempt to alter or
|
||||
restrict the recipients’ rights in the Source Code Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
a. such Covered Software must also be made available in Source Code Form,
|
||||
as described in Section 3.1, and You must inform recipients of the
|
||||
Executable Form how they can obtain a copy of such Source Code Form by
|
||||
reasonable means in a timely manner, at a charge no more than the cost
|
||||
of distribution to the recipient; and
|
||||
|
||||
b. You may distribute such Executable Form under the terms of this License,
|
||||
or sublicense it under different terms, provided that the license for
|
||||
the Executable Form does not attempt to limit or alter the recipients’
|
||||
rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for the
|
||||
Covered Software. If the Larger Work is a combination of Covered Software
|
||||
with a work governed by one or more Secondary Licenses, and the Covered
|
||||
Software is not Incompatible With Secondary Licenses, this License permits
|
||||
You to additionally distribute such Covered Software under the terms of
|
||||
such Secondary License(s), so that the recipient of the Larger Work may, at
|
||||
their option, further distribute the Covered Software under the terms of
|
||||
either this License or such Secondary License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices (including
|
||||
copyright notices, patent notices, disclaimers of warranty, or limitations
|
||||
of liability) contained within the Source Code Form of the Covered
|
||||
Software, except that You may alter any license notices to the extent
|
||||
required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on behalf
|
||||
of any Contributor. You must make it absolutely clear that any such
|
||||
warranty, support, indemnity, or liability obligation is offered by You
|
||||
alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this License
|
||||
with respect to some or all of the Covered Software due to statute, judicial
|
||||
order, or regulation then You must: (a) comply with the terms of this License
|
||||
to the maximum extent possible; and (b) describe the limitations and the code
|
||||
they affect. Such description must be placed in a text file included with all
|
||||
distributions of the Covered Software under this License. Except to the
|
||||
extent prohibited by statute or regulation, such description must be
|
||||
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||
understand it.
|
||||
|
||||
5. Termination
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically if You
|
||||
fail to comply with any of its terms. However, if You become compliant,
|
||||
then the rights granted under this License from a particular Contributor
|
||||
are reinstated (a) provisionally, unless and until such Contributor
|
||||
explicitly and finally terminates Your grants, and (b) on an ongoing basis,
|
||||
if such Contributor fails to notify You of the non-compliance by some
|
||||
reasonable means prior to 60 days after You have come back into compliance.
|
||||
Moreover, Your grants from a particular Contributor are reinstated on an
|
||||
ongoing basis if such Contributor notifies You of the non-compliance by
|
||||
some reasonable means, this is the first time You have received notice of
|
||||
non-compliance with this License from such Contributor, and You become
|
||||
compliant prior to 30 days after Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions, counter-claims,
|
||||
and cross-claims) alleging that a Contributor Version directly or
|
||||
indirectly infringes any patent, then the rights granted to You by any and
|
||||
all Contributors for the Covered Software under Section 2.1 of this License
|
||||
shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
|
||||
license agreements (excluding distributors and resellers) which have been
|
||||
validly granted by You or Your distributors under this License prior to
|
||||
termination shall survive termination.
|
||||
|
||||
6. Disclaimer of Warranty
|
||||
|
||||
Covered Software is provided under this License on an “as is” basis, without
|
||||
warranty of any kind, either expressed, implied, or statutory, including,
|
||||
without limitation, warranties that the Covered Software is free of defects,
|
||||
merchantable, fit for a particular purpose or non-infringing. The entire
|
||||
risk as to the quality and performance of the Covered Software is with You.
|
||||
Should any Covered Software prove defective in any respect, You (not any
|
||||
Contributor) assume the cost of any necessary servicing, repair, or
|
||||
correction. This disclaimer of warranty constitutes an essential part of this
|
||||
License. No use of any Covered Software is authorized under this License
|
||||
except under this disclaimer.
|
||||
|
||||
7. Limitation of Liability
|
||||
|
||||
Under no circumstances and under no legal theory, whether tort (including
|
||||
negligence), contract, or otherwise, shall any Contributor, or anyone who
|
||||
distributes Covered Software as permitted above, be liable to You for any
|
||||
direct, indirect, special, incidental, or consequential damages of any
|
||||
character including, without limitation, damages for lost profits, loss of
|
||||
goodwill, work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses, even if such party shall have been
|
||||
informed of the possibility of such damages. This limitation of liability
|
||||
shall not apply to liability for death or personal injury resulting from such
|
||||
party’s negligence to the extent applicable law prohibits such limitation.
|
||||
Some jurisdictions do not allow the exclusion or limitation of incidental or
|
||||
consequential damages, so this exclusion and limitation may not apply to You.
|
||||
|
||||
8. Litigation
|
||||
|
||||
Any litigation relating to this License may be brought only in the courts of
|
||||
a jurisdiction where the defendant maintains its principal place of business
|
||||
and such litigation shall be governed by laws of that jurisdiction, without
|
||||
reference to its conflict-of-law provisions. Nothing in this Section shall
|
||||
prevent a party’s ability to bring cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
|
||||
This License represents the complete agreement concerning the subject matter
|
||||
hereof. If any provision of this License is held to be unenforceable, such
|
||||
provision shall be reformed only to the extent necessary to make it
|
||||
enforceable. Any law or regulation which provides that the language of a
|
||||
contract shall be construed against the drafter shall not be used to construe
|
||||
this License against a Contributor.
|
||||
|
||||
|
||||
10. Versions of the License
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version of
|
||||
the License under which You originally received the Covered Software, or
|
||||
under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a modified
|
||||
version of this License if you rename the license and remove any
|
||||
references to the name of the license steward (except to note that such
|
||||
modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
|
||||
This Source Code Form is subject to the
|
||||
terms of the Mozilla Public License, v.
|
||||
2.0. If a copy of the MPL was not
|
||||
distributed with this file, You can
|
||||
obtain one at
|
||||
http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular file, then
|
||||
You may include the notice in a location (such as a LICENSE file in a relevant
|
||||
directory) where a recipient would be likely to look for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - “Incompatible With Secondary Licenses” Notice
|
||||
|
||||
This Source Code Form is “Incompatible
|
||||
With Secondary Licenses”, as defined by
|
||||
the Mozilla Public License, v. 2.0.
|
||||
|
||||
745
sdk/dotnet/MariaDb.cs
generated
Normal file
745
sdk/dotnet/MariaDb.cs
generated
Normal file
@@ -0,0 +1,745 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/mariaDb:MariaDb")]
|
||||
public partial class MariaDb : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Output("appName")]
|
||||
public Output<string> AppName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Output("applicationStatus")]
|
||||
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
[Output("args")]
|
||||
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Output("command")]
|
||||
public Output<string?> Command { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Output("cpuLimit")]
|
||||
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Output("cpuReservation")]
|
||||
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Output("databaseName")]
|
||||
public Output<string> DatabaseName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
[Output("databasePassword")]
|
||||
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the MariaDB `Root` user.
|
||||
/// </summary>
|
||||
[Output("databaseRootPassword")]
|
||||
public Output<string> DatabaseRootPassword { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Output("databaseUser")]
|
||||
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Output("detachDokployNetwork")]
|
||||
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// MariaDB image to run, for example `mariadb:11`.
|
||||
/// </summary>
|
||||
[Output("dockerImage")]
|
||||
public Output<string> DockerImage { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("endpointSpecSwarm")]
|
||||
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string?> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Output("environmentId")]
|
||||
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Output("externalPort")]
|
||||
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("healthCheckSwarm")]
|
||||
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("labelsSwarm")]
|
||||
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Output("memoryLimit")]
|
||||
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Output("memoryReservation")]
|
||||
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("modeSwarm")]
|
||||
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
[Output("networkIds")]
|
||||
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Output("networkSwarm")]
|
||||
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("placementSwarm")]
|
||||
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Output("replicas")]
|
||||
public Output<int> Replicas { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("restartPolicySwarm")]
|
||||
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("rollbackConfigSwarm")]
|
||||
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Output("stopGracePeriodSwarm")]
|
||||
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("ulimitsSwarm")]
|
||||
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("updateConfigSwarm")]
|
||||
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a MariaDb resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public MariaDb(string name, MariaDbArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mariaDb:MariaDb", name, args ?? new MariaDbArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private MariaDb(string name, Input<string> id, MariaDbState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mariaDb:MariaDb", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"databasePassword",
|
||||
"databaseRootPassword",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing MariaDb resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static MariaDb Get(string name, Input<string> id, MariaDbState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new MariaDb(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class MariaDbArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Input("databaseName", required: true)]
|
||||
public Input<string> DatabaseName { get; set; } = null!;
|
||||
|
||||
[Input("databasePassword", required: true)]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
[Input("databaseRootPassword", required: true)]
|
||||
private Input<string>? _databaseRootPassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the MariaDB `Root` user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabaseRootPassword
|
||||
{
|
||||
get => _databaseRootPassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser", required: true)]
|
||||
public Input<string> DatabaseUser { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MariaDB image to run, for example `mariadb:11`.
|
||||
/// </summary>
|
||||
[Input("dockerImage", required: true)]
|
||||
public Input<string> DockerImage { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId", required: true)]
|
||||
public Input<string> EnvironmentId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public MariaDbArgs()
|
||||
{
|
||||
}
|
||||
public static new MariaDbArgs Empty => new MariaDbArgs();
|
||||
}
|
||||
|
||||
public sealed class MariaDbState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Input("applicationStatus")]
|
||||
public Input<string>? ApplicationStatus { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Input("databaseName")]
|
||||
public Input<string>? DatabaseName { get; set; }
|
||||
|
||||
[Input("databasePassword")]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
[Input("databaseRootPassword")]
|
||||
private Input<string>? _databaseRootPassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the MariaDB `Root` user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabaseRootPassword
|
||||
{
|
||||
get => _databaseRootPassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser")]
|
||||
public Input<string>? DatabaseUser { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MariaDB image to run, for example `mariadb:11`.
|
||||
/// </summary>
|
||||
[Input("dockerImage")]
|
||||
public Input<string>? DockerImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId")]
|
||||
public Input<string>? EnvironmentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public MariaDbState()
|
||||
{
|
||||
}
|
||||
public static new MariaDbState Empty => new MariaDbState();
|
||||
}
|
||||
}
|
||||
61
sdk/dotnet/Maxvojtkov.Dokploy.csproj
generated
Normal file
61
sdk/dotnet/Maxvojtkov.Dokploy.csproj
generated
Normal file
@@ -0,0 +1,61 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>maxvojtkov</Authors>
|
||||
<Company>maxvojtkov</Company>
|
||||
<Description>A Pulumi package for creating and managing Dokploy resources</Description>
|
||||
<PackageLicenseExpression>MPL-2.0</PackageLicenseExpression>
|
||||
<PackageProjectUrl>https://github.com/maxvojtkov/pulumi-dokploy</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/maxvojtkov/pulumi-dokploy</RepositoryUrl>
|
||||
<PackageIcon>logo.png</PackageIcon>
|
||||
<Version>0.1.0</Version>
|
||||
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<NoWarn>1701;1702;1591</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
|
||||
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="version.txt" />
|
||||
<None Include="version.txt" Pack="True" PackagePath="content" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="pulumi-plugin.json" />
|
||||
<None Include="pulumi-plugin.json" Pack="True" PackagePath="content" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Pulumi" Version="3.*" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="logo.png">
|
||||
<Pack>True</Pack>
|
||||
<PackagePath></PackagePath>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
706
sdk/dotnet/Mongo.cs
generated
Normal file
706
sdk/dotnet/Mongo.cs
generated
Normal file
@@ -0,0 +1,706 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/mongo:Mongo")]
|
||||
public partial class Mongo : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Output("appName")]
|
||||
public Output<string> AppName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Output("applicationStatus")]
|
||||
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
[Output("args")]
|
||||
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Output("command")]
|
||||
public Output<string?> Command { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Output("cpuLimit")]
|
||||
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Output("cpuReservation")]
|
||||
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the root user.
|
||||
/// </summary>
|
||||
[Output("databasePassword")]
|
||||
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Root username to create.
|
||||
/// </summary>
|
||||
[Output("databaseUser")]
|
||||
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Output("detachDokployNetwork")]
|
||||
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// MongoDB image to run. Defaults to `mongo:8`.
|
||||
/// </summary>
|
||||
[Output("dockerImage")]
|
||||
public Output<string> DockerImage { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("endpointSpecSwarm")]
|
||||
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string?> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Output("environmentId")]
|
||||
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Output("externalPort")]
|
||||
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("healthCheckSwarm")]
|
||||
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("labelsSwarm")]
|
||||
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Output("memoryLimit")]
|
||||
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Output("memoryReservation")]
|
||||
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("modeSwarm")]
|
||||
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
[Output("networkIds")]
|
||||
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Output("networkSwarm")]
|
||||
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("placementSwarm")]
|
||||
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Start the instance as a single-node replica set.
|
||||
/// </summary>
|
||||
[Output("replicaSets")]
|
||||
public Output<bool> ReplicaSets { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Output("replicas")]
|
||||
public Output<int> Replicas { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("restartPolicySwarm")]
|
||||
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("rollbackConfigSwarm")]
|
||||
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Output("stopGracePeriodSwarm")]
|
||||
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("ulimitsSwarm")]
|
||||
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("updateConfigSwarm")]
|
||||
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Mongo resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Mongo(string name, MongoArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mongo:Mongo", name, args ?? new MongoArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Mongo(string name, Input<string> id, MongoState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mongo:Mongo", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"databasePassword",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Mongo resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Mongo Get(string name, Input<string> id, MongoState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Mongo(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class MongoArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
[Input("databasePassword", required: true)]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the root user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Root username to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser", required: true)]
|
||||
public Input<string> DatabaseUser { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MongoDB image to run. Defaults to `mongo:8`.
|
||||
/// </summary>
|
||||
[Input("dockerImage")]
|
||||
public Input<string>? DockerImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId", required: true)]
|
||||
public Input<string> EnvironmentId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start the instance as a single-node replica set.
|
||||
/// </summary>
|
||||
[Input("replicaSets")]
|
||||
public Input<bool>? ReplicaSets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public MongoArgs()
|
||||
{
|
||||
}
|
||||
public static new MongoArgs Empty => new MongoArgs();
|
||||
}
|
||||
|
||||
public sealed class MongoState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Input("applicationStatus")]
|
||||
public Input<string>? ApplicationStatus { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
[Input("databasePassword")]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the root user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Root username to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser")]
|
||||
public Input<string>? DatabaseUser { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MongoDB image to run. Defaults to `mongo:8`.
|
||||
/// </summary>
|
||||
[Input("dockerImage")]
|
||||
public Input<string>? DockerImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId")]
|
||||
public Input<string>? EnvironmentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start the instance as a single-node replica set.
|
||||
/// </summary>
|
||||
[Input("replicaSets")]
|
||||
public Input<bool>? ReplicaSets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public MongoState()
|
||||
{
|
||||
}
|
||||
public static new MongoState Empty => new MongoState();
|
||||
}
|
||||
}
|
||||
220
sdk/dotnet/Mount.cs
generated
Normal file
220
sdk/dotnet/Mount.cs
generated
Normal file
@@ -0,0 +1,220 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/mount:Mount")]
|
||||
public partial class Mount : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Contents of the generated file, when `Type` is `File`.
|
||||
/// </summary>
|
||||
[Output("content")]
|
||||
public Output<string?> Content { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Path of the generated file, when `Type` is `File`.
|
||||
/// </summary>
|
||||
[Output("filePath")]
|
||||
public Output<string?> FilePath { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Path on the host, when `Type` is `Bind`.
|
||||
/// </summary>
|
||||
[Output("hostPath")]
|
||||
public Output<string?> HostPath { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Path inside the container where the mount appears.
|
||||
/// </summary>
|
||||
[Output("mountPath")]
|
||||
public Output<string> MountPath { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// ID of the service this mount attaches to. Must match `ServiceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
/// </summary>
|
||||
[Output("serviceId")]
|
||||
public Output<string> ServiceId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// The kind of service this mount attaches to. Valid values: `Application`, `Postgres`, `Mysql`, `Mariadb`, `Mongo`, `Redis`, `Compose`.
|
||||
/// </summary>
|
||||
[Output("serviceType")]
|
||||
public Output<string> ServiceType { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// The kind of mount to create. Valid values: `Bind`, `Volume`, `File`.
|
||||
/// </summary>
|
||||
[Output("type")]
|
||||
public Output<string> Type { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the Docker volume, when `Type` is `Volume`.
|
||||
/// </summary>
|
||||
[Output("volumeName")]
|
||||
public Output<string?> VolumeName { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Mount resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Mount(string name, MountArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mount:Mount", name, args ?? new MountArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Mount(string name, Input<string> id, MountState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mount:Mount", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Mount resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Mount Get(string name, Input<string> id, MountState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Mount(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class MountArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Contents of the generated file, when `Type` is `File`.
|
||||
/// </summary>
|
||||
[Input("content")]
|
||||
public Input<string>? Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path of the generated file, when `Type` is `File`.
|
||||
/// </summary>
|
||||
[Input("filePath")]
|
||||
public Input<string>? FilePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path on the host, when `Type` is `Bind`.
|
||||
/// </summary>
|
||||
[Input("hostPath")]
|
||||
public Input<string>? HostPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path inside the container where the mount appears.
|
||||
/// </summary>
|
||||
[Input("mountPath", required: true)]
|
||||
public Input<string> MountPath { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// ID of the service this mount attaches to. Must match `ServiceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
/// </summary>
|
||||
[Input("serviceId", required: true)]
|
||||
public Input<string> ServiceId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// The kind of service this mount attaches to. Valid values: `Application`, `Postgres`, `Mysql`, `Mariadb`, `Mongo`, `Redis`, `Compose`.
|
||||
/// </summary>
|
||||
[Input("serviceType", required: true)]
|
||||
public Input<string> ServiceType { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// The kind of mount to create. Valid values: `Bind`, `Volume`, `File`.
|
||||
/// </summary>
|
||||
[Input("type", required: true)]
|
||||
public Input<string> Type { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the Docker volume, when `Type` is `Volume`.
|
||||
/// </summary>
|
||||
[Input("volumeName")]
|
||||
public Input<string>? VolumeName { get; set; }
|
||||
|
||||
public MountArgs()
|
||||
{
|
||||
}
|
||||
public static new MountArgs Empty => new MountArgs();
|
||||
}
|
||||
|
||||
public sealed class MountState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Contents of the generated file, when `Type` is `File`.
|
||||
/// </summary>
|
||||
[Input("content")]
|
||||
public Input<string>? Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path of the generated file, when `Type` is `File`.
|
||||
/// </summary>
|
||||
[Input("filePath")]
|
||||
public Input<string>? FilePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path on the host, when `Type` is `Bind`.
|
||||
/// </summary>
|
||||
[Input("hostPath")]
|
||||
public Input<string>? HostPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path inside the container where the mount appears.
|
||||
/// </summary>
|
||||
[Input("mountPath")]
|
||||
public Input<string>? MountPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the service this mount attaches to. Must match `ServiceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
/// </summary>
|
||||
[Input("serviceId")]
|
||||
public Input<string>? ServiceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The kind of service this mount attaches to. Valid values: `Application`, `Postgres`, `Mysql`, `Mariadb`, `Mongo`, `Redis`, `Compose`.
|
||||
/// </summary>
|
||||
[Input("serviceType")]
|
||||
public Input<string>? ServiceType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The kind of mount to create. Valid values: `Bind`, `Volume`, `File`.
|
||||
/// </summary>
|
||||
[Input("type")]
|
||||
public Input<string>? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the Docker volume, when `Type` is `Volume`.
|
||||
/// </summary>
|
||||
[Input("volumeName")]
|
||||
public Input<string>? VolumeName { get; set; }
|
||||
|
||||
public MountState()
|
||||
{
|
||||
}
|
||||
public static new MountState Empty => new MountState();
|
||||
}
|
||||
}
|
||||
745
sdk/dotnet/MySql.cs
generated
Normal file
745
sdk/dotnet/MySql.cs
generated
Normal file
@@ -0,0 +1,745 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/mySql:MySql")]
|
||||
public partial class MySql : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Output("appName")]
|
||||
public Output<string> AppName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Output("applicationStatus")]
|
||||
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
[Output("args")]
|
||||
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Output("command")]
|
||||
public Output<string?> Command { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Output("cpuLimit")]
|
||||
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Output("cpuReservation")]
|
||||
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Output("databaseName")]
|
||||
public Output<string> DatabaseName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
[Output("databasePassword")]
|
||||
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the MySQL `Root` user.
|
||||
/// </summary>
|
||||
[Output("databaseRootPassword")]
|
||||
public Output<string> DatabaseRootPassword { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Output("databaseUser")]
|
||||
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Output("detachDokployNetwork")]
|
||||
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// MySQL image to run, for example `mysql:8`.
|
||||
/// </summary>
|
||||
[Output("dockerImage")]
|
||||
public Output<string> DockerImage { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("endpointSpecSwarm")]
|
||||
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string?> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Output("environmentId")]
|
||||
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Output("externalPort")]
|
||||
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("healthCheckSwarm")]
|
||||
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("labelsSwarm")]
|
||||
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Output("memoryLimit")]
|
||||
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Output("memoryReservation")]
|
||||
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("modeSwarm")]
|
||||
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
[Output("networkIds")]
|
||||
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Output("networkSwarm")]
|
||||
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("placementSwarm")]
|
||||
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Output("replicas")]
|
||||
public Output<int> Replicas { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("restartPolicySwarm")]
|
||||
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("rollbackConfigSwarm")]
|
||||
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Output("stopGracePeriodSwarm")]
|
||||
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("ulimitsSwarm")]
|
||||
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("updateConfigSwarm")]
|
||||
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a MySql resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public MySql(string name, MySqlArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mySql:MySql", name, args ?? new MySqlArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private MySql(string name, Input<string> id, MySqlState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/mySql:MySql", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"databasePassword",
|
||||
"databaseRootPassword",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing MySql resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static MySql Get(string name, Input<string> id, MySqlState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new MySql(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class MySqlArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Input("databaseName", required: true)]
|
||||
public Input<string> DatabaseName { get; set; } = null!;
|
||||
|
||||
[Input("databasePassword", required: true)]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
[Input("databaseRootPassword", required: true)]
|
||||
private Input<string>? _databaseRootPassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the MySQL `Root` user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabaseRootPassword
|
||||
{
|
||||
get => _databaseRootPassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser", required: true)]
|
||||
public Input<string> DatabaseUser { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MySQL image to run, for example `mysql:8`.
|
||||
/// </summary>
|
||||
[Input("dockerImage", required: true)]
|
||||
public Input<string> DockerImage { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId", required: true)]
|
||||
public Input<string> EnvironmentId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public MySqlArgs()
|
||||
{
|
||||
}
|
||||
public static new MySqlArgs Empty => new MySqlArgs();
|
||||
}
|
||||
|
||||
public sealed class MySqlState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Input("applicationStatus")]
|
||||
public Input<string>? ApplicationStatus { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Input("databaseName")]
|
||||
public Input<string>? DatabaseName { get; set; }
|
||||
|
||||
[Input("databasePassword")]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
[Input("databaseRootPassword")]
|
||||
private Input<string>? _databaseRootPassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the MySQL `Root` user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabaseRootPassword
|
||||
{
|
||||
get => _databaseRootPassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser")]
|
||||
public Input<string>? DatabaseUser { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MySQL image to run, for example `mysql:8`.
|
||||
/// </summary>
|
||||
[Input("dockerImage")]
|
||||
public Input<string>? DockerImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId")]
|
||||
public Input<string>? EnvironmentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public MySqlState()
|
||||
{
|
||||
}
|
||||
public static new MySqlState Empty => new MySqlState();
|
||||
}
|
||||
}
|
||||
34
sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs
generated
Normal file
34
sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs
generated
Normal file
@@ -0,0 +1,34 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy.Outputs
|
||||
{
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetProjectEnvironmentResult
|
||||
{
|
||||
public readonly string Id;
|
||||
public readonly bool IsDefault;
|
||||
public readonly string Name;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetProjectEnvironmentResult(
|
||||
string id,
|
||||
|
||||
bool isDefault,
|
||||
|
||||
string name)
|
||||
{
|
||||
Id = id;
|
||||
IsDefault = isDefault;
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
38
sdk/dotnet/Outputs/GetProjectsProjectResult.cs
generated
Normal file
38
sdk/dotnet/Outputs/GetProjectsProjectResult.cs
generated
Normal file
@@ -0,0 +1,38 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy.Outputs
|
||||
{
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetProjectsProjectResult
|
||||
{
|
||||
public readonly string DefaultEnvironmentId;
|
||||
public readonly string Description;
|
||||
public readonly string Id;
|
||||
public readonly string Name;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetProjectsProjectResult(
|
||||
string defaultEnvironmentId,
|
||||
|
||||
string description,
|
||||
|
||||
string id,
|
||||
|
||||
string name)
|
||||
{
|
||||
DefaultEnvironmentId = defaultEnvironmentId;
|
||||
Description = description;
|
||||
Id = id;
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
38
sdk/dotnet/Outputs/GetServersServerResult.cs
generated
Normal file
38
sdk/dotnet/Outputs/GetServersServerResult.cs
generated
Normal file
@@ -0,0 +1,38 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy.Outputs
|
||||
{
|
||||
|
||||
[OutputType]
|
||||
public sealed class GetServersServerResult
|
||||
{
|
||||
public readonly string Id;
|
||||
public readonly string IpAddress;
|
||||
public readonly string Name;
|
||||
public readonly string ServerStatus;
|
||||
|
||||
[OutputConstructor]
|
||||
private GetServersServerResult(
|
||||
string id,
|
||||
|
||||
string ipAddress,
|
||||
|
||||
string name,
|
||||
|
||||
string serverStatus)
|
||||
{
|
||||
Id = id;
|
||||
IpAddress = ipAddress;
|
||||
Name = name;
|
||||
ServerStatus = serverStatus;
|
||||
}
|
||||
}
|
||||
}
|
||||
166
sdk/dotnet/Port.cs
generated
Normal file
166
sdk/dotnet/Port.cs
generated
Normal file
@@ -0,0 +1,166 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/port:Port")]
|
||||
public partial class Port : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this port belongs to.
|
||||
/// </summary>
|
||||
[Output("applicationId")]
|
||||
public Output<string> ApplicationId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Transport protocol. Valid values: `Tcp`, `Udp`.
|
||||
/// </summary>
|
||||
[Output("protocol")]
|
||||
public Output<string> Protocol { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm publish mode. `Host` binds directly to the node; `Ingress` uses the swarm routing mesh. Valid values: `Ingress`, `Host`.
|
||||
/// </summary>
|
||||
[Output("publishMode")]
|
||||
public Output<string> PublishMode { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Port exposed on the host.
|
||||
/// </summary>
|
||||
[Output("publishedPort")]
|
||||
public Output<int> PublishedPort { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Port the container listens on.
|
||||
/// </summary>
|
||||
[Output("targetPort")]
|
||||
public Output<int> TargetPort { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Port resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Port(string name, PortArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/port:Port", name, args ?? new PortArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Port(string name, Input<string> id, PortState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/port:Port", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Port resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Port Get(string name, Input<string> id, PortState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Port(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PortArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this port belongs to.
|
||||
/// </summary>
|
||||
[Input("applicationId", required: true)]
|
||||
public Input<string> ApplicationId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Transport protocol. Valid values: `Tcp`, `Udp`.
|
||||
/// </summary>
|
||||
[Input("protocol", required: true)]
|
||||
public Input<string> Protocol { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm publish mode. `Host` binds directly to the node; `Ingress` uses the swarm routing mesh. Valid values: `Ingress`, `Host`.
|
||||
/// </summary>
|
||||
[Input("publishMode")]
|
||||
public Input<string>? PublishMode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Port exposed on the host.
|
||||
/// </summary>
|
||||
[Input("publishedPort", required: true)]
|
||||
public Input<int> PublishedPort { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Port the container listens on.
|
||||
/// </summary>
|
||||
[Input("targetPort", required: true)]
|
||||
public Input<int> TargetPort { get; set; } = null!;
|
||||
|
||||
public PortArgs()
|
||||
{
|
||||
}
|
||||
public static new PortArgs Empty => new PortArgs();
|
||||
}
|
||||
|
||||
public sealed class PortState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this port belongs to.
|
||||
/// </summary>
|
||||
[Input("applicationId")]
|
||||
public Input<string>? ApplicationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Transport protocol. Valid values: `Tcp`, `Udp`.
|
||||
/// </summary>
|
||||
[Input("protocol")]
|
||||
public Input<string>? Protocol { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm publish mode. `Host` binds directly to the node; `Ingress` uses the swarm routing mesh. Valid values: `Ingress`, `Host`.
|
||||
/// </summary>
|
||||
[Input("publishMode")]
|
||||
public Input<string>? PublishMode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Port exposed on the host.
|
||||
/// </summary>
|
||||
[Input("publishedPort")]
|
||||
public Input<int>? PublishedPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Port the container listens on.
|
||||
/// </summary>
|
||||
[Input("targetPort")]
|
||||
public Input<int>? TargetPort { get; set; }
|
||||
|
||||
public PortState()
|
||||
{
|
||||
}
|
||||
public static new PortState Empty => new PortState();
|
||||
}
|
||||
}
|
||||
706
sdk/dotnet/Postgres.cs
generated
Normal file
706
sdk/dotnet/Postgres.cs
generated
Normal file
@@ -0,0 +1,706 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/postgres:Postgres")]
|
||||
public partial class Postgres : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Output("appName")]
|
||||
public Output<string> AppName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Output("applicationStatus")]
|
||||
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
[Output("args")]
|
||||
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Output("command")]
|
||||
public Output<string?> Command { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Output("cpuLimit")]
|
||||
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Output("cpuReservation")]
|
||||
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Output("databaseName")]
|
||||
public Output<string> DatabaseName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
[Output("databasePassword")]
|
||||
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Output("databaseUser")]
|
||||
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Output("detachDokployNetwork")]
|
||||
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// PostgreSQL image to run, for example `postgres:16`.
|
||||
/// </summary>
|
||||
[Output("dockerImage")]
|
||||
public Output<string> DockerImage { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("endpointSpecSwarm")]
|
||||
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string?> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Output("environmentId")]
|
||||
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Output("externalPort")]
|
||||
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("healthCheckSwarm")]
|
||||
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("labelsSwarm")]
|
||||
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Output("memoryLimit")]
|
||||
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Output("memoryReservation")]
|
||||
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("modeSwarm")]
|
||||
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
[Output("networkIds")]
|
||||
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Output("networkSwarm")]
|
||||
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("placementSwarm")]
|
||||
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Output("replicas")]
|
||||
public Output<int> Replicas { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("restartPolicySwarm")]
|
||||
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("rollbackConfigSwarm")]
|
||||
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Output("stopGracePeriodSwarm")]
|
||||
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("ulimitsSwarm")]
|
||||
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("updateConfigSwarm")]
|
||||
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Postgres resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Postgres(string name, PostgresArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/postgres:Postgres", name, args ?? new PostgresArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Postgres(string name, Input<string> id, PostgresState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/postgres:Postgres", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"databasePassword",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Postgres resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Postgres Get(string name, Input<string> id, PostgresState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Postgres(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PostgresArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Input("databaseName", required: true)]
|
||||
public Input<string> DatabaseName { get; set; } = null!;
|
||||
|
||||
[Input("databasePassword", required: true)]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser", required: true)]
|
||||
public Input<string> DatabaseUser { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PostgreSQL image to run, for example `postgres:16`.
|
||||
/// </summary>
|
||||
[Input("dockerImage", required: true)]
|
||||
public Input<string> DockerImage { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId", required: true)]
|
||||
public Input<string> EnvironmentId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public PostgresArgs()
|
||||
{
|
||||
}
|
||||
public static new PostgresArgs Empty => new PostgresArgs();
|
||||
}
|
||||
|
||||
public sealed class PostgresState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Input("applicationStatus")]
|
||||
public Input<string>? ApplicationStatus { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the database to create.
|
||||
/// </summary>
|
||||
[Input("databaseName")]
|
||||
public Input<string>? DatabaseName { get; set; }
|
||||
|
||||
[Input("databasePassword")]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password for the database user.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database user to create.
|
||||
/// </summary>
|
||||
[Input("databaseUser")]
|
||||
public Input<string>? DatabaseUser { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PostgreSQL image to run, for example `postgres:16`.
|
||||
/// </summary>
|
||||
[Input("dockerImage")]
|
||||
public Input<string>? DockerImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId")]
|
||||
public Input<string>? EnvironmentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public PostgresState()
|
||||
{
|
||||
}
|
||||
public static new PostgresState Empty => new PostgresState();
|
||||
}
|
||||
}
|
||||
166
sdk/dotnet/Project.cs
generated
Normal file
166
sdk/dotnet/Project.cs
generated
Normal file
@@ -0,0 +1,166 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/project:Project")]
|
||||
public partial class Project : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the project was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// ID of the `Production` environment that Dokploy creates automatically with the project.
|
||||
/// </summary>
|
||||
[Output("defaultEnvironmentId")]
|
||||
public Output<string> DefaultEnvironmentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the project.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Organization that owns the project.
|
||||
/// </summary>
|
||||
[Output("organizationId")]
|
||||
public Output<string> OrganizationId { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Project resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Project(string name, ProjectArgs? args = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/project:Project", name, args ?? new ProjectArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Project(string name, Input<string> id, ProjectState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/project:Project", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Project resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Project Get(string name, Input<string> id, ProjectState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Project(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ProjectArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the project.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
public ProjectArgs()
|
||||
{
|
||||
}
|
||||
public static new ProjectArgs Empty => new ProjectArgs();
|
||||
}
|
||||
|
||||
public sealed class ProjectState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the project was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the `Production` environment that Dokploy creates automatically with the project.
|
||||
/// </summary>
|
||||
[Input("defaultEnvironmentId")]
|
||||
public Input<string>? DefaultEnvironmentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the project.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Organization that owns the project.
|
||||
/// </summary>
|
||||
[Input("organizationId")]
|
||||
public Input<string>? OrganizationId { get; set; }
|
||||
|
||||
public ProjectState()
|
||||
{
|
||||
}
|
||||
public static new ProjectState Empty => new ProjectState();
|
||||
}
|
||||
}
|
||||
130
sdk/dotnet/Provider.cs
generated
Normal file
130
sdk/dotnet/Provider.cs
generated
Normal file
@@ -0,0 +1,130 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
[DokployResourceType("pulumi:providers:dokploy")]
|
||||
public partial class Provider : global::Pulumi.ProviderResource
|
||||
{
|
||||
/// <summary>
|
||||
/// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||
/// </summary>
|
||||
[Output("apiKey")]
|
||||
public Output<string?> ApiKey { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
[Output("host")]
|
||||
public Output<string?> Host { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Provider resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Provider(string name, ProviderArgs? args = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy", name, args ?? new ProviderArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"apiKey",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.
|
||||
/// </summary>
|
||||
public global::Pulumi.Output<ProviderTerraformConfigResult> TerraformConfig()
|
||||
=> global::Pulumi.Deployment.Instance.Call<ProviderTerraformConfigResult>("pulumi:providers:dokploy/terraformConfig", CallArgs.Empty, this);
|
||||
}
|
||||
|
||||
public sealed class ProviderArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
[Input("apiKey")]
|
||||
private Input<string>? _apiKey;
|
||||
|
||||
/// <summary>
|
||||
/// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||
/// </summary>
|
||||
public Input<string>? ApiKey
|
||||
{
|
||||
get => _apiKey;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_apiKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
[Input("host")]
|
||||
public Input<string>? Host { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `False`.
|
||||
/// </summary>
|
||||
[Input("insecureSkipVerify", json: true)]
|
||||
public Input<bool>? InsecureSkipVerify { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
|
||||
/// </summary>
|
||||
[Input("timeoutSeconds", json: true)]
|
||||
public Input<int>? TimeoutSeconds { get; set; }
|
||||
|
||||
public ProviderArgs()
|
||||
{
|
||||
ApiKey = Utilities.GetEnv("DOKPLOY_API_KEY");
|
||||
Host = Utilities.GetEnv("DOKPLOY_HOST");
|
||||
TimeoutSeconds = Utilities.GetEnvInt32("DOKPLOY_TIMEOUT_SECONDS");
|
||||
}
|
||||
public static new ProviderArgs Empty => new ProviderArgs();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The results of the <see cref="Provider.TerraformConfig"/> method.
|
||||
/// </summary>
|
||||
[OutputType]
|
||||
public sealed class ProviderTerraformConfigResult
|
||||
{
|
||||
public readonly ImmutableDictionary<string, object> Result;
|
||||
|
||||
[OutputConstructor]
|
||||
private ProviderTerraformConfigResult(ImmutableDictionary<string, object> result)
|
||||
{
|
||||
Result = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
3
sdk/dotnet/Pulumi.yaml
generated
Normal file
3
sdk/dotnet/Pulumi.yaml
generated
Normal file
@@ -0,0 +1,3 @@
|
||||
name: dokploy
|
||||
description: A Pulumi resource provider for dokploy.
|
||||
language: dotnet
|
||||
206
sdk/dotnet/README.md
generated
Normal file
206
sdk/dotnet/README.md
generated
Normal file
@@ -0,0 +1,206 @@
|
||||
# pulumi-dokploy
|
||||
|
||||
A Pulumi provider for [Dokploy](https://dokploy.com): projects, environments,
|
||||
applications, Compose stacks, managed databases, domains, mounts, ports,
|
||||
redirects, basic auth, registries, SSH keys, certificates and backup
|
||||
destinations.
|
||||
|
||||
This is a *bridged* provider. All of the behaviour lives in
|
||||
[`terraform-provider-dokploy`](https://github.com/maxvojtkov/terraform-provider-dokploy);
|
||||
[`pulumi-terraform-bridge`](https://github.com/pulumi/pulumi-terraform-bridge)
|
||||
turns it into a Pulumi package with typed SDKs for TypeScript, Python, Go and
|
||||
.NET. The two providers stay in lockstep — a resource added upstream shows up
|
||||
here after a `make tfgen`.
|
||||
|
||||
```ts
|
||||
import * as dokploy from "@maxvojtkov/pulumi-dokploy";
|
||||
|
||||
const shop = new dokploy.Project("shop", { name: "shop" });
|
||||
|
||||
const db = new dokploy.Postgres("db", {
|
||||
name: "shop-db",
|
||||
environmentId: shop.defaultEnvironmentId,
|
||||
dockerImage: "postgres:16-alpine",
|
||||
databaseName: "shop",
|
||||
databaseUser: "shop",
|
||||
databasePassword: dbPassword,
|
||||
});
|
||||
|
||||
const api = new dokploy.Application("api", {
|
||||
name: "api",
|
||||
environmentId: shop.defaultEnvironmentId,
|
||||
sourceType: "docker",
|
||||
dockerImage: "ghcr.io/acme/api:1.4.0",
|
||||
env: pulumi.interpolate`DATABASE_URL=postgresql://shop:${dbPassword}@${db.appName}:5432/shop`,
|
||||
});
|
||||
|
||||
new dokploy.Domain("api", {
|
||||
applicationId: api.id,
|
||||
domainType: "application",
|
||||
host: "api.example.com",
|
||||
port: 3000,
|
||||
https: true,
|
||||
certificateType: "letsencrypt",
|
||||
});
|
||||
```
|
||||
|
||||
## Contents
|
||||
|
||||
- [Installing](#installing)
|
||||
- [Configuration](#configuration)
|
||||
- [Resources and data sources](#resources-and-data-sources)
|
||||
- [Differences from the Terraform provider](#differences-from-the-terraform-provider)
|
||||
- [Examples](#examples)
|
||||
- [Development](#development)
|
||||
- [Releasing](#releasing)
|
||||
|
||||
## Installing
|
||||
|
||||
The SDKs are published per language; the plugin binary is resolved
|
||||
automatically from this repository's GitHub releases.
|
||||
|
||||
```bash
|
||||
# TypeScript / JavaScript
|
||||
npm install @maxvojtkov/pulumi-dokploy
|
||||
|
||||
# Python
|
||||
pip install pulumi_dokploy
|
||||
|
||||
# Go
|
||||
go get github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy
|
||||
|
||||
# .NET
|
||||
dotnet add package Maxvojtkov.Dokploy
|
||||
```
|
||||
|
||||
Before the first release, build and install it locally instead:
|
||||
|
||||
```bash
|
||||
make install VERSION=0.1.0
|
||||
```
|
||||
|
||||
That drops `pulumi-resource-dokploy` into the local plugin cache, so
|
||||
`pulumi up` finds it without a network fetch.
|
||||
|
||||
### Do I need the static SDK?
|
||||
|
||||
Not necessarily. Pulumi can consume the Terraform provider directly, with no
|
||||
build step and no published SDK:
|
||||
|
||||
```bash
|
||||
pulumi package add terraform-provider maxvojtkov/dokploy
|
||||
```
|
||||
|
||||
That generates a local SDK on the spot and is the fastest way to try things.
|
||||
Use this repository when you want a *versioned, published* package — stable
|
||||
tokens across releases, real package-manager installs, and SDKs your teammates
|
||||
can depend on without a codegen step.
|
||||
|
||||
## Configuration
|
||||
|
||||
| Setting | Environment variable | Required | Description |
|
||||
| ---------------------- | ------------------------- | -------- | --------------------------------------------------------------------------- |
|
||||
| `dokploy:host` | `DOKPLOY_HOST` | yes | Base URL of the instance, e.g. `https://dokploy.example.com`. Trailing `/api` optional. |
|
||||
| `dokploy:apiKey` | `DOKPLOY_API_KEY` | yes | Token from *Settings → Profile → API/CLI*. Always treated as a secret. |
|
||||
| `dokploy:timeoutSeconds` | `DOKPLOY_TIMEOUT_SECONDS` | no | Per-request timeout. Defaults to `60`. |
|
||||
| `dokploy:insecureSkipVerify` | — | no | Skip TLS verification. Only for self-signed certificates. |
|
||||
|
||||
```bash
|
||||
pulumi config set dokploy:host https://dokploy.example.com
|
||||
pulumi config set --secret dokploy:apiKey "$DOKPLOY_API_KEY"
|
||||
```
|
||||
|
||||
## Resources and data sources
|
||||
|
||||
| Group | Resources |
|
||||
| ------------ | ------------------------------------------------------------------------- |
|
||||
| Structure | `Project`, `Environment` |
|
||||
| Services | `Application`, `Compose` |
|
||||
| Databases | `Postgres`, `MySql`, `MariaDb`, `Mongo`, `Redis` |
|
||||
| Networking | `Domain`, `Mount`, `Port`, `Redirect`, `Security` |
|
||||
| Account | `Registry`, `SshKey`, `Certificate`, `Destination` |
|
||||
|
||||
Data sources: `getProject`, `getProjects`, `getEnvironment`, `getApplication`,
|
||||
`getServers`.
|
||||
|
||||
## Differences from the Terraform provider
|
||||
|
||||
Everything is a mechanical translation of the Terraform provider, with three
|
||||
Pulumi conventions applied on top:
|
||||
|
||||
- **Attribute names are camelCase.** `environment_id` → `environmentId`,
|
||||
`default_environment_id` → `defaultEnvironmentId`, and so on.
|
||||
- **`name` is auto-generated when you omit it.** Pulumi appends a random
|
||||
suffix to the logical resource name, the same way the AWS provider does. Pass
|
||||
`name` explicitly whenever the Dokploy-side name matters to you.
|
||||
- **The `web-service` Terraform module has no direct equivalent.** Write it as
|
||||
a [ComponentResource](https://www.pulumi.com/docs/concepts/resources/components/)
|
||||
instead — see [`examples/typescript/webService.ts`](examples/typescript/webService.ts),
|
||||
which is a port of that module.
|
||||
|
||||
The [known API quirks](https://github.com/maxvojtkov/terraform-provider-dokploy#known-api-quirks)
|
||||
documented upstream apply here unchanged, because it is the same code doing the
|
||||
work.
|
||||
|
||||
## Examples
|
||||
|
||||
- [`examples/typescript`](examples/typescript) — a full environment: project,
|
||||
staging environment, Postgres, Redis, a GitHub-built web service behind a
|
||||
domain, a basic-auth-protected internal tool, and a Compose stack.
|
||||
- [`examples/python`](examples/python) — a small project, database and app.
|
||||
|
||||
## Development
|
||||
|
||||
Requirements: Go 1.25+, Node 20+, Python 3.9+, .NET 8+, and `pulumi`.
|
||||
|
||||
```bash
|
||||
make tfgen # regenerate schema.json and bridge-metadata.json
|
||||
make provider # build the plugin binary into bin/
|
||||
make build_sdks # regenerate all four SDKs
|
||||
make install # install the plugin into the local Pulumi plugin cache
|
||||
make lint test
|
||||
```
|
||||
|
||||
`provider/resources.go` is the whole mapping layer: Terraform type names to
|
||||
Pulumi tokens, and Terraform provider configuration to Pulumi configuration.
|
||||
Adding an upstream resource means adding one line there and re-running
|
||||
`make tfgen build_sdks`.
|
||||
|
||||
### The upstream dependency
|
||||
|
||||
`provider/go.mod` currently carries:
|
||||
|
||||
```
|
||||
replace github.com/maxvojtkov/terraform-provider-dokploy => ../../dokploy-teraform
|
||||
```
|
||||
|
||||
so the two repositories can be developed side by side. CI reproduces that
|
||||
layout by checking the upstream provider out as a sibling directory. Once
|
||||
`terraform-provider-dokploy` is tagged on GitHub, drop the `replace` and pin a
|
||||
real version instead:
|
||||
|
||||
```bash
|
||||
cd provider && go mod edit -dropreplace github.com/maxvojtkov/terraform-provider-dokploy \
|
||||
&& go get github.com/maxvojtkov/terraform-provider-dokploy@v0.1.0
|
||||
```
|
||||
|
||||
The upstream provider exposes itself through its `shim` package
|
||||
(`shim.NewProvider(version)`), because `internal/provider` is not importable
|
||||
from outside that module.
|
||||
|
||||
## Releasing
|
||||
|
||||
Tag the repository and the `release` workflow does the rest:
|
||||
|
||||
```bash
|
||||
git tag v0.1.0 && git push origin v0.1.0
|
||||
```
|
||||
|
||||
It publishes plugin binaries to a GitHub release via GoReleaser, pushes the
|
||||
npm / PyPI / NuGet packages, and commits and tags the Go SDK as `sdk/v0.1.0`.
|
||||
The workflow needs three repository secrets: `NPM_TOKEN`, `PYPI_API_TOKEN` and
|
||||
`NUGET_PUBLISH_KEY`.
|
||||
|
||||
## License
|
||||
|
||||
[MPL-2.0](LICENSE).
|
||||
160
sdk/dotnet/Redirect.cs
generated
Normal file
160
sdk/dotnet/Redirect.cs
generated
Normal file
@@ -0,0 +1,160 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/redirect:Redirect")]
|
||||
public partial class Redirect : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this redirect belongs to.
|
||||
/// </summary>
|
||||
[Output("applicationId")]
|
||||
public Output<string> ApplicationId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the redirect was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||
/// </summary>
|
||||
[Output("permanent")]
|
||||
public Output<bool> Permanent { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Regular expression matched against the incoming URL.
|
||||
/// </summary>
|
||||
[Output("regex")]
|
||||
public Output<string> Regex { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Replacement URL, which may reference capture groups such as `${1}`.
|
||||
/// </summary>
|
||||
[Output("replacement")]
|
||||
public Output<string> Replacement { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Redirect resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Redirect(string name, RedirectArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/redirect:Redirect", name, args ?? new RedirectArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Redirect(string name, Input<string> id, RedirectState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/redirect:Redirect", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Redirect resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Redirect Get(string name, Input<string> id, RedirectState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Redirect(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class RedirectArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this redirect belongs to.
|
||||
/// </summary>
|
||||
[Input("applicationId", required: true)]
|
||||
public Input<string> ApplicationId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||
/// </summary>
|
||||
[Input("permanent")]
|
||||
public Input<bool>? Permanent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Regular expression matched against the incoming URL.
|
||||
/// </summary>
|
||||
[Input("regex", required: true)]
|
||||
public Input<string> Regex { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Replacement URL, which may reference capture groups such as `${1}`.
|
||||
/// </summary>
|
||||
[Input("replacement", required: true)]
|
||||
public Input<string> Replacement { get; set; } = null!;
|
||||
|
||||
public RedirectArgs()
|
||||
{
|
||||
}
|
||||
public static new RedirectArgs Empty => new RedirectArgs();
|
||||
}
|
||||
|
||||
public sealed class RedirectState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application this redirect belongs to.
|
||||
/// </summary>
|
||||
[Input("applicationId")]
|
||||
public Input<string>? ApplicationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the redirect was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||
/// </summary>
|
||||
[Input("permanent")]
|
||||
public Input<bool>? Permanent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Regular expression matched against the incoming URL.
|
||||
/// </summary>
|
||||
[Input("regex")]
|
||||
public Input<string>? Regex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Replacement URL, which may reference capture groups such as `${1}`.
|
||||
/// </summary>
|
||||
[Input("replacement")]
|
||||
public Input<string>? Replacement { get; set; }
|
||||
|
||||
public RedirectState()
|
||||
{
|
||||
}
|
||||
public static new RedirectState Empty => new RedirectState();
|
||||
}
|
||||
}
|
||||
670
sdk/dotnet/Redis.cs
generated
Normal file
670
sdk/dotnet/Redis.cs
generated
Normal file
@@ -0,0 +1,670 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/redis:Redis")]
|
||||
public partial class Redis : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Output("appName")]
|
||||
public Output<string> AppName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Output("applicationStatus")]
|
||||
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
[Output("args")]
|
||||
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Output("command")]
|
||||
public Output<string?> Command { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Output("cpuLimit")]
|
||||
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Output("cpuReservation")]
|
||||
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password used to authenticate to Redis.
|
||||
/// </summary>
|
||||
[Output("databasePassword")]
|
||||
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Output("detachDokployNetwork")]
|
||||
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Redis image to run, for example `redis:7`.
|
||||
/// </summary>
|
||||
[Output("dockerImage")]
|
||||
public Output<string> DockerImage { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("endpointSpecSwarm")]
|
||||
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Output("env")]
|
||||
public Output<string?> Env { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Output("environmentId")]
|
||||
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Output("externalPort")]
|
||||
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("healthCheckSwarm")]
|
||||
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("labelsSwarm")]
|
||||
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Output("memoryLimit")]
|
||||
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Output("memoryReservation")]
|
||||
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("modeSwarm")]
|
||||
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
[Output("networkIds")]
|
||||
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Output("networkSwarm")]
|
||||
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("placementSwarm")]
|
||||
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Output("replicas")]
|
||||
public Output<int> Replicas { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("restartPolicySwarm")]
|
||||
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("rollbackConfigSwarm")]
|
||||
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Output("stopGracePeriodSwarm")]
|
||||
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("ulimitsSwarm")]
|
||||
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Output("updateConfigSwarm")]
|
||||
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Redis resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Redis(string name, RedisArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/redis:Redis", name, args ?? new RedisArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Redis(string name, Input<string> id, RedisState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/redis:Redis", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"databasePassword",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Redis resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Redis Get(string name, Input<string> id, RedisState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Redis(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class RedisArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
[Input("databasePassword", required: true)]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password used to authenticate to Redis.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Redis image to run, for example `redis:7`.
|
||||
/// </summary>
|
||||
[Input("dockerImage", required: true)]
|
||||
public Input<string> DockerImage { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId", required: true)]
|
||||
public Input<string> EnvironmentId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public RedisArgs()
|
||||
{
|
||||
}
|
||||
public static new RedisArgs Empty => new RedisArgs();
|
||||
}
|
||||
|
||||
public sealed class RedisState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||
/// </summary>
|
||||
[Input("appName")]
|
||||
public Input<string>? AppName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||
/// </summary>
|
||||
[Input("applicationStatus")]
|
||||
public Input<string>? ApplicationStatus { get; set; }
|
||||
|
||||
[Input("args")]
|
||||
private InputList<string>? _args;
|
||||
|
||||
/// <summary>
|
||||
/// Arguments appended to the container command.
|
||||
/// </summary>
|
||||
public InputList<string> Args
|
||||
{
|
||||
get => _args ?? (_args = new InputList<string>());
|
||||
set => _args = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the container entrypoint command.
|
||||
/// </summary>
|
||||
[Input("command")]
|
||||
public Input<string>? Command { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard CPU limit, for example `1`.
|
||||
/// </summary>
|
||||
[Input("cpuLimit")]
|
||||
public Input<string>? CpuLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft CPU reservation, for example `0.5`.
|
||||
/// </summary>
|
||||
[Input("cpuReservation")]
|
||||
public Input<string>? CpuReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the database was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
[Input("databasePassword")]
|
||||
private Input<string>? _databasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// Password used to authenticate to Redis.
|
||||
/// </summary>
|
||||
public Input<string>? DatabasePassword
|
||||
{
|
||||
get => _databasePassword;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Detach the service from the shared `dokploy-network`.
|
||||
/// </summary>
|
||||
[Input("detachDokployNetwork")]
|
||||
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Redis image to run, for example `redis:7`.
|
||||
/// </summary>
|
||||
[Input("dockerImage")]
|
||||
public Input<string>? DockerImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm endpoint specification, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("endpointSpecSwarm")]
|
||||
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment variables in `KEY=value` format, one per line.
|
||||
/// </summary>
|
||||
[Input("env")]
|
||||
public Input<string>? Env { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Environment this database belongs to.
|
||||
/// </summary>
|
||||
[Input("environmentId")]
|
||||
public Input<string>? EnvironmentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||
/// </summary>
|
||||
[Input("externalPort")]
|
||||
public Input<int>? ExternalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm health check configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("healthCheckSwarm")]
|
||||
public Input<string>? HealthCheckSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service labels, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("labelsSwarm")]
|
||||
public Input<string>? LabelsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hard memory limit, for example `512m`.
|
||||
/// </summary>
|
||||
[Input("memoryLimit")]
|
||||
public Input<string>? MemoryLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Soft memory reservation, for example `256m`.
|
||||
/// </summary>
|
||||
[Input("memoryReservation")]
|
||||
public Input<string>? MemoryReservation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm service mode, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("modeSwarm")]
|
||||
public Input<string>? ModeSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the database.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("networkIds")]
|
||||
private InputList<string>? _networkIds;
|
||||
|
||||
/// <summary>
|
||||
/// IDs of additional Docker networks to attach.
|
||||
/// </summary>
|
||||
public InputList<string> NetworkIds
|
||||
{
|
||||
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||
set => _networkIds = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm network attachments, as a JSON array.
|
||||
/// </summary>
|
||||
[Input("networkSwarm")]
|
||||
public Input<string>? NetworkSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm placement constraints, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("placementSwarm")]
|
||||
public Input<string>? PlacementSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of replicas to run.
|
||||
/// </summary>
|
||||
[Input("replicas")]
|
||||
public Input<int>? Replicas { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm restart policy, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("restartPolicySwarm")]
|
||||
public Input<string>? RestartPolicySwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rollback configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("rollbackConfigSwarm")]
|
||||
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grace period in nanoseconds before a container is killed.
|
||||
/// </summary>
|
||||
[Input("stopGracePeriodSwarm")]
|
||||
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm ulimits, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("ulimitsSwarm")]
|
||||
public Input<string>? UlimitsSwarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||
/// </summary>
|
||||
[Input("updateConfigSwarm")]
|
||||
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||
|
||||
public RedisState()
|
||||
{
|
||||
}
|
||||
public static new RedisState Empty => new RedisState();
|
||||
}
|
||||
}
|
||||
238
sdk/dotnet/Registry.cs
generated
Normal file
238
sdk/dotnet/Registry.cs
generated
Normal file
@@ -0,0 +1,238 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/registry:Registry")]
|
||||
public partial class Registry : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the registry was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||
/// </summary>
|
||||
[Output("imagePrefix")]
|
||||
public Output<string?> ImagePrefix { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Password or access token used to authenticate.
|
||||
/// </summary>
|
||||
[Output("password")]
|
||||
public Output<string> Password { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the registry.
|
||||
/// </summary>
|
||||
[Output("registryName")]
|
||||
public Output<string> RegistryName { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Registry kind. Dokploy currently accepts only `Cloud`. Valid values: `Cloud`. Defaults to `Cloud`.
|
||||
/// </summary>
|
||||
[Output("registryType")]
|
||||
public Output<string> RegistryType { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Registry hostname, for example `ghcr.io`.
|
||||
/// </summary>
|
||||
[Output("registryUrl")]
|
||||
public Output<string> RegistryUrl { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Server this registry is scoped to.
|
||||
/// </summary>
|
||||
[Output("serverId")]
|
||||
public Output<string?> ServerId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Username used to authenticate to the registry.
|
||||
/// </summary>
|
||||
[Output("username")]
|
||||
public Output<string> Username { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Registry resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Registry(string name, RegistryArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/registry:Registry", name, args ?? new RegistryArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Registry(string name, Input<string> id, RegistryState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/registry:Registry", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"password",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Registry resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Registry Get(string name, Input<string> id, RegistryState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Registry(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class RegistryArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||
/// </summary>
|
||||
[Input("imagePrefix")]
|
||||
public Input<string>? ImagePrefix { get; set; }
|
||||
|
||||
[Input("password", required: true)]
|
||||
private Input<string>? _password;
|
||||
|
||||
/// <summary>
|
||||
/// Password or access token used to authenticate.
|
||||
/// </summary>
|
||||
public Input<string>? Password
|
||||
{
|
||||
get => _password;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the registry.
|
||||
/// </summary>
|
||||
[Input("registryName", required: true)]
|
||||
public Input<string> RegistryName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Registry kind. Dokploy currently accepts only `Cloud`. Valid values: `Cloud`. Defaults to `Cloud`.
|
||||
/// </summary>
|
||||
[Input("registryType")]
|
||||
public Input<string>? RegistryType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Registry hostname, for example `ghcr.io`.
|
||||
/// </summary>
|
||||
[Input("registryUrl", required: true)]
|
||||
public Input<string> RegistryUrl { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Server this registry is scoped to.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Username used to authenticate to the registry.
|
||||
/// </summary>
|
||||
[Input("username", required: true)]
|
||||
public Input<string> Username { get; set; } = null!;
|
||||
|
||||
public RegistryArgs()
|
||||
{
|
||||
}
|
||||
public static new RegistryArgs Empty => new RegistryArgs();
|
||||
}
|
||||
|
||||
public sealed class RegistryState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the registry was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||
/// </summary>
|
||||
[Input("imagePrefix")]
|
||||
public Input<string>? ImagePrefix { get; set; }
|
||||
|
||||
[Input("password")]
|
||||
private Input<string>? _password;
|
||||
|
||||
/// <summary>
|
||||
/// Password or access token used to authenticate.
|
||||
/// </summary>
|
||||
public Input<string>? Password
|
||||
{
|
||||
get => _password;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the registry.
|
||||
/// </summary>
|
||||
[Input("registryName")]
|
||||
public Input<string>? RegistryName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Registry kind. Dokploy currently accepts only `Cloud`. Valid values: `Cloud`. Defaults to `Cloud`.
|
||||
/// </summary>
|
||||
[Input("registryType")]
|
||||
public Input<string>? RegistryType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Registry hostname, for example `ghcr.io`.
|
||||
/// </summary>
|
||||
[Input("registryUrl")]
|
||||
public Input<string>? RegistryUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Server this registry is scoped to.
|
||||
/// </summary>
|
||||
[Input("serverId")]
|
||||
public Input<string>? ServerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Username used to authenticate to the registry.
|
||||
/// </summary>
|
||||
[Input("username")]
|
||||
public Input<string>? Username { get; set; }
|
||||
|
||||
public RegistryState()
|
||||
{
|
||||
}
|
||||
public static new RegistryState Empty => new RegistryState();
|
||||
}
|
||||
}
|
||||
166
sdk/dotnet/Security.cs
generated
Normal file
166
sdk/dotnet/Security.cs
generated
Normal file
@@ -0,0 +1,166 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/security:Security")]
|
||||
public partial class Security : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// Application these credentials protect.
|
||||
/// </summary>
|
||||
[Output("applicationId")]
|
||||
public Output<string> ApplicationId { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the credentials were created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Basic auth password.
|
||||
/// </summary>
|
||||
[Output("password")]
|
||||
public Output<string> Password { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Basic auth username.
|
||||
/// </summary>
|
||||
[Output("username")]
|
||||
public Output<string> Username { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a Security resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public Security(string name, SecurityArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/security:Security", name, args ?? new SecurityArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private Security(string name, Input<string> id, SecurityState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/security:Security", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"password",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing Security resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static Security Get(string name, Input<string> id, SecurityState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new Security(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class SecurityArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application these credentials protect.
|
||||
/// </summary>
|
||||
[Input("applicationId", required: true)]
|
||||
public Input<string> ApplicationId { get; set; } = null!;
|
||||
|
||||
[Input("password", required: true)]
|
||||
private Input<string>? _password;
|
||||
|
||||
/// <summary>
|
||||
/// Basic auth password.
|
||||
/// </summary>
|
||||
public Input<string>? Password
|
||||
{
|
||||
get => _password;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Basic auth username.
|
||||
/// </summary>
|
||||
[Input("username", required: true)]
|
||||
public Input<string> Username { get; set; } = null!;
|
||||
|
||||
public SecurityArgs()
|
||||
{
|
||||
}
|
||||
public static new SecurityArgs Empty => new SecurityArgs();
|
||||
}
|
||||
|
||||
public sealed class SecurityState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Application these credentials protect.
|
||||
/// </summary>
|
||||
[Input("applicationId")]
|
||||
public Input<string>? ApplicationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the credentials were created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
[Input("password")]
|
||||
private Input<string>? _password;
|
||||
|
||||
/// <summary>
|
||||
/// Basic auth password.
|
||||
/// </summary>
|
||||
public Input<string>? Password
|
||||
{
|
||||
get => _password;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Basic auth username.
|
||||
/// </summary>
|
||||
[Input("username")]
|
||||
public Input<string>? Username { get; set; }
|
||||
|
||||
public SecurityState()
|
||||
{
|
||||
}
|
||||
public static new SecurityState Empty => new SecurityState();
|
||||
}
|
||||
}
|
||||
196
sdk/dotnet/SshKey.cs
generated
Normal file
196
sdk/dotnet/SshKey.cs
generated
Normal file
@@ -0,0 +1,196 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using Pulumi.Serialization;
|
||||
using Pulumi;
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
[DokployResourceType("dokploy:index/sshKey:SshKey")]
|
||||
public partial class SshKey : global::Pulumi.CustomResource
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the key was created.
|
||||
/// </summary>
|
||||
[Output("createdAt")]
|
||||
public Output<string> CreatedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Output("description")]
|
||||
public Output<string?> Description { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the key was last used, if ever.
|
||||
/// </summary>
|
||||
[Output("lastUsedAt")]
|
||||
public Output<string> LastUsedAt { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the key pair.
|
||||
/// </summary>
|
||||
[Output("name")]
|
||||
public Output<string> Name { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded private key.
|
||||
/// </summary>
|
||||
[Output("privateKey")]
|
||||
public Output<string> PrivateKey { get; private set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// OpenSSH-formatted public key.
|
||||
/// </summary>
|
||||
[Output("publicKey")]
|
||||
public Output<string> PublicKey { get; private set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create a SshKey resource with the given unique name, arguments, and options.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resource</param>
|
||||
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public SshKey(string name, SshKeyArgs args, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/sshKey:SshKey", name, args ?? new SshKeyArgs(), MakeResourceOptions(options, ""))
|
||||
{
|
||||
}
|
||||
|
||||
private SshKey(string name, Input<string> id, SshKeyState? state = null, CustomResourceOptions? options = null)
|
||||
: base("dokploy:index/sshKey:SshKey", name, state, MakeResourceOptions(options, id))
|
||||
{
|
||||
}
|
||||
|
||||
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||
{
|
||||
var defaultOptions = new CustomResourceOptions
|
||||
{
|
||||
Version = Utilities.Version,
|
||||
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||
AdditionalSecretOutputs =
|
||||
{
|
||||
"privateKey",
|
||||
},
|
||||
};
|
||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||
// Override the ID if one was specified for consistency with other language SDKs.
|
||||
merged.Id = id ?? merged.Id;
|
||||
return merged;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get an existing SshKey resource's state with the given name, ID, and optional extra
|
||||
/// properties used to qualify the lookup.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="name">The unique name of the resulting resource.</param>
|
||||
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||
public static SshKey Get(string name, Input<string> id, SshKeyState? state = null, CustomResourceOptions? options = null)
|
||||
{
|
||||
return new SshKey(name, id, state, options);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class SshKeyArgs : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the key pair.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("privateKey", required: true)]
|
||||
private Input<string>? _privateKey;
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded private key.
|
||||
/// </summary>
|
||||
public Input<string>? PrivateKey
|
||||
{
|
||||
get => _privateKey;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// OpenSSH-formatted public key.
|
||||
/// </summary>
|
||||
[Input("publicKey", required: true)]
|
||||
public Input<string> PublicKey { get; set; } = null!;
|
||||
|
||||
public SshKeyArgs()
|
||||
{
|
||||
}
|
||||
public static new SshKeyArgs Empty => new SshKeyArgs();
|
||||
}
|
||||
|
||||
public sealed class SshKeyState : global::Pulumi.ResourceArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the key was created.
|
||||
/// </summary>
|
||||
[Input("createdAt")]
|
||||
public Input<string>? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Free-form description.
|
||||
/// </summary>
|
||||
[Input("description")]
|
||||
public Input<string>? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// RFC 3339 timestamp of when the key was last used, if ever.
|
||||
/// </summary>
|
||||
[Input("lastUsedAt")]
|
||||
public Input<string>? LastUsedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the key pair.
|
||||
/// </summary>
|
||||
[Input("name")]
|
||||
public Input<string>? Name { get; set; }
|
||||
|
||||
[Input("privateKey")]
|
||||
private Input<string>? _privateKey;
|
||||
|
||||
/// <summary>
|
||||
/// PEM-encoded private key.
|
||||
/// </summary>
|
||||
public Input<string>? PrivateKey
|
||||
{
|
||||
get => _privateKey;
|
||||
set
|
||||
{
|
||||
var emptySecret = Output.CreateSecret(0);
|
||||
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// OpenSSH-formatted public key.
|
||||
/// </summary>
|
||||
[Input("publicKey")]
|
||||
public Input<string>? PublicKey { get; set; }
|
||||
|
||||
public SshKeyState()
|
||||
{
|
||||
}
|
||||
public static new SshKeyState Empty => new SshKeyState();
|
||||
}
|
||||
}
|
||||
92
sdk/dotnet/Utilities.cs
generated
Normal file
92
sdk/dotnet/Utilities.cs
generated
Normal file
@@ -0,0 +1,92 @@
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
namespace Maxvojtkov.Dokploy
|
||||
{
|
||||
static class Utilities
|
||||
{
|
||||
public static string? GetEnv(params string[] names)
|
||||
{
|
||||
foreach (var n in names)
|
||||
{
|
||||
var value = global::System.Environment.GetEnvironmentVariable(n);
|
||||
if (value != null)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
static string[] trueValues = { "1", "t", "T", "true", "TRUE", "True" };
|
||||
static string[] falseValues = { "0", "f", "F", "false", "FALSE", "False" };
|
||||
public static bool? GetEnvBoolean(params string[] names)
|
||||
{
|
||||
var s = GetEnv(names);
|
||||
if (s != null)
|
||||
{
|
||||
if (global::System.Array.IndexOf(trueValues, s) != -1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (global::System.Array.IndexOf(falseValues, s) != -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int? GetEnvInt32(params string[] names) => int.TryParse(GetEnv(names), out int v) ? (int?)v : null;
|
||||
|
||||
public static double? GetEnvDouble(params string[] names) => double.TryParse(GetEnv(names), out double v) ? (double?)v : null;
|
||||
|
||||
[global::System.Obsolete("Please use WithDefaults instead")]
|
||||
public static global::Pulumi.InvokeOptions WithVersion(this global::Pulumi.InvokeOptions? options)
|
||||
{
|
||||
var dst = options ?? new global::Pulumi.InvokeOptions{};
|
||||
dst.Version = options?.Version ?? Version;
|
||||
return dst;
|
||||
}
|
||||
|
||||
public static global::Pulumi.InvokeOptions WithDefaults(this global::Pulumi.InvokeOptions? src)
|
||||
{
|
||||
var dst = src ?? new global::Pulumi.InvokeOptions{};
|
||||
dst.Version = src?.Version ?? Version;
|
||||
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github://api.github.com/maxvojtkov/pulumi-dokploy";
|
||||
return dst;
|
||||
}
|
||||
|
||||
public static global::Pulumi.InvokeOutputOptions WithDefaults(this global::Pulumi.InvokeOutputOptions? src)
|
||||
{
|
||||
var dst = src ?? new global::Pulumi.InvokeOutputOptions{};
|
||||
dst.Version = src?.Version ?? Version;
|
||||
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github://api.github.com/maxvojtkov/pulumi-dokploy";
|
||||
return dst;
|
||||
}
|
||||
|
||||
private readonly static string version;
|
||||
public static string Version => version;
|
||||
|
||||
static Utilities()
|
||||
{
|
||||
var assembly = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(Utilities)).Assembly;
|
||||
using var stream = assembly.GetManifestResourceStream("Maxvojtkov.Dokploy.version.txt");
|
||||
using var reader = new global::System.IO.StreamReader(stream ?? throw new global::System.NotSupportedException("Missing embedded version.txt file"));
|
||||
version = reader.ReadToEnd().Trim();
|
||||
var parts = version.Split("\n");
|
||||
if (parts.Length == 2)
|
||||
{
|
||||
// The first part is the provider name.
|
||||
version = parts[1].Trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class DokployResourceTypeAttribute : global::Pulumi.ResourceTypeAttribute
|
||||
{
|
||||
public DokployResourceTypeAttribute(string type) : base(type, Utilities.Version)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
sdk/dotnet/logo.png
generated
Normal file
BIN
sdk/dotnet/logo.png
generated
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.7 KiB |
6
sdk/dotnet/pulumi-plugin.json
generated
Normal file
6
sdk/dotnet/pulumi-plugin.json
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"resource": true,
|
||||
"name": "dokploy",
|
||||
"version": "0.1.0",
|
||||
"server": "github://api.github.com/maxvojtkov/pulumi-dokploy"
|
||||
}
|
||||
1
sdk/dotnet/version.txt
generated
Normal file
1
sdk/dotnet/version.txt
generated
Normal file
@@ -0,0 +1 @@
|
||||
0.1.0
|
||||
Reference in New Issue
Block a user