@tyevco/pulumi-homelab 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dockgeStack.js +6 -0
  2. package/index.d.ts +13 -0
  3. package/index.js +31 -0
  4. package/lxcContainer.d.ts +34 -0
  5. package/lxcContainer.js +55 -0
  6. package/notificationSettings.d.ts +46 -0
  7. package/notificationSettings.js +65 -0
  8. package/opnsenseAlias.d.ts +22 -0
  9. package/opnsenseAlias.js +52 -0
  10. package/opnsenseFirewallRule.d.ts +49 -0
  11. package/opnsenseFirewallRule.js +52 -0
  12. package/opnsenseUnboundAcl.d.ts +22 -0
  13. package/opnsenseUnboundAcl.js +52 -0
  14. package/opnsenseUnboundDnsbl.d.ts +40 -0
  15. package/opnsenseUnboundDnsbl.js +52 -0
  16. package/opnsenseUnboundForward.d.ts +34 -0
  17. package/opnsenseUnboundForward.js +52 -0
  18. package/opnsenseUnboundHostOverride.d.ts +40 -0
  19. package/opnsenseUnboundHostOverride.js +52 -0
  20. package/package.json +24 -31
  21. package/provider.d.ts +29 -0
  22. package/provider.js +62 -0
  23. package/stack.d.ts +67 -0
  24. package/stack.js +74 -0
  25. package/traefikRoute.d.ts +16 -0
  26. package/traefikRoute.js +55 -0
  27. package/traefikStaticConfig.d.ts +13 -0
  28. package/traefikStaticConfig.js +55 -0
  29. package/unraidVm.d.ts +32 -0
  30. package/unraidVm.js +67 -0
  31. package/dist/composeDiff.d.ts +0 -16
  32. package/dist/composeDiff.js +0 -171
  33. package/dist/composeDiff.js.map +0 -1
  34. package/dist/dockgeClient.d.ts +0 -67
  35. package/dist/dockgeClient.js +0 -152
  36. package/dist/dockgeClient.js.map +0 -1
  37. package/dist/envDiff.d.ts +0 -5
  38. package/dist/envDiff.js +0 -45
  39. package/dist/envDiff.js.map +0 -1
  40. package/dist/helpers.d.ts +0 -28
  41. package/dist/helpers.js +0 -113
  42. package/dist/helpers.js.map +0 -1
  43. package/dist/homelabClient.d.ts +0 -103
  44. package/dist/homelabClient.js +0 -202
  45. package/dist/homelabClient.js.map +0 -1
  46. package/dist/index.d.ts +0 -1
  47. package/dist/index.js +0 -179
  48. package/dist/index.js.map +0 -1
  49. package/dist/opnsenseClient.d.ts +0 -142
  50. package/dist/opnsenseClient.js +0 -592
  51. package/dist/opnsenseClient.js.map +0 -1
  52. package/dist/provider.d.ts +0 -7
  53. package/dist/provider.js +0 -118
  54. package/dist/provider.js.map +0 -1
  55. package/dist/resources/dockgeStack.d.ts +0 -1
  56. package/dist/resources/dockgeStack.js +0 -7
  57. package/dist/resources/dockgeStack.js.map +0 -1
  58. package/dist/resources/lxcContainer.d.ts +0 -9
  59. package/dist/resources/lxcContainer.js +0 -286
  60. package/dist/resources/lxcContainer.js.map +0 -1
  61. package/dist/resources/notificationSettings.d.ts +0 -9
  62. package/dist/resources/notificationSettings.js +0 -171
  63. package/dist/resources/notificationSettings.js.map +0 -1
  64. package/dist/resources/opnsenseAlias.d.ts +0 -9
  65. package/dist/resources/opnsenseAlias.js +0 -188
  66. package/dist/resources/opnsenseAlias.js.map +0 -1
  67. package/dist/resources/opnsenseFirewallRule.d.ts +0 -9
  68. package/dist/resources/opnsenseFirewallRule.js +0 -208
  69. package/dist/resources/opnsenseFirewallRule.js.map +0 -1
  70. package/dist/resources/opnsenseUnboundAcl.d.ts +0 -9
  71. package/dist/resources/opnsenseUnboundAcl.js +0 -193
  72. package/dist/resources/opnsenseUnboundAcl.js.map +0 -1
  73. package/dist/resources/opnsenseUnboundDnsbl.d.ts +0 -9
  74. package/dist/resources/opnsenseUnboundDnsbl.js +0 -186
  75. package/dist/resources/opnsenseUnboundDnsbl.js.map +0 -1
  76. package/dist/resources/opnsenseUnboundForward.d.ts +0 -9
  77. package/dist/resources/opnsenseUnboundForward.js +0 -195
  78. package/dist/resources/opnsenseUnboundForward.js.map +0 -1
  79. package/dist/resources/opnsenseUnboundHostOverride.d.ts +0 -9
  80. package/dist/resources/opnsenseUnboundHostOverride.js +0 -193
  81. package/dist/resources/opnsenseUnboundHostOverride.js.map +0 -1
  82. package/dist/resources/stack.d.ts +0 -9
  83. package/dist/resources/stack.js +0 -314
  84. package/dist/resources/stack.js.map +0 -1
  85. package/dist/resources/traefikRoute.d.ts +0 -9
  86. package/dist/resources/traefikRoute.js +0 -217
  87. package/dist/resources/traefikRoute.js.map +0 -1
  88. package/dist/resources/traefikStaticConfig.d.ts +0 -9
  89. package/dist/resources/traefikStaticConfig.js +0 -180
  90. package/dist/resources/traefikStaticConfig.js.map +0 -1
  91. package/dist/resources/unraidVm.d.ts +0 -9
  92. package/dist/resources/unraidVm.js +0 -225
  93. package/dist/resources/unraidVm.js.map +0 -1
  94. package/schema.json +0 -1109
package/dockgeStack.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DockgeStack = void 0;
4
+ // Backward compatibility — re-exports from renamed module
5
+ var stack_1 = require("./stack");
6
+ Object.defineProperty(exports, "DockgeStack", { enumerable: true, get: function () { return stack_1.DockgeStack; } });
package/index.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ export { Provider, ProviderArgs } from "./provider";
2
+ export { Stack, StackArgs, ContainerInfo, ExtraFile } from "./stack";
3
+ export { TraefikStaticConfig, TraefikStaticConfigArgs } from "./traefikStaticConfig";
4
+ export { TraefikRoute, TraefikRouteArgs } from "./traefikRoute";
5
+ export { OpnsenseFirewallRule, OpnsenseFirewallRuleArgs } from "./opnsenseFirewallRule";
6
+ export { OpnsenseAlias, OpnsenseAliasArgs } from "./opnsenseAlias";
7
+ export { OpnsenseUnboundHostOverride, OpnsenseUnboundHostOverrideArgs } from "./opnsenseUnboundHostOverride";
8
+ export { OpnsenseUnboundForward, OpnsenseUnboundForwardArgs } from "./opnsenseUnboundForward";
9
+ export { OpnsenseUnboundAcl, OpnsenseUnboundAclArgs } from "./opnsenseUnboundAcl";
10
+ export { OpnsenseUnboundDnsbl, OpnsenseUnboundDnsblArgs } from "./opnsenseUnboundDnsbl";
11
+ export { LxcContainer, LxcContainerArgs } from "./lxcContainer";
12
+ export { NotificationSettings, NotificationSettingsArgs } from "./notificationSettings";
13
+ export { UnraidVm, UnraidVmArgs } from "./unraidVm";
package/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnraidVm = exports.NotificationSettings = exports.LxcContainer = exports.OpnsenseUnboundDnsbl = exports.OpnsenseUnboundAcl = exports.OpnsenseUnboundForward = exports.OpnsenseUnboundHostOverride = exports.OpnsenseAlias = exports.OpnsenseFirewallRule = exports.TraefikRoute = exports.TraefikStaticConfig = exports.Stack = exports.Provider = void 0;
4
+ // Provider
5
+ var provider_1 = require("./provider");
6
+ Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return provider_1.Provider; } });
7
+ // Resources
8
+ var stack_1 = require("./stack");
9
+ Object.defineProperty(exports, "Stack", { enumerable: true, get: function () { return stack_1.Stack; } });
10
+ var traefikStaticConfig_1 = require("./traefikStaticConfig");
11
+ Object.defineProperty(exports, "TraefikStaticConfig", { enumerable: true, get: function () { return traefikStaticConfig_1.TraefikStaticConfig; } });
12
+ var traefikRoute_1 = require("./traefikRoute");
13
+ Object.defineProperty(exports, "TraefikRoute", { enumerable: true, get: function () { return traefikRoute_1.TraefikRoute; } });
14
+ var opnsenseFirewallRule_1 = require("./opnsenseFirewallRule");
15
+ Object.defineProperty(exports, "OpnsenseFirewallRule", { enumerable: true, get: function () { return opnsenseFirewallRule_1.OpnsenseFirewallRule; } });
16
+ var opnsenseAlias_1 = require("./opnsenseAlias");
17
+ Object.defineProperty(exports, "OpnsenseAlias", { enumerable: true, get: function () { return opnsenseAlias_1.OpnsenseAlias; } });
18
+ var opnsenseUnboundHostOverride_1 = require("./opnsenseUnboundHostOverride");
19
+ Object.defineProperty(exports, "OpnsenseUnboundHostOverride", { enumerable: true, get: function () { return opnsenseUnboundHostOverride_1.OpnsenseUnboundHostOverride; } });
20
+ var opnsenseUnboundForward_1 = require("./opnsenseUnboundForward");
21
+ Object.defineProperty(exports, "OpnsenseUnboundForward", { enumerable: true, get: function () { return opnsenseUnboundForward_1.OpnsenseUnboundForward; } });
22
+ var opnsenseUnboundAcl_1 = require("./opnsenseUnboundAcl");
23
+ Object.defineProperty(exports, "OpnsenseUnboundAcl", { enumerable: true, get: function () { return opnsenseUnboundAcl_1.OpnsenseUnboundAcl; } });
24
+ var opnsenseUnboundDnsbl_1 = require("./opnsenseUnboundDnsbl");
25
+ Object.defineProperty(exports, "OpnsenseUnboundDnsbl", { enumerable: true, get: function () { return opnsenseUnboundDnsbl_1.OpnsenseUnboundDnsbl; } });
26
+ var lxcContainer_1 = require("./lxcContainer");
27
+ Object.defineProperty(exports, "LxcContainer", { enumerable: true, get: function () { return lxcContainer_1.LxcContainer; } });
28
+ var notificationSettings_1 = require("./notificationSettings");
29
+ Object.defineProperty(exports, "NotificationSettings", { enumerable: true, get: function () { return notificationSettings_1.NotificationSettings; } });
30
+ var unraidVm_1 = require("./unraidVm");
31
+ Object.defineProperty(exports, "UnraidVm", { enumerable: true, get: function () { return unraidVm_1.UnraidVm; } });
@@ -0,0 +1,34 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface LxcContainerArgs {
3
+ /** The container name. Must match ^[a-z0-9_.-]+$. */
4
+ name: pulumi.Input<string>;
5
+ /** The Linux distribution (e.g., ubuntu, debian, alpine). Required unless sourceContainer is set. */
6
+ dist?: pulumi.Input<string>;
7
+ /** The distribution release (e.g., jammy, bookworm). Required unless sourceContainer is set. */
8
+ release?: pulumi.Input<string>;
9
+ /** The architecture (e.g., amd64, arm64). Required unless sourceContainer is set. */
10
+ arch?: pulumi.Input<string>;
11
+ /** Optional LXC container configuration file content. */
12
+ config?: pulumi.Input<string>;
13
+ /** Whether the container should autostart (default: false). */
14
+ autostart?: pulumi.Input<boolean>;
15
+ /** If set, clone this existing container instead of creating from scratch. Triggers replacement on change. */
16
+ sourceContainer?: pulumi.Input<string>;
17
+ /** Config appended after cloning (only used with sourceContainer). Triggers replacement on change. */
18
+ initialConfig?: pulumi.Input<string>;
19
+ }
20
+ export declare class LxcContainer extends pulumi.CustomResource {
21
+ readonly name: pulumi.Output<string>;
22
+ readonly dist: pulumi.Output<string>;
23
+ readonly release: pulumi.Output<string>;
24
+ readonly arch: pulumi.Output<string>;
25
+ readonly config: pulumi.Output<string>;
26
+ readonly autostart: pulumi.Output<boolean>;
27
+ readonly status: pulumi.Output<number>;
28
+ readonly ip: pulumi.Output<string>;
29
+ readonly pid: pulumi.Output<number>;
30
+ readonly memory: pulumi.Output<string>;
31
+ readonly sourceContainer: pulumi.Output<string | undefined>;
32
+ readonly initialConfig: pulumi.Output<string | undefined>;
33
+ constructor(name: string, args: LxcContainerArgs, opts?: pulumi.CustomResourceOptions);
34
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.LxcContainer = void 0;
37
+ const pulumi = __importStar(require("@pulumi/pulumi"));
38
+ const PLUGIN_VERSION = require("./package.json").version;
39
+ const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
40
+ class LxcContainer extends pulumi.CustomResource {
41
+ constructor(name, args, opts) {
42
+ super("homelab:index:LxcContainer", name, {
43
+ status: undefined,
44
+ ip: undefined,
45
+ pid: undefined,
46
+ memory: undefined,
47
+ ...args,
48
+ }, {
49
+ version: PLUGIN_VERSION,
50
+ pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
51
+ ...opts,
52
+ });
53
+ }
54
+ }
55
+ exports.LxcContainer = LxcContainer;
@@ -0,0 +1,46 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface NotificationSettingsArgs {
3
+ /** Whether ntfy notifications are enabled. */
4
+ ntfyEnabled?: pulumi.Input<boolean>;
5
+ /** ntfy server URL (required when ntfyEnabled is true). */
6
+ ntfyUrl?: pulumi.Input<string>;
7
+ /** Whether Discord notifications are enabled. */
8
+ discordEnabled?: pulumi.Input<boolean>;
9
+ /** Discord webhook URL (required when discordEnabled is true). */
10
+ discordWebhookUrl?: pulumi.Input<string>;
11
+ /** Whether Gotify notifications are enabled. */
12
+ gotifyEnabled?: pulumi.Input<boolean>;
13
+ /** Gotify server URL (required when gotifyEnabled is true). */
14
+ gotifyUrl?: pulumi.Input<string>;
15
+ /** Gotify application token (required when gotifyEnabled is true). */
16
+ gotifyToken?: pulumi.Input<string>;
17
+ /** Whether generic webhook notifications are enabled. */
18
+ webhookEnabled?: pulumi.Input<boolean>;
19
+ /** Webhook URL (required when webhookEnabled is true). */
20
+ webhookUrl?: pulumi.Input<string>;
21
+ }
22
+ /**
23
+ * Manages notification provider settings on the homelab server.
24
+ * This is a singleton resource — only one instance should exist per provider.
25
+ *
26
+ * ## Example Usage
27
+ *
28
+ * ```typescript
29
+ * const notifications = new homelab.NotificationSettings("notifications", {
30
+ * ntfyEnabled: true,
31
+ * ntfyUrl: "https://ntfy.sh/my-homelab-alerts",
32
+ * });
33
+ * ```
34
+ */
35
+ export declare class NotificationSettings extends pulumi.CustomResource {
36
+ readonly ntfyEnabled: pulumi.Output<boolean | undefined>;
37
+ readonly ntfyUrl: pulumi.Output<string | undefined>;
38
+ readonly discordEnabled: pulumi.Output<boolean | undefined>;
39
+ readonly discordWebhookUrl: pulumi.Output<string | undefined>;
40
+ readonly gotifyEnabled: pulumi.Output<boolean | undefined>;
41
+ readonly gotifyUrl: pulumi.Output<string | undefined>;
42
+ readonly gotifyToken: pulumi.Output<string | undefined>;
43
+ readonly webhookEnabled: pulumi.Output<boolean | undefined>;
44
+ readonly webhookUrl: pulumi.Output<string | undefined>;
45
+ constructor(name: string, args?: NotificationSettingsArgs, opts?: pulumi.CustomResourceOptions);
46
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NotificationSettings = void 0;
37
+ const pulumi = __importStar(require("@pulumi/pulumi"));
38
+ const PLUGIN_VERSION = require("./package.json").version;
39
+ const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
40
+ /**
41
+ * Manages notification provider settings on the homelab server.
42
+ * This is a singleton resource — only one instance should exist per provider.
43
+ *
44
+ * ## Example Usage
45
+ *
46
+ * ```typescript
47
+ * const notifications = new homelab.NotificationSettings("notifications", {
48
+ * ntfyEnabled: true,
49
+ * ntfyUrl: "https://ntfy.sh/my-homelab-alerts",
50
+ * });
51
+ * ```
52
+ */
53
+ class NotificationSettings extends pulumi.CustomResource {
54
+ constructor(name, args, opts) {
55
+ super("homelab:index:NotificationSettings", name, {
56
+ ...args,
57
+ }, {
58
+ version: PLUGIN_VERSION,
59
+ pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
60
+ additionalSecretOutputs: ["gotifyToken"],
61
+ ...opts,
62
+ });
63
+ }
64
+ }
65
+ exports.NotificationSettings = NotificationSettings;
@@ -0,0 +1,22 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface OpnsenseAliasArgs {
3
+ /** The alias name. Must be unique. */
4
+ name: pulumi.Input<string>;
5
+ /** Alias type: host, network, port, mac, url, or urltable. */
6
+ type: pulumi.Input<string>;
7
+ /** Alias content (newline-separated entries, e.g., IP addresses, networks, ports, or URLs). */
8
+ content?: pulumi.Input<string>;
9
+ /** Description of the alias. */
10
+ description?: pulumi.Input<string>;
11
+ /** Whether the alias is enabled. Default: true. */
12
+ enabled?: pulumi.Input<boolean>;
13
+ }
14
+ export declare class OpnsenseAlias extends pulumi.CustomResource {
15
+ readonly uuid: pulumi.Output<string>;
16
+ readonly name: pulumi.Output<string>;
17
+ readonly type: pulumi.Output<string>;
18
+ readonly content: pulumi.Output<string | undefined>;
19
+ readonly description: pulumi.Output<string | undefined>;
20
+ readonly enabled: pulumi.Output<boolean>;
21
+ constructor(name: string, args: OpnsenseAliasArgs, opts?: pulumi.CustomResourceOptions);
22
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.OpnsenseAlias = void 0;
37
+ const pulumi = __importStar(require("@pulumi/pulumi"));
38
+ const PLUGIN_VERSION = require("./package.json").version;
39
+ const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
40
+ class OpnsenseAlias extends pulumi.CustomResource {
41
+ constructor(name, args, opts) {
42
+ super("homelab:index:OpnsenseAlias", name, {
43
+ uuid: undefined,
44
+ ...args,
45
+ }, {
46
+ version: PLUGIN_VERSION,
47
+ pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
48
+ ...opts,
49
+ });
50
+ }
51
+ }
52
+ exports.OpnsenseAlias = OpnsenseAlias;
@@ -0,0 +1,49 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface OpnsenseFirewallRuleArgs {
3
+ /** Rule action: pass, block, or reject. */
4
+ action: pulumi.Input<string>;
5
+ /** Network interface (e.g., lan, wan, opt1). */
6
+ interface: pulumi.Input<string>;
7
+ /** Description of the firewall rule. */
8
+ description?: pulumi.Input<string>;
9
+ /** IP protocol version: inet (IPv4), inet6 (IPv6), or inet46 (both). Default: inet. */
10
+ ipprotocol?: pulumi.Input<string>;
11
+ /** Protocol to match (e.g., any, TCP, UDP, TCP/UDP, ICMP). Default: any. */
12
+ protocol?: pulumi.Input<string>;
13
+ /** Source network or address (e.g., any, 192.168.1.0/24, or an alias name). */
14
+ sourceNet?: pulumi.Input<string>;
15
+ /** Source port or port range. */
16
+ sourcePort?: pulumi.Input<string>;
17
+ /** Destination network or address. */
18
+ destinationNet?: pulumi.Input<string>;
19
+ /** Destination port or port range. */
20
+ destinationPort?: pulumi.Input<string>;
21
+ /** Traffic direction: in or out. Default: in. */
22
+ direction?: pulumi.Input<string>;
23
+ /** Whether to log packets matching this rule. */
24
+ log?: pulumi.Input<boolean>;
25
+ /** Apply quick match (stop processing after this rule). Default: true. */
26
+ quick?: pulumi.Input<boolean>;
27
+ /** Whether the rule is disabled. */
28
+ disabled?: pulumi.Input<boolean>;
29
+ /** Rule priority/order sequence number. */
30
+ sequence?: pulumi.Input<number>;
31
+ }
32
+ export declare class OpnsenseFirewallRule extends pulumi.CustomResource {
33
+ readonly uuid: pulumi.Output<string>;
34
+ readonly action: pulumi.Output<string>;
35
+ readonly interface: pulumi.Output<string>;
36
+ readonly description: pulumi.Output<string | undefined>;
37
+ readonly ipprotocol: pulumi.Output<string>;
38
+ readonly protocol: pulumi.Output<string>;
39
+ readonly sourceNet: pulumi.Output<string | undefined>;
40
+ readonly sourcePort: pulumi.Output<string | undefined>;
41
+ readonly destinationNet: pulumi.Output<string | undefined>;
42
+ readonly destinationPort: pulumi.Output<string | undefined>;
43
+ readonly direction: pulumi.Output<string>;
44
+ readonly log: pulumi.Output<boolean | undefined>;
45
+ readonly quick: pulumi.Output<boolean>;
46
+ readonly disabled: pulumi.Output<boolean | undefined>;
47
+ readonly sequence: pulumi.Output<number | undefined>;
48
+ constructor(name: string, args: OpnsenseFirewallRuleArgs, opts?: pulumi.CustomResourceOptions);
49
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.OpnsenseFirewallRule = void 0;
37
+ const pulumi = __importStar(require("@pulumi/pulumi"));
38
+ const PLUGIN_VERSION = require("./package.json").version;
39
+ const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
40
+ class OpnsenseFirewallRule extends pulumi.CustomResource {
41
+ constructor(name, args, opts) {
42
+ super("homelab:index:OpnsenseFirewallRule", name, {
43
+ uuid: undefined,
44
+ ...args,
45
+ }, {
46
+ version: PLUGIN_VERSION,
47
+ pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
48
+ ...opts,
49
+ });
50
+ }
51
+ }
52
+ exports.OpnsenseFirewallRule = OpnsenseFirewallRule;
@@ -0,0 +1,22 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface OpnsenseUnboundAclArgs {
3
+ /** Whether the ACL is enabled. Default: true. */
4
+ enabled?: pulumi.Input<boolean>;
5
+ /** ACL name. Must be unique. */
6
+ name: pulumi.Input<string>;
7
+ /** ACL action: allow, deny, refuse, allow_snoop, deny_non_local, refuse_non_local. Default: "allow". */
8
+ action?: pulumi.Input<string>;
9
+ /** Networks covered by this ACL (comma-separated CIDR). */
10
+ networks: pulumi.Input<string>;
11
+ /** Description of the ACL. */
12
+ description?: pulumi.Input<string>;
13
+ }
14
+ export declare class OpnsenseUnboundAcl extends pulumi.CustomResource {
15
+ readonly uuid: pulumi.Output<string>;
16
+ readonly enabled: pulumi.Output<boolean>;
17
+ readonly name: pulumi.Output<string>;
18
+ readonly action: pulumi.Output<string>;
19
+ readonly networks: pulumi.Output<string>;
20
+ readonly description: pulumi.Output<string | undefined>;
21
+ constructor(name: string, args: OpnsenseUnboundAclArgs, opts?: pulumi.CustomResourceOptions);
22
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.OpnsenseUnboundAcl = void 0;
37
+ const pulumi = __importStar(require("@pulumi/pulumi"));
38
+ const PLUGIN_VERSION = require("./package.json").version;
39
+ const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
40
+ class OpnsenseUnboundAcl extends pulumi.CustomResource {
41
+ constructor(name, args, opts) {
42
+ super("homelab:index:OpnsenseUnboundAcl", name, {
43
+ uuid: undefined,
44
+ ...args,
45
+ }, {
46
+ version: PLUGIN_VERSION,
47
+ pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
48
+ ...opts,
49
+ });
50
+ }
51
+ }
52
+ exports.OpnsenseUnboundAcl = OpnsenseUnboundAcl;
@@ -0,0 +1,40 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface OpnsenseUnboundDnsblArgs {
3
+ /** Whether the DNSBL entry is enabled. Default: true. */
4
+ enabled?: pulumi.Input<boolean>;
5
+ /** DNSBL type. */
6
+ type?: pulumi.Input<string>;
7
+ /** DNSBL lists to use. */
8
+ lists?: pulumi.Input<string>;
9
+ /** Allowlisted domains. */
10
+ allowlists?: pulumi.Input<string>;
11
+ /** Blocklisted domains. */
12
+ blocklists?: pulumi.Input<string>;
13
+ /** Wildcard domain entries. */
14
+ wildcards?: pulumi.Input<string>;
15
+ /** Source networks. */
16
+ sourceNets?: pulumi.Input<string>;
17
+ /** Listen address. */
18
+ address?: pulumi.Input<string>;
19
+ /** Whether to return NXDOMAIN instead of the blocklist address. */
20
+ nxdomain?: pulumi.Input<boolean>;
21
+ /** Cache TTL in seconds. Default: 72000. */
22
+ cacheTtl?: pulumi.Input<number>;
23
+ /** Description of the DNSBL entry. */
24
+ description: pulumi.Input<string>;
25
+ }
26
+ export declare class OpnsenseUnboundDnsbl extends pulumi.CustomResource {
27
+ readonly uuid: pulumi.Output<string>;
28
+ readonly enabled: pulumi.Output<boolean>;
29
+ readonly type: pulumi.Output<string | undefined>;
30
+ readonly lists: pulumi.Output<string | undefined>;
31
+ readonly allowlists: pulumi.Output<string | undefined>;
32
+ readonly blocklists: pulumi.Output<string | undefined>;
33
+ readonly wildcards: pulumi.Output<string | undefined>;
34
+ readonly sourceNets: pulumi.Output<string | undefined>;
35
+ readonly address: pulumi.Output<string | undefined>;
36
+ readonly nxdomain: pulumi.Output<boolean | undefined>;
37
+ readonly cacheTtl: pulumi.Output<number>;
38
+ readonly description: pulumi.Output<string>;
39
+ constructor(name: string, args: OpnsenseUnboundDnsblArgs, opts?: pulumi.CustomResourceOptions);
40
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.OpnsenseUnboundDnsbl = void 0;
37
+ const pulumi = __importStar(require("@pulumi/pulumi"));
38
+ const PLUGIN_VERSION = require("./package.json").version;
39
+ const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
40
+ class OpnsenseUnboundDnsbl extends pulumi.CustomResource {
41
+ constructor(name, args, opts) {
42
+ super("homelab:index:OpnsenseUnboundDnsbl", name, {
43
+ uuid: undefined,
44
+ ...args,
45
+ }, {
46
+ version: PLUGIN_VERSION,
47
+ pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
48
+ ...opts,
49
+ });
50
+ }
51
+ }
52
+ exports.OpnsenseUnboundDnsbl = OpnsenseUnboundDnsbl;
@@ -0,0 +1,34 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface OpnsenseUnboundForwardArgs {
3
+ /** Whether the forward is enabled. Default: true. */
4
+ enabled?: pulumi.Input<boolean>;
5
+ /** Forward type: "forward" or "dot" (DNS over TLS). Default: "forward". */
6
+ type?: pulumi.Input<string>;
7
+ /** Domain to forward queries for (empty for all). */
8
+ domain?: pulumi.Input<string>;
9
+ /** DNS server IP address. */
10
+ server: pulumi.Input<string>;
11
+ /** DNS server port. */
12
+ port?: pulumi.Input<number>;
13
+ /** TLS verification hostname (for DoT). */
14
+ verify?: pulumi.Input<string>;
15
+ /** Whether to use TCP for upstream queries. Default: false. */
16
+ forwardTcpUpstream?: pulumi.Input<boolean>;
17
+ /** Whether to try forwarding first before resolving. Default: false. */
18
+ forwardFirst?: pulumi.Input<boolean>;
19
+ /** Description of the forward entry. */
20
+ description?: pulumi.Input<string>;
21
+ }
22
+ export declare class OpnsenseUnboundForward extends pulumi.CustomResource {
23
+ readonly uuid: pulumi.Output<string>;
24
+ readonly enabled: pulumi.Output<boolean>;
25
+ readonly type: pulumi.Output<string>;
26
+ readonly domain: pulumi.Output<string | undefined>;
27
+ readonly server: pulumi.Output<string>;
28
+ readonly port: pulumi.Output<number | undefined>;
29
+ readonly verify: pulumi.Output<string | undefined>;
30
+ readonly forwardTcpUpstream: pulumi.Output<boolean>;
31
+ readonly forwardFirst: pulumi.Output<boolean>;
32
+ readonly description: pulumi.Output<string | undefined>;
33
+ constructor(name: string, args: OpnsenseUnboundForwardArgs, opts?: pulumi.CustomResourceOptions);
34
+ }