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

533 lines
19 KiB
TypeScript
Generated

// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as utilities from "./utilities";
export class Mongo extends pulumi.CustomResource {
/**
* Get an existing Mongo resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: MongoState, opts?: pulumi.CustomResourceOptions): Mongo {
return new Mongo(name, <any>state, { ...opts, id: id });
}
/** @internal */
public static readonly __pulumiType = 'dokploy:index/mongo:Mongo';
/**
* Returns true if the given object is an instance of Mongo. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
public static isInstance(obj: any): obj is Mongo {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === Mongo.__pulumiType;
}
/**
* Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
*/
declare public readonly appName: pulumi.Output<string>;
/**
* Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
*/
declare public /*out*/ readonly applicationStatus: pulumi.Output<string>;
/**
* Arguments appended to the container command.
*/
declare public readonly args: pulumi.Output<string[]>;
/**
* Override the container entrypoint command.
*/
declare public readonly command: pulumi.Output<string | undefined>;
/**
* Hard CPU limit, for example `1`.
*/
declare public readonly cpuLimit: pulumi.Output<string | undefined>;
/**
* Soft CPU reservation, for example `0.5`.
*/
declare public readonly cpuReservation: pulumi.Output<string | undefined>;
/**
* RFC 3339 timestamp of when the database was created.
*/
declare public /*out*/ readonly createdAt: pulumi.Output<string>;
/**
* Password for the root user.
*/
declare public readonly databasePassword: pulumi.Output<string>;
/**
* Root username to create.
*/
declare public readonly databaseUser: pulumi.Output<string>;
/**
* Free-form description.
*/
declare public readonly description: pulumi.Output<string | undefined>;
/**
* Detach the service from the shared `dokploy-network`.
*/
declare public readonly detachDokployNetwork: pulumi.Output<boolean>;
/**
* MongoDB image to run. Defaults to `mongo:8`.
*/
declare public readonly dockerImage: pulumi.Output<string>;
/**
* Docker Swarm endpoint specification, as a JSON object.
*/
declare public readonly endpointSpecSwarm: pulumi.Output<string | undefined>;
/**
* Environment variables in `KEY=value` format, one per line.
*/
declare public readonly env: pulumi.Output<string | undefined>;
/**
* Environment this database belongs to.
*/
declare public readonly environmentId: pulumi.Output<string>;
/**
* Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
*/
declare public readonly externalPort: pulumi.Output<number | undefined>;
/**
* Docker Swarm health check configuration, as a JSON object.
*/
declare public readonly healthCheckSwarm: pulumi.Output<string | undefined>;
/**
* Docker Swarm service labels, as a JSON object.
*/
declare public readonly labelsSwarm: pulumi.Output<string | undefined>;
/**
* Hard memory limit, for example `512m`.
*/
declare public readonly memoryLimit: pulumi.Output<string | undefined>;
/**
* Soft memory reservation, for example `256m`.
*/
declare public readonly memoryReservation: pulumi.Output<string | undefined>;
/**
* Docker Swarm service mode, as a JSON object.
*/
declare public readonly modeSwarm: pulumi.Output<string | undefined>;
/**
* Display name of the database.
*/
declare public readonly name: pulumi.Output<string>;
/**
* IDs of additional Docker networks to attach.
*/
declare public readonly networkIds: pulumi.Output<string[]>;
/**
* Docker Swarm network attachments, as a JSON array.
*/
declare public readonly networkSwarm: pulumi.Output<string | undefined>;
/**
* Docker Swarm placement constraints, as a JSON object.
*/
declare public readonly placementSwarm: pulumi.Output<string | undefined>;
/**
* Start the instance as a single-node replica set.
*/
declare public readonly replicaSets: pulumi.Output<boolean>;
/**
* Number of replicas to run.
*/
declare public readonly replicas: pulumi.Output<number>;
/**
* Docker Swarm restart policy, as a JSON object.
*/
declare public readonly restartPolicySwarm: pulumi.Output<string | undefined>;
/**
* Docker Swarm rollback configuration, as a JSON object.
*/
declare public readonly rollbackConfigSwarm: pulumi.Output<string | undefined>;
/**
* Remote server to deploy on. Omit to use the Dokploy host itself.
*/
declare public readonly serverId: pulumi.Output<string | undefined>;
/**
* Grace period in nanoseconds before a container is killed.
*/
declare public readonly stopGracePeriodSwarm: pulumi.Output<number | undefined>;
/**
* Docker Swarm ulimits, as a JSON object.
*/
declare public readonly ulimitsSwarm: pulumi.Output<string | undefined>;
/**
* Docker Swarm rolling update configuration, as a JSON object.
*/
declare public readonly updateConfigSwarm: pulumi.Output<string | undefined>;
/**
* Create a Mongo resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: MongoArgs, opts?: pulumi.CustomResourceOptions)
constructor(name: string, argsOrState?: MongoArgs | MongoState, opts?: pulumi.CustomResourceOptions) {
let resourceInputs: pulumi.Inputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState as MongoState | undefined;
resourceInputs["appName"] = state?.appName;
resourceInputs["applicationStatus"] = state?.applicationStatus;
resourceInputs["args"] = state?.args;
resourceInputs["command"] = state?.command;
resourceInputs["cpuLimit"] = state?.cpuLimit;
resourceInputs["cpuReservation"] = state?.cpuReservation;
resourceInputs["createdAt"] = state?.createdAt;
resourceInputs["databasePassword"] = state?.databasePassword;
resourceInputs["databaseUser"] = state?.databaseUser;
resourceInputs["description"] = state?.description;
resourceInputs["detachDokployNetwork"] = state?.detachDokployNetwork;
resourceInputs["dockerImage"] = state?.dockerImage;
resourceInputs["endpointSpecSwarm"] = state?.endpointSpecSwarm;
resourceInputs["env"] = state?.env;
resourceInputs["environmentId"] = state?.environmentId;
resourceInputs["externalPort"] = state?.externalPort;
resourceInputs["healthCheckSwarm"] = state?.healthCheckSwarm;
resourceInputs["labelsSwarm"] = state?.labelsSwarm;
resourceInputs["memoryLimit"] = state?.memoryLimit;
resourceInputs["memoryReservation"] = state?.memoryReservation;
resourceInputs["modeSwarm"] = state?.modeSwarm;
resourceInputs["name"] = state?.name;
resourceInputs["networkIds"] = state?.networkIds;
resourceInputs["networkSwarm"] = state?.networkSwarm;
resourceInputs["placementSwarm"] = state?.placementSwarm;
resourceInputs["replicaSets"] = state?.replicaSets;
resourceInputs["replicas"] = state?.replicas;
resourceInputs["restartPolicySwarm"] = state?.restartPolicySwarm;
resourceInputs["rollbackConfigSwarm"] = state?.rollbackConfigSwarm;
resourceInputs["serverId"] = state?.serverId;
resourceInputs["stopGracePeriodSwarm"] = state?.stopGracePeriodSwarm;
resourceInputs["ulimitsSwarm"] = state?.ulimitsSwarm;
resourceInputs["updateConfigSwarm"] = state?.updateConfigSwarm;
} else {
const args = argsOrState as MongoArgs | undefined;
if (args?.databasePassword === undefined && !opts.urn) {
throw new Error("Missing required property 'databasePassword'");
}
if (args?.databaseUser === undefined && !opts.urn) {
throw new Error("Missing required property 'databaseUser'");
}
if (args?.environmentId === undefined && !opts.urn) {
throw new Error("Missing required property 'environmentId'");
}
resourceInputs["appName"] = args?.appName;
resourceInputs["args"] = args?.args;
resourceInputs["command"] = args?.command;
resourceInputs["cpuLimit"] = args?.cpuLimit;
resourceInputs["cpuReservation"] = args?.cpuReservation;
resourceInputs["databasePassword"] = args?.databasePassword ? pulumi.secret(args.databasePassword) : undefined;
resourceInputs["databaseUser"] = args?.databaseUser;
resourceInputs["description"] = args?.description;
resourceInputs["detachDokployNetwork"] = args?.detachDokployNetwork;
resourceInputs["dockerImage"] = args?.dockerImage;
resourceInputs["endpointSpecSwarm"] = args?.endpointSpecSwarm;
resourceInputs["env"] = args?.env;
resourceInputs["environmentId"] = args?.environmentId;
resourceInputs["externalPort"] = args?.externalPort;
resourceInputs["healthCheckSwarm"] = args?.healthCheckSwarm;
resourceInputs["labelsSwarm"] = args?.labelsSwarm;
resourceInputs["memoryLimit"] = args?.memoryLimit;
resourceInputs["memoryReservation"] = args?.memoryReservation;
resourceInputs["modeSwarm"] = args?.modeSwarm;
resourceInputs["name"] = args?.name;
resourceInputs["networkIds"] = args?.networkIds;
resourceInputs["networkSwarm"] = args?.networkSwarm;
resourceInputs["placementSwarm"] = args?.placementSwarm;
resourceInputs["replicaSets"] = args?.replicaSets;
resourceInputs["replicas"] = args?.replicas;
resourceInputs["restartPolicySwarm"] = args?.restartPolicySwarm;
resourceInputs["rollbackConfigSwarm"] = args?.rollbackConfigSwarm;
resourceInputs["serverId"] = args?.serverId;
resourceInputs["stopGracePeriodSwarm"] = args?.stopGracePeriodSwarm;
resourceInputs["ulimitsSwarm"] = args?.ulimitsSwarm;
resourceInputs["updateConfigSwarm"] = args?.updateConfigSwarm;
resourceInputs["applicationStatus"] = undefined /*out*/;
resourceInputs["createdAt"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
const secretOpts = { additionalSecretOutputs: ["databasePassword"] };
opts = pulumi.mergeOptions(opts, secretOpts);
super(Mongo.__pulumiType, name, resourceInputs, opts);
}
}
/**
* Input properties used for looking up and filtering Mongo resources.
*/
export interface MongoState {
/**
* Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
*/
appName?: pulumi.Input<string>;
/**
* Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
*/
applicationStatus?: pulumi.Input<string>;
/**
* Arguments appended to the container command.
*/
args?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Override the container entrypoint command.
*/
command?: pulumi.Input<string>;
/**
* Hard CPU limit, for example `1`.
*/
cpuLimit?: pulumi.Input<string>;
/**
* Soft CPU reservation, for example `0.5`.
*/
cpuReservation?: pulumi.Input<string>;
/**
* RFC 3339 timestamp of when the database was created.
*/
createdAt?: pulumi.Input<string>;
/**
* Password for the root user.
*/
databasePassword?: pulumi.Input<string>;
/**
* Root username to create.
*/
databaseUser?: pulumi.Input<string>;
/**
* Free-form description.
*/
description?: pulumi.Input<string>;
/**
* Detach the service from the shared `dokploy-network`.
*/
detachDokployNetwork?: pulumi.Input<boolean>;
/**
* MongoDB image to run. Defaults to `mongo:8`.
*/
dockerImage?: pulumi.Input<string>;
/**
* Docker Swarm endpoint specification, as a JSON object.
*/
endpointSpecSwarm?: pulumi.Input<string>;
/**
* Environment variables in `KEY=value` format, one per line.
*/
env?: pulumi.Input<string>;
/**
* Environment this database belongs to.
*/
environmentId?: pulumi.Input<string>;
/**
* Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
*/
externalPort?: pulumi.Input<number>;
/**
* Docker Swarm health check configuration, as a JSON object.
*/
healthCheckSwarm?: pulumi.Input<string>;
/**
* Docker Swarm service labels, as a JSON object.
*/
labelsSwarm?: pulumi.Input<string>;
/**
* Hard memory limit, for example `512m`.
*/
memoryLimit?: pulumi.Input<string>;
/**
* Soft memory reservation, for example `256m`.
*/
memoryReservation?: pulumi.Input<string>;
/**
* Docker Swarm service mode, as a JSON object.
*/
modeSwarm?: pulumi.Input<string>;
/**
* Display name of the database.
*/
name?: pulumi.Input<string>;
/**
* IDs of additional Docker networks to attach.
*/
networkIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Docker Swarm network attachments, as a JSON array.
*/
networkSwarm?: pulumi.Input<string>;
/**
* Docker Swarm placement constraints, as a JSON object.
*/
placementSwarm?: pulumi.Input<string>;
/**
* Start the instance as a single-node replica set.
*/
replicaSets?: pulumi.Input<boolean>;
/**
* Number of replicas to run.
*/
replicas?: pulumi.Input<number>;
/**
* Docker Swarm restart policy, as a JSON object.
*/
restartPolicySwarm?: pulumi.Input<string>;
/**
* Docker Swarm rollback configuration, as a JSON object.
*/
rollbackConfigSwarm?: pulumi.Input<string>;
/**
* Remote server to deploy on. Omit to use the Dokploy host itself.
*/
serverId?: pulumi.Input<string>;
/**
* Grace period in nanoseconds before a container is killed.
*/
stopGracePeriodSwarm?: pulumi.Input<number>;
/**
* Docker Swarm ulimits, as a JSON object.
*/
ulimitsSwarm?: pulumi.Input<string>;
/**
* Docker Swarm rolling update configuration, as a JSON object.
*/
updateConfigSwarm?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a Mongo resource.
*/
export interface MongoArgs {
/**
* Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
*/
appName?: pulumi.Input<string>;
/**
* Arguments appended to the container command.
*/
args?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Override the container entrypoint command.
*/
command?: pulumi.Input<string>;
/**
* Hard CPU limit, for example `1`.
*/
cpuLimit?: pulumi.Input<string>;
/**
* Soft CPU reservation, for example `0.5`.
*/
cpuReservation?: pulumi.Input<string>;
/**
* Password for the root user.
*/
databasePassword: pulumi.Input<string>;
/**
* Root username to create.
*/
databaseUser: pulumi.Input<string>;
/**
* Free-form description.
*/
description?: pulumi.Input<string>;
/**
* Detach the service from the shared `dokploy-network`.
*/
detachDokployNetwork?: pulumi.Input<boolean>;
/**
* MongoDB image to run. Defaults to `mongo:8`.
*/
dockerImage?: pulumi.Input<string>;
/**
* Docker Swarm endpoint specification, as a JSON object.
*/
endpointSpecSwarm?: pulumi.Input<string>;
/**
* Environment variables in `KEY=value` format, one per line.
*/
env?: pulumi.Input<string>;
/**
* Environment this database belongs to.
*/
environmentId: pulumi.Input<string>;
/**
* Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
*/
externalPort?: pulumi.Input<number>;
/**
* Docker Swarm health check configuration, as a JSON object.
*/
healthCheckSwarm?: pulumi.Input<string>;
/**
* Docker Swarm service labels, as a JSON object.
*/
labelsSwarm?: pulumi.Input<string>;
/**
* Hard memory limit, for example `512m`.
*/
memoryLimit?: pulumi.Input<string>;
/**
* Soft memory reservation, for example `256m`.
*/
memoryReservation?: pulumi.Input<string>;
/**
* Docker Swarm service mode, as a JSON object.
*/
modeSwarm?: pulumi.Input<string>;
/**
* Display name of the database.
*/
name?: pulumi.Input<string>;
/**
* IDs of additional Docker networks to attach.
*/
networkIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Docker Swarm network attachments, as a JSON array.
*/
networkSwarm?: pulumi.Input<string>;
/**
* Docker Swarm placement constraints, as a JSON object.
*/
placementSwarm?: pulumi.Input<string>;
/**
* Start the instance as a single-node replica set.
*/
replicaSets?: pulumi.Input<boolean>;
/**
* Number of replicas to run.
*/
replicas?: pulumi.Input<number>;
/**
* Docker Swarm restart policy, as a JSON object.
*/
restartPolicySwarm?: pulumi.Input<string>;
/**
* Docker Swarm rollback configuration, as a JSON object.
*/
rollbackConfigSwarm?: pulumi.Input<string>;
/**
* Remote server to deploy on. Omit to use the Dokploy host itself.
*/
serverId?: pulumi.Input<string>;
/**
* Grace period in nanoseconds before a container is killed.
*/
stopGracePeriodSwarm?: pulumi.Input<number>;
/**
* Docker Swarm ulimits, as a JSON object.
*/
ulimitsSwarm?: pulumi.Input<string>;
/**
* Docker Swarm rolling update configuration, as a JSON object.
*/
updateConfigSwarm?: pulumi.Input<string>;
}