@tyevco/pulumi-homelab 0.1.3 → 0.2.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.
- package/index.d.ts +6 -0
- package/index.js +13 -1
- package/opnsenseAlias.d.ts +22 -0
- package/opnsenseAlias.js +52 -0
- package/opnsenseFirewallRule.d.ts +49 -0
- package/opnsenseFirewallRule.js +52 -0
- package/opnsenseUnboundAcl.d.ts +22 -0
- package/opnsenseUnboundAcl.js +52 -0
- package/opnsenseUnboundDnsbl.d.ts +40 -0
- package/opnsenseUnboundDnsbl.js +52 -0
- package/opnsenseUnboundForward.d.ts +34 -0
- package/opnsenseUnboundForward.js +52 -0
- package/opnsenseUnboundHostOverride.d.ts +40 -0
- package/opnsenseUnboundHostOverride.js +52 -0
- package/package.json +1 -1
- package/provider.d.ts +15 -3
- package/provider.js +6 -2
package/index.d.ts
CHANGED
|
@@ -2,4 +2,10 @@ export { Provider, ProviderArgs } from "./provider";
|
|
|
2
2
|
export { Stack, StackArgs, ContainerInfo } from "./stack";
|
|
3
3
|
export { TraefikStaticConfig, TraefikStaticConfigArgs } from "./traefikStaticConfig";
|
|
4
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";
|
|
5
11
|
export { DockgeStack, DockgeStackArgs, DockgeContainerInfo } from "./stack";
|
package/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Pulumi SDK for Homelab - manages homelab infrastructure via the Dockge REST API
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.DockgeStack = exports.TraefikRoute = exports.TraefikStaticConfig = exports.Stack = exports.Provider = void 0;
|
|
4
|
+
exports.DockgeStack = exports.OpnsenseUnboundDnsbl = exports.OpnsenseUnboundAcl = exports.OpnsenseUnboundForward = exports.OpnsenseUnboundHostOverride = exports.OpnsenseAlias = exports.OpnsenseFirewallRule = exports.TraefikRoute = exports.TraefikStaticConfig = exports.Stack = exports.Provider = void 0;
|
|
5
5
|
// Provider
|
|
6
6
|
var provider_1 = require("./provider");
|
|
7
7
|
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return provider_1.Provider; } });
|
|
@@ -12,6 +12,18 @@ var traefikStaticConfig_1 = require("./traefikStaticConfig");
|
|
|
12
12
|
Object.defineProperty(exports, "TraefikStaticConfig", { enumerable: true, get: function () { return traefikStaticConfig_1.TraefikStaticConfig; } });
|
|
13
13
|
var traefikRoute_1 = require("./traefikRoute");
|
|
14
14
|
Object.defineProperty(exports, "TraefikRoute", { enumerable: true, get: function () { return traefikRoute_1.TraefikRoute; } });
|
|
15
|
+
var opnsenseFirewallRule_1 = require("./opnsenseFirewallRule");
|
|
16
|
+
Object.defineProperty(exports, "OpnsenseFirewallRule", { enumerable: true, get: function () { return opnsenseFirewallRule_1.OpnsenseFirewallRule; } });
|
|
17
|
+
var opnsenseAlias_1 = require("./opnsenseAlias");
|
|
18
|
+
Object.defineProperty(exports, "OpnsenseAlias", { enumerable: true, get: function () { return opnsenseAlias_1.OpnsenseAlias; } });
|
|
19
|
+
var opnsenseUnboundHostOverride_1 = require("./opnsenseUnboundHostOverride");
|
|
20
|
+
Object.defineProperty(exports, "OpnsenseUnboundHostOverride", { enumerable: true, get: function () { return opnsenseUnboundHostOverride_1.OpnsenseUnboundHostOverride; } });
|
|
21
|
+
var opnsenseUnboundForward_1 = require("./opnsenseUnboundForward");
|
|
22
|
+
Object.defineProperty(exports, "OpnsenseUnboundForward", { enumerable: true, get: function () { return opnsenseUnboundForward_1.OpnsenseUnboundForward; } });
|
|
23
|
+
var opnsenseUnboundAcl_1 = require("./opnsenseUnboundAcl");
|
|
24
|
+
Object.defineProperty(exports, "OpnsenseUnboundAcl", { enumerable: true, get: function () { return opnsenseUnboundAcl_1.OpnsenseUnboundAcl; } });
|
|
25
|
+
var opnsenseUnboundDnsbl_1 = require("./opnsenseUnboundDnsbl");
|
|
26
|
+
Object.defineProperty(exports, "OpnsenseUnboundDnsbl", { enumerable: true, get: function () { return opnsenseUnboundDnsbl_1.OpnsenseUnboundDnsbl; } });
|
|
15
27
|
// Backward compatibility aliases
|
|
16
28
|
var stack_2 = require("./stack");
|
|
17
29
|
Object.defineProperty(exports, "DockgeStack", { enumerable: true, get: function () { return stack_2.DockgeStack; } });
|
|
@@ -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, 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
|
+
}
|
package/opnsenseAlias.js
ADDED
|
@@ -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
|
+
}
|
|
@@ -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.OpnsenseUnboundForward = 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 OpnsenseUnboundForward extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseUnboundForward", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseUnboundForward = OpnsenseUnboundForward;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
export interface OpnsenseUnboundHostOverrideArgs {
|
|
3
|
+
/** Whether the host override is enabled. Default: true. */
|
|
4
|
+
enabled?: pulumi.Input<boolean>;
|
|
5
|
+
/** Hostname (e.g., "myhost"). */
|
|
6
|
+
hostname?: pulumi.Input<string>;
|
|
7
|
+
/** Domain name (e.g., "example.com"). */
|
|
8
|
+
domain: pulumi.Input<string>;
|
|
9
|
+
/** DNS record type (A, AAAA, MX, TXT). Default: "A". */
|
|
10
|
+
rr?: pulumi.Input<string>;
|
|
11
|
+
/** IP address or target for the override. */
|
|
12
|
+
server?: pulumi.Input<string>;
|
|
13
|
+
/** MX priority (for MX records). */
|
|
14
|
+
mxprio?: pulumi.Input<number>;
|
|
15
|
+
/** MX mail server hostname. */
|
|
16
|
+
mx?: pulumi.Input<string>;
|
|
17
|
+
/** TXT record data. */
|
|
18
|
+
txtdata?: pulumi.Input<string>;
|
|
19
|
+
/** TTL in seconds. */
|
|
20
|
+
ttl?: pulumi.Input<number>;
|
|
21
|
+
/** Whether to create a PTR record. Default: true. */
|
|
22
|
+
addptr?: pulumi.Input<boolean>;
|
|
23
|
+
/** Description of the host override. */
|
|
24
|
+
description?: pulumi.Input<string>;
|
|
25
|
+
}
|
|
26
|
+
export declare class OpnsenseUnboundHostOverride extends pulumi.CustomResource {
|
|
27
|
+
readonly uuid: pulumi.Output<string>;
|
|
28
|
+
readonly enabled: pulumi.Output<boolean>;
|
|
29
|
+
readonly hostname: pulumi.Output<string | undefined>;
|
|
30
|
+
readonly domain: pulumi.Output<string>;
|
|
31
|
+
readonly rr: pulumi.Output<string>;
|
|
32
|
+
readonly server: pulumi.Output<string | undefined>;
|
|
33
|
+
readonly mxprio: pulumi.Output<number | undefined>;
|
|
34
|
+
readonly mx: pulumi.Output<string | undefined>;
|
|
35
|
+
readonly txtdata: pulumi.Output<string | undefined>;
|
|
36
|
+
readonly ttl: pulumi.Output<number | undefined>;
|
|
37
|
+
readonly addptr: pulumi.Output<boolean>;
|
|
38
|
+
readonly description: pulumi.Output<string | undefined>;
|
|
39
|
+
constructor(name: string, args: OpnsenseUnboundHostOverrideArgs, 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.OpnsenseUnboundHostOverride = 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 OpnsenseUnboundHostOverride extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseUnboundHostOverride", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseUnboundHostOverride = OpnsenseUnboundHostOverride;
|
package/package.json
CHANGED
package/provider.d.ts
CHANGED
|
@@ -7,11 +7,23 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
7
7
|
export declare class Provider extends pulumi.ProviderResource {
|
|
8
8
|
readonly url: pulumi.Output<string>;
|
|
9
9
|
readonly apiKey: pulumi.Output<string>;
|
|
10
|
-
|
|
10
|
+
readonly opnsenseUrl: pulumi.Output<string>;
|
|
11
|
+
readonly opnsenseApiKey: pulumi.Output<string>;
|
|
12
|
+
readonly opnsenseApiSecret: pulumi.Output<string>;
|
|
13
|
+
readonly opnsenseInsecure: pulumi.Output<boolean>;
|
|
14
|
+
constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions);
|
|
11
15
|
}
|
|
12
16
|
export interface ProviderArgs {
|
|
13
17
|
/** The URL of the Dockge server (e.g., http://192.168.1.100:5001) */
|
|
14
|
-
url
|
|
18
|
+
url?: pulumi.Input<string>;
|
|
15
19
|
/** API key for authenticating with the Dockge REST API */
|
|
16
|
-
apiKey
|
|
20
|
+
apiKey?: pulumi.Input<string>;
|
|
21
|
+
/** The URL of the OPNsense server (e.g., https://192.168.1.1) */
|
|
22
|
+
opnsenseUrl?: pulumi.Input<string>;
|
|
23
|
+
/** API key for authenticating with the OPNsense REST API */
|
|
24
|
+
opnsenseApiKey?: pulumi.Input<string>;
|
|
25
|
+
/** API secret for authenticating with the OPNsense REST API */
|
|
26
|
+
opnsenseApiSecret?: pulumi.Input<string>;
|
|
27
|
+
/** Skip TLS certificate verification for OPNsense API (default: false) */
|
|
28
|
+
opnsenseInsecure?: pulumi.Input<boolean>;
|
|
17
29
|
}
|
package/provider.js
CHANGED
|
@@ -45,8 +45,12 @@ const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
|
45
45
|
class Provider extends pulumi.ProviderResource {
|
|
46
46
|
constructor(name, args, opts) {
|
|
47
47
|
const inputs = {
|
|
48
|
-
url: args
|
|
49
|
-
apiKey: args
|
|
48
|
+
url: args?.url,
|
|
49
|
+
apiKey: args?.apiKey,
|
|
50
|
+
opnsenseUrl: args?.opnsenseUrl,
|
|
51
|
+
opnsenseApiKey: args?.opnsenseApiKey,
|
|
52
|
+
opnsenseApiSecret: args?.opnsenseApiSecret,
|
|
53
|
+
opnsenseInsecure: args?.opnsenseInsecure,
|
|
50
54
|
};
|
|
51
55
|
super("homelab", name, inputs, {
|
|
52
56
|
version: PLUGIN_VERSION,
|