{
    "name": "impart",
    "displayName": "Impart Security",
    "description": "A Pulumi package for creating and managing Impart resources.",
    "keywords": [
        "pulumi",
        "impart",
        "category/infrastructure"
    ],
    "homepage": "https://www.impart.security/",
    "license": "Apache-2.0",
    "attribution": "This Pulumi package is based on the [`impart` Terraform Provider](https://github.com/impart-security/terraform-provider-impart).",
    "repository": "https://github.com/impart-security/pulumi-impart",
    "logoUrl": "https://console.impartsecurity.net/logo-blue-black.svg",
    "pluginDownloadURL": "github://api.github.com/impart-security",
    "publisher": "Impart Security",
    "meta": {
        "moduleFormat": "(.*)(?:/[^/]*)"
    },
    "language": {
        "go": {
            "importBasePath": "github.com/impart-security/pulumi-impart/sdk/go/impart",
            "generateResourceContainerTypes": true,
            "generateExtraInputTypes": true
        },
        "nodejs": {
            "packageName": "@impart-security/pulumi-impart",
            "packageDescription": "A Pulumi package for creating and managing Impart resources.",
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/impart-security/terraform-provider-impart)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-impart` repo](https://github.com/impart-security/pulumi-impart/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-impart` repo](https://github.com/impart-security/terraform-provider-impart/issues).",
            "dependencies": {
                "@pulumi/pulumi": "^3.0.0"
            },
            "devDependencies": {
                "@types/mime": "^2.0.0",
                "@types/node": "^10.0.0"
            },
            "typescriptVersion": "^5.4.3",
            "compatibility": "tfbridge20",
            "disableUnionOutputTypes": true
        },
        "python": {
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/impart-security/terraform-provider-impart)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-impart` repo](https://github.com/impart-security/pulumi-impart/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-impart` repo](https://github.com/impart-security/terraform-provider-impart/issues).",
            "compatibility": "tfbridge20",
            "pyproject": {}
        }
    },
    "config": {
        "variables": {
            "endpoint": {
                "type": "string",
                "description": "The Impart api endpoint",
                "defaultInfo": {
                    "environment": [
                        "IMPART_ENDPOINT"
                    ]
                }
            },
            "token": {
                "type": "string",
                "description": "The Impart api token",
                "defaultInfo": {
                    "environment": [
                        "IMPART_TOKEN"
                    ]
                }
            }
        }
    },
    "types": {
        "impart:index/ListItem:ListItem": {
            "properties": {
                "expiration": {
                    "type": "string",
                    "description": "The list item expiration.\n"
                },
                "value": {
                    "type": "string",
                    "description": "The list item value.\n"
                }
            },
            "type": "object",
            "required": [
                "value"
            ]
        },
        "impart:index/MonitorCondition:MonitorCondition": {
            "properties": {
                "comparator": {
                    "type": "string",
                    "description": "Greater than, equal to, or less than (should be one of 'gt', 'lt', or 'eq')\n"
                },
                "delay": {
                    "type": "integer",
                    "description": "In milliseconds, the offset from now() for the time window.\n"
                },
                "details": {
                    "$ref": "#/types/impart:index/MonitorConditionDetails:MonitorConditionDetails"
                },
                "threshold": {
                    "type": "integer",
                    "description": "Number of occurrences that need to execute to have this condition be true.\n"
                },
                "timePeriod": {
                    "type": "integer",
                    "description": "In milliseconds, the time span from now until when we should be counting events (for example, 60000 is all events in the last minute).\n"
                }
            },
            "type": "object",
            "required": [
                "comparator",
                "delay",
                "details",
                "threshold",
                "timePeriod"
            ]
        },
        "impart:index/MonitorConditionDetails:MonitorConditionDetails": {
            "properties": {
                "action": {
                    "type": "string",
                    "description": "Strictly for event type monitors. A slug of the action the monitor is tracking.\n"
                },
                "actorType": {
                    "type": "string",
                    "description": "Strictly for event type monitors. A slug of the actor type the monitor is tracking.\n"
                },
                "subjectType": {
                    "type": "string",
                    "description": "Strictly for event type monitors. A slug of the subject type the monitor is tracking.\n"
                },
                "tag": {
                    "type": "string",
                    "description": "Strictly for metric type monitors. The tag the monitor is tracking.\n"
                },
                "type": {
                    "type": "string",
                    "description": "The type of monitor (should be one of 'event' or 'metric'\n"
                }
            },
            "type": "object",
            "required": [
                "type"
            ]
        },
        "impart:index/RuleClientIdentifierHashField:RuleClientIdentifierHashField": {
            "properties": {
                "field": {
                    "type": "string",
                    "description": "The hash field.\n"
                },
                "key": {
                    "type": "string",
                    "description": "The hash field key.\n"
                }
            },
            "type": "object",
            "required": [
                "field"
            ]
        },
        "impart:index/RuleDependenciesDependency:RuleDependenciesDependency": {
            "properties": {
                "dependsOns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "IDs of the rule this rule depends on.\n"
                },
                "ruleId": {
                    "type": "string",
                    "description": "The ID of the rule\n"
                }
            },
            "type": "object",
            "required": [
                "dependsOns",
                "ruleId"
            ]
        },
        "impart:index/RuleScriptDependenciesDependency:RuleScriptDependenciesDependency": {
            "properties": {
                "dependsOnRuleScriptIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "IDs of the rule script this rule depends on.\n"
                },
                "ruleScriptId": {
                    "type": "string",
                    "description": "The ID of the rule script\n"
                }
            },
            "type": "object",
            "required": [
                "dependsOnRuleScriptIds",
                "ruleScriptId"
            ]
        },
        "impart:index/RuleTestCaseAssertion:RuleTestCaseAssertion": {
            "properties": {
                "assertionType": {
                    "type": "string",
                    "description": "The assertion type of the request.\n"
                },
                "condition": {
                    "type": "string",
                    "description": "The condition of the assertion.\nAccepted values per assertion type:\n**output**: contains, not*contains.\n**tags**: contains, not*contains.\n**status_code**: equal, not*equal, greater*than, less*than, one*of.\n**block**: N/A\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description of the assertion.\n"
                },
                "expected": {
                    "type": "string",
                    "description": "The expected value of the assertion.\nIt is a string value, and the format it must satisfy depends on the assertion type:\n**output**: A string.\n**tags**: A string.\n**status_code**: An integer value (e.g., \"200\") or comma-separated list of integers for\u003cspan pulumi-lang-nodejs=\" oneOf \" pulumi-lang-dotnet=\" OneOf \" pulumi-lang-go=\" oneOf \" pulumi-lang-python=\" one_of \" pulumi-lang-yaml=\" oneOf \" pulumi-lang-java=\" oneOf \"\u003e oneOf \u003c/span\u003econdition (e.g., \"200,404,500\").\n**block**: A boolean value represented as \"true\" or \"false\".\n"
                },
                "location": {
                    "type": "string",
                    "description": "The location of the assertion. Allowed values: req, res. Not applicable for assertion type output.\n"
                },
                "messageIndexes": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "description": "The indexes of the messages in the test case the assertion applies to.\n"
                }
            },
            "type": "object",
            "required": [
                "assertionType",
                "expected",
                "messageIndexes"
            ]
        },
        "impart:index/RuleTestCaseMessage:RuleTestCaseMessage": {
            "properties": {
                "count": {
                    "type": "integer",
                    "description": "The number of times to include the message in the test case.\n"
                },
                "delay": {
                    "type": "integer",
                    "description": "The delay in milliseconds between message iterations.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description of the test case message.\n"
                },
                "postDelay": {
                    "type": "integer",
                    "description": "The delay in milliseconds after a set of message iterations.\n"
                },
                "req": {
                    "$ref": "#/types/impart:index/RuleTestCaseMessageReq:RuleTestCaseMessageReq",
                    "description": "A payload sent to the inspector to inspect an HTTP request.\n"
                },
                "res": {
                    "$ref": "#/types/impart:index/RuleTestCaseMessageRes:RuleTestCaseMessageRes",
                    "description": "A payload sent to the inspector to inspect an HTTP response.\n"
                }
            },
            "type": "object",
            "required": [
                "req",
                "res"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "count",
                        "delay",
                        "postDelay",
                        "req",
                        "res"
                    ]
                }
            }
        },
        "impart:index/RuleTestCaseMessageReq:RuleTestCaseMessageReq": {
            "properties": {
                "body": {
                    "type": "string",
                    "description": "The base64 encoded HTTP request body.\n"
                },
                "cookieKeys": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The HTTP request cookie keys.\n"
                },
                "cookieValues": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The HTTP request cookie values.\n"
                },
                "headerKeys": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The HTTP request header keys.\n"
                },
                "headerValues": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The HTTP request header values.\n"
                },
                "method": {
                    "type": "string",
                    "description": "The method of the request.\n"
                },
                "remoteAddr": {
                    "type": "string",
                    "description": "The remote address of the request.\n"
                },
                "truncatedBody": {
                    "type": "boolean",
                    "description": "Indicates whether the request body was truncated.\n"
                },
                "url": {
                    "type": "string",
                    "description": "The URL of the request.\n"
                }
            },
            "type": "object",
            "required": [
                "method",
                "url"
            ]
        },
        "impart:index/RuleTestCaseMessageRes:RuleTestCaseMessageRes": {
            "properties": {
                "body": {
                    "type": "string",
                    "description": "The base64 encoded HTTP response body.\n"
                },
                "headerKeys": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The HTTP response header keys.\n"
                },
                "headerValues": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The HTTP response header values.\n"
                },
                "statusCode": {
                    "type": "integer",
                    "description": "The HTTP response status code.\n"
                },
                "truncatedBody": {
                    "type": "boolean",
                    "description": "Indicates whether the response body was truncated.\n"
                }
            },
            "type": "object",
            "required": [
                "statusCode"
            ]
        },
        "impart:index/SpecLearningConfig:SpecLearningConfig": {
            "properties": {
                "includeQueryParams": {
                    "type": "boolean",
                    "description": "Include query parameters during spec learning.\n"
                },
                "includeRequestBody": {
                    "type": "boolean",
                    "description": "Include request body during spec learning.\n"
                },
                "includeRequestHeaders": {
                    "type": "boolean",
                    "description": "Include request headers during spec learning.\n"
                },
                "includeResponseBody": {
                    "type": "boolean",
                    "description": "Include response body during spec learning.\n"
                },
                "includeResponseHeaders": {
                    "type": "boolean",
                    "description": "Include response headers during spec learning.\n"
                },
                "learningMode": {
                    "type": "string",
                    "description": "Spec learning mode configuration options. Valid values: all, paths*only, paths*custom. Note: When using 'all' or 'paths*only' modes, the include** flags will be preserved in state but are not applicable as the mode overrides these settings.\n"
                }
            },
            "type": "object",
            "required": [
                "learningMode"
            ]
        }
    },
    "provider": {
        "description": "The provider type for the impart package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
        "properties": {
            "endpoint": {
                "type": "string",
                "description": "The Impart api endpoint"
            },
            "token": {
                "type": "string",
                "description": "The Impart api token"
            }
        },
        "inputProperties": {
            "endpoint": {
                "type": "string",
                "description": "The Impart api endpoint",
                "defaultInfo": {
                    "environment": [
                        "IMPART_ENDPOINT"
                    ]
                }
            },
            "token": {
                "type": "string",
                "description": "The Impart api token",
                "defaultInfo": {
                    "environment": [
                        "IMPART_TOKEN"
                    ]
                }
            }
        },
        "methods": {
            "terraformConfig": "pulumi:providers:impart/terraformConfig"
        }
    },
    "resources": {
        "impart:index/apiBinding:ApiBinding": {
            "description": "Manage an api binding.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new api binding\nconst example = new impart.ApiBinding(\"example\", {\n    name: \"api_binding_example\",\n    port: 443,\n    specId: impartSpec.example.id,\n    hostname: \"example.com\",\n    basePath: \"/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new api binding\nexample = impart.ApiBinding(\"example\",\n    name=\"api_binding_example\",\n    port=443,\n    spec_id=impart_spec[\"example\"][\"id\"],\n    hostname=\"example.com\",\n    base_path=\"/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new api binding\n    var example = new Impart.ApiBinding(\"example\", new()\n    {\n        Name = \"api_binding_example\",\n        Port = 443,\n        SpecId = impartSpec.Example.Id,\n        Hostname = \"example.com\",\n        BasePath = \"/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new api binding\n\t\t_, err := impart.NewApiBinding(ctx, \"example\", \u0026impart.ApiBindingArgs{\n\t\t\tName:     pulumi.String(\"api_binding_example\"),\n\t\t\tPort:     pulumi.Int(443),\n\t\t\tSpecId:   pulumi.Any(impartSpec.Example.Id),\n\t\t\tHostname: pulumi.String(\"example.com\"),\n\t\t\tBasePath: pulumi.String(\"/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.ApiBinding;\nimport com.pulumi.impart.ApiBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new api binding\n        var example = new ApiBinding(\"example\", ApiBindingArgs.builder()\n            .name(\"api_binding_example\")\n            .port(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(443) (example.pp:3,14-17)))\n            .specId(impartSpec.example().id())\n            .hostname(\"example.com\")\n            .basePath(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new api binding\n  example:\n    type: impart:ApiBinding\n    properties:\n      name: api_binding_example\n      port: 443\n      specId: ${impartSpec.example.id}\n      hostname: example.com\n      basePath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "basePath": {
                    "type": "string",
                    "description": "The\u003cspan pulumi-lang-nodejs=\" basePath \" pulumi-lang-dotnet=\" BasePath \" pulumi-lang-go=\" basePath \" pulumi-lang-python=\" base_path \" pulumi-lang-yaml=\" basePath \" pulumi-lang-java=\" basePath \"\u003e basePath \u003c/span\u003efor this api binding.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "The disabled for this api binding.\n"
                },
                "forwardedFors": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedFor \" pulumi-lang-dotnet=\" ForwardedFor \" pulumi-lang-go=\" forwardedFor \" pulumi-lang-python=\" forwarded_for \" pulumi-lang-yaml=\" forwardedFor \" pulumi-lang-java=\" forwardedFor \"\u003e forwardedFor \u003c/span\u003efor this api binding.\n"
                },
                "forwardedHosts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedHost \" pulumi-lang-dotnet=\" ForwardedHost \" pulumi-lang-go=\" forwardedHost \" pulumi-lang-python=\" forwarded_host \" pulumi-lang-yaml=\" forwardedHost \" pulumi-lang-java=\" forwardedHost \"\u003e forwardedHost \u003c/span\u003efor this api binding.\n"
                },
                "forwardedIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedId \" pulumi-lang-dotnet=\" ForwardedId \" pulumi-lang-go=\" forwardedId \" pulumi-lang-python=\" forwarded_id \" pulumi-lang-yaml=\" forwardedId \" pulumi-lang-java=\" forwardedId \"\u003e forwardedId \u003c/span\u003efor this api binding.\n"
                },
                "forwardedProtos": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedProto \" pulumi-lang-dotnet=\" ForwardedProto \" pulumi-lang-go=\" forwardedProto \" pulumi-lang-python=\" forwarded_proto \" pulumi-lang-yaml=\" forwardedProto \" pulumi-lang-java=\" forwardedProto \"\u003e forwardedProto \u003c/span\u003efor this api binding.\n"
                },
                "hops": {
                    "type": "integer",
                    "description": "The hops for this api binding.\n"
                },
                "hostname": {
                    "type": "string",
                    "description": "The hostname for this api binding.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this api binding.\n"
                },
                "port": {
                    "type": "integer",
                    "description": "The port for this api binding.\n"
                },
                "specId": {
                    "type": "string",
                    "description": "The specification id.\n"
                },
                "upstreamOrigin": {
                    "type": "string",
                    "description": "The\u003cspan pulumi-lang-nodejs=\" upstreamOrigin \" pulumi-lang-dotnet=\" UpstreamOrigin \" pulumi-lang-go=\" upstreamOrigin \" pulumi-lang-python=\" upstream_origin \" pulumi-lang-yaml=\" upstreamOrigin \" pulumi-lang-java=\" upstreamOrigin \"\u003e upstreamOrigin \u003c/span\u003efor this api binding.\n"
                },
                "useForwarded": {
                    "type": "boolean",
                    "description": "The\u003cspan pulumi-lang-nodejs=\" useForwarded \" pulumi-lang-dotnet=\" UseForwarded \" pulumi-lang-go=\" useForwarded \" pulumi-lang-python=\" use_forwarded \" pulumi-lang-yaml=\" useForwarded \" pulumi-lang-java=\" useForwarded \"\u003e useForwarded \u003c/span\u003efor this api binding.\n"
                }
            },
            "required": [
                "basePath",
                "hostname",
                "name",
                "port",
                "specId"
            ],
            "inputProperties": {
                "basePath": {
                    "type": "string",
                    "description": "The\u003cspan pulumi-lang-nodejs=\" basePath \" pulumi-lang-dotnet=\" BasePath \" pulumi-lang-go=\" basePath \" pulumi-lang-python=\" base_path \" pulumi-lang-yaml=\" basePath \" pulumi-lang-java=\" basePath \"\u003e basePath \u003c/span\u003efor this api binding.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "The disabled for this api binding.\n"
                },
                "forwardedFors": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedFor \" pulumi-lang-dotnet=\" ForwardedFor \" pulumi-lang-go=\" forwardedFor \" pulumi-lang-python=\" forwarded_for \" pulumi-lang-yaml=\" forwardedFor \" pulumi-lang-java=\" forwardedFor \"\u003e forwardedFor \u003c/span\u003efor this api binding.\n"
                },
                "forwardedHosts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedHost \" pulumi-lang-dotnet=\" ForwardedHost \" pulumi-lang-go=\" forwardedHost \" pulumi-lang-python=\" forwarded_host \" pulumi-lang-yaml=\" forwardedHost \" pulumi-lang-java=\" forwardedHost \"\u003e forwardedHost \u003c/span\u003efor this api binding.\n"
                },
                "forwardedIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedId \" pulumi-lang-dotnet=\" ForwardedId \" pulumi-lang-go=\" forwardedId \" pulumi-lang-python=\" forwarded_id \" pulumi-lang-yaml=\" forwardedId \" pulumi-lang-java=\" forwardedId \"\u003e forwardedId \u003c/span\u003efor this api binding.\n"
                },
                "forwardedProtos": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedProto \" pulumi-lang-dotnet=\" ForwardedProto \" pulumi-lang-go=\" forwardedProto \" pulumi-lang-python=\" forwarded_proto \" pulumi-lang-yaml=\" forwardedProto \" pulumi-lang-java=\" forwardedProto \"\u003e forwardedProto \u003c/span\u003efor this api binding.\n"
                },
                "hops": {
                    "type": "integer",
                    "description": "The hops for this api binding.\n"
                },
                "hostname": {
                    "type": "string",
                    "description": "The hostname for this api binding.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this api binding.\n"
                },
                "port": {
                    "type": "integer",
                    "description": "The port for this api binding.\n"
                },
                "specId": {
                    "type": "string",
                    "description": "The specification id.\n"
                },
                "upstreamOrigin": {
                    "type": "string",
                    "description": "The\u003cspan pulumi-lang-nodejs=\" upstreamOrigin \" pulumi-lang-dotnet=\" UpstreamOrigin \" pulumi-lang-go=\" upstreamOrigin \" pulumi-lang-python=\" upstream_origin \" pulumi-lang-yaml=\" upstreamOrigin \" pulumi-lang-java=\" upstreamOrigin \"\u003e upstreamOrigin \u003c/span\u003efor this api binding.\n"
                },
                "useForwarded": {
                    "type": "boolean",
                    "description": "The\u003cspan pulumi-lang-nodejs=\" useForwarded \" pulumi-lang-dotnet=\" UseForwarded \" pulumi-lang-go=\" useForwarded \" pulumi-lang-python=\" use_forwarded \" pulumi-lang-yaml=\" useForwarded \" pulumi-lang-java=\" useForwarded \"\u003e useForwarded \u003c/span\u003efor this api binding.\n"
                }
            },
            "requiredInputs": [
                "basePath",
                "hostname",
                "name",
                "port",
                "specId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ApiBinding resources.\n",
                "properties": {
                    "basePath": {
                        "type": "string",
                        "description": "The\u003cspan pulumi-lang-nodejs=\" basePath \" pulumi-lang-dotnet=\" BasePath \" pulumi-lang-go=\" basePath \" pulumi-lang-python=\" base_path \" pulumi-lang-yaml=\" basePath \" pulumi-lang-java=\" basePath \"\u003e basePath \u003c/span\u003efor this api binding.\n"
                    },
                    "disabled": {
                        "type": "boolean",
                        "description": "The disabled for this api binding.\n"
                    },
                    "forwardedFors": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedFor \" pulumi-lang-dotnet=\" ForwardedFor \" pulumi-lang-go=\" forwardedFor \" pulumi-lang-python=\" forwarded_for \" pulumi-lang-yaml=\" forwardedFor \" pulumi-lang-java=\" forwardedFor \"\u003e forwardedFor \u003c/span\u003efor this api binding.\n"
                    },
                    "forwardedHosts": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedHost \" pulumi-lang-dotnet=\" ForwardedHost \" pulumi-lang-go=\" forwardedHost \" pulumi-lang-python=\" forwarded_host \" pulumi-lang-yaml=\" forwardedHost \" pulumi-lang-java=\" forwardedHost \"\u003e forwardedHost \u003c/span\u003efor this api binding.\n"
                    },
                    "forwardedIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedId \" pulumi-lang-dotnet=\" ForwardedId \" pulumi-lang-go=\" forwardedId \" pulumi-lang-python=\" forwarded_id \" pulumi-lang-yaml=\" forwardedId \" pulumi-lang-java=\" forwardedId \"\u003e forwardedId \u003c/span\u003efor this api binding.\n"
                    },
                    "forwardedProtos": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The\u003cspan pulumi-lang-nodejs=\" forwardedProto \" pulumi-lang-dotnet=\" ForwardedProto \" pulumi-lang-go=\" forwardedProto \" pulumi-lang-python=\" forwarded_proto \" pulumi-lang-yaml=\" forwardedProto \" pulumi-lang-java=\" forwardedProto \"\u003e forwardedProto \u003c/span\u003efor this api binding.\n"
                    },
                    "hops": {
                        "type": "integer",
                        "description": "The hops for this api binding.\n"
                    },
                    "hostname": {
                        "type": "string",
                        "description": "The hostname for this api binding.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this api binding.\n"
                    },
                    "port": {
                        "type": "integer",
                        "description": "The port for this api binding.\n"
                    },
                    "specId": {
                        "type": "string",
                        "description": "The specification id.\n"
                    },
                    "upstreamOrigin": {
                        "type": "string",
                        "description": "The\u003cspan pulumi-lang-nodejs=\" upstreamOrigin \" pulumi-lang-dotnet=\" UpstreamOrigin \" pulumi-lang-go=\" upstreamOrigin \" pulumi-lang-python=\" upstream_origin \" pulumi-lang-yaml=\" upstreamOrigin \" pulumi-lang-java=\" upstreamOrigin \"\u003e upstreamOrigin \u003c/span\u003efor this api binding.\n"
                    },
                    "useForwarded": {
                        "type": "boolean",
                        "description": "The\u003cspan pulumi-lang-nodejs=\" useForwarded \" pulumi-lang-dotnet=\" UseForwarded \" pulumi-lang-go=\" useForwarded \" pulumi-lang-python=\" use_forwarded \" pulumi-lang-yaml=\" useForwarded \" pulumi-lang-java=\" useForwarded \"\u003e useForwarded \u003c/span\u003efor this api binding.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/coreRuleConfig:CoreRuleConfig": {
            "description": "Manage a core rule configuration.\n",
            "properties": {
                "config": {
                    "type": "string",
                    "description": "the core rule configuration.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "Set true to disable the core rule.\n"
                },
                "slug": {
                    "type": "string",
                    "description": "The slug for the core rule.\n"
                }
            },
            "required": [
                "config",
                "disabled",
                "slug"
            ],
            "inputProperties": {
                "config": {
                    "type": "string",
                    "description": "the core rule configuration.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "Set true to disable the core rule.\n"
                },
                "slug": {
                    "type": "string",
                    "description": "The slug for the core rule.\n"
                }
            },
            "requiredInputs": [
                "config",
                "disabled",
                "slug"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering CoreRuleConfig resources.\n",
                "properties": {
                    "config": {
                        "type": "string",
                        "description": "the core rule configuration.\n"
                    },
                    "disabled": {
                        "type": "boolean",
                        "description": "Set true to disable the core rule.\n"
                    },
                    "slug": {
                        "type": "string",
                        "description": "The slug for the core rule.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/externalLink:ExternalLink": {
            "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new external link\nconst externalLink1 = new impart.ExternalLink(\"external_link1\", {\n    name: \"Datadog client IP address\",\n    description: \"A link to Datadog dashboard for client IP address\",\n    url: \"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\",\n    entity: \"request\",\n    jsonPathElement: \"$.client_ip.address\",\n    vendor: \"Datadog\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new external link\nexternal_link1 = impart.ExternalLink(\"external_link1\",\n    name=\"Datadog client IP address\",\n    description=\"A link to Datadog dashboard for client IP address\",\n    url=\"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\",\n    entity=\"request\",\n    json_path_element=\"$.client_ip.address\",\n    vendor=\"Datadog\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new external link\n    var externalLink1 = new Impart.ExternalLink(\"external_link1\", new()\n    {\n        Name = \"Datadog client IP address\",\n        Description = \"A link to Datadog dashboard for client IP address\",\n        Url = \"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\",\n        Entity = \"request\",\n        JsonPathElement = \"$.client_ip.address\",\n        Vendor = \"Datadog\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new external link\n\t\t_, err := impart.NewExternalLink(ctx, \"external_link1\", \u0026impart.ExternalLinkArgs{\n\t\t\tName:            pulumi.String(\"Datadog client IP address\"),\n\t\t\tDescription:     pulumi.String(\"A link to Datadog dashboard for client IP address\"),\n\t\t\tUrl:             pulumi.String(\"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\"),\n\t\t\tEntity:          pulumi.String(\"request\"),\n\t\t\tJsonPathElement: pulumi.String(\"$.client_ip.address\"),\n\t\t\tVendor:          pulumi.String(\"Datadog\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.ExternalLink;\nimport com.pulumi.impart.ExternalLinkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new external link\n        var externalLink1 = new ExternalLink(\"externalLink1\", ExternalLinkArgs.builder()\n            .name(\"Datadog client IP address\")\n            .description(\"A link to Datadog dashboard for client IP address\")\n            .url(\"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\")\n            .entity(\"request\")\n            .jsonPathElement(\"$.client_ip.address\")\n            .vendor(\"Datadog\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new external link\n  externalLink1:\n    type: impart:ExternalLink\n    name: external_link1\n    properties:\n      name: Datadog client IP address\n      description: A link to Datadog dashboard for client IP address\n      url: https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\n      entity: request\n      jsonPathElement: $.client_ip.address\n      vendor: Datadog\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "The description of the external link.\n"
                },
                "entity": {
                    "type": "string",
                    "description": "The entity to which the links should be applied.\n"
                },
                "jsonPathElement": {
                    "type": "string",
                    "description": "A JSONPath to the element for which this link should apply (e.g. $.client_ip.address).\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the external link.\n"
                },
                "specIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "A list of spec IDs this external link applies to (empty means all).\n"
                },
                "url": {
                    "type": "string",
                    "description": "The external URL template with JSONPath element variables.\n"
                },
                "vendor": {
                    "type": "string",
                    "description": "The vendor for the external link.\n"
                }
            },
            "required": [
                "entity",
                "jsonPathElement",
                "name",
                "url",
                "vendor"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "The description of the external link.\n"
                },
                "entity": {
                    "type": "string",
                    "description": "The entity to which the links should be applied.\n"
                },
                "jsonPathElement": {
                    "type": "string",
                    "description": "A JSONPath to the element for which this link should apply (e.g. $.client_ip.address).\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the external link.\n"
                },
                "specIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "A list of spec IDs this external link applies to (empty means all).\n"
                },
                "url": {
                    "type": "string",
                    "description": "The external URL template with JSONPath element variables.\n"
                },
                "vendor": {
                    "type": "string",
                    "description": "The vendor for the external link.\n"
                }
            },
            "requiredInputs": [
                "entity",
                "jsonPathElement",
                "name",
                "url",
                "vendor"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ExternalLink resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "The description of the external link.\n"
                    },
                    "entity": {
                        "type": "string",
                        "description": "The entity to which the links should be applied.\n"
                    },
                    "jsonPathElement": {
                        "type": "string",
                        "description": "A JSONPath to the element for which this link should apply (e.g. $.client_ip.address).\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the external link.\n"
                    },
                    "specIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "A list of spec IDs this external link applies to (empty means all).\n"
                    },
                    "url": {
                        "type": "string",
                        "description": "The external URL template with JSONPath element variables.\n"
                    },
                    "vendor": {
                        "type": "string",
                        "description": "The vendor for the external link.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/label:Label": {
            "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new label\nconst example = new impart.Label(\"example\", {\n    slug: \"example\",\n    displayName: \"Example\",\n    description: \"example label\",\n    color: \"red\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new label\nexample = impart.Label(\"example\",\n    slug=\"example\",\n    display_name=\"Example\",\n    description=\"example label\",\n    color=\"red\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new label\n    var example = new Impart.Label(\"example\", new()\n    {\n        Slug = \"example\",\n        DisplayName = \"Example\",\n        Description = \"example label\",\n        Color = \"red\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new label\n\t\t_, err := impart.NewLabel(ctx, \"example\", \u0026impart.LabelArgs{\n\t\t\tSlug:        pulumi.String(\"example\"),\n\t\t\tDisplayName: pulumi.String(\"Example\"),\n\t\t\tDescription: pulumi.String(\"example label\"),\n\t\t\tColor:       pulumi.String(\"red\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.Label;\nimport com.pulumi.impart.LabelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new label\n        var example = new Label(\"example\", LabelArgs.builder()\n            .slug(\"example\")\n            .displayName(\"Example\")\n            .description(\"example label\")\n            .color(\"red\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new label\n  example:\n    type: impart:Label\n    properties:\n      slug: example\n      displayName: Example\n      description: example label\n      color: red\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "color": {
                    "type": "string",
                    "description": "The color of the label.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description of the label.\n"
                },
                "displayName": {
                    "type": "string",
                    "description": "The display name of the label.\n"
                },
                "slug": {
                    "type": "string",
                    "description": "Slug of the label.\n"
                }
            },
            "required": [
                "slug"
            ],
            "inputProperties": {
                "color": {
                    "type": "string",
                    "description": "The color of the label.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description of the label.\n"
                },
                "displayName": {
                    "type": "string",
                    "description": "The display name of the label.\n"
                },
                "slug": {
                    "type": "string",
                    "description": "Slug of the label.\n"
                }
            },
            "requiredInputs": [
                "slug"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Label resources.\n",
                "properties": {
                    "color": {
                        "type": "string",
                        "description": "The color of the label.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description of the label.\n"
                    },
                    "displayName": {
                        "type": "string",
                        "description": "The display name of the label.\n"
                    },
                    "slug": {
                        "type": "string",
                        "description": "Slug of the label.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/list:List": {
            "description": "Manage a list.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new string list\nconst example = new impart.List(\"example\", {\n    name: \"list_example\",\n    kind: \"string\",\n    description: \"list description\",\n    items: [\n        {\n            value: \"item1\",\n        },\n        {\n            value: \"item2\",\n        },\n    ],\n});\n// Create a regex pattern list\nconst regexExample = new impart.List(\"regex_example\", {\n    name: \"regex_list_example\",\n    kind: \"regex\",\n    description: \"A list of regex patterns for matching\",\n    items: [\n        {\n            value: \"^/api/v[0-9]+/users/.*$\",\n        },\n        {\n            value: \"\\\\.(php|asp|aspx)$\",\n        },\n    ],\n});\n// Create an Aho-Corasick pattern list\nconst ahoCorasickExample = new impart.List(\"aho_corasick_example\", {\n    name: \"aho_corasick_list_example\",\n    kind: \"aho_corasick\",\n    description: \"A list of patterns for Aho-Corasick matching\",\n    items: [\n        {\n            value: \"SELECT * FROM\",\n        },\n        {\n            value: \"DROP TABLE\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new string list\nexample = impart.List(\"example\",\n    name=\"list_example\",\n    kind=\"string\",\n    description=\"list description\",\n    items=[\n        {\n            \"value\": \"item1\",\n        },\n        {\n            \"value\": \"item2\",\n        },\n    ])\n# Create a regex pattern list\nregex_example = impart.List(\"regex_example\",\n    name=\"regex_list_example\",\n    kind=\"regex\",\n    description=\"A list of regex patterns for matching\",\n    items=[\n        {\n            \"value\": \"^/api/v[0-9]+/users/.*$\",\n        },\n        {\n            \"value\": \"\\\\.(php|asp|aspx)$\",\n        },\n    ])\n# Create an Aho-Corasick pattern list\naho_corasick_example = impart.List(\"aho_corasick_example\",\n    name=\"aho_corasick_list_example\",\n    kind=\"aho_corasick\",\n    description=\"A list of patterns for Aho-Corasick matching\",\n    items=[\n        {\n            \"value\": \"SELECT * FROM\",\n        },\n        {\n            \"value\": \"DROP TABLE\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new string list\n    var example = new Impart.List(\"example\", new()\n    {\n        Name = \"list_example\",\n        Kind = \"string\",\n        Description = \"list description\",\n        Items = new[]\n        {\n            new Impart.Inputs.ListItemArgs\n            {\n                Value = \"item1\",\n            },\n            new Impart.Inputs.ListItemArgs\n            {\n                Value = \"item2\",\n            },\n        },\n    });\n\n    // Create a regex pattern list\n    var regexExample = new Impart.List(\"regex_example\", new()\n    {\n        Name = \"regex_list_example\",\n        Kind = \"regex\",\n        Description = \"A list of regex patterns for matching\",\n        Items = new[]\n        {\n            new Impart.Inputs.ListItemArgs\n            {\n                Value = \"^/api/v[0-9]+/users/.*$\",\n            },\n            new Impart.Inputs.ListItemArgs\n            {\n                Value = \"\\\\.(php|asp|aspx)$\",\n            },\n        },\n    });\n\n    // Create an Aho-Corasick pattern list\n    var ahoCorasickExample = new Impart.List(\"aho_corasick_example\", new()\n    {\n        Name = \"aho_corasick_list_example\",\n        Kind = \"aho_corasick\",\n        Description = \"A list of patterns for Aho-Corasick matching\",\n        Items = new[]\n        {\n            new Impart.Inputs.ListItemArgs\n            {\n                Value = \"SELECT * FROM\",\n            },\n            new Impart.Inputs.ListItemArgs\n            {\n                Value = \"DROP TABLE\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new string list\n\t\t_, err := impart.NewList(ctx, \"example\", \u0026impart.ListArgs{\n\t\t\tName:        pulumi.String(\"list_example\"),\n\t\t\tKind:        pulumi.String(\"string\"),\n\t\t\tDescription: pulumi.String(\"list description\"),\n\t\t\tItems: impart.ListItemArray{\n\t\t\t\t\u0026impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"item1\"),\n\t\t\t\t},\n\t\t\t\t\u0026impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"item2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a regex pattern list\n\t\t_, err = impart.NewList(ctx, \"regex_example\", \u0026impart.ListArgs{\n\t\t\tName:        pulumi.String(\"regex_list_example\"),\n\t\t\tKind:        pulumi.String(\"regex\"),\n\t\t\tDescription: pulumi.String(\"A list of regex patterns for matching\"),\n\t\t\tItems: impart.ListItemArray{\n\t\t\t\t\u0026impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"^/api/v[0-9]+/users/.*$\"),\n\t\t\t\t},\n\t\t\t\t\u0026impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"\\\\.(php|asp|aspx)$\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an Aho-Corasick pattern list\n\t\t_, err = impart.NewList(ctx, \"aho_corasick_example\", \u0026impart.ListArgs{\n\t\t\tName:        pulumi.String(\"aho_corasick_list_example\"),\n\t\t\tKind:        pulumi.String(\"aho_corasick\"),\n\t\t\tDescription: pulumi.String(\"A list of patterns for Aho-Corasick matching\"),\n\t\t\tItems: impart.ListItemArray{\n\t\t\t\t\u0026impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"SELECT * FROM\"),\n\t\t\t\t},\n\t\t\t\t\u0026impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"DROP TABLE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.List;\nimport com.pulumi.impart.ListArgs;\nimport com.pulumi.impart.inputs.ListItemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new string list\n        var example = new List(\"example\", ListArgs.builder()\n            .name(\"list_example\")\n            .kind(\"string\")\n            .description(\"list description\")\n            .items(            \n                ListItemArgs.builder()\n                    .value(\"item1\")\n                    .build(),\n                ListItemArgs.builder()\n                    .value(\"item2\")\n                    .build())\n            .build());\n\n        // Create a regex pattern list\n        var regexExample = new List(\"regexExample\", ListArgs.builder()\n            .name(\"regex_list_example\")\n            .kind(\"regex\")\n            .description(\"A list of regex patterns for matching\")\n            .items(            \n                ListItemArgs.builder()\n                    .value(\"^/api/v[0-9]+/users/.*$\")\n                    .build(),\n                ListItemArgs.builder()\n                    .value(\"\\\\.(php|asp|aspx)$\")\n                    .build())\n            .build());\n\n        // Create an Aho-Corasick pattern list\n        var ahoCorasickExample = new List(\"ahoCorasickExample\", ListArgs.builder()\n            .name(\"aho_corasick_list_example\")\n            .kind(\"aho_corasick\")\n            .description(\"A list of patterns for Aho-Corasick matching\")\n            .items(            \n                ListItemArgs.builder()\n                    .value(\"SELECT * FROM\")\n                    .build(),\n                ListItemArgs.builder()\n                    .value(\"DROP TABLE\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new string list\n  example:\n    type: impart:List\n    properties:\n      name: list_example\n      kind: string\n      description: list description\n      items:\n        - value: item1\n        - value: item2\n  # Create a regex pattern list\n  regexExample:\n    type: impart:List\n    name: regex_example\n    properties:\n      name: regex_list_example\n      kind: regex\n      description: A list of regex patterns for matching\n      items:\n        - value: ^/api/v[0-9]+/users/.*$\n        - value: \\.(php|asp|aspx)$\n  # Create an Aho-Corasick pattern list\n  ahoCorasickExample:\n    type: impart:List\n    name: aho_corasick_example\n    properties:\n      name: aho_corasick_list_example\n      kind: aho_corasick\n      description: A list of patterns for Aho-Corasick matching\n      items:\n        - value: SELECT * FROM\n        - value: DROP TABLE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "The description for this list.\n"
                },
                "functionality": {
                    "type": "string",
                    "description": "The list functionality. Allowed values are add, add/remove, and none (cloud managed).\n"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/ListItem:ListItem"
                    },
                    "description": "The list items.\n"
                },
                "kind": {
                    "type": "string",
                    "description": "The list kind.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this list.\n"
                },
                "subkind": {
                    "type": "string",
                    "description": "The list subkind.\n"
                }
            },
            "required": [
                "kind",
                "name"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "The description for this list.\n"
                },
                "functionality": {
                    "type": "string",
                    "description": "The list functionality. Allowed values are add, add/remove, and none (cloud managed).\n"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/ListItem:ListItem"
                    },
                    "description": "The list items.\n"
                },
                "kind": {
                    "type": "string",
                    "description": "The list kind.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this list.\n"
                },
                "subkind": {
                    "type": "string",
                    "description": "The list subkind.\n"
                }
            },
            "requiredInputs": [
                "kind",
                "name"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering List resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "The description for this list.\n"
                    },
                    "functionality": {
                        "type": "string",
                        "description": "The list functionality. Allowed values are add, add/remove, and none (cloud managed).\n"
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/impart:index/ListItem:ListItem"
                        },
                        "description": "The list items.\n"
                    },
                    "kind": {
                        "type": "string",
                        "description": "The list kind.\n"
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The applied labels.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this list.\n"
                    },
                    "subkind": {
                        "type": "string",
                        "description": "The list subkind.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/logBinding:LogBinding": {
            "description": "Manage a log binding.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new log binding\nconst example = new impart.LogBinding(\"example\", {\n    name: \"log_binding_example\",\n    patternType: \"grok\",\n    pattern: \"\u003cpattern\u003e\\n\",\n    logstreamId: \"logstream_id\",\n    specId: impartSpec.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new log binding\nexample = impart.LogBinding(\"example\",\n    name=\"log_binding_example\",\n    pattern_type=\"grok\",\n    pattern=\"\u003cpattern\u003e\\n\",\n    logstream_id=\"logstream_id\",\n    spec_id=impart_spec[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new log binding\n    var example = new Impart.LogBinding(\"example\", new()\n    {\n        Name = \"log_binding_example\",\n        PatternType = \"grok\",\n        Pattern = @\"\u003cpattern\u003e\n\",\n        LogstreamId = \"logstream_id\",\n        SpecId = impartSpec.Example.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new log binding\n\t\t_, err := impart.NewLogBinding(ctx, \"example\", \u0026impart.LogBindingArgs{\n\t\t\tName:        pulumi.String(\"log_binding_example\"),\n\t\t\tPatternType: pulumi.String(\"grok\"),\n\t\t\tPattern:     pulumi.String(\"\u003cpattern\u003e\\n\"),\n\t\t\tLogstreamId: pulumi.String(\"logstream_id\"),\n\t\t\tSpecId:      pulumi.Any(impartSpec.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.LogBinding;\nimport com.pulumi.impart.LogBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new log binding\n        var example = new LogBinding(\"example\", LogBindingArgs.builder()\n            .name(\"log_binding_example\")\n            .patternType(\"grok\")\n            .pattern(\"\"\"\n\u003cpattern\u003e\n            \"\"\")\n            .logstreamId(\"logstream_id\")\n            .specId(impartSpec.example().id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new log binding\n  example:\n    type: impart:LogBinding\n    properties:\n      name: log_binding_example\n      patternType: grok\n      pattern: |\n        \u003cpattern\u003e\n      logstreamId: logstream_id\n      specId: ${impartSpec.example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "logstreamId": {
                    "type": "string",
                    "description": "The logstream id for this log binding.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this log binding.\n"
                },
                "pattern": {
                    "type": "string",
                    "description": "The grok/json pattern for this log binding.\n"
                },
                "patternType": {
                    "type": "string",
                    "description": "The pattern type for this log binding. Accepted values: grok, json\n"
                },
                "specId": {
                    "type": "string",
                    "description": "The specification id.\n"
                }
            },
            "required": [
                "name",
                "pattern",
                "patternType",
                "specId"
            ],
            "inputProperties": {
                "logstreamId": {
                    "type": "string",
                    "description": "The logstream id for this log binding.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this log binding.\n"
                },
                "pattern": {
                    "type": "string",
                    "description": "The grok/json pattern for this log binding.\n"
                },
                "patternType": {
                    "type": "string",
                    "description": "The pattern type for this log binding. Accepted values: grok, json\n"
                },
                "specId": {
                    "type": "string",
                    "description": "The specification id.\n"
                }
            },
            "requiredInputs": [
                "name",
                "pattern",
                "patternType",
                "specId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering LogBinding resources.\n",
                "properties": {
                    "logstreamId": {
                        "type": "string",
                        "description": "The logstream id for this log binding.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this log binding.\n"
                    },
                    "pattern": {
                        "type": "string",
                        "description": "The grok/json pattern for this log binding.\n"
                    },
                    "patternType": {
                        "type": "string",
                        "description": "The pattern type for this log binding. Accepted values: grok, json\n"
                    },
                    "specId": {
                        "type": "string",
                        "description": "The specification id.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/monitor:Monitor": {
            "description": "Manage a monitor.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new event monitor\nconst testEvent = new impart.Monitor(\"test_event\", {\n    name: \"terraform_event_monitor\",\n    description: \"test event monitor\",\n    notificationTemplateIds: [\"\u003cnotification_template_id\u003e\"],\n    conditions: [{\n        threshold: 1,\n        comparator: \"gt\",\n        timePeriod: 60000,\n        delay: 0,\n        details: {\n            type: \"event\",\n            action: \"api_access_token_created\",\n            subjectType: \"api_access_token_id\",\n            actorType: \"user_id\",\n        },\n    }],\n});\n// Create a new metric monitor\nconst testMetric = new impart.Monitor(\"test_metric\", {\n    name: \"terraform_event_monitor\",\n    description: \"test event monitor\",\n    notificationTemplateIds: [\"\u003cnotification_template_id\u003e\"],\n    conditions: [{\n        threshold: 1,\n        comparator: \"lt\",\n        timePeriod: 60000,\n        delay: 0,\n        details: {\n            type: \"metric\",\n            tag: \"http-request\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new event monitor\ntest_event = impart.Monitor(\"test_event\",\n    name=\"terraform_event_monitor\",\n    description=\"test event monitor\",\n    notification_template_ids=[\"\u003cnotification_template_id\u003e\"],\n    conditions=[{\n        \"threshold\": 1,\n        \"comparator\": \"gt\",\n        \"time_period\": 60000,\n        \"delay\": 0,\n        \"details\": {\n            \"type\": \"event\",\n            \"action\": \"api_access_token_created\",\n            \"subject_type\": \"api_access_token_id\",\n            \"actor_type\": \"user_id\",\n        },\n    }])\n# Create a new metric monitor\ntest_metric = impart.Monitor(\"test_metric\",\n    name=\"terraform_event_monitor\",\n    description=\"test event monitor\",\n    notification_template_ids=[\"\u003cnotification_template_id\u003e\"],\n    conditions=[{\n        \"threshold\": 1,\n        \"comparator\": \"lt\",\n        \"time_period\": 60000,\n        \"delay\": 0,\n        \"details\": {\n            \"type\": \"metric\",\n            \"tag\": \"http-request\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new event monitor\n    var testEvent = new Impart.Monitor(\"test_event\", new()\n    {\n        Name = \"terraform_event_monitor\",\n        Description = \"test event monitor\",\n        NotificationTemplateIds = new[]\n        {\n            \"\u003cnotification_template_id\u003e\",\n        },\n        Conditions = new[]\n        {\n            new Impart.Inputs.MonitorConditionArgs\n            {\n                Threshold = 1,\n                Comparator = \"gt\",\n                TimePeriod = 60000,\n                Delay = 0,\n                Details = new Impart.Inputs.MonitorConditionDetailsArgs\n                {\n                    Type = \"event\",\n                    Action = \"api_access_token_created\",\n                    SubjectType = \"api_access_token_id\",\n                    ActorType = \"user_id\",\n                },\n            },\n        },\n    });\n\n    // Create a new metric monitor\n    var testMetric = new Impart.Monitor(\"test_metric\", new()\n    {\n        Name = \"terraform_event_monitor\",\n        Description = \"test event monitor\",\n        NotificationTemplateIds = new[]\n        {\n            \"\u003cnotification_template_id\u003e\",\n        },\n        Conditions = new[]\n        {\n            new Impart.Inputs.MonitorConditionArgs\n            {\n                Threshold = 1,\n                Comparator = \"lt\",\n                TimePeriod = 60000,\n                Delay = 0,\n                Details = new Impart.Inputs.MonitorConditionDetailsArgs\n                {\n                    Type = \"metric\",\n                    Tag = \"http-request\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new event monitor\n\t\t_, err := impart.NewMonitor(ctx, \"test_event\", \u0026impart.MonitorArgs{\n\t\t\tName:        pulumi.String(\"terraform_event_monitor\"),\n\t\t\tDescription: pulumi.String(\"test event monitor\"),\n\t\t\tNotificationTemplateIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"\u003cnotification_template_id\u003e\"),\n\t\t\t},\n\t\t\tConditions: impart.MonitorConditionArray{\n\t\t\t\t\u0026impart.MonitorConditionArgs{\n\t\t\t\t\tThreshold:  pulumi.Int(1),\n\t\t\t\t\tComparator: pulumi.String(\"gt\"),\n\t\t\t\t\tTimePeriod: pulumi.Int(60000),\n\t\t\t\t\tDelay:      pulumi.Int(0),\n\t\t\t\t\tDetails: \u0026impart.MonitorConditionDetailsArgs{\n\t\t\t\t\t\tType:        pulumi.String(\"event\"),\n\t\t\t\t\t\tAction:      pulumi.String(\"api_access_token_created\"),\n\t\t\t\t\t\tSubjectType: pulumi.String(\"api_access_token_id\"),\n\t\t\t\t\t\tActorType:   pulumi.String(\"user_id\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new metric monitor\n\t\t_, err = impart.NewMonitor(ctx, \"test_metric\", \u0026impart.MonitorArgs{\n\t\t\tName:        pulumi.String(\"terraform_event_monitor\"),\n\t\t\tDescription: pulumi.String(\"test event monitor\"),\n\t\t\tNotificationTemplateIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"\u003cnotification_template_id\u003e\"),\n\t\t\t},\n\t\t\tConditions: impart.MonitorConditionArray{\n\t\t\t\t\u0026impart.MonitorConditionArgs{\n\t\t\t\t\tThreshold:  pulumi.Int(1),\n\t\t\t\t\tComparator: pulumi.String(\"lt\"),\n\t\t\t\t\tTimePeriod: pulumi.Int(60000),\n\t\t\t\t\tDelay:      pulumi.Int(0),\n\t\t\t\t\tDetails: \u0026impart.MonitorConditionDetailsArgs{\n\t\t\t\t\t\tType: pulumi.String(\"metric\"),\n\t\t\t\t\t\tTag:  pulumi.String(\"http-request\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.Monitor;\nimport com.pulumi.impart.MonitorArgs;\nimport com.pulumi.impart.inputs.MonitorConditionArgs;\nimport com.pulumi.impart.inputs.MonitorConditionDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new event monitor\n        var testEvent = new Monitor(\"testEvent\", MonitorArgs.builder()\n            .name(\"terraform_event_monitor\")\n            .description(\"test event monitor\")\n            .notificationTemplateIds(\"\u003cnotification_template_id\u003e\")\n            .conditions(MonitorConditionArgs.builder()\n                .threshold(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1) (example.pp:7,18-19)))\n                .comparator(\"gt\")\n                .timePeriod(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(60000) (example.pp:9,18-23)))\n                .delay(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(0) (example.pp:10,18-19)))\n                .details(MonitorConditionDetailsArgs.builder()\n                    .type(\"event\")\n                    .action(\"api_access_token_created\")\n                    .subjectType(\"api_access_token_id\")\n                    .actorType(\"user_id\")\n                    .build())\n                .build())\n            .build());\n\n        // Create a new metric monitor\n        var testMetric = new Monitor(\"testMetric\", MonitorArgs.builder()\n            .name(\"terraform_event_monitor\")\n            .description(\"test event monitor\")\n            .notificationTemplateIds(\"\u003cnotification_template_id\u003e\")\n            .conditions(MonitorConditionArgs.builder()\n                .threshold(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1) (example.pp:28,18-19)))\n                .comparator(\"lt\")\n                .timePeriod(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(60000) (example.pp:30,18-23)))\n                .delay(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(0) (example.pp:31,18-19)))\n                .details(MonitorConditionDetailsArgs.builder()\n                    .type(\"metric\")\n                    .tag(\"http-request\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new event monitor\n  testEvent:\n    type: impart:Monitor\n    name: test_event\n    properties:\n      name: terraform_event_monitor\n      description: test event monitor\n      notificationTemplateIds:\n        - \u003cnotification_template_id\u003e\n      conditions:\n        - threshold: 1\n          comparator: gt\n          timePeriod: 60000\n          delay: 0\n          details:\n            type: event\n            action: api_access_token_created\n            subjectType: api_access_token_id\n            actorType: user_id\n  # Create a new metric monitor\n  testMetric:\n    type: impart:Monitor\n    name: test_metric\n    properties:\n      name: terraform_event_monitor\n      description: test event monitor\n      notificationTemplateIds:\n        - \u003cnotification_template_id\u003e\n      conditions:\n        - threshold: 1\n          comparator: lt\n          timePeriod: 60000\n          delay: 0\n          details:\n            type: metric\n            tag: http-request\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "conditions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/MonitorCondition:MonitorCondition"
                    },
                    "description": "An array of conditions for which the monitor will trigger.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for this monitor.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this monitor.\n"
                },
                "notificationTemplateIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "An array of notification template ids for the templates that will send notifications to their respective connectors.\n"
                }
            },
            "required": [
                "conditions",
                "description",
                "name",
                "notificationTemplateIds"
            ],
            "inputProperties": {
                "conditions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/MonitorCondition:MonitorCondition"
                    },
                    "description": "An array of conditions for which the monitor will trigger.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for this monitor.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this monitor.\n"
                },
                "notificationTemplateIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "An array of notification template ids for the templates that will send notifications to their respective connectors.\n"
                }
            },
            "requiredInputs": [
                "conditions",
                "description",
                "name",
                "notificationTemplateIds"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Monitor resources.\n",
                "properties": {
                    "conditions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/impart:index/MonitorCondition:MonitorCondition"
                        },
                        "description": "An array of conditions for which the monitor will trigger.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description for this monitor.\n"
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The applied labels.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this monitor.\n"
                    },
                    "notificationTemplateIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "An array of notification template ids for the templates that will send notifications to their respective connectors.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/notificationTemplate:NotificationTemplate": {
            "description": "Manage an notification template.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new notification template\nconst example = new impart.NotificationTemplate(\"example\", {\n    name: \"notification_template_example\",\n    connectorId: \"\u003cexample_connector.id\u003e\",\n    payload: \"This is a test message payload\",\n    subject: \"Test subject\",\n    destinations: [\"test-destination-id\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new notification template\nexample = impart.NotificationTemplate(\"example\",\n    name=\"notification_template_example\",\n    connector_id=\"\u003cexample_connector.id\u003e\",\n    payload=\"This is a test message payload\",\n    subject=\"Test subject\",\n    destinations=[\"test-destination-id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new notification template\n    var example = new Impart.NotificationTemplate(\"example\", new()\n    {\n        Name = \"notification_template_example\",\n        ConnectorId = \"\u003cexample_connector.id\u003e\",\n        Payload = \"This is a test message payload\",\n        Subject = \"Test subject\",\n        Destinations = new[]\n        {\n            \"test-destination-id\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new notification template\n\t\t_, err := impart.NewNotificationTemplate(ctx, \"example\", \u0026impart.NotificationTemplateArgs{\n\t\t\tName:        pulumi.String(\"notification_template_example\"),\n\t\t\tConnectorId: pulumi.String(\"\u003cexample_connector.id\u003e\"),\n\t\t\tPayload:     pulumi.String(\"This is a test message payload\"),\n\t\t\tSubject:     pulumi.String(\"Test subject\"),\n\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test-destination-id\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.NotificationTemplate;\nimport com.pulumi.impart.NotificationTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new notification template\n        var example = new NotificationTemplate(\"example\", NotificationTemplateArgs.builder()\n            .name(\"notification_template_example\")\n            .connectorId(\"\u003cexample_connector.id\u003e\")\n            .payload(\"This is a test message payload\")\n            .subject(\"Test subject\")\n            .destinations(\"test-destination-id\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new notification template\n  example:\n    type: impart:NotificationTemplate\n    properties:\n      name: notification_template_example\n      connectorId: \u003cexample_connector.id\u003e\n      payload: This is a test message payload\n      subject: Test subject\n      destinations:\n        - test-destination-id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "connectorId": {
                    "type": "string",
                    "description": "The connector id.\n"
                },
                "destinations": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "An array of destination ids to which the payloads will be sent.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this notification template.\n"
                },
                "payload": {
                    "type": "string",
                    "description": "The payload message that will be sent to the Third Party API.\n"
                },
                "subject": {
                    "type": "string",
                    "description": "The subject message that will be sent to the Third Party API.\n"
                }
            },
            "required": [
                "connectorId",
                "destinations",
                "name",
                "payload",
                "subject"
            ],
            "inputProperties": {
                "connectorId": {
                    "type": "string",
                    "description": "The connector id.\n"
                },
                "destinations": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "An array of destination ids to which the payloads will be sent.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this notification template.\n"
                },
                "payload": {
                    "type": "string",
                    "description": "The payload message that will be sent to the Third Party API.\n"
                },
                "subject": {
                    "type": "string",
                    "description": "The subject message that will be sent to the Third Party API.\n"
                }
            },
            "requiredInputs": [
                "connectorId",
                "destinations",
                "name",
                "payload",
                "subject"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering NotificationTemplate resources.\n",
                "properties": {
                    "connectorId": {
                        "type": "string",
                        "description": "The connector id.\n"
                    },
                    "destinations": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "An array of destination ids to which the payloads will be sent.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this notification template.\n"
                    },
                    "payload": {
                        "type": "string",
                        "description": "The payload message that will be sent to the Third Party API.\n"
                    },
                    "subject": {
                        "type": "string",
                        "description": "The subject message that will be sent to the Third Party API.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/rule:Rule": {
            "description": "Manage a rule.\n\n",
            "properties": {
                "blockingEffect": {
                    "type": "string",
                    "description": "The rule blocking effect. Allowed values: block, simulate. If not set effect will be block.\n"
                },
                "content": {
                    "type": "string",
                    "description": "The rule body content.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for this rule.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "Set true to disable the rule.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this rule.\n"
                },
                "sourceFile": {
                    "type": "string",
                    "description": "The rule source file.\n"
                },
                "sourceHash": {
                    "type": "string",
                    "description": "The rule source hash.\n"
                },
                "type": {
                    "type": "string",
                    "description": "The type of the rule. Allowed values: script, recipe.\n"
                }
            },
            "required": [
                "disabled",
                "name",
                "type"
            ],
            "inputProperties": {
                "blockingEffect": {
                    "type": "string",
                    "description": "The rule blocking effect. Allowed values: block, simulate. If not set effect will be block.\n"
                },
                "content": {
                    "type": "string",
                    "description": "The rule body content.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for this rule.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "Set true to disable the rule.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this rule.\n"
                },
                "sourceFile": {
                    "type": "string",
                    "description": "The rule source file.\n"
                },
                "sourceHash": {
                    "type": "string",
                    "description": "The rule source hash.\n"
                },
                "type": {
                    "type": "string",
                    "description": "The type of the rule. Allowed values: script, recipe.\n"
                }
            },
            "requiredInputs": [
                "disabled",
                "name",
                "type"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Rule resources.\n",
                "properties": {
                    "blockingEffect": {
                        "type": "string",
                        "description": "The rule blocking effect. Allowed values: block, simulate. If not set effect will be block.\n"
                    },
                    "content": {
                        "type": "string",
                        "description": "The rule body content.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description for this rule.\n"
                    },
                    "disabled": {
                        "type": "boolean",
                        "description": "Set true to disable the rule.\n"
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The applied labels.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this rule.\n"
                    },
                    "sourceFile": {
                        "type": "string",
                        "description": "The rule source file.\n"
                    },
                    "sourceHash": {
                        "type": "string",
                        "description": "The rule source hash.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "The type of the rule. Allowed values: script, recipe.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/ruleClientIdentifier:RuleClientIdentifier": {
            "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new rule client identifier\nconst clientIdentifier = new impart.RuleClientIdentifier(\"client_identifier\", {\n    name: \"client identifier\",\n    description: \"terraform client identifier\",\n    hashFields: [\n        {\n            field: \"header_value\",\n            key: \"Authorization\",\n        },\n        {\n            field: \"client_ip\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new rule client identifier\nclient_identifier = impart.RuleClientIdentifier(\"client_identifier\",\n    name=\"client identifier\",\n    description=\"terraform client identifier\",\n    hash_fields=[\n        {\n            \"field\": \"header_value\",\n            \"key\": \"Authorization\",\n        },\n        {\n            \"field\": \"client_ip\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new rule client identifier\n    var clientIdentifier = new Impart.RuleClientIdentifier(\"client_identifier\", new()\n    {\n        Name = \"client identifier\",\n        Description = \"terraform client identifier\",\n        HashFields = new[]\n        {\n            new Impart.Inputs.RuleClientIdentifierHashFieldArgs\n            {\n                Field = \"header_value\",\n                Key = \"Authorization\",\n            },\n            new Impart.Inputs.RuleClientIdentifierHashFieldArgs\n            {\n                Field = \"client_ip\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new rule client identifier\n\t\t_, err := impart.NewRuleClientIdentifier(ctx, \"client_identifier\", \u0026impart.RuleClientIdentifierArgs{\n\t\t\tName:        pulumi.String(\"client identifier\"),\n\t\t\tDescription: pulumi.String(\"terraform client identifier\"),\n\t\t\tHashFields: impart.RuleClientIdentifierHashFieldArray{\n\t\t\t\t\u0026impart.RuleClientIdentifierHashFieldArgs{\n\t\t\t\t\tField: pulumi.String(\"header_value\"),\n\t\t\t\t\tKey:   pulumi.String(\"Authorization\"),\n\t\t\t\t},\n\t\t\t\t\u0026impart.RuleClientIdentifierHashFieldArgs{\n\t\t\t\t\tField: pulumi.String(\"client_ip\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.RuleClientIdentifier;\nimport com.pulumi.impart.RuleClientIdentifierArgs;\nimport com.pulumi.impart.inputs.RuleClientIdentifierHashFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new rule client identifier\n        var clientIdentifier = new RuleClientIdentifier(\"clientIdentifier\", RuleClientIdentifierArgs.builder()\n            .name(\"client identifier\")\n            .description(\"terraform client identifier\")\n            .hashFields(            \n                RuleClientIdentifierHashFieldArgs.builder()\n                    .field(\"header_value\")\n                    .key(\"Authorization\")\n                    .build(),\n                RuleClientIdentifierHashFieldArgs.builder()\n                    .field(\"client_ip\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new rule client identifier\n  clientIdentifier:\n    type: impart:RuleClientIdentifier\n    name: client_identifier\n    properties:\n      name: client identifier\n      description: terraform client identifier\n      hashFields:\n        - field: header_value\n          key: Authorization\n        - field: client_ip\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "The description for the rule client identifier.\n"
                },
                "hashFields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleClientIdentifierHashField:RuleClientIdentifierHashField"
                    },
                    "description": "The hash fields for the rule client identifier.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for the rule client identifier.\n"
                },
                "storageId": {
                    "type": "string",
                    "description": "The storage id for the rule client identifier.\n"
                }
            },
            "required": [
                "hashFields",
                "name"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "The description for the rule client identifier.\n"
                },
                "hashFields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleClientIdentifierHashField:RuleClientIdentifierHashField"
                    },
                    "description": "The hash fields for the rule client identifier.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for the rule client identifier.\n"
                },
                "storageId": {
                    "type": "string",
                    "description": "The storage id for the rule client identifier.\n"
                }
            },
            "requiredInputs": [
                "hashFields",
                "name"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering RuleClientIdentifier resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "The description for the rule client identifier.\n"
                    },
                    "hashFields": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/impart:index/RuleClientIdentifierHashField:RuleClientIdentifierHashField"
                        },
                        "description": "The hash fields for the rule client identifier.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for the rule client identifier.\n"
                    },
                    "storageId": {
                        "type": "string",
                        "description": "The storage id for the rule client identifier.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/ruleClientIdentifierStorage:RuleClientIdentifierStorage": {
            "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new rule client identifier storage\nconst clientIdentifierStorage = new impart.RuleClientIdentifierStorage(\"client_identifier_storage\", {\n    name: \"client identifier storage\",\n    description: \"terraform client identifier storage\",\n    capacity: 10000,\n    storageId: impartRuleClientIdentifier.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new rule client identifier storage\nclient_identifier_storage = impart.RuleClientIdentifierStorage(\"client_identifier_storage\",\n    name=\"client identifier storage\",\n    description=\"terraform client identifier storage\",\n    capacity=10000,\n    storage_id=impart_rule_client_identifier[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new rule client identifier storage\n    var clientIdentifierStorage = new Impart.RuleClientIdentifierStorage(\"client_identifier_storage\", new()\n    {\n        Name = \"client identifier storage\",\n        Description = \"terraform client identifier storage\",\n        Capacity = 10000,\n        StorageId = impartRuleClientIdentifier.Example.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new rule client identifier storage\n\t\t_, err := impart.NewRuleClientIdentifierStorage(ctx, \"client_identifier_storage\", \u0026impart.RuleClientIdentifierStorageArgs{\n\t\t\tName:        pulumi.String(\"client identifier storage\"),\n\t\t\tDescription: pulumi.String(\"terraform client identifier storage\"),\n\t\t\tCapacity:    pulumi.Int(10000),\n\t\t\tStorageId:   impartRuleClientIdentifier.Example.Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.RuleClientIdentifierStorage;\nimport com.pulumi.impart.RuleClientIdentifierStorageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new rule client identifier storage\n        var clientIdentifierStorage = new RuleClientIdentifierStorage(\"clientIdentifierStorage\", RuleClientIdentifierStorageArgs.builder()\n            .name(\"client identifier storage\")\n            .description(\"terraform client identifier storage\")\n            .capacity(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(10000) (example.pp:5,19-24)))\n            .storageId(impartRuleClientIdentifier.example().id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new rule client identifier storage\n  clientIdentifierStorage:\n    type: impart:RuleClientIdentifierStorage\n    name: client_identifier_storage\n    properties:\n      name: client identifier storage\n      description: terraform client identifier storage\n      capacity: 10000\n      storageId: ${impartRuleClientIdentifier.example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "capacity": {
                    "type": "integer",
                    "description": "The capacity for the rule client identifier storage.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for the rule client identifier storage.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for the rule client identifier storage.\n"
                }
            },
            "required": [
                "capacity",
                "name"
            ],
            "inputProperties": {
                "capacity": {
                    "type": "integer",
                    "description": "The capacity for the rule client identifier storage.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for the rule client identifier storage.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for the rule client identifier storage.\n"
                }
            },
            "requiredInputs": [
                "capacity",
                "name"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering RuleClientIdentifierStorage resources.\n",
                "properties": {
                    "capacity": {
                        "type": "integer",
                        "description": "The capacity for the rule client identifier storage.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description for the rule client identifier storage.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for the rule client identifier storage.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/ruleDependencies:RuleDependencies": {
            "description": "Manage rule dependencies. There should only ever be one instance of this resource in a workspace at once, because it manages rule dependencies at an organization level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\nconst example = new impart.RuleDependencies(\"example\", {dependencies: [{\n    rule_id: \"\u003cexample_1.id\u003e\",\n    depends_on: [\"\u003cexample_2.id\u003e\"],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\nexample = impart.RuleDependencies(\"example\", dependencies=[{\n    \"rule_id\": \"\u003cexample_1.id\u003e\",\n    \"depends_on\": [\"\u003cexample_2.id\u003e\"],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Impart.RuleDependencies(\"example\", new()\n    {\n        Dependencies = new[]\n        {\n            new Impart.Inputs.RuleDependenciesDependencyArgs\n            {\n                Rule_id = \"\u003cexample_1.id\u003e\",\n                Depends_on = new[]\n                {\n                    \"\u003cexample_2.id\u003e\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := impart.NewRuleDependencies(ctx, \"example\", \u0026impart.RuleDependenciesArgs{\n\t\t\tDependencies: impart.RuleDependenciesDependencyArray{\n\t\t\t\t\u0026impart.RuleDependenciesDependencyArgs{\n\t\t\t\t\tRule_id: \"\u003cexample_1.id\u003e\",\n\t\t\t\t\tDepends_on: []string{\n\t\t\t\t\t\t\"\u003cexample_2.id\u003e\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.RuleDependencies;\nimport com.pulumi.impart.RuleDependenciesArgs;\nimport com.pulumi.impart.inputs.RuleDependenciesDependencyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new RuleDependencies(\"example\", RuleDependenciesArgs.builder()\n            .dependencies(RuleDependenciesDependencyArgs.builder()\n%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))\n                .build());\n\n        }\n}\n```\n```yaml\nresources:\n  example:\n    type: impart:RuleDependencies\n    properties:\n      dependencies:\n        - rule_id: \u003cexample_1.id\u003e\n          depends_on:\n            - \u003cexample_2.id\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "dependencies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleDependenciesDependency:RuleDependenciesDependency"
                    },
                    "description": "An array of rules and the other ids of the rules they depend on before executing.\n"
                }
            },
            "required": [
                "dependencies"
            ],
            "inputProperties": {
                "dependencies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleDependenciesDependency:RuleDependenciesDependency"
                    },
                    "description": "An array of rules and the other ids of the rules they depend on before executing.\n"
                }
            },
            "requiredInputs": [
                "dependencies"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering RuleDependencies resources.\n",
                "properties": {
                    "dependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/impart:index/RuleDependenciesDependency:RuleDependenciesDependency"
                        },
                        "description": "An array of rules and the other ids of the rules they depend on before executing.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/ruleScript:RuleScript": {
            "description": "Manage a rule script.\n\n",
            "properties": {
                "blockingEffect": {
                    "type": "string",
                    "description": "The rule blocking effect. Allowed values: block, simulate. If not set effect will be block.\n"
                },
                "content": {
                    "type": "string",
                    "description": "The rule body content.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for this rule script.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "Set true to disable the rule script.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this rule script.\n"
                },
                "sourceFile": {
                    "type": "string",
                    "description": "The rule source file.\n"
                },
                "sourceHash": {
                    "type": "string",
                    "description": "The rule source hash.\n"
                }
            },
            "required": [
                "disabled",
                "name"
            ],
            "inputProperties": {
                "blockingEffect": {
                    "type": "string",
                    "description": "The rule blocking effect. Allowed values: block, simulate. If not set effect will be block.\n"
                },
                "content": {
                    "type": "string",
                    "description": "The rule body content.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description for this rule script.\n"
                },
                "disabled": {
                    "type": "boolean",
                    "description": "Set true to disable the rule script.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this rule script.\n"
                },
                "sourceFile": {
                    "type": "string",
                    "description": "The rule source file.\n"
                },
                "sourceHash": {
                    "type": "string",
                    "description": "The rule source hash.\n"
                }
            },
            "requiredInputs": [
                "disabled",
                "name"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering RuleScript resources.\n",
                "properties": {
                    "blockingEffect": {
                        "type": "string",
                        "description": "The rule blocking effect. Allowed values: block, simulate. If not set effect will be block.\n"
                    },
                    "content": {
                        "type": "string",
                        "description": "The rule body content.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description for this rule script.\n"
                    },
                    "disabled": {
                        "type": "boolean",
                        "description": "Set true to disable the rule script.\n"
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The applied labels.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this rule script.\n"
                    },
                    "sourceFile": {
                        "type": "string",
                        "description": "The rule source file.\n"
                    },
                    "sourceHash": {
                        "type": "string",
                        "description": "The rule source hash.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/ruleScriptDependencies:RuleScriptDependencies": {
            "description": "Manage rule script dependencies. There should only ever be one instance of this resource in a workspace at once, because it manages rule script dependencies at an organization level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// ⚠️ This resource is deprecated. Please migrate to `impart_rule_dependencies` instead.\nconst example = new impart.RuleScriptDependencies(\"example\", {dependencies: [{\n    rule_script_id: \"\u003cexample_1.id\u003e\",\n    depends_on_rule_script_ids: [\"\u003cexample_2.id\u003e\"],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# ⚠️ This resource is deprecated. Please migrate to `impart_rule_dependencies` instead.\nexample = impart.RuleScriptDependencies(\"example\", dependencies=[{\n    \"rule_script_id\": \"\u003cexample_1.id\u003e\",\n    \"depends_on_rule_script_ids\": [\"\u003cexample_2.id\u003e\"],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // ⚠️ This resource is deprecated. Please migrate to `impart_rule_dependencies` instead.\n    var example = new Impart.RuleScriptDependencies(\"example\", new()\n    {\n        Dependencies = new[]\n        {\n            new Impart.Inputs.RuleScriptDependenciesDependencyArgs\n            {\n                Rule_script_id = \"\u003cexample_1.id\u003e\",\n                Depends_on_rule_script_ids = new[]\n                {\n                    \"\u003cexample_2.id\u003e\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ⚠️ This resource is deprecated. Please migrate to `impart_rule_dependencies` instead.\n\t\t_, err := impart.NewRuleScriptDependencies(ctx, \"example\", \u0026impart.RuleScriptDependenciesArgs{\n\t\t\tDependencies: impart.RuleScriptDependenciesDependencyArray{\n\t\t\t\t\u0026impart.RuleScriptDependenciesDependencyArgs{\n\t\t\t\t\tRule_script_id: \"\u003cexample_1.id\u003e\",\n\t\t\t\t\tDepends_on_rule_script_ids: []string{\n\t\t\t\t\t\t\"\u003cexample_2.id\u003e\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.RuleScriptDependencies;\nimport com.pulumi.impart.RuleScriptDependenciesArgs;\nimport com.pulumi.impart.inputs.RuleScriptDependenciesDependencyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // ⚠️ This resource is deprecated. Please migrate to `impart_rule_dependencies` instead.\n        var example = new RuleScriptDependencies(\"example\", RuleScriptDependenciesArgs.builder()\n            .dependencies(RuleScriptDependenciesDependencyArgs.builder()\n%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))\n                .build());\n\n        }\n}\n```\n```yaml\nresources:\n  # ⚠️ This resource is deprecated. Please migrate to `impart_rule_dependencies` instead.\n  example:\n    type: impart:RuleScriptDependencies\n    properties:\n      dependencies:\n        - rule_script_id: \u003cexample_1.id\u003e\n          depends_on_rule_script_ids:\n            - \u003cexample_2.id\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "dependencies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleScriptDependenciesDependency:RuleScriptDependenciesDependency"
                    },
                    "description": "An array of rule scripts and the other ids of the rules they depend on before executing.\n"
                }
            },
            "required": [
                "dependencies"
            ],
            "inputProperties": {
                "dependencies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleScriptDependenciesDependency:RuleScriptDependenciesDependency"
                    },
                    "description": "An array of rule scripts and the other ids of the rules they depend on before executing.\n"
                }
            },
            "requiredInputs": [
                "dependencies"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering RuleScriptDependencies resources.\n",
                "properties": {
                    "dependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/impart:index/RuleScriptDependenciesDependency:RuleScriptDependenciesDependency"
                        },
                        "description": "An array of rule scripts and the other ids of the rules they depend on before executing.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/ruleTestCase:RuleTestCase": {
            "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new impart.RuleTestCase(\"example\", {\n    name: \"example\",\n    description: \"test case description\",\n    messages: [{\n        count: 1,\n        req: {\n            url: \"http://example.com\",\n            method: \"GET\",\n            body: std.base64encode({\n                input: \"request body\",\n            }).then(invoke =\u003e invoke.result),\n            headerKeys: [\"Header1\"],\n            headerValues: [\"value1\"],\n            remoteAddr: \"192.168.1.1\",\n        },\n        res: {\n            statusCode: 201,\n            headerKeys: [\"Header1\"],\n            headerValues: [\"value1\"],\n            body: std.base64encode({\n                input: \"response body\",\n            }).then(invoke =\u003e invoke.result),\n        },\n    }],\n    assertions: [\n        {\n            messageIndexes: [0],\n            assertionType: \"output\",\n            condition: \"contains\",\n            expected: \"test\",\n        },\n        {\n            messageIndexes: [0],\n            assertionType: \"block\",\n            location: \"req\",\n            expected: \"true\",\n        },\n        {\n            messageIndexes: [0],\n            assertionType: \"status_code\",\n            location: \"req\",\n            condition: \"one_of\",\n            expected: \"201,200\",\n        },\n        {\n            messageIndexes: [0],\n            assertionType: \"tags\",\n            location: \"req\",\n            condition: \"contains\",\n            expected: \"tagname\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\nimport pulumi_std as std\n\nexample = impart.RuleTestCase(\"example\",\n    name=\"example\",\n    description=\"test case description\",\n    messages=[{\n        \"count\": 1,\n        \"req\": {\n            \"url\": \"http://example.com\",\n            \"method\": \"GET\",\n            \"body\": std.base64encode(input=\"request body\").result,\n            \"header_keys\": [\"Header1\"],\n            \"header_values\": [\"value1\"],\n            \"remote_addr\": \"192.168.1.1\",\n        },\n        \"res\": {\n            \"status_code\": 201,\n            \"header_keys\": [\"Header1\"],\n            \"header_values\": [\"value1\"],\n            \"body\": std.base64encode(input=\"response body\").result,\n        },\n    }],\n    assertions=[\n        {\n            \"message_indexes\": [0],\n            \"assertion_type\": \"output\",\n            \"condition\": \"contains\",\n            \"expected\": \"test\",\n        },\n        {\n            \"message_indexes\": [0],\n            \"assertion_type\": \"block\",\n            \"location\": \"req\",\n            \"expected\": \"true\",\n        },\n        {\n            \"message_indexes\": [0],\n            \"assertion_type\": \"status_code\",\n            \"location\": \"req\",\n            \"condition\": \"one_of\",\n            \"expected\": \"201,200\",\n        },\n        {\n            \"message_indexes\": [0],\n            \"assertion_type\": \"tags\",\n            \"location\": \"req\",\n            \"condition\": \"contains\",\n            \"expected\": \"tagname\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Impart.RuleTestCase(\"example\", new()\n    {\n        Name = \"example\",\n        Description = \"test case description\",\n        Messages = new[]\n        {\n            new Impart.Inputs.RuleTestCaseMessageArgs\n            {\n                Count = 1,\n                Req = new Impart.Inputs.RuleTestCaseMessageReqArgs\n                {\n                    Url = \"http://example.com\",\n                    Method = \"GET\",\n                    Body = Std.Base64encode.Invoke(new()\n                    {\n                        Input = \"request body\",\n                    }).Apply(invoke =\u003e invoke.Result),\n                    HeaderKeys = new[]\n                    {\n                        \"Header1\",\n                    },\n                    HeaderValues = new[]\n                    {\n                        \"value1\",\n                    },\n                    RemoteAddr = \"192.168.1.1\",\n                },\n                Res = new Impart.Inputs.RuleTestCaseMessageResArgs\n                {\n                    StatusCode = 201,\n                    HeaderKeys = new[]\n                    {\n                        \"Header1\",\n                    },\n                    HeaderValues = new[]\n                    {\n                        \"value1\",\n                    },\n                    Body = Std.Base64encode.Invoke(new()\n                    {\n                        Input = \"response body\",\n                    }).Apply(invoke =\u003e invoke.Result),\n                },\n            },\n        },\n        Assertions = new[]\n        {\n            new Impart.Inputs.RuleTestCaseAssertionArgs\n            {\n                MessageIndexes = new[]\n                {\n                    0,\n                },\n                AssertionType = \"output\",\n                Condition = \"contains\",\n                Expected = \"test\",\n            },\n            new Impart.Inputs.RuleTestCaseAssertionArgs\n            {\n                MessageIndexes = new[]\n                {\n                    0,\n                },\n                AssertionType = \"block\",\n                Location = \"req\",\n                Expected = \"true\",\n            },\n            new Impart.Inputs.RuleTestCaseAssertionArgs\n            {\n                MessageIndexes = new[]\n                {\n                    0,\n                },\n                AssertionType = \"status_code\",\n                Location = \"req\",\n                Condition = \"one_of\",\n                Expected = \"201,200\",\n            },\n            new Impart.Inputs.RuleTestCaseAssertionArgs\n            {\n                MessageIndexes = new[]\n                {\n                    0,\n                },\n                AssertionType = \"tags\",\n                Location = \"req\",\n                Condition = \"contains\",\n                Expected = \"tagname\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi-std/sdk/v2/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeBase64encode, err := std.Base64encode(ctx, \u0026std.Base64encodeArgs{\n\t\t\tInput: \"request body\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeBase64encode1, err := std.Base64encode(ctx, \u0026std.Base64encodeArgs{\n\t\t\tInput: \"response body\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = impart.NewRuleTestCase(ctx, \"example\", \u0026impart.RuleTestCaseArgs{\n\t\t\tName:        pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"test case description\"),\n\t\t\tMessages: impart.RuleTestCaseMessageArray{\n\t\t\t\t\u0026impart.RuleTestCaseMessageArgs{\n\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\tReq: \u0026impart.RuleTestCaseMessageReqArgs{\n\t\t\t\t\t\tUrl:    pulumi.String(\"http://example.com\"),\n\t\t\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\t\t\tBody:   pulumi.String(invokeBase64encode.Result),\n\t\t\t\t\t\tHeaderKeys: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Header1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tHeaderValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"value1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRemoteAddr: pulumi.String(\"192.168.1.1\"),\n\t\t\t\t\t},\n\t\t\t\t\tRes: \u0026impart.RuleTestCaseMessageResArgs{\n\t\t\t\t\t\tStatusCode: pulumi.Int(201),\n\t\t\t\t\t\tHeaderKeys: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Header1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tHeaderValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"value1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tBody: pulumi.String(invokeBase64encode1.Result),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssertions: impart.RuleTestCaseAssertionArray{\n\t\t\t\t\u0026impart.RuleTestCaseAssertionArgs{\n\t\t\t\t\tMessageIndexes: pulumi.IntArray{\n\t\t\t\t\t\tpulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t\tAssertionType: pulumi.String(\"output\"),\n\t\t\t\t\tCondition:     pulumi.String(\"contains\"),\n\t\t\t\t\tExpected:      pulumi.String(\"test\"),\n\t\t\t\t},\n\t\t\t\t\u0026impart.RuleTestCaseAssertionArgs{\n\t\t\t\t\tMessageIndexes: pulumi.IntArray{\n\t\t\t\t\t\tpulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t\tAssertionType: pulumi.String(\"block\"),\n\t\t\t\t\tLocation:      pulumi.String(\"req\"),\n\t\t\t\t\tExpected:      pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t\t\u0026impart.RuleTestCaseAssertionArgs{\n\t\t\t\t\tMessageIndexes: pulumi.IntArray{\n\t\t\t\t\t\tpulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t\tAssertionType: pulumi.String(\"status_code\"),\n\t\t\t\t\tLocation:      pulumi.String(\"req\"),\n\t\t\t\t\tCondition:     pulumi.String(\"one_of\"),\n\t\t\t\t\tExpected:      pulumi.String(\"201,200\"),\n\t\t\t\t},\n\t\t\t\t\u0026impart.RuleTestCaseAssertionArgs{\n\t\t\t\t\tMessageIndexes: pulumi.IntArray{\n\t\t\t\t\t\tpulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t\tAssertionType: pulumi.String(\"tags\"),\n\t\t\t\t\tLocation:      pulumi.String(\"req\"),\n\t\t\t\t\tCondition:     pulumi.String(\"contains\"),\n\t\t\t\t\tExpected:      pulumi.String(\"tagname\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.RuleTestCase;\nimport com.pulumi.impart.RuleTestCaseArgs;\nimport com.pulumi.impart.inputs.RuleTestCaseMessageArgs;\nimport com.pulumi.impart.inputs.RuleTestCaseMessageReqArgs;\nimport com.pulumi.impart.inputs.RuleTestCaseMessageResArgs;\nimport com.pulumi.impart.inputs.RuleTestCaseAssertionArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.Base64encodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new RuleTestCase(\"example\", RuleTestCaseArgs.builder()\n            .name(\"example\")\n            .description(\"test case description\")\n            .messages(RuleTestCaseMessageArgs.builder()\n                .count(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1) (example.pp:4,13-14)))\n                .req(RuleTestCaseMessageReqArgs.builder()\n                    .url(\"http://example.com\")\n                    .method(\"GET\")\n                    .body(StdFunctions.base64encode(Base64encodeArgs.builder()\n                        .input(\"request body\")\n                        .build()).result())\n                    .headerKeys(\"Header1\")\n                    .headerValues(\"value1\")\n                    .remoteAddr(\"192.168.1.1\")\n                    .build())\n                .res(RuleTestCaseMessageResArgs.builder()\n                    .statusCode(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(201) (example.pp:16,22-25)))\n                    .headerKeys(\"Header1\")\n                    .headerValues(\"value1\")\n                    .body(StdFunctions.base64encode(Base64encodeArgs.builder()\n                        .input(\"response body\")\n                        .build()).result())\n                    .build())\n                .build())\n            .assertions(            \n                RuleTestCaseAssertionArgs.builder()\n                    .messageIndexes(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(0) (example.pp:25,23-24)))\n                    .assertionType(\"output\")\n                    .condition(\"contains\")\n                    .expected(\"test\")\n                    .build(),\n                RuleTestCaseAssertionArgs.builder()\n                    .messageIndexes(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(0) (example.pp:30,23-24)))\n                    .assertionType(\"block\")\n                    .location(\"req\")\n                    .expected(\"true\")\n                    .build(),\n                RuleTestCaseAssertionArgs.builder()\n                    .messageIndexes(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(0) (example.pp:35,23-24)))\n                    .assertionType(\"status_code\")\n                    .location(\"req\")\n                    .condition(\"one_of\")\n                    .expected(\"201,200\")\n                    .build(),\n                RuleTestCaseAssertionArgs.builder()\n                    .messageIndexes(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(0) (example.pp:41,23-24)))\n                    .assertionType(\"tags\")\n                    .location(\"req\")\n                    .condition(\"contains\")\n                    .expected(\"tagname\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: impart:RuleTestCase\n    properties:\n      name: example\n      description: test case description\n      messages:\n        - count: 1\n          req:\n            url: http://example.com\n            method: GET\n            body:\n              fn::invoke:\n                function: std:base64encode\n                arguments:\n                  input: request body\n                return: result\n            headerKeys:\n              - Header1\n            headerValues:\n              - value1\n            remoteAddr: 192.168.1.1\n          res:\n            statusCode: 201\n            headerKeys:\n              - Header1\n            headerValues:\n              - value1\n            body:\n              fn::invoke:\n                function: std:base64encode\n                arguments:\n                  input: response body\n                return: result\n      assertions:\n        - messageIndexes:\n            - 0\n          assertionType: output\n          condition: contains\n          expected: test\n        - messageIndexes:\n            - 0\n          assertionType: block\n          location: req\n          expected: 'true'\n        - messageIndexes:\n            - 0\n          assertionType: status_code\n          location: req\n          condition: one_of\n          expected: 201,200\n        - messageIndexes:\n            - 0\n          assertionType: tags\n          location: req\n          condition: contains\n          expected: tagname\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "assertions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleTestCaseAssertion:RuleTestCaseAssertion"
                    },
                    "description": "The assertions of the test case.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description of the test case.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "messages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleTestCaseMessage:RuleTestCaseMessage"
                    },
                    "description": "The messages of the test case.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the test case.\n"
                },
                "required": {
                    "type": "boolean",
                    "description": "Sets if test case required to pass on update.\n"
                }
            },
            "required": [
                "messages",
                "name"
            ],
            "inputProperties": {
                "assertions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleTestCaseAssertion:RuleTestCaseAssertion"
                    },
                    "description": "The assertions of the test case.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description of the test case.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "messages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/impart:index/RuleTestCaseMessage:RuleTestCaseMessage"
                    },
                    "description": "The messages of the test case.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the test case.\n"
                },
                "required": {
                    "type": "boolean",
                    "description": "Sets if test case required to pass on update.\n"
                }
            },
            "requiredInputs": [
                "messages",
                "name"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering RuleTestCase resources.\n",
                "properties": {
                    "assertions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/impart:index/RuleTestCaseAssertion:RuleTestCaseAssertion"
                        },
                        "description": "The assertions of the test case.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description of the test case.\n"
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The applied labels.\n"
                    },
                    "messages": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/impart:index/RuleTestCaseMessage:RuleTestCaseMessage"
                        },
                        "description": "The messages of the test case.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the test case.\n"
                    },
                    "required": {
                        "type": "boolean",
                        "description": "Sets if test case required to pass on update.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/spec:Spec": {
            "description": "Manage a specification.\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n!/bin/bash\n\n```sh\n$ pulumi import impart:index/spec:Spec example \"\u003cid\u003e\"\n```\n\n",
            "properties": {
                "learningConfig": {
                    "$ref": "#/types/impart:index/SpecLearningConfig:SpecLearningConfig",
                    "description": "Configuration for spec learning.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this specification.\n"
                },
                "sourceFile": {
                    "type": "string",
                    "description": "The specification file.\n"
                },
                "sourceHash": {
                    "type": "string",
                    "description": "The specification source hash.\n"
                }
            },
            "required": [
                "name",
                "sourceFile"
            ],
            "inputProperties": {
                "learningConfig": {
                    "$ref": "#/types/impart:index/SpecLearningConfig:SpecLearningConfig",
                    "description": "Configuration for spec learning.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name for this specification.\n"
                },
                "sourceFile": {
                    "type": "string",
                    "description": "The specification file.\n"
                },
                "sourceHash": {
                    "type": "string",
                    "description": "The specification source hash.\n"
                }
            },
            "requiredInputs": [
                "name",
                "sourceFile"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Spec resources.\n",
                "properties": {
                    "learningConfig": {
                        "$ref": "#/types/impart:index/SpecLearningConfig:SpecLearningConfig",
                        "description": "Configuration for spec learning.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name for this specification.\n"
                    },
                    "sourceFile": {
                        "type": "string",
                        "description": "The specification file.\n"
                    },
                    "sourceHash": {
                        "type": "string",
                        "description": "The specification source hash.\n"
                    }
                },
                "type": "object"
            }
        },
        "impart:index/tagMetadata:TagMetadata": {
            "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new tag metadata\nconst example = new impart.TagMetadata(\"example\", {\n    name: \"tag\",\n    description: \"tag description\",\n    externalUrl: \"http://example.com\",\n    labels: [impartLabel.example.slug],\n    riskStatement: \"risk statement\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new tag metadata\nexample = impart.TagMetadata(\"example\",\n    name=\"tag\",\n    description=\"tag description\",\n    external_url=\"http://example.com\",\n    labels=[impart_label[\"example\"][\"slug\"]],\n    risk_statement=\"risk statement\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new tag metadata\n    var example = new Impart.TagMetadata(\"example\", new()\n    {\n        Name = \"tag\",\n        Description = \"tag description\",\n        ExternalUrl = \"http://example.com\",\n        Labels = new[]\n        {\n            impartLabel.Example.Slug,\n        },\n        RiskStatement = \"risk statement\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new tag metadata\n\t\t_, err := impart.NewTagMetadata(ctx, \"example\", \u0026impart.TagMetadataArgs{\n\t\t\tName:        pulumi.String(\"tag\"),\n\t\t\tDescription: pulumi.String(\"tag description\"),\n\t\t\tExternalUrl: pulumi.String(\"http://example.com\"),\n\t\t\tLabels: pulumi.StringArray{\n\t\t\t\timpartLabel.Example.Slug,\n\t\t\t},\n\t\t\tRiskStatement: pulumi.String(\"risk statement\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.TagMetadata;\nimport com.pulumi.impart.TagMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new tag metadata\n        var example = new TagMetadata(\"example\", TagMetadataArgs.builder()\n            .name(\"tag\")\n            .description(\"tag description\")\n            .externalUrl(\"http://example.com\")\n            .labels(impartLabel.example().slug())\n            .riskStatement(\"risk statement\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new tag metadata\n  example:\n    type: impart:TagMetadata\n    properties:\n      name: tag\n      description: tag description\n      externalUrl: http://example.com\n      labels:\n        - ${impartLabel.example.slug}\n      riskStatement: risk statement\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "The description for the tag.\n"
                },
                "externalUrl": {
                    "type": "string",
                    "description": "The external URL for the tag.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The tag name.\n"
                },
                "riskStatement": {
                    "type": "string",
                    "description": "The risk statement for the tag.\n"
                }
            },
            "required": [
                "name"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "The description for the tag.\n"
                },
                "externalUrl": {
                    "type": "string",
                    "description": "The external URL for the tag.\n"
                },
                "labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The applied labels.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The tag name.\n"
                },
                "riskStatement": {
                    "type": "string",
                    "description": "The risk statement for the tag.\n"
                }
            },
            "requiredInputs": [
                "name"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering TagMetadata resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "The description for the tag.\n"
                    },
                    "externalUrl": {
                        "type": "string",
                        "description": "The external URL for the tag.\n"
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The applied labels.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The tag name.\n"
                    },
                    "riskStatement": {
                        "type": "string",
                        "description": "The risk statement for the tag.\n"
                    }
                },
                "type": "object"
            }
        }
    },
    "functions": {
        "impart:index/getConnector:GetConnector": {
            "description": "Manage a connector.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Read in an existing specification\nconst exampleConnector = impart.GetConnector({\n    id: \"\u003cid\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Read in an existing specification\nexample_connector = impart.get_connector(id=\"\u003cid\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Read in an existing specification\n    var exampleConnector = Impart.GetConnector.Invoke(new()\n    {\n        Id = \"\u003cid\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Read in an existing specification\n\t\t_, err := impart.GetConnector(ctx, \u0026impart.GetConnectorArgs{\n\t\t\tId: \"\u003cid\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.ImpartFunctions;\nimport com.pulumi.impart.inputs.GetConnectorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Read in an existing specification\n        final var exampleConnector = ImpartFunctions.GetConnector(GetConnectorArgs.builder()\n            .id(\"\u003cid\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Read in an existing specification\n  exampleConnector:\n    fn::invoke:\n      function: impart:GetConnector\n      arguments:\n        id: \u003cid\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking GetConnector.\n",
                "properties": {
                    "connectorTypeId": {
                        "type": "string",
                        "description": "ID of the connector type (eg. ID for our Slack or Jira connector types).\n"
                    },
                    "id": {
                        "type": "string",
                        "description": "Identifier for this connector.\n"
                    },
                    "isConnected": {
                        "type": "boolean",
                        "description": "Whether or not the connector is authenticated via OAuth2.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Name for this connector.\n"
                    }
                },
                "type": "object",
                "required": [
                    "id"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by GetConnector.\n",
                "properties": {
                    "connectorTypeId": {
                        "description": "ID of the connector type (eg. ID for our Slack or Jira connector types).\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "Identifier for this connector.\n",
                        "type": "string"
                    },
                    "isConnected": {
                        "description": "Whether or not the connector is authenticated via OAuth2.\n",
                        "type": "boolean"
                    },
                    "name": {
                        "description": "Name for this connector.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "id"
                ],
                "type": "object"
            }
        },
        "impart:index/getSpec:GetSpec": {
            "description": "Manage a specification.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Read in an existing specification\nconst example = impart.GetSpec({\n    id: \"\u003cid\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Read in an existing specification\nexample = impart.get_spec(id=\"\u003cid\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Read in an existing specification\n    var example = Impart.GetSpec.Invoke(new()\n    {\n        Id = \"\u003cid\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Read in an existing specification\n\t\t_, err := impart.GetSpec(ctx, \u0026impart.LookupSpecArgs{\n\t\t\tId: \"\u003cid\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.impart.ImpartFunctions;\nimport com.pulumi.impart.inputs.GetSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Read in an existing specification\n        final var example = ImpartFunctions.GetSpec(GetSpecArgs.builder()\n            .id(\"\u003cid\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Read in an existing specification\n  example:\n    fn::invoke:\n      function: impart:GetSpec\n      arguments:\n        id: \u003cid\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking GetSpec.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Identifier for this specification.\n"
                    }
                },
                "type": "object",
                "required": [
                    "id"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by GetSpec.\n",
                "properties": {
                    "id": {
                        "description": "Identifier for this specification.\n",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name for this specification.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name"
                ],
                "type": "object"
            }
        },
        "pulumi:providers:impart/terraformConfig": {
            "description": "This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.",
            "inputs": {
                "properties": {
                    "__self__": {
                        "type": "ref",
                        "$ref": "#/provider"
                    }
                },
                "type": "pulumi:providers:impart/terraformConfig",
                "required": [
                    "__self__"
                ]
            },
            "outputs": {
                "properties": {
                    "result": {
                        "additionalProperties": {
                            "$ref": "pulumi.json#/Any"
                        },
                        "type": "object"
                    }
                },
                "required": [
                    "result"
                ],
                "type": "object"
            }
        }
    }
}