{
  "name": "impart",
  "displayName": "Impart Security",
  "version": "0.10.4",
  "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": "> This provider is a derived work of the [Terraform Provider](https://github.com/impart-security/terraform-provider-impart)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-impart` repo](https://github.com/impart-security/pulumi-impart/issues); however, if that doesn't turn up anything,\n> 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": "> This provider is a derived work of the [Terraform Provider](https://github.com/impart-security/terraform-provider-impart)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-impart` repo](https://github.com/impart-security/pulumi-impart/issues); however, if that doesn't turn up anything,\n> 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\n",
        "defaultInfo": {
          "environment": [
            "IMPART_ENDPOINT"
          ]
        }
      },
      "token": {
        "type": "string",
        "description": "The Impart api token\n",
        "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%2FMonitorConditionDetails: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 one_of condition (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%2FRuleTestCaseMessageReq:RuleTestCaseMessageReq",
          "description": "A payload sent to the inspector to inspect an HTTP request.\n"
        },
        "res": {
          "$ref": "#/types/impart:index%2FRuleTestCaseMessageRes: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"
      ]
    }
  },
  "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\n"
      },
      "token": {
        "type": "string",
        "description": "The Impart api token\n"
      }
    },
    "type": "object",
    "inputProperties": {
      "endpoint": {
        "type": "string",
        "description": "The Impart api endpoint\n",
        "defaultInfo": {
          "environment": [
            "IMPART_ENDPOINT"
          ]
        }
      },
      "token": {
        "type": "string",
        "description": "The Impart api token\n",
        "defaultInfo": {
          "environment": [
            "IMPART_TOKEN"
          ]
        }
      }
    }
  },
  "resources": {
    "impart:index/apiBinding:ApiBinding": {
      "description": "Manage an api binding.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\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: resource.impart_spec.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=resource[\"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(() => \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 = resource.Impart_spec.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\", &impart.ApiBindingArgs{\n\t\t\tName:     pulumi.String(\"api_binding_example\"),\n\t\t\tPort:     pulumi.Int(443),\n\t\t\tSpecId:   pulumi.Any(resource.Impart_spec.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(443)\n            .specId(resource.impart_spec().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: ${resource.impart_spec.example.id}\n      hostname: example.com\n      basePath: /\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "basePath": {
          "type": "string",
          "description": "The base_path for this api binding.\n"
        },
        "disabled": {
          "type": "boolean",
          "description": "The disabled for this api binding.\n"
        },
        "forwardedFors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_for for this api binding.\n"
        },
        "forwardedHosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_host for this api binding.\n"
        },
        "forwardedIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_id for this api binding.\n"
        },
        "forwardedProtos": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_proto for 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 upstream_origin for this api binding.\n"
        },
        "useForwarded": {
          "type": "boolean",
          "description": "The use_forwarded for this api binding.\n"
        }
      },
      "type": "object",
      "required": [
        "basePath",
        "hostname",
        "name",
        "port",
        "specId"
      ],
      "inputProperties": {
        "basePath": {
          "type": "string",
          "description": "The base_path for this api binding.\n"
        },
        "disabled": {
          "type": "boolean",
          "description": "The disabled for this api binding.\n"
        },
        "forwardedFors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_for for this api binding.\n"
        },
        "forwardedHosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_host for this api binding.\n"
        },
        "forwardedIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_id for this api binding.\n"
        },
        "forwardedProtos": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The forwarded_proto for 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 upstream_origin for this api binding.\n"
        },
        "useForwarded": {
          "type": "boolean",
          "description": "The use_forwarded for 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 base_path for this api binding.\n"
          },
          "disabled": {
            "type": "boolean",
            "description": "The disabled for this api binding.\n"
          },
          "forwardedFors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The forwarded_for for this api binding.\n"
          },
          "forwardedHosts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The forwarded_host for this api binding.\n"
          },
          "forwardedIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The forwarded_id for this api binding.\n"
          },
          "forwardedProtos": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The forwarded_proto for 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 upstream_origin for this api binding.\n"
          },
          "useForwarded": {
            "type": "boolean",
            "description": "The use_forwarded for 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"
        }
      },
      "type": "object",
      "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<!--Start PulumiCodeChooser -->\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(\"externalLink1\", {\n    description: \"A link to Datadog dashboard for client IP address\",\n    entity: \"request\",\n    jsonPathElement: \"$.client_ip.address\",\n    name: \"Datadog client IP address\",\n    url: \"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\",\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(\"externalLink1\",\n    description=\"A link to Datadog dashboard for client IP address\",\n    entity=\"request\",\n    json_path_element=\"$.client_ip.address\",\n    name=\"Datadog client IP address\",\n    url=\"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\",\n    vendor=\"Datadog\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new external link\n    var externalLink1 = new Impart.ExternalLink(\"externalLink1\", new()\n    {\n        Description = \"A link to Datadog dashboard for client IP address\",\n        Entity = \"request\",\n        JsonPathElement = \"$.client_ip.address\",\n        Name = \"Datadog client IP address\",\n        Url = \"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\",\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, \"externalLink1\", &impart.ExternalLinkArgs{\n\t\t\tDescription:     pulumi.String(\"A link to Datadog dashboard for client IP address\"),\n\t\t\tEntity:          pulumi.String(\"request\"),\n\t\t\tJsonPathElement: pulumi.String(\"$.client_ip.address\"),\n\t\t\tName:            pulumi.String(\"Datadog 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\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            .description(\"A link to Datadog dashboard for client IP address\")\n            .entity(\"request\")\n            .jsonPathElement(\"$.client_ip.address\")\n            .name(\"Datadog client IP address\")\n            .url(\"https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\")\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    properties:\n      description: A link to Datadog dashboard for client IP address\n      entity: request\n      jsonPathElement: $.client_ip.address\n      name: Datadog client IP address\n      url: https://app.datadoghq.com/dashboard/3tm-mpc-863?tpl_var_ClientIp=9.37.130.233\n      vendor: Datadog\n```\n<!--End PulumiCodeChooser -->\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",
      "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<!--Start PulumiCodeChooser -->\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    color: \"red\",\n    description: \"example label\",\n    displayName: \"Example\",\n    slug: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new label\nexample = impart.Label(\"example\",\n    color=\"red\",\n    description=\"example label\",\n    display_name=\"Example\",\n    slug=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new label\n    var example = new Impart.Label(\"example\", new()\n    {\n        Color = \"red\",\n        Description = \"example label\",\n        DisplayName = \"Example\",\n        Slug = \"example\",\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\", &impart.LabelArgs{\n\t\t\tColor:       pulumi.String(\"red\"),\n\t\t\tDescription: pulumi.String(\"example label\"),\n\t\t\tDisplayName: pulumi.String(\"Example\"),\n\t\t\tSlug:        pulumi.String(\"example\"),\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            .color(\"red\")\n            .description(\"example label\")\n            .displayName(\"Example\")\n            .slug(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new label\n  example:\n    type: impart:Label\n    properties:\n      color: red\n      description: example label\n      displayName: Example\n      slug: example\n```\n<!--End PulumiCodeChooser -->\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",
      "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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new list\nconst example = new impart.List(\"example\", {\n    description: \"list description\",\n    items: [\n        {\n            value: \"item1\",\n        },\n        {\n            value: \"item2\",\n        },\n    ],\n    kind: \"string\",\n    name: \"list_example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new list\nexample = impart.List(\"example\",\n    description=\"list description\",\n    items=[\n        {\n            \"value\": \"item1\",\n        },\n        {\n            \"value\": \"item2\",\n        },\n    ],\n    kind=\"string\",\n    name=\"list_example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new list\n    var example = new Impart.List(\"example\", new()\n    {\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        Kind = \"string\",\n        Name = \"list_example\",\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 list\n\t\t_, err := impart.NewList(ctx, \"example\", &impart.ListArgs{\n\t\t\tDescription: pulumi.String(\"list description\"),\n\t\t\tItems: impart.ListItemArray{\n\t\t\t\t&impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"item1\"),\n\t\t\t\t},\n\t\t\t\t&impart.ListItemArgs{\n\t\t\t\t\tValue: pulumi.String(\"item2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKind: pulumi.String(\"string\"),\n\t\t\tName: pulumi.String(\"list_example\"),\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 list\n        var example = new List(\"example\", ListArgs.builder()\n            .description(\"list description\")\n            .items(            \n                ListItemArgs.builder()\n                    .value(\"item1\")\n                    .build(),\n                ListItemArgs.builder()\n                    .value(\"item2\")\n                    .build())\n            .kind(\"string\")\n            .name(\"list_example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new list\n  example:\n    type: impart:List\n    properties:\n      description: list description\n      items:\n        - value: item1\n        - value: item2\n      kind: string\n      name: list_example\n```\n<!--End PulumiCodeChooser -->\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.\n"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FListItem: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",
      "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.\n"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FListItem: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.\n"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/types/impart:index%2FListItem: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<!--Start PulumiCodeChooser -->\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: \"<pattern>\\n\",\n    logstreamId: \"logstream_id\",\n    specId: resource.impart_spec.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=\"<pattern>\\n\",\n    logstream_id=\"logstream_id\",\n    spec_id=resource[\"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(() => \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 = @\"<pattern>\n\",\n        LogstreamId = \"logstream_id\",\n        SpecId = resource.Impart_spec.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\", &impart.LogBindingArgs{\n\t\t\tName:        pulumi.String(\"log_binding_example\"),\n\t\t\tPatternType: pulumi.String(\"grok\"),\n\t\t\tPattern:     pulumi.String(\"<pattern>\\n\"),\n\t\t\tLogstreamId: pulumi.String(\"logstream_id\"),\n\t\t\tSpecId:      pulumi.Any(resource.Impart_spec.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<pattern>\n            \"\"\")\n            .logstreamId(\"logstream_id\")\n            .specId(resource.impart_spec().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      # Example patterns\n      #   # for api gateway log format: $context.requestTime \"$context.httpMethod $context.path $context.protocol\" $context.status $context.identity.sourceIp $context.requestId\n      #   # %%{HTTPDATE:timestamp} \"(?:%%{WORD:http_method}|-) (?:%%{GREEDYDATA:request}|-) (?:HTTP/%%{NUMBER:httpversion}|-( )?)\" (?:%%{NUMBER:response_code}|-)\n      #   # for aws loadbalancer access logs\n      #   # %%{TIMESTAMP_ISO8601:timestamp} %%{NOTSPACE:loadbalancer} %%{IP:client_ip}:%{NUMBER:client_port} (?:%{IP:backend_ip}:%{NUMBER:backend_port}|-) %%{NUMBER:request_processing_time} %%{NUMBER:backend_processing_time} %%{NUMBER:response_processing_time} (?:%{NUMBER:response_code}|-) (?:%{NUMBER:backend_status_code}|-) %%{NUMBER:received_bytes} %%{NUMBER:sent_bytes} \"(?:%{WORD:http_method}|-) (?:%{GREEDYDATA:request}|-) (?:HTTP/%{NUMBER:http_version}|-( )?)\" \"%{DATA:user_agent}\"( %%{NOTSPACE:ssl_cipher} %%{NOTSPACE:ssl_protocol})?\n      pattern: |\n        <pattern>\n      logstreamId: logstream_id\n      specId: ${resource.impart_spec.example.id}\n```\n<!--End PulumiCodeChooser -->\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",
      "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<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  # Create a new event monitor\n  testEvent:\n    type: impart:Monitor\n    properties:\n      conditions:\n        - comparator: gt\n          delay: 0\n          details:\n            - action: api_access_token_created\n              actorType: user_id\n              subjectType: api_access_token_id\n              type: event\n          threshold: 1\n          time_period: 60000\n      description: test event monitor\n      name: terraform_event_monitor\n      notificationTemplateIds:\n        - <notification_template_id>\n  # Create a new metric monitor\n  testMetric:\n    type: impart:Monitor\n    properties:\n      conditions:\n        - comparator: lt\n          delay: 0\n          details:\n            - tag: http-request\n              type: metric\n          threshold: 1\n          time_period: 60000\n      description: test event monitor\n      name: terraform_event_monitor\n      notificationTemplateIds:\n        - <notification_template_id>\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FMonitorCondition: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",
      "required": [
        "conditions",
        "description",
        "name",
        "notificationTemplateIds"
      ],
      "inputProperties": {
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FMonitorCondition: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%2FMonitorCondition: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<!--Start PulumiCodeChooser -->\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    connectorId: \"<example_connector.id>\",\n    destinations: [\"test-destination-id\"],\n    name: \"notification_template_example\",\n    payload: \"This is a test message payload\",\n    subject: \"Test subject\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new notification template\nexample = impart.NotificationTemplate(\"example\",\n    connector_id=\"<example_connector.id>\",\n    destinations=[\"test-destination-id\"],\n    name=\"notification_template_example\",\n    payload=\"This is a test message payload\",\n    subject=\"Test subject\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new notification template\n    var example = new Impart.NotificationTemplate(\"example\", new()\n    {\n        ConnectorId = \"<example_connector.id>\",\n        Destinations = new[]\n        {\n            \"test-destination-id\",\n        },\n        Name = \"notification_template_example\",\n        Payload = \"This is a test message payload\",\n        Subject = \"Test subject\",\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\", &impart.NotificationTemplateArgs{\n\t\t\tConnectorId: pulumi.String(\"<example_connector.id>\"),\n\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test-destination-id\"),\n\t\t\t},\n\t\t\tName:    pulumi.String(\"notification_template_example\"),\n\t\t\tPayload: pulumi.String(\"This is a test message payload\"),\n\t\t\tSubject: pulumi.String(\"Test subject\"),\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            .connectorId(\"<example_connector.id>\")\n            .destinations(\"test-destination-id\")\n            .name(\"notification_template_example\")\n            .payload(\"This is a test message payload\")\n            .subject(\"Test subject\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new notification template\n  example:\n    type: impart:NotificationTemplate\n    properties:\n      connectorId: <example_connector.id>\n      destinations:\n        - test-destination-id\n      name: notification_template_example\n      payload: This is a test message payload\n      subject: Test subject\n```\n<!--End PulumiCodeChooser -->\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",
      "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## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new rule script\nconst example = new impart.Rule(\"example\", {\n    name: \"example\",\n    disabled: false,\n    description: \"Rule description\",\n    sourceFile: `${path.module}/rule.js`,\n    sourceHash: \"<sha256 hash for the source_file content>\",\n    blockingEffect: \"block\",\n    type: \"script\",\n});\n// Create a new rule recipe with content\nconst exampleRuleRecipe = new impart.Rule(\"exampleRuleRecipe\", {\n    name: \"example\",\n    disabled: false,\n    description: \"Rule description\",\n    content: fs.readFileSync(`${path.module}/rule.json`, \"utf8\"),\n    blockingEffect: \"block\",\n    type: \"recipe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new rule script\nexample = impart.Rule(\"example\",\n    name=\"example\",\n    disabled=False,\n    description=\"Rule description\",\n    source_file=f\"{path['module']}/rule.js\",\n    source_hash=\"<sha256 hash for the source_file content>\",\n    blocking_effect=\"block\",\n    type=\"script\")\n# Create a new rule recipe with content\nexample_rule_recipe = impart.Rule(\"exampleRuleRecipe\",\n    name=\"example\",\n    disabled=False,\n    description=\"Rule description\",\n    content=(lambda path: open(path).read())(f\"{path['module']}/rule.json\"),\n    blocking_effect=\"block\",\n    type=\"recipe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new rule script\n    var example = new Impart.Rule(\"example\", new()\n    {\n        Name = \"example\",\n        Disabled = false,\n        Description = \"Rule description\",\n        SourceFile = $\"{path.Module}/rule.js\",\n        SourceHash = \"<sha256 hash for the source_file content>\",\n        BlockingEffect = \"block\",\n        Type = \"script\",\n    });\n\n    // Create a new rule recipe with content\n    var exampleRuleRecipe = new Impart.Rule(\"exampleRuleRecipe\", new()\n    {\n        Name = \"example\",\n        Disabled = false,\n        Description = \"Rule description\",\n        Content = File.ReadAllText($\"{path.Module}/rule.json\"),\n        BlockingEffect = \"block\",\n        Type = \"recipe\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new rule script\n\t\t_, err := impart.NewRule(ctx, \"example\", &impart.RuleArgs{\n\t\t\tName:           pulumi.String(\"example\"),\n\t\t\tDisabled:       pulumi.Bool(false),\n\t\t\tDescription:    pulumi.String(\"Rule description\"),\n\t\t\tSourceFile:     pulumi.Sprintf(\"%v/rule.js\", path.Module),\n\t\t\tSourceHash:     pulumi.String(\"<sha256 hash for the source_file content>\"),\n\t\t\tBlockingEffect: pulumi.String(\"block\"),\n\t\t\tType:           pulumi.String(\"script\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rule recipe with content\n\t\t_, err = impart.NewRule(ctx, \"exampleRuleRecipe\", &impart.RuleArgs{\n\t\t\tName:           pulumi.String(\"example\"),\n\t\t\tDisabled:       pulumi.Bool(false),\n\t\t\tDescription:    pulumi.String(\"Rule description\"),\n\t\t\tContent:        pulumi.String(readFileOrPanic(fmt.Sprintf(\"%v/rule.json\", path.Module))),\n\t\t\tBlockingEffect: pulumi.String(\"block\"),\n\t\t\tType:           pulumi.String(\"recipe\"),\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.Rule;\nimport com.pulumi.impart.RuleArgs;\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 script\n        var example = new Rule(\"example\", RuleArgs.builder()\n            .name(\"example\")\n            .disabled(false)\n            .description(\"Rule description\")\n            .sourceFile(String.format(\"%s/rule.js\", path.module()))\n            .sourceHash(\"<sha256 hash for the source_file content>\")\n            .blockingEffect(\"block\")\n            .type(\"script\")\n            .build());\n\n        // Create a new rule recipe with content\n        var exampleRuleRecipe = new Rule(\"exampleRuleRecipe\", RuleArgs.builder()\n            .name(\"example\")\n            .disabled(false)\n            .description(\"Rule description\")\n            .content(Files.readString(Paths.get(String.format(\"%s/rule.json\", path.module()))))\n            .blockingEffect(\"block\")\n            .type(\"recipe\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new rule script\n  example:\n    type: impart:Rule\n    properties:\n      name: example\n      disabled: false\n      description: Rule description\n      sourceFile: ${path.module}/rule.js\n      sourceHash: <sha256 hash for the source_file content>\n      blockingEffect: block\n      type: script\n  # Create a new rule recipe with content\n  exampleRuleRecipe:\n    type: impart:Rule\n    properties:\n      name: example\n      disabled: false\n      description: Rule description\n      content:\n        fn::readFile: ${path.module}/rule.json\n      blockingEffect: block\n      type: recipe\n```\n<!--End PulumiCodeChooser -->\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",
      "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<!--Start PulumiCodeChooser -->\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(\"clientIdentifier\", {\n    description: \"terraform client identifier\",\n    hashFields: [\n        {\n            field: \"header_value\",\n            key: \"Authorization\",\n        },\n        {\n            field: \"client_ip\",\n        },\n    ],\n    name: \"client identifier\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new rule client identifier\nclient_identifier = impart.RuleClientIdentifier(\"clientIdentifier\",\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    name=\"client identifier\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new rule client identifier\n    var clientIdentifier = new Impart.RuleClientIdentifier(\"clientIdentifier\", new()\n    {\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        Name = \"client identifier\",\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, \"clientIdentifier\", &impart.RuleClientIdentifierArgs{\n\t\t\tDescription: pulumi.String(\"terraform client identifier\"),\n\t\t\tHashFields: impart.RuleClientIdentifierHashFieldArray{\n\t\t\t\t&impart.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&impart.RuleClientIdentifierHashFieldArgs{\n\t\t\t\t\tField: pulumi.String(\"client_ip\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"client identifier\"),\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            .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            .name(\"client identifier\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new rule client identifier\n  clientIdentifier:\n    type: impart:RuleClientIdentifier\n    properties:\n      description: terraform client identifier\n      hashFields:\n        - field: header_value\n          key: Authorization\n        - field: client_ip\n      name: client identifier\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "The description for the rule client identifier.\n"
        },
        "hashFields": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleClientIdentifierHashField: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",
      "required": [
        "hashFields",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description for the rule client identifier.\n"
        },
        "hashFields": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleClientIdentifierHashField: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%2FRuleClientIdentifierHashField: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<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  # Create a new rule client identifier storage\n  clientIdentifierStorage:\n    type: impart:RuleClientIdentifierStorage\n    properties:\n      name: client identifier storage\n      description: terraform client identifier storage\n      capacity: 10000\n      storageId: ${resource.impart_rule_client_identifier.example.id}\n```\n<!--End PulumiCodeChooser -->\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",
      "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<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  example:\n    type: impart:RuleDependencies\n    properties:\n      dependencies:\n        - rule_id: <example_1.id>\n          depends_on:\n            - <example_2.id>\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleDependenciesDependency:RuleDependenciesDependency"
          },
          "description": "An array of rules and the other ids of the rules they depend on before executing.\n"
        }
      },
      "type": "object",
      "required": [
        "dependencies"
      ],
      "inputProperties": {
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleDependenciesDependency: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%2FRuleDependenciesDependency: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## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// ⚠️ This resource is deprecated. Please migrate to `impart_rule` instead.\n// Create a new rule script\nconst example = new impart.RuleScript(\"example\", {\n    name: \"example\",\n    disabled: false,\n    description: \"Rule description\",\n    sourceFile: `${path.module}/rule.js`,\n    sourceHash: \"<sha256 hash for the source_file content>\",\n    blockingEffect: \"block\",\n});\n// Create a new rule script with content\nconst exampleContent = new impart.RuleScript(\"exampleContent\", {\n    name: \"example\",\n    disabled: false,\n    description: \"Rule description\",\n    content: fs.readFileSync(`${path.module}/rule.js`, \"utf8\"),\n    blockingEffect: \"block\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# ⚠️ This resource is deprecated. Please migrate to `impart_rule` instead.\n# Create a new rule script\nexample = impart.RuleScript(\"example\",\n    name=\"example\",\n    disabled=False,\n    description=\"Rule description\",\n    source_file=f\"{path['module']}/rule.js\",\n    source_hash=\"<sha256 hash for the source_file content>\",\n    blocking_effect=\"block\")\n# Create a new rule script with content\nexample_content = impart.RuleScript(\"exampleContent\",\n    name=\"example\",\n    disabled=False,\n    description=\"Rule description\",\n    content=(lambda path: open(path).read())(f\"{path['module']}/rule.js\"),\n    blocking_effect=\"block\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // ⚠️ This resource is deprecated. Please migrate to `impart_rule` instead.\n    // Create a new rule script\n    var example = new Impart.RuleScript(\"example\", new()\n    {\n        Name = \"example\",\n        Disabled = false,\n        Description = \"Rule description\",\n        SourceFile = $\"{path.Module}/rule.js\",\n        SourceHash = \"<sha256 hash for the source_file content>\",\n        BlockingEffect = \"block\",\n    });\n\n    // Create a new rule script with content\n    var exampleContent = new Impart.RuleScript(\"exampleContent\", new()\n    {\n        Name = \"example\",\n        Disabled = false,\n        Description = \"Rule description\",\n        Content = File.ReadAllText($\"{path.Module}/rule.js\"),\n        BlockingEffect = \"block\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/impart-security/pulumi-impart/sdk/go/impart\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ⚠️ This resource is deprecated. Please migrate to `impart_rule` instead.\n\t\t// Create a new rule script\n\t\t_, err := impart.NewRuleScript(ctx, \"example\", &impart.RuleScriptArgs{\n\t\t\tName:           pulumi.String(\"example\"),\n\t\t\tDisabled:       pulumi.Bool(false),\n\t\t\tDescription:    pulumi.String(\"Rule description\"),\n\t\t\tSourceFile:     pulumi.Sprintf(\"%v/rule.js\", path.Module),\n\t\t\tSourceHash:     pulumi.String(\"<sha256 hash for the source_file content>\"),\n\t\t\tBlockingEffect: pulumi.String(\"block\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rule script with content\n\t\t_, err = impart.NewRuleScript(ctx, \"exampleContent\", &impart.RuleScriptArgs{\n\t\t\tName:           pulumi.String(\"example\"),\n\t\t\tDisabled:       pulumi.Bool(false),\n\t\t\tDescription:    pulumi.String(\"Rule description\"),\n\t\t\tContent:        pulumi.String(readFileOrPanic(fmt.Sprintf(\"%v/rule.js\", path.Module))),\n\t\t\tBlockingEffect: pulumi.String(\"block\"),\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.RuleScript;\nimport com.pulumi.impart.RuleScriptArgs;\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` instead.\n        // Create a new rule script\n        var example = new RuleScript(\"example\", RuleScriptArgs.builder()\n            .name(\"example\")\n            .disabled(false)\n            .description(\"Rule description\")\n            .sourceFile(String.format(\"%s/rule.js\", path.module()))\n            .sourceHash(\"<sha256 hash for the source_file content>\")\n            .blockingEffect(\"block\")\n            .build());\n\n        // Create a new rule script with content\n        var exampleContent = new RuleScript(\"exampleContent\", RuleScriptArgs.builder()\n            .name(\"example\")\n            .disabled(false)\n            .description(\"Rule description\")\n            .content(Files.readString(Paths.get(String.format(\"%s/rule.js\", path.module()))))\n            .blockingEffect(\"block\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # ⚠️ This resource is deprecated. Please migrate to `impart_rule` instead.\n  # Create a new rule script\n  example:\n    type: impart:RuleScript\n    properties:\n      name: example\n      disabled: false\n      description: Rule description\n      sourceFile: ${path.module}/rule.js\n      sourceHash: <sha256 hash for the source_file content>\n      blockingEffect: block\n  # Create a new rule script with content\n  exampleContent:\n    type: impart:RuleScript\n    properties:\n      name: example\n      disabled: false\n      description: Rule description\n      content:\n        fn::readFile: ${path.module}/rule.js\n      blockingEffect: block\n```\n<!--End PulumiCodeChooser -->\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",
      "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<!--Start PulumiCodeChooser -->\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: <example_1.id>\n          depends_on_rule_script_ids:\n            - <example_2.id>\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleScriptDependenciesDependency:RuleScriptDependenciesDependency"
          },
          "description": "An array of rule scripts and the other ids of the rules they depend on before executing.\n"
        }
      },
      "type": "object",
      "required": [
        "dependencies"
      ],
      "inputProperties": {
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleScriptDependenciesDependency: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%2FRuleScriptDependenciesDependency: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",
      "properties": {
        "assertions": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleTestCaseAssertion: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%2FRuleTestCaseMessage: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",
      "required": [
        "messages",
        "name"
      ],
      "inputProperties": {
        "assertions": {
          "type": "array",
          "items": {
            "$ref": "#/types/impart:index%2FRuleTestCaseAssertion: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%2FRuleTestCaseMessage: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%2FRuleTestCaseAssertion: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%2FRuleTestCaseMessage: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## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as impart from \"@impart-security/pulumi-impart\";\n\n// Create a new specification\nconst example = new impart.Spec(\"example\", {\n    name: \"spec_example\",\n    sourceFile: `${path.module}/spec.yaml`,\n    sourceHash: \"<sha256 hash for the source_file content>\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\n# Create a new specification\nexample = impart.Spec(\"example\",\n    name=\"spec_example\",\n    source_file=f\"{path['module']}/spec.yaml\",\n    source_hash=\"<sha256 hash for the source_file content>\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Impart = Pulumi.Impart;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new specification\n    var example = new Impart.Spec(\"example\", new()\n    {\n        Name = \"spec_example\",\n        SourceFile = $\"{path.Module}/spec.yaml\",\n        SourceHash = \"<sha256 hash for the source_file content>\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\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 specification\n\t\t_, err := impart.NewSpec(ctx, \"example\", &impart.SpecArgs{\n\t\t\tName:       pulumi.String(\"spec_example\"),\n\t\t\tSourceFile: pulumi.Sprintf(\"%v/spec.yaml\", path.Module),\n\t\t\tSourceHash: pulumi.String(\"<sha256 hash for the source_file content>\"),\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.Spec;\nimport com.pulumi.impart.SpecArgs;\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 specification\n        var example = new Spec(\"example\", SpecArgs.builder()\n            .name(\"spec_example\")\n            .sourceFile(String.format(\"%s/spec.yaml\", path.module()))\n            .sourceHash(\"<sha256 hash for the source_file content>\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new specification\n  example:\n    type: impart:Spec\n    properties:\n      name: spec_example\n      sourceFile: ${path.module}/spec.yaml\n      sourceHash: <sha256 hash for the source_file content>\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n#!/bin/bash\n\n```sh\n$ pulumi import impart:index/spec:Spec example \"<id>\"\n```\n\n",
      "properties": {
        "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",
      "required": [
        "name",
        "sourceFile"
      ],
      "inputProperties": {
        "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": {
          "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<!--Start PulumiCodeChooser -->\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: [resource.impart_label.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=[resource[\"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(() => \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            resource.Impart_label.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\", &impart.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\tresource.Impart_label.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(resource.impart_label().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        - ${resource.impart_label.example.slug}\n      riskStatement: risk statement\n```\n<!--End PulumiCodeChooser -->\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",
      "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 \"@pulumi/impart\";\n\nconst exampleConnector = impart.GetConnector({\n    id: \"\u003cid\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\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    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_, 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        final var exampleConnector = ImpartFunctions.GetConnector(GetConnectorArgs.builder()\n            .id(\"\u003cid\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\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 \"@pulumi/impart\";\n\nconst example = impart.GetSpec({\n    id: \"\u003cid\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_impart as impart\n\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    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_, 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        final var example = ImpartFunctions.GetSpec(GetSpecArgs.builder()\n            .id(\"\u003cid\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\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"
      }
    }
  }
}
