@pulumi/fastly
Version:
A Pulumi package for creating and managing fastly cloud resources.. Based on terraform-provider-fastly: version v4
128 lines • 5.11 kB
JavaScript
;
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.NgwafAccountRule = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("./utilities");
/**
* Provides a Fastly Next-Gen WAF Account Rule.\
* Account-level rules apply across one or more workspaces and are useful for defining shared or global WAF logic.
*
* ## Example Usage
*
* Basic usage:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as fastly from "@pulumi/fastly";
*
* const example = new fastly.NgwafAccountRule("example", {
* appliesTos: ["*"],
* type: "request",
* description: "example",
* enabled: true,
* requestLogging: "sampled",
* groupOperator: "all",
* actions: [{
* type: "block",
* }],
* conditions: [{
* field: "ip",
* operator: "equals",
* value: "1.2.3.4",
* }],
* groupConditions: [{
* groupOperator: "all",
* conditions: [{
* field: "method",
* operator: "equals",
* value: "POST",
* }],
* }],
* });
* ```
*
* ## Import
*
* Fastly Next-Gen WAF account rules can be imported using just the rule ID, e.g.:
*
* ```sh
* $ pulumi import fastly:index/ngwafAccountRule:NgwafAccountRule demo <ruleID>
* ```
*/
class NgwafAccountRule extends pulumi.CustomResource {
/**
* Get an existing NgwafAccountRule 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, id, state, opts) {
return new NgwafAccountRule(name, state, { ...opts, id: id });
}
/**
* Returns true if the given object is an instance of NgwafAccountRule. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === NgwafAccountRule.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["actions"] = state?.actions;
resourceInputs["appliesTos"] = state?.appliesTos;
resourceInputs["conditions"] = state?.conditions;
resourceInputs["description"] = state?.description;
resourceInputs["enabled"] = state?.enabled;
resourceInputs["groupConditions"] = state?.groupConditions;
resourceInputs["groupOperator"] = state?.groupOperator;
resourceInputs["multivalConditions"] = state?.multivalConditions;
resourceInputs["requestLogging"] = state?.requestLogging;
resourceInputs["type"] = state?.type;
}
else {
const args = argsOrState;
if (args?.actions === undefined && !opts.urn) {
throw new Error("Missing required property 'actions'");
}
if (args?.appliesTos === undefined && !opts.urn) {
throw new Error("Missing required property 'appliesTos'");
}
if (args?.description === undefined && !opts.urn) {
throw new Error("Missing required property 'description'");
}
if (args?.enabled === undefined && !opts.urn) {
throw new Error("Missing required property 'enabled'");
}
if (args?.type === undefined && !opts.urn) {
throw new Error("Missing required property 'type'");
}
resourceInputs["actions"] = args?.actions;
resourceInputs["appliesTos"] = args?.appliesTos;
resourceInputs["conditions"] = args?.conditions;
resourceInputs["description"] = args?.description;
resourceInputs["enabled"] = args?.enabled;
resourceInputs["groupConditions"] = args?.groupConditions;
resourceInputs["groupOperator"] = args?.groupOperator;
resourceInputs["multivalConditions"] = args?.multivalConditions;
resourceInputs["requestLogging"] = args?.requestLogging;
resourceInputs["type"] = args?.type;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(NgwafAccountRule.__pulumiType, name, resourceInputs, opts);
}
}
exports.NgwafAccountRule = NgwafAccountRule;
/** @internal */
NgwafAccountRule.__pulumiType = 'fastly:index/ngwafAccountRule:NgwafAccountRule';
//# sourceMappingURL=ngwafAccountRule.js.map