UNPKG

@upcloud/pulumi-upcloud

Version:

A Pulumi package for creating and managing UpCloud resources.

191 lines (190 loc) 6.34 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * This resource represents an UpCloud SDN firewall ruleset. Rules are managed as an ordered list; their position in the API is determined by their order in the `rules` list. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as upcloud from "@upcloud/pulumi-upcloud"; * * // Create a stateful firewall ruleset with default DNS rules enabled * const example = new upcloud.FirewallRuleset("example", { * name: "example-ruleset", * description: "Example firewall ruleset for production servers", * defaultDnsRulesEnabled: true, * labels: { * environment: "production", * managed_by: "terraform", * }, * }); * // Create a firewall ruleset attached to a specific server * const exampleServer = new upcloud.Server("example", { * hostname: "terraform.example.tld", * zone: "de-fra1", * plan: "1xCPU-1GB", * template: { * storage: "Ubuntu Server 24.04 LTS (Noble Numbat)", * }, * networkInterfaces: [{ * type: "utility", * }], * }); * const serverRuleset = new upcloud.FirewallRuleset("server_ruleset", { * name: "server-ruleset", * description: "Firewall rules for example server", * serverUuid: exampleServer.id, * }); * ``` */ export declare class FirewallRuleset extends pulumi.CustomResource { /** * Get an existing FirewallRuleset 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. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: FirewallRulesetState, opts?: pulumi.CustomResourceOptions): FirewallRuleset; /** * Returns true if the given object is an instance of FirewallRuleset. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is FirewallRuleset; /** * Creation timestamp. */ readonly createdAt: pulumi.Output<string>; /** * Whether default DNS rules are enabled. */ readonly defaultDnsRulesEnabled: pulumi.Output<boolean>; /** * Description of the firewall ruleset. */ readonly description: pulumi.Output<string>; /** * Whether the ruleset is enabled. */ readonly enabled: pulumi.Output<boolean>; /** * Ruleset labels as key/value pairs. */ readonly labels: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Name of the firewall ruleset. */ readonly name: pulumi.Output<string>; /** * Ordered list of firewall rules. Rules are applied in list order; the position attribute reflects the 1-based index assigned by the API and cannot be configured. */ readonly rules: pulumi.Output<outputs.FirewallRulesetRule[]>; /** * Optional server UUID to bind with this ruleset. Create-only in API. */ readonly serverUuid: pulumi.Output<string | undefined>; /** * Last update timestamp. */ readonly updatedAt: pulumi.Output<string>; /** * Ruleset version. */ readonly version: pulumi.Output<number>; /** * Create a FirewallRuleset 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?: FirewallRulesetArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FirewallRuleset resources. */ export interface FirewallRulesetState { /** * Creation timestamp. */ createdAt?: pulumi.Input<string>; /** * Whether default DNS rules are enabled. */ defaultDnsRulesEnabled?: pulumi.Input<boolean>; /** * Description of the firewall ruleset. */ description?: pulumi.Input<string>; /** * Whether the ruleset is enabled. */ enabled?: pulumi.Input<boolean>; /** * Ruleset labels as key/value pairs. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Name of the firewall ruleset. */ name?: pulumi.Input<string>; /** * Ordered list of firewall rules. Rules are applied in list order; the position attribute reflects the 1-based index assigned by the API and cannot be configured. */ rules?: pulumi.Input<pulumi.Input<inputs.FirewallRulesetRule>[]>; /** * Optional server UUID to bind with this ruleset. Create-only in API. */ serverUuid?: pulumi.Input<string>; /** * Last update timestamp. */ updatedAt?: pulumi.Input<string>; /** * Ruleset version. */ version?: pulumi.Input<number>; } /** * The set of arguments for constructing a FirewallRuleset resource. */ export interface FirewallRulesetArgs { /** * Whether default DNS rules are enabled. */ defaultDnsRulesEnabled?: pulumi.Input<boolean>; /** * Description of the firewall ruleset. */ description?: pulumi.Input<string>; /** * Whether the ruleset is enabled. */ enabled?: pulumi.Input<boolean>; /** * Ruleset labels as key/value pairs. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Name of the firewall ruleset. */ name?: pulumi.Input<string>; /** * Ordered list of firewall rules. Rules are applied in list order; the position attribute reflects the 1-based index assigned by the API and cannot be configured. */ rules?: pulumi.Input<pulumi.Input<inputs.FirewallRulesetRule>[]>; /** * Optional server UUID to bind with this ruleset. Create-only in API. */ serverUuid?: pulumi.Input<string>; }