{"name":"incapsula","version":"3.37.1","description":"A Pulumi provider dynamically bridged from incapsula.","attribution":"This Pulumi package is based on the [`incapsula` Terraform Provider](https://github.com/imperva/terraform-provider-incapsula).","repository":"https://github.com/imperva/terraform-provider-incapsula","publisher":"imperva","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"incapsula"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from incapsula.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/imperva/terraform-provider-incapsula)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-incapsula` repo](https://github.com/imperva/terraform-provider-incapsula/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/imperva/terraform-provider-incapsula)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-incapsula` repo](https://github.com/imperva/terraform-provider-incapsula/issues).","respectSchemaVersion":true}},"config":{"variables":{"apiId":{"type":"string","description":"The API identifier for API operations. You can retrieve this\nfrom the Incapsula management console. Can be set via INCAPSULA_API_ID environment variable."},"apiKey":{"type":"string","description":"The API key for API operations. You can retrieve this\nfrom the Incapsula management console. Can be set via INCAPSULA_API_KEY environment variable."},"baseUrl":{"type":"string","description":"The base URL for API operations. Used for provider development."},"baseUrlApi":{"type":"string","description":"The base URL (same as v2 but with different subdomain) for API operations. Used for provider development."},"baseUrlRev2":{"type":"string","description":"The base URL (revision 2) for API operations. Used for provider development."},"baseUrlRev3":{"type":"string","description":"The base URL (revision 3) for API operations. Used for provider development."}}},"types":{"incapsula:index/AbpWebsitesWebsiteGroup:AbpWebsitesWebsiteGroup":{"properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name for the website group. Must be unique unless \u003cspan pulumi-lang-nodejs=\"`nameId`\" pulumi-lang-dotnet=\"`NameId`\" pulumi-lang-go=\"`nameId`\" pulumi-lang-python=\"`name_id`\" pulumi-lang-yaml=\"`nameId`\" pulumi-lang-java=\"`nameId`\"\u003e`name_id`\u003c/span\u003e is specified.\n"},"nameId":{"type":"string","description":"Unique user-defined identifier used to differentiate website groups whose \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e is identical\n"},"websites":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FAbpWebsitesWebsiteGroupWebsite:AbpWebsitesWebsiteGroupWebsite"},"description":"List of websites within the website group. Websites are matched in a top-down fashion. If a more specific website should take precedence over over a wild card entry then that should be higher in the list\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["id","name"]}}},"incapsula:index/AbpWebsitesWebsiteGroupWebsite:AbpWebsitesWebsiteGroupWebsite":{"properties":{"enableMitigation":{"type":"boolean","description":"Enables the ABP conditions for this website. Defaults to true.\n"},"id":{"type":"string","description":"The ID of this resource.\n"},"incapsulaSiteId":{"type":"number","description":"Which \u003cspan pulumi-lang-nodejs=\"`incapsula.Site`\" pulumi-lang-dotnet=\"`incapsula.Site`\" pulumi-lang-go=\"`Site`\" pulumi-lang-python=\"`Site`\" pulumi-lang-yaml=\"`incapsula.Site`\" pulumi-lang-java=\"`incapsula.Site`\"\u003e`incapsula.Site`\u003c/span\u003e this website refers to\n"}},"type":"object","required":["incapsulaSiteId"],"language":{"nodejs":{"requiredOutputs":["id","incapsulaSiteId"]}}},"incapsula:index/AccountSslSettingsAllowedDomainForCnameValidation:AccountSslSettingsAllowedDomainForCnameValidation":{"properties":{"cnameRecordHost":{"type":"string","description":"The CNAME record host to use.\n"},"cnameRecordValue":{"type":"string","description":"The CNAME record value to use to configure this domain for delegation.\n"},"creationDate":{"type":"number","description":"The domain creation date.\n"},"id":{"type":"number","description":"The domain id.\n"},"lastStatusCheck":{"type":"number","description":"The date the domain status was last verified.\n"},"name":{"type":"string","description":"The domain name.\n"},"status":{"type":"string","description":"The domain status. Possible values: CONFIGURED, NOT_CONFIGURED.\n"},"statusSince":{"type":"number","description":"The date the domain status was last modified.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["cnameRecordHost","cnameRecordValue","creationDate","id","lastStatusCheck","name","status","statusSince"]}}},"incapsula:index/CustomHsmCertificateApiDetail:CustomHsmCertificateApiDetail":{"properties":{"apiId":{"type":"string","description":"The key ID. This is the UUID of the Fortanix security object.\n","secret":true},"apiKey":{"type":"string","description":"The API key. This is the REST API authentication key from the Fortanix application you created.\n","secret":true},"hostname":{"type":"string","description":"The hostname. This is the location of your assets in the HSM service. In this case, it's the URI (host name) of the Fortanix region as it appears in the security object. For example, api.amer.smartkey.io.\n"}},"type":"object","required":["apiId","apiKey","hostname"]},"incapsula:index/DataCenterTimeouts:DataCenterTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"},"update":{"type":"string"}},"type":"object"},"incapsula:index/DataCentersConfigurationDataCenter:DataCentersConfigurationDataCenter":{"properties":{"dcId":{"type":"number","description":"Internal Data Center id.\n"},"dcLbAlgorithm":{"type":"string","description":"How to load balance between the servers of this data center. One of: LB_LEAST_PENDING_REQUESTS (the default), LB_LEAST_OPEN_CONNECTIONS, LB_SOURCE_IP_HASH, RANDOM, WEIGHTED.\n"},"geoLocations":{"type":"string","description":"Comma separated list of geo regions that this data center will serve. Mandatory if\u003cspan pulumi-lang-nodejs=\" siteLbAlgorithm \" pulumi-lang-dotnet=\" SiteLbAlgorithm \" pulumi-lang-go=\" siteLbAlgorithm \" pulumi-lang-python=\" site_lb_algorithm \" pulumi-lang-yaml=\" siteLbAlgorithm \" pulumi-lang-java=\" siteLbAlgorithm \"\u003e site_lb_algorithm \u003c/span\u003e= GEO_PREFERRED or GEO_REQUIRED. E.g. \"ASIA,AFRICA\". Allowed regions: EUROPE, AUSTRALIA, US_EAST, US_WEST, AFRICA, ASIA, SOUTH_AMERICA, NORTH_AMERICA.\n"},"ipMode":{"type":"string","description":"Load-balancing mode. Possible values:\n* **SINGLE_IP** - Use it only when you need to support multiple ports. Allows a single active server listening on multiple ports, plus the option of a single standby server. Traffic is distributed across the server ports. **Note:** The server address must be a valid IP address (i.e. not host/domain name). **SINGLE_IP** is applicable only for datacenters, It may not be used when dataCenterMode = **‘SINGLE_SERVER’**.\n* **MULTIPLE_IP** – Allows one or more origin servers having a single webserver and listening port per server. Traffic is distributed across servers.\n"},"isActive":{"type":"boolean","description":"When true (the default), this Origin Server is active. When false, this Origin Server will Standby until failover is performed.\n"},"isContent":{"type":"boolean","description":"When true, this Data Center will only serve requests that were routed using AD Forward rules. If true, it must also be enabled.\n"},"isEnabled":{"type":"boolean","description":"When true (the default), this Origin Server is enabled. I.e. can serve requests.\n"},"isRestOfTheWorld":{"type":"boolean","description":"When true and\u003cspan pulumi-lang-nodejs=\" siteLbAlgorithm \" pulumi-lang-dotnet=\" SiteLbAlgorithm \" pulumi-lang-go=\" siteLbAlgorithm \" pulumi-lang-python=\" site_lb_algorithm \" pulumi-lang-yaml=\" siteLbAlgorithm \" pulumi-lang-java=\" siteLbAlgorithm \"\u003e site_lb_algorithm \u003c/span\u003e= GEO_PREFERRED or GEO_REQUIRED, this data center will handle traffic from any region that is not assigned to a specific data center. Exactly one data center must have\u003cspan pulumi-lang-nodejs=\" isRestOfTheWorld \" pulumi-lang-dotnet=\" IsRestOfTheWorld \" pulumi-lang-go=\" isRestOfTheWorld \" pulumi-lang-python=\" is_rest_of_the_world \" pulumi-lang-yaml=\" isRestOfTheWorld \" pulumi-lang-java=\" isRestOfTheWorld \"\u003e is_rest_of_the_world \u003c/span\u003e= true.\n"},"name":{"type":"string","description":"Data Center Name. Must be unique within a Site.\n"},"originPop":{"type":"string","description":"The ID of the PoP that serves as an access point between Imperva and the customer’s origin server. E.g. \"lax\", for Los Angeles. When not specified, all Imperva PoPs can send traffic to this data center. The list of available PoPs is documented at: \u003chttps://docs.imperva.com/bundle/cloud-application-security/page/more/pops.htm\u003e.\n\nFor each \u003cspan pulumi-lang-nodejs=\"`dataCenter`\" pulumi-lang-dotnet=\"`DataCenter`\" pulumi-lang-go=\"`dataCenter`\" pulumi-lang-python=\"`data_center`\" pulumi-lang-yaml=\"`dataCenter`\" pulumi-lang-java=\"`dataCenter`\"\u003e`data_center`\u003c/span\u003e sub resource, at least one \u003cspan pulumi-lang-nodejs=\"`originServer`\" pulumi-lang-dotnet=\"`OriginServer`\" pulumi-lang-go=\"`originServer`\" pulumi-lang-python=\"`origin_server`\" pulumi-lang-yaml=\"`originServer`\" pulumi-lang-java=\"`originServer`\"\u003e`origin_server`\u003c/span\u003e sub resource must be defined.\nThe following Origin Server arguments are supported:\n"},"originServers":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FDataCentersConfigurationDataCenterOriginServer:DataCentersConfigurationDataCenterOriginServer"},"description":"A set of Origin Servers\n"},"webServersPerServer":{"type":"number","description":"When IP mode = SINGLE_IP, number of web servers (processes) per server. Each web server listens to different port. E.g. when\u003cspan pulumi-lang-nodejs=\" webServersPerServer \" pulumi-lang-dotnet=\" WebServersPerServer \" pulumi-lang-go=\" webServersPerServer \" pulumi-lang-python=\" web_servers_per_server \" pulumi-lang-yaml=\" webServersPerServer \" pulumi-lang-java=\" webServersPerServer \"\u003e web_servers_per_server \u003c/span\u003e= 5, HTTP traffic will use ports 80-84 while HTTPS traffic will use ports 443-447. Default: 1.\n"},"weight":{"type":"number","description":"When\u003cspan pulumi-lang-nodejs=\" dcLbAlgorithm \" pulumi-lang-dotnet=\" DcLbAlgorithm \" pulumi-lang-go=\" dcLbAlgorithm \" pulumi-lang-python=\" dc_lb_algorithm \" pulumi-lang-yaml=\" dcLbAlgorithm \" pulumi-lang-java=\" dcLbAlgorithm \"\u003e dc_lb_algorithm \u003c/span\u003e= WEIGHTED, the weight in percentage of this Origin Server. Then, total weight of all Data Center's Origin Servers must be 100.\n"}},"type":"object","required":["name","originServers"],"language":{"nodejs":{"requiredOutputs":["dcId","name","originServers"]}}},"incapsula:index/DataCentersConfigurationDataCenterOriginServer:DataCentersConfigurationDataCenterOriginServer":{"properties":{"address":{"type":"string","description":"Server Address. If Data Center's\u003cspan pulumi-lang-nodejs=\" ipMode \" pulumi-lang-dotnet=\" IpMode \" pulumi-lang-go=\" ipMode \" pulumi-lang-python=\" ip_mode \" pulumi-lang-yaml=\" ipMode \" pulumi-lang-java=\" ipMode \"\u003e ip_mode \u003c/span\u003e= 'SINGLE_IP', then a valid IP address must be specified. Otherwise, Host / DNS name can be specified as well.\n"},"isActive":{"type":"boolean","description":"When true (the default), this Origin Server is active. When false, this Origin Server will Standby until failover is performed.\n"},"isEnabled":{"type":"boolean","description":"When true (the default), this Origin Server is enabled. I.e. can serve requests.\n"},"weight":{"type":"number","description":"When\u003cspan pulumi-lang-nodejs=\" dcLbAlgorithm \" pulumi-lang-dotnet=\" DcLbAlgorithm \" pulumi-lang-go=\" dcLbAlgorithm \" pulumi-lang-python=\" dc_lb_algorithm \" pulumi-lang-yaml=\" dcLbAlgorithm \" pulumi-lang-java=\" dcLbAlgorithm \"\u003e dc_lb_algorithm \u003c/span\u003e= WEIGHTED, the weight in percentage of this Origin Server. Then, total weight of all Data Center's Origin Servers must be 100.\n"}},"type":"object","required":["address"]},"incapsula:index/DeliveryRulesConfigurationRule:DeliveryRulesConfigurationRule":{"properties":{"action":{"type":"string","description":"Rule action\n"},"addIfMissing":{"type":"boolean","description":"Rewrite rule would add the header/cookie if it's missing\n"},"cookieName":{"type":"string","description":"Name of cookie to modify\n"},"dcId":{"type":"number","description":"Data center ID to forward the request to\n"},"enabled":{"type":"boolean","description":"Boolean that enables the rule\n"},"errorResponseData":{"type":"string","description":"The response returned when the request matches the filter and is blocked\n"},"errorResponseFormat":{"type":"string","description":"The format of the given error response in the\u003cspan pulumi-lang-nodejs=\" errorResponseData \" pulumi-lang-dotnet=\" ErrorResponseData \" pulumi-lang-go=\" errorResponseData \" pulumi-lang-python=\" error_response_data \" pulumi-lang-yaml=\" errorResponseData \" pulumi-lang-java=\" errorResponseData \"\u003e error_response_data \u003c/span\u003efield\n"},"errorType":{"type":"string","description":"The error that triggers the rule\n"},"filter":{"type":"string","description":"Defines the conditions that trigger the rule action\n"},"from":{"type":"string","description":"From value\n"},"headerName":{"type":"string","description":"Name of header to modify\n"},"multipleHeadersDeletion":{"type":"boolean","description":"Delete multiple header occurrences\n"},"portForwardingContext":{"type":"string","description":"Context for port forwarding\n"},"portForwardingValue":{"type":"string","description":"Port number or header name for port forwarding\n"},"responseCode":{"type":"number","description":"Rule's response code\n"},"rewriteExisting":{"type":"boolean","description":"Apply rewrite rule even if the header/cookie already exists\n"},"ruleName":{"type":"string","description":"The rule name\n"},"to":{"type":"string","description":"To value\n"}},"type":"object","required":["action","ruleName"]},"incapsula:index/NotificationCenterPolicyAsset:NotificationCenterPolicyAsset":{"properties":{"assetId":{"type":"number","description":"Numeric identifier of the asset.\n"},"assetType":{"type":"string","description":"Indicates the Imperva-protected entity that triggers the notification. Possible values: `SITE`, `IP_RANGE`, `EDGE_IP`, `ORIGIN_CONNECTIVITY`,\n`NETFLOW_EXPORTER`, `DOMAIN`.\n"}},"type":"object","required":["assetType"]},"incapsula:index/SimplifiedRedirectRulesConfigurationRule:SimplifiedRedirectRulesConfigurationRule":{"properties":{"enabled":{"type":"boolean","description":"Boolean that enables the rule\n"},"from":{"type":"string","description":"From value\n"},"responseCode":{"type":"number","description":"Rule's response code\n"},"ruleName":{"type":"string","description":"The rule name\n"},"to":{"type":"string","description":"To value\n"}},"type":"object","required":["from","responseCode","ruleName","to"]},"incapsula:index/SiteDomainConfigurationDomain:SiteDomainConfigurationDomain":{"properties":{"aRecords":{"type":"array","items":{"type":"string"},"description":"A records for traffic redirection. Point your apex domain's DNS to this record in order to forward the traffic to Imperva\n"},"id":{"type":"number","description":"The id of the domain.\n"},"name":{"type":"string","description":"The address of the domain.\n"},"status":{"type":"string","description":"PROTECTED, VERIFIED, BYPASSED, MISCONFIGURED.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["aRecords","id","name","status"]}}},"incapsula:index/SiteDomainConfigurationTimeouts:SiteDomainConfigurationTimeouts":{"properties":{"read":{"type":"string"},"update":{"type":"string"}},"type":"object"},"incapsula:index/SiteSslSettingsHst:SiteSslSettingsHst":{"properties":{"isEnabled":{"type":"boolean"},"maxAge":{"type":"number"},"preLoaded":{"type":"boolean"},"subDomainsIncluded":{"type":"boolean"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isEnabled","preLoaded","subDomainsIncluded"]}}},"incapsula:index/SiteSslSettingsInboundTlsSetting:SiteSslSettingsInboundTlsSetting":{"properties":{"configurationProfile":{"type":"string"},"tlsConfigurations":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteSslSettingsInboundTlsSettingTlsConfiguration:SiteSslSettingsInboundTlsSettingTlsConfiguration"}}},"type":"object","required":["configurationProfile"]},"incapsula:index/SiteSslSettingsInboundTlsSettingTlsConfiguration:SiteSslSettingsInboundTlsSettingTlsConfiguration":{"properties":{"ciphersSupports":{"type":"array","items":{"type":"string"}},"tlsVersion":{"type":"string"}},"type":"object","required":["ciphersSupports","tlsVersion"]},"incapsula:index/SiteTimeouts:SiteTimeouts":{"properties":{"delete":{"type":"string"}},"type":"object"},"incapsula:index/getSslInstructionsInstruction:getSslInstructionsInstruction":{"properties":{"domainId":{"type":"number","description":"The domain id.\n"},"name":{"type":"string","description":"the domain name to add to the DNS server\n"},"sanId":{"type":"number","description":"The SAN id.\n"},"type":{"type":"string","description":"The record type used for the instructions. e.g TXT.\n"},"value":{"type":"string","description":"The certificate verification code\n"}},"type":"object","required":["domainId","name","sanId","type","value"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the incapsula 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":{"apiId":{"type":"string","description":"The API identifier for API operations. You can retrieve this\nfrom the Incapsula management console. Can be set via INCAPSULA_API_ID environment variable."},"apiKey":{"type":"string","description":"The API key for API operations. You can retrieve this\nfrom the Incapsula management console. Can be set via INCAPSULA_API_KEY environment variable."},"baseUrl":{"type":"string","description":"The base URL for API operations. Used for provider development."},"baseUrlApi":{"type":"string","description":"The base URL (same as v2 but with different subdomain) for API operations. Used for provider development."},"baseUrlRev2":{"type":"string","description":"The base URL (revision 2) for API operations. Used for provider development."},"baseUrlRev3":{"type":"string","description":"The base URL (revision 3) for API operations. Used for provider development."}},"type":"object","inputProperties":{"apiId":{"type":"string","description":"The API identifier for API operations. You can retrieve this\nfrom the Incapsula management console. Can be set via INCAPSULA_API_ID environment variable."},"apiKey":{"type":"string","description":"The API key for API operations. You can retrieve this\nfrom the Incapsula management console. Can be set via INCAPSULA_API_KEY environment variable."},"baseUrl":{"type":"string","description":"The base URL for API operations. Used for provider development."},"baseUrlApi":{"type":"string","description":"The base URL (same as v2 but with different subdomain) for API operations. Used for provider development."},"baseUrlRev2":{"type":"string","description":"The base URL (revision 2) for API operations. Used for provider development."},"baseUrlRev3":{"type":"string","description":"The base URL (revision 3) for API operations. Used for provider development."}},"methods":{"terraformConfig":"pulumi:providers:incapsula/terraformConfig"}},"resources":{"incapsula:index/abpWebsites:AbpWebsites":{"description":"Provides an ABP (Advanced Bot Protection) website resource. Allows you to enable and configure ABP for given websites.\n\nThis represents the canonical configuration of the ABP website groups and websites, if there are existing website groups or website, or they have different settings those will be removed or changed and not added as additional items.\n\nNOTE: Due to limitations in ABP, the API key/id used to deploy this resource must match the \u003cspan pulumi-lang-nodejs=\"`accountId`\" pulumi-lang-dotnet=\"`AccountId`\" pulumi-lang-go=\"`accountId`\" pulumi-lang-python=\"`account_id`\" pulumi-lang-yaml=\"`accountId`\" pulumi-lang-java=\"`accountId`\"\u003e`account_id`\u003c/span\u003e used in the resource (API key/id for a parent account do not work). All Incapsula sites associated with the resource must also be defined in that account.\n\n## Import\n\n```sh\n$ pulumi import incapsula:index/abpWebsites:AbpWebsites websites 1234\n```\n\n","properties":{"abpWebsitesId":{"type":"string","description":"The ID of this resource.\n"},"accountId":{"type":"number","description":"The account these websites belongs to.\n"},"autoPublish":{"type":"boolean","description":"Whether to publish the changes automatically. Changes don't take take effect until they have been published.\n"},"lastPublish":{"type":"string"},"websiteGroups":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FAbpWebsitesWebsiteGroup:AbpWebsitesWebsiteGroup"},"description":"List of website groups which are associated to ABP. Website groups are matched in a top-down fashion. If a more specific website group should take precedence over over a wild card entry then that should be higher in the list.\n"}},"type":"object","required":["abpWebsitesId","accountId","lastPublish"],"inputProperties":{"abpWebsitesId":{"type":"string","description":"The ID of this resource.\n"},"accountId":{"type":"number","description":"The account these websites belongs to.\n"},"autoPublish":{"type":"boolean","description":"Whether to publish the changes automatically. Changes don't take take effect until they have been published.\n"},"websiteGroups":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FAbpWebsitesWebsiteGroup:AbpWebsitesWebsiteGroup"},"description":"List of website groups which are associated to ABP. Website groups are matched in a top-down fashion. If a more specific website group should take precedence over over a wild card entry then that should be higher in the list.\n"}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering AbpWebsites resources.\n","properties":{"abpWebsitesId":{"type":"string","description":"The ID of this resource.\n"},"accountId":{"type":"number","description":"The account these websites belongs to.\n"},"autoPublish":{"type":"boolean","description":"Whether to publish the changes automatically. Changes don't take take effect until they have been published.\n"},"lastPublish":{"type":"string"},"websiteGroups":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FAbpWebsitesWebsiteGroup:AbpWebsitesWebsiteGroup"},"description":"List of website groups which are associated to ABP. Website groups are matched in a top-down fashion. If a more specific website group should take precedence over over a wild card entry then that should be higher in the list.\n"}},"type":"object"}},"incapsula:index/account:Account":{"description":"Provides a Incapsula Account resource. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_account = new incapsula.Account(\"example-account\", {\n    email: \"example@example.com\",\n    parentId: 123,\n    refId: \"123\",\n    userName: \"John Doe\",\n    planId: \"ent100\",\n    accountName: \"Example Account\",\n    logsAccountId: 456,\n    logLevel: \"full\",\n    consentRequired: true,\n    inactivityTimeout: 15,\n    dataStorageRegion: \"US\",\n    errorPageTemplate: \"RlP5QhsBHAECGUVDFxYZVCQFBwkDBggLBA0MFB0cGhsYFTgCIgUgJx3EG8LuM6ZpqwR8ScEztVwTqbxuB8...\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_account = incapsula.Account(\"example-account\",\n    email=\"example@example.com\",\n    parent_id=123,\n    ref_id=\"123\",\n    user_name=\"John Doe\",\n    plan_id=\"ent100\",\n    account_name=\"Example Account\",\n    logs_account_id=456,\n    log_level=\"full\",\n    consent_required=True,\n    inactivity_timeout=15,\n    data_storage_region=\"US\",\n    error_page_template=\"RlP5QhsBHAECGUVDFxYZVCQFBwkDBggLBA0MFB0cGhsYFTgCIgUgJx3EG8LuM6ZpqwR8ScEztVwTqbxuB8...\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_account = new Incapsula.Account(\"example-account\", new()\n    {\n        Email = \"example@example.com\",\n        ParentId = 123,\n        RefId = \"123\",\n        UserName = \"John Doe\",\n        PlanId = \"ent100\",\n        AccountName = \"Example Account\",\n        LogsAccountId = 456,\n        LogLevel = \"full\",\n        ConsentRequired = true,\n        InactivityTimeout = 15,\n        DataStorageRegion = \"US\",\n        ErrorPageTemplate = \"RlP5QhsBHAECGUVDFxYZVCQFBwkDBggLBA0MFB0cGhsYFTgCIgUgJx3EG8LuM6ZpqwR8ScEztVwTqbxuB8...\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewAccount(ctx, \"example-account\", \u0026incapsula.AccountArgs{\n\t\t\tEmail:             pulumi.String(\"example@example.com\"),\n\t\t\tParentId:          pulumi.Float64(123),\n\t\t\tRefId:             pulumi.String(\"123\"),\n\t\t\tUserName:          pulumi.String(\"John Doe\"),\n\t\t\tPlanId:            pulumi.String(\"ent100\"),\n\t\t\tAccountName:       pulumi.String(\"Example Account\"),\n\t\t\tLogsAccountId:     pulumi.Float64(456),\n\t\t\tLogLevel:          pulumi.String(\"full\"),\n\t\t\tConsentRequired:   pulumi.Bool(true),\n\t\t\tInactivityTimeout: pulumi.Float64(15),\n\t\t\tDataStorageRegion: pulumi.String(\"US\"),\n\t\t\tErrorPageTemplate: pulumi.String(\"RlP5QhsBHAECGUVDFxYZVCQFBwkDBggLBA0MFB0cGhsYFTgCIgUgJx3EG8LuM6ZpqwR8ScEztVwTqbxuB8...\"),\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.incapsula.Account;\nimport com.pulumi.incapsula.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_account = new Account(\"example-account\", AccountArgs.builder()\n            .email(\"example@example.com\")\n            .parentId(123.0)\n            .refId(\"123\")\n            .userName(\"John Doe\")\n            .planId(\"ent100\")\n            .accountName(\"Example Account\")\n            .logsAccountId(456.0)\n            .logLevel(\"full\")\n            .consentRequired(true)\n            .inactivityTimeout(15.0)\n            .dataStorageRegion(\"US\")\n            .errorPageTemplate(\"RlP5QhsBHAECGUVDFxYZVCQFBwkDBggLBA0MFB0cGhsYFTgCIgUgJx3EG8LuM6ZpqwR8ScEztVwTqbxuB8...\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-account:\n    type: incapsula:Account\n    properties:\n      email: example@example.com\n      parentId: 123\n      refId: '123'\n      userName: John Doe\n      planId: ent100\n      accountName: Example Account\n      logsAccountId: '456'\n      logLevel: full\n      consentRequired: true\n      inactivityTimeout: 15\n      dataStorageRegion: US\n      errorPageTemplate: RlP5QhsBHAECGUVDFxYZVCQFBwkDBggLBA0MFB0cGhsYFTgCIgUgJx3EG8LuM6ZpqwR8ScEztVwTqbxuB8...\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAccount can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/account:Account demo 1234\n```\n","properties":{"accountId":{"type":"string","description":"Unique identifier in the API for the account.\n"},"accountName":{"type":"string","description":"Account name.\n"},"consentRequired":{"type":"boolean","description":"Blocks Imperva from performing sensitive operations on your behalf. You can then activate consent via the Cloud Security Console UI. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dataStorageRegion":{"type":"string","description":"Default data region of the account for newly created sites. Options are `APAC`, `EU`, `US` and `AU`. Defaults to `US`.\n"},"email":{"type":"string","description":"Email address of the account admin. For example: joe@example.com.\n"},"enableHttp2ForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between end-users (visitors) and Imperva for newly created SSL sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enableHttp2ToOriginForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between Imperva and your origin server for newly created SSL sites. This option can only be 'true' once 'enable_http2_for_new_sites' is enabled for newly created sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"errorPageTemplate":{"type":"string","description":"Base64 encoded template for an error page.\n"},"inactivityTimeout":{"type":"number","description":"The length of time the session can be inactive before it times out. Options are 15,30,60,90,120. Default: 15 (The recommended value in compliance with regulatory requirements.)\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"logsAccountId":{"type":"number","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"nakedDomainSanForNewWwwSites":{"type":"string","description":"Add naked domain SAN to Incapsula SSL certificates for new www sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" addNakedDomainSanForWwwSites \" pulumi-lang-dotnet=\" AddNakedDomainSanForWwwSites \" pulumi-lang-go=\" addNakedDomainSanForWwwSites \" pulumi-lang-python=\" add_naked_domain_san_for_www_sites \" pulumi-lang-yaml=\" addNakedDomainSanForWwwSites \" pulumi-lang-java=\" addNakedDomainSanForWwwSites \"\u003e add_naked_domain_san_for_www_sites \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"},"parentId":{"type":"number","description":"The newly created account's parent id. If not specified, the invoking account will be assigned as the parent.\n"},"planId":{"type":"string","description":"An identifier of the plan to assign to the new account. For example, ent100 for the Enterprise 100 plan (values can be provided by your account manager).\n"},"planName":{"type":"string","description":"The name of the plan associated with the account.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation.\n"},"supportAllTlsVersions":{"type":"string","description":"Allow sites in the account to support all TLS versions for connectivity between clients (visitors) and the Imperva service.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" addNakedDomainSanForWwwSites \" pulumi-lang-dotnet=\" AddNakedDomainSanForWwwSites \" pulumi-lang-go=\" addNakedDomainSanForWwwSites \" pulumi-lang-python=\" add_naked_domain_san_for_www_sites \" pulumi-lang-yaml=\" addNakedDomainSanForWwwSites \" pulumi-lang-java=\" addNakedDomainSanForWwwSites \"\u003e add_naked_domain_san_for_www_sites \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"},"supportLevel":{"type":"string","description":"The support tier associated with the account.\n"},"trialEndDate":{"type":"string","description":"The trial end date of a trial account.\n"},"userName":{"type":"string","description":"The account owner's name. For example: John Doe.\n"},"wildcardSanForNewSites":{"type":"string","description":"Add wildcard SAN to Incapsula SSL certificates for new sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-dotnet=\" UseWildCardSanInsteadOfFqdn \" pulumi-lang-go=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-python=\" use_wild_card_san_instead_of_fqdn \" pulumi-lang-yaml=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-java=\" useWildCardSanInsteadOfFqdn \"\u003e use_wild_card_san_instead_of_fqdn \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"}},"type":"object","required":["accountId","accountName","consentRequired","email","parentId","planName","supportLevel","trialEndDate","userName"],"inputProperties":{"accountId":{"type":"string","description":"Unique identifier in the API for the account.\n"},"accountName":{"type":"string","description":"Account name.\n"},"consentRequired":{"type":"boolean","description":"Blocks Imperva from performing sensitive operations on your behalf. You can then activate consent via the Cloud Security Console UI. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dataStorageRegion":{"type":"string","description":"Default data region of the account for newly created sites. Options are `APAC`, `EU`, `US` and `AU`. Defaults to `US`.\n"},"email":{"type":"string","description":"Email address of the account admin. For example: joe@example.com.\n"},"enableHttp2ForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between end-users (visitors) and Imperva for newly created SSL sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enableHttp2ToOriginForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between Imperva and your origin server for newly created SSL sites. This option can only be 'true' once 'enable_http2_for_new_sites' is enabled for newly created sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"errorPageTemplate":{"type":"string","description":"Base64 encoded template for an error page.\n"},"inactivityTimeout":{"type":"number","description":"The length of time the session can be inactive before it times out. Options are 15,30,60,90,120. Default: 15 (The recommended value in compliance with regulatory requirements.)\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"logsAccountId":{"type":"number","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"nakedDomainSanForNewWwwSites":{"type":"string","description":"Add naked domain SAN to Incapsula SSL certificates for new www sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" addNakedDomainSanForWwwSites \" pulumi-lang-dotnet=\" AddNakedDomainSanForWwwSites \" pulumi-lang-go=\" addNakedDomainSanForWwwSites \" pulumi-lang-python=\" add_naked_domain_san_for_www_sites \" pulumi-lang-yaml=\" addNakedDomainSanForWwwSites \" pulumi-lang-java=\" addNakedDomainSanForWwwSites \"\u003e add_naked_domain_san_for_www_sites \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"},"parentId":{"type":"number","description":"The newly created account's parent id. If not specified, the invoking account will be assigned as the parent.\n"},"planId":{"type":"string","description":"An identifier of the plan to assign to the new account. For example, ent100 for the Enterprise 100 plan (values can be provided by your account manager).\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation.\n"},"supportAllTlsVersions":{"type":"string","description":"Allow sites in the account to support all TLS versions for connectivity between clients (visitors) and the Imperva service.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" addNakedDomainSanForWwwSites \" pulumi-lang-dotnet=\" AddNakedDomainSanForWwwSites \" pulumi-lang-go=\" addNakedDomainSanForWwwSites \" pulumi-lang-python=\" add_naked_domain_san_for_www_sites \" pulumi-lang-yaml=\" addNakedDomainSanForWwwSites \" pulumi-lang-java=\" addNakedDomainSanForWwwSites \"\u003e add_naked_domain_san_for_www_sites \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"},"userName":{"type":"string","description":"The account owner's name. For example: John Doe.\n"},"wildcardSanForNewSites":{"type":"string","description":"Add wildcard SAN to Incapsula SSL certificates for new sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-dotnet=\" UseWildCardSanInsteadOfFqdn \" pulumi-lang-go=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-python=\" use_wild_card_san_instead_of_fqdn \" pulumi-lang-yaml=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-java=\" useWildCardSanInsteadOfFqdn \"\u003e use_wild_card_san_instead_of_fqdn \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"}},"requiredInputs":["email"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountId":{"type":"string","description":"Unique identifier in the API for the account.\n"},"accountName":{"type":"string","description":"Account name.\n"},"consentRequired":{"type":"boolean","description":"Blocks Imperva from performing sensitive operations on your behalf. You can then activate consent via the Cloud Security Console UI. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dataStorageRegion":{"type":"string","description":"Default data region of the account for newly created sites. Options are `APAC`, `EU`, `US` and `AU`. Defaults to `US`.\n"},"email":{"type":"string","description":"Email address of the account admin. For example: joe@example.com.\n"},"enableHttp2ForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between end-users (visitors) and Imperva for newly created SSL sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enableHttp2ToOriginForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between Imperva and your origin server for newly created SSL sites. This option can only be 'true' once 'enable_http2_for_new_sites' is enabled for newly created sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"errorPageTemplate":{"type":"string","description":"Base64 encoded template for an error page.\n"},"inactivityTimeout":{"type":"number","description":"The length of time the session can be inactive before it times out. Options are 15,30,60,90,120. Default: 15 (The recommended value in compliance with regulatory requirements.)\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"logsAccountId":{"type":"number","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"nakedDomainSanForNewWwwSites":{"type":"string","description":"Add naked domain SAN to Incapsula SSL certificates for new www sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" addNakedDomainSanForWwwSites \" pulumi-lang-dotnet=\" AddNakedDomainSanForWwwSites \" pulumi-lang-go=\" addNakedDomainSanForWwwSites \" pulumi-lang-python=\" add_naked_domain_san_for_www_sites \" pulumi-lang-yaml=\" addNakedDomainSanForWwwSites \" pulumi-lang-java=\" addNakedDomainSanForWwwSites \"\u003e add_naked_domain_san_for_www_sites \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"},"parentId":{"type":"number","description":"The newly created account's parent id. If not specified, the invoking account will be assigned as the parent.\n"},"planId":{"type":"string","description":"An identifier of the plan to assign to the new account. For example, ent100 for the Enterprise 100 plan (values can be provided by your account manager).\n"},"planName":{"type":"string","description":"The name of the plan associated with the account.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation.\n"},"supportAllTlsVersions":{"type":"string","description":"Allow sites in the account to support all TLS versions for connectivity between clients (visitors) and the Imperva service.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" addNakedDomainSanForWwwSites \" pulumi-lang-dotnet=\" AddNakedDomainSanForWwwSites \" pulumi-lang-go=\" addNakedDomainSanForWwwSites \" pulumi-lang-python=\" add_naked_domain_san_for_www_sites \" pulumi-lang-yaml=\" addNakedDomainSanForWwwSites \" pulumi-lang-java=\" addNakedDomainSanForWwwSites \"\u003e add_naked_domain_san_for_www_sites \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"},"supportLevel":{"type":"string","description":"The support tier associated with the account.\n"},"trialEndDate":{"type":"string","description":"The trial end date of a trial account.\n"},"userName":{"type":"string","description":"The account owner's name. For example: John Doe.\n"},"wildcardSanForNewSites":{"type":"string","description":"Add wildcard SAN to Incapsula SSL certificates for new sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e.  \nNote: This argument is deprecated. Use\u003cspan pulumi-lang-nodejs=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-dotnet=\" UseWildCardSanInsteadOfFqdn \" pulumi-lang-go=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-python=\" use_wild_card_san_instead_of_fqdn \" pulumi-lang-yaml=\" useWildCardSanInsteadOfFqdn \" pulumi-lang-java=\" useWildCardSanInsteadOfFqdn \"\u003e use_wild_card_san_instead_of_fqdn \u003c/span\u003ein the\u003cspan pulumi-lang-nodejs=\" accountSslSettings \" pulumi-lang-dotnet=\" AccountSslSettings \" pulumi-lang-go=\" accountSslSettings \" pulumi-lang-python=\" account_ssl_settings \" pulumi-lang-yaml=\" accountSslSettings \" pulumi-lang-java=\" accountSslSettings \"\u003e account_ssl_settings \u003c/span\u003eresource instead.\n","deprecationMessage":"Deprecated"}},"type":"object"}},"incapsula:index/accountPolicyAssociation:AccountPolicyAssociation":{"description":"Provides an Incapsula Account Policy Association resource.\n\nDependency is on existing policies, created using the \u003cspan pulumi-lang-nodejs=\"`incapsula.Policy`\" pulumi-lang-dotnet=\"`incapsula.Policy`\" pulumi-lang-go=\"`Policy`\" pulumi-lang-python=\"`Policy`\" pulumi-lang-yaml=\"`incapsula.Policy`\" pulumi-lang-java=\"`incapsula.Policy`\"\u003e`incapsula.Policy`\u003c/span\u003e resource.\n\n## Example Usage\n\n### Basic Usage - Account Policy Association for account before WAF settings are migrated to the WAF RULES policy - \u003cspan pulumi-lang-nodejs=\"`defaultWafPolicyId`\" pulumi-lang-dotnet=\"`DefaultWafPolicyId`\" pulumi-lang-go=\"`defaultWafPolicyId`\" pulumi-lang-python=\"`default_waf_policy_id`\" pulumi-lang-yaml=\"`defaultWafPolicyId`\" pulumi-lang-java=\"`defaultWafPolicyId`\"\u003e`default_waf_policy_id`\u003c/span\u003e is not set\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst accountData = incapsula.getAccountData({});\nconst example_account_policy_association = new incapsula.AccountPolicyAssociation(\"example-account-policy-association\", {\n    accountId: accountData.then(accountData =\u003e accountData.currentAccount),\n    defaultNonMandatoryPolicyIds: [\n        \"123777\",\n        \"123888\",\n        \"123999\",\n        \"123444\",\n        defaultAclPolicy.id,\n        defaultAllowlistPolicy.id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\naccount_data = incapsula.get_account_data()\nexample_account_policy_association = incapsula.AccountPolicyAssociation(\"example-account-policy-association\",\n    account_id=account_data.current_account,\n    default_non_mandatory_policy_ids=[\n        \"123777\",\n        \"123888\",\n        \"123999\",\n        \"123444\",\n        default_acl_policy[\"id\"],\n        default_allowlist_policy[\"id\"],\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountData = Incapsula.GetAccountData.Invoke();\n\n    var example_account_policy_association = new Incapsula.AccountPolicyAssociation(\"example-account-policy-association\", new()\n    {\n        AccountId = accountData.Apply(getAccountDataResult =\u003e getAccountDataResult.CurrentAccount),\n        DefaultNonMandatoryPolicyIds = new[]\n        {\n            \"123777\",\n            \"123888\",\n            \"123999\",\n            \"123444\",\n            defaultAclPolicy.Id,\n            defaultAllowlistPolicy.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccountData, err := incapsula.GetAccountData(ctx, \u0026incapsula.GetAccountDataArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountPolicyAssociation(ctx, \"example-account-policy-association\", \u0026incapsula.AccountPolicyAssociationArgs{\n\t\t\tAccountId: pulumi.String(accountData.CurrentAccount),\n\t\t\tDefaultNonMandatoryPolicyIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"123777\"),\n\t\t\t\tpulumi.String(\"123888\"),\n\t\t\t\tpulumi.String(\"123999\"),\n\t\t\t\tpulumi.String(\"123444\"),\n\t\t\t\tdefaultAclPolicy.Id,\n\t\t\t\tdefaultAllowlistPolicy.Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountDataArgs;\nimport com.pulumi.incapsula.AccountPolicyAssociation;\nimport com.pulumi.incapsula.AccountPolicyAssociationArgs;\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 accountData = IncapsulaFunctions.getAccountData(GetAccountDataArgs.builder()\n            .build());\n\n        var example_account_policy_association = new AccountPolicyAssociation(\"example-account-policy-association\", AccountPolicyAssociationArgs.builder()\n            .accountId(accountData.currentAccount())\n            .defaultNonMandatoryPolicyIds(            \n                \"123777\",\n                \"123888\",\n                \"123999\",\n                \"123444\",\n                defaultAclPolicy.id(),\n                defaultAllowlistPolicy.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-account-policy-association:\n    type: incapsula:AccountPolicyAssociation\n    properties:\n      accountId: ${accountData.currentAccount}\n      defaultNonMandatoryPolicyIds:\n        - '123777'\n        - '123888'\n        - '123999'\n        - '123444'\n        - ${defaultAclPolicy.id}\n        - ${defaultAllowlistPolicy.id}\nvariables:\n  accountData:\n    fn::invoke:\n      function: incapsula:getAccountData\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic Usage - Account Policy Association for account after WAF settings are migrated to the WAF RULES policy - \u003cspan pulumi-lang-nodejs=\"`defaultWafPolicyId`\" pulumi-lang-dotnet=\"`DefaultWafPolicyId`\" pulumi-lang-go=\"`defaultWafPolicyId`\" pulumi-lang-python=\"`default_waf_policy_id`\" pulumi-lang-yaml=\"`defaultWafPolicyId`\" pulumi-lang-java=\"`defaultWafPolicyId`\"\u003e`default_waf_policy_id`\u003c/span\u003e is set\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst accountData = incapsula.getAccountData({});\nconst example_account_policy_association = new incapsula.AccountPolicyAssociation(\"example-account-policy-association\", {\n    accountId: accountData.then(accountData =\u003e accountData.currentAccount),\n    defaultNonMandatoryPolicyIds: [\n        \"123777\",\n        \"123888\",\n        \"123999\",\n        \"123444\",\n        defaultAclPolicy.id,\n        defaultAllowlistPolicy.id,\n    ],\n    defaultWafPolicyId: \"1480033\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\naccount_data = incapsula.get_account_data()\nexample_account_policy_association = incapsula.AccountPolicyAssociation(\"example-account-policy-association\",\n    account_id=account_data.current_account,\n    default_non_mandatory_policy_ids=[\n        \"123777\",\n        \"123888\",\n        \"123999\",\n        \"123444\",\n        default_acl_policy[\"id\"],\n        default_allowlist_policy[\"id\"],\n    ],\n    default_waf_policy_id=\"1480033\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountData = Incapsula.GetAccountData.Invoke();\n\n    var example_account_policy_association = new Incapsula.AccountPolicyAssociation(\"example-account-policy-association\", new()\n    {\n        AccountId = accountData.Apply(getAccountDataResult =\u003e getAccountDataResult.CurrentAccount),\n        DefaultNonMandatoryPolicyIds = new[]\n        {\n            \"123777\",\n            \"123888\",\n            \"123999\",\n            \"123444\",\n            defaultAclPolicy.Id,\n            defaultAllowlistPolicy.Id,\n        },\n        DefaultWafPolicyId = \"1480033\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccountData, err := incapsula.GetAccountData(ctx, \u0026incapsula.GetAccountDataArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountPolicyAssociation(ctx, \"example-account-policy-association\", \u0026incapsula.AccountPolicyAssociationArgs{\n\t\t\tAccountId: pulumi.String(accountData.CurrentAccount),\n\t\t\tDefaultNonMandatoryPolicyIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"123777\"),\n\t\t\t\tpulumi.String(\"123888\"),\n\t\t\t\tpulumi.String(\"123999\"),\n\t\t\t\tpulumi.String(\"123444\"),\n\t\t\t\tdefaultAclPolicy.Id,\n\t\t\t\tdefaultAllowlistPolicy.Id,\n\t\t\t},\n\t\t\tDefaultWafPolicyId: pulumi.String(\"1480033\"),\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.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountDataArgs;\nimport com.pulumi.incapsula.AccountPolicyAssociation;\nimport com.pulumi.incapsula.AccountPolicyAssociationArgs;\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 accountData = IncapsulaFunctions.getAccountData(GetAccountDataArgs.builder()\n            .build());\n\n        var example_account_policy_association = new AccountPolicyAssociation(\"example-account-policy-association\", AccountPolicyAssociationArgs.builder()\n            .accountId(accountData.currentAccount())\n            .defaultNonMandatoryPolicyIds(            \n                \"123777\",\n                \"123888\",\n                \"123999\",\n                \"123444\",\n                defaultAclPolicy.id(),\n                defaultAllowlistPolicy.id())\n            .defaultWafPolicyId(\"1480033\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-account-policy-association:\n    type: incapsula:AccountPolicyAssociation\n    properties:\n      accountId: ${accountData.currentAccount}\n      defaultNonMandatoryPolicyIds:\n        - '123777'\n        - '123888'\n        - '123999'\n        - '123444'\n        - ${defaultAclPolicy.id}\n        - ${defaultAllowlistPolicy.id}\n      defaultWafPolicyId: '1480033'\nvariables:\n  accountData:\n    fn::invoke:\n      function: incapsula:getAccountData\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n## Destroy\n\nDestroying this resource will cause the following behavior:\n* Default WAF policy will remain unchanged\n* Default non-mandatory policies will be unset as default \n* Availability will remain unchanged unless the resource is pointing to a sub account and managed by the parent account. In that case, availability to all policies except for the WAF policy will be removed.\n\n## Import\n\nAccount Policy Association can be imported using the `id` (account ID), e.g.:\n\n```sh\n$ pulumi import incapsula:index/accountPolicyAssociation:AccountPolicyAssociation example-account-policy-association 1234\n```\n","properties":{"accountId":{"type":"string","description":"The account to operate on.\n"},"accountPolicyAssociationId":{"type":"string"},"availablePolicyIds":{"type":"string","description":"Comma separated list of the account’s available policies. These policies can be applied to the websites in the account.\ne.g.\u003cspan pulumi-lang-nodejs=\" availablePolicyIds \" pulumi-lang-dotnet=\" AvailablePolicyIds \" pulumi-lang-go=\" availablePolicyIds \" pulumi-lang-python=\" available_policy_ids \" pulumi-lang-yaml=\" availablePolicyIds \" pulumi-lang-java=\" availablePolicyIds \"\u003e available_policy_ids \u003c/span\u003e= format(\\\"%s,%s\\\", incapsula_policy.acl1-policy.id, incapsula_policy.waf3-policy.id)\nSpecify this argument only for a parent account trying to update policy availability for its subaccounts. To remove availability for all policies, specify \"NO_AVAILABLE_POLICIES\".\n"},"defaultNonMandatoryPolicyIds":{"type":"array","items":{"type":"string"},"description":"This list is currently relevant to Allowlist and ACL policies. More than one policy can be set as default.\nThe default policies can be set for the current account, or if used by users with credentials of the parent account can also be set for sub-accounts.\nDefault setting – empty list. No default policy. Providing an empty list or omitting this argument will clear all the non-mandatory default policies.\n"},"defaultWafPolicyId":{"type":"string","description":"The WAF policy which is set as default for the account. The account can only have 1 such ID.\nThe Default policy will be applied automatically to sites that are created after setting it to default.\nThis default setting can be set for the current account, or if used by users with credentials of the parent account can also be set for sub-accounts.\nThis parameter is MANDATORY for customers that have account level WAF RULES policies enabled. This means that a default WAF RULES policy resource must be created.\nFor customers who were not migrated yet, this parameter should not be set. However, after migration, a WAF RULES policy must be added and set as default.\nDefault setting - None.\n"}},"type":"object","required":["accountId","accountPolicyAssociationId"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on.\n"},"accountPolicyAssociationId":{"type":"string"},"availablePolicyIds":{"type":"string","description":"Comma separated list of the account’s available policies. These policies can be applied to the websites in the account.\ne.g.\u003cspan pulumi-lang-nodejs=\" availablePolicyIds \" pulumi-lang-dotnet=\" AvailablePolicyIds \" pulumi-lang-go=\" availablePolicyIds \" pulumi-lang-python=\" available_policy_ids \" pulumi-lang-yaml=\" availablePolicyIds \" pulumi-lang-java=\" availablePolicyIds \"\u003e available_policy_ids \u003c/span\u003e= format(\\\"%s,%s\\\", incapsula_policy.acl1-policy.id, incapsula_policy.waf3-policy.id)\nSpecify this argument only for a parent account trying to update policy availability for its subaccounts. To remove availability for all policies, specify \"NO_AVAILABLE_POLICIES\".\n"},"defaultNonMandatoryPolicyIds":{"type":"array","items":{"type":"string"},"description":"This list is currently relevant to Allowlist and ACL policies. More than one policy can be set as default.\nThe default policies can be set for the current account, or if used by users with credentials of the parent account can also be set for sub-accounts.\nDefault setting – empty list. No default policy. Providing an empty list or omitting this argument will clear all the non-mandatory default policies.\n"},"defaultWafPolicyId":{"type":"string","description":"The WAF policy which is set as default for the account. The account can only have 1 such ID.\nThe Default policy will be applied automatically to sites that are created after setting it to default.\nThis default setting can be set for the current account, or if used by users with credentials of the parent account can also be set for sub-accounts.\nThis parameter is MANDATORY for customers that have account level WAF RULES policies enabled. This means that a default WAF RULES policy resource must be created.\nFor customers who were not migrated yet, this parameter should not be set. However, after migration, a WAF RULES policy must be added and set as default.\nDefault setting - None.\n"}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountPolicyAssociation resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on.\n"},"accountPolicyAssociationId":{"type":"string"},"availablePolicyIds":{"type":"string","description":"Comma separated list of the account’s available policies. These policies can be applied to the websites in the account.\ne.g.\u003cspan pulumi-lang-nodejs=\" availablePolicyIds \" pulumi-lang-dotnet=\" AvailablePolicyIds \" pulumi-lang-go=\" availablePolicyIds \" pulumi-lang-python=\" available_policy_ids \" pulumi-lang-yaml=\" availablePolicyIds \" pulumi-lang-java=\" availablePolicyIds \"\u003e available_policy_ids \u003c/span\u003e= format(\\\"%s,%s\\\", incapsula_policy.acl1-policy.id, incapsula_policy.waf3-policy.id)\nSpecify this argument only for a parent account trying to update policy availability for its subaccounts. To remove availability for all policies, specify \"NO_AVAILABLE_POLICIES\".\n"},"defaultNonMandatoryPolicyIds":{"type":"array","items":{"type":"string"},"description":"This list is currently relevant to Allowlist and ACL policies. More than one policy can be set as default.\nThe default policies can be set for the current account, or if used by users with credentials of the parent account can also be set for sub-accounts.\nDefault setting – empty list. No default policy. Providing an empty list or omitting this argument will clear all the non-mandatory default policies.\n"},"defaultWafPolicyId":{"type":"string","description":"The WAF policy which is set as default for the account. The account can only have 1 such ID.\nThe Default policy will be applied automatically to sites that are created after setting it to default.\nThis default setting can be set for the current account, or if used by users with credentials of the parent account can also be set for sub-accounts.\nThis parameter is MANDATORY for customers that have account level WAF RULES policies enabled. This means that a default WAF RULES policy resource must be created.\nFor customers who were not migrated yet, this parameter should not be set. However, after migration, a WAF RULES policy must be added and set as default.\nDefault setting - None.\n"}},"type":"object"}},"incapsula:index/accountRole:AccountRole":{"description":"Provides an account role resource.\nEach account has the option to create roles, to grant a fixed set of permissions to users. This resource enables you to create roles.\n\nThe role permissions should be added as keys (strings) and may be taken from the \u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountPermissions`\" pulumi-lang-dotnet=\"`incapsula.getAccountPermissions`\" pulumi-lang-go=\"`getAccountPermissions`\" pulumi-lang-python=\"`get_account_permissions`\" pulumi-lang-yaml=\"`incapsula.getAccountPermissions`\" pulumi-lang-java=\"`incapsula.getAccountPermissions`\"\u003e`incapsula.getAccountPermissions`\u003c/span\u003e data source.\nThe \u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountPermissions`\" pulumi-lang-dotnet=\"`incapsula.getAccountPermissions`\" pulumi-lang-go=\"`getAccountPermissions`\" pulumi-lang-python=\"`get_account_permissions`\" pulumi-lang-yaml=\"`incapsula.getAccountPermissions`\" pulumi-lang-java=\"`incapsula.getAccountPermissions`\"\u003e`incapsula.getAccountPermissions`\u003c/span\u003e data source contains the account permissions list.\nTo get the current list of permission in the account, use the \u003cb\u003e/v1/abilities/accounts/{accountId}\u003c/b\u003e API found in the \u003cb\u003ev1\u003c/b\u003e section of the\n[Role Management API Definition page.](https://docs.imperva.com/bundle/cloud-application-security/page/roles-api-definition.htm)\n\n\n## Example Usage\n\n### Basic Usage - List\n\nThe basic usage is to use lists of account permissions keys.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst role1 = new incapsula.AccountRole(\"role_1\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 1\",\n    description: \"Sample Role Description 1\",\n    permissions: [\n        \"canAddSite\",\n        \"canEditSite\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nrole1 = incapsula.AccountRole(\"role_1\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 1\",\n    description=\"Sample Role Description 1\",\n    permissions=[\n        \"canAddSite\",\n        \"canEditSite\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var role1 = new Incapsula.AccountRole(\"role_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 1\",\n        Description = \"Sample Role Description 1\",\n        Permissions = new[]\n        {\n            \"canAddSite\",\n            \"canEditSite\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewAccountRole(ctx, \"role_1\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId:   pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:        pulumi.String(\"Sample Role 1\"),\n\t\t\tDescription: pulumi.String(\"Sample Role Description 1\"),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"canAddSite\"),\n\t\t\t\tpulumi.String(\"canEditSite\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var role1 = new AccountRole(\"role1\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 1\")\n            .description(\"Sample Role Description 1\")\n            .permissions(            \n                \"canAddSite\",\n                \"canEditSite\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role1:\n    type: incapsula:AccountRole\n    name: role_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 1\n      description: Sample Role Description 1\n      permissions:\n        - canAddSite\n        - canEditSite\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Data Sources Usage\n\nThe\u003cspan pulumi-lang-nodejs=\" incapsula.getAccountPermissions \" pulumi-lang-dotnet=\" incapsula.getAccountPermissions \" pulumi-lang-go=\" getAccountPermissions \" pulumi-lang-python=\" get_account_permissions \" pulumi-lang-yaml=\" incapsula.getAccountPermissions \" pulumi-lang-java=\" incapsula.getAccountPermissions \"\u003e incapsula.getAccountPermissions \u003c/span\u003edata sources provide the Account Permissions display names that are more \"human-readable\".\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst accountPermissions = incapsula.getAccountPermissions({\n    accountId: accountData.currentAccount,\n});\nconst role1 = new incapsula.AccountRole(\"role_1\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 1\",\n    description: \"Sample Role Description 1\",\n    permissions: [\n        \"canAddSite\",\n        \"canEditSite\",\n        accountPermissions.then(accountPermissions =\u003e accountPermissions.map?.[\"View Infra Protect settings\"]),\n        accountPermissions.then(accountPermissions =\u003e accountPermissions.map?.[\"Delete exception from policy\"]),\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\naccount_permissions = incapsula.get_account_permissions(account_id=account_data[\"currentAccount\"])\nrole1 = incapsula.AccountRole(\"role_1\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 1\",\n    description=\"Sample Role Description 1\",\n    permissions=[\n        \"canAddSite\",\n        \"canEditSite\",\n        account_permissions.map[\"View Infra Protect settings\"],\n        account_permissions.map[\"Delete exception from policy\"],\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountPermissions = Incapsula.GetAccountPermissions.Invoke(new()\n    {\n        AccountId = accountData.CurrentAccount,\n    });\n\n    var role1 = new Incapsula.AccountRole(\"role_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 1\",\n        Description = \"Sample Role Description 1\",\n        Permissions = new[]\n        {\n            \"canAddSite\",\n            \"canEditSite\",\n            accountPermissions.Apply(getAccountPermissionsResult =\u003e getAccountPermissionsResult.Map?.View_Infra_Protect_settings),\n            accountPermissions.Apply(getAccountPermissionsResult =\u003e getAccountPermissionsResult.Map?.Delete_exception_from_policy),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\naccountPermissions, err := incapsula.GetAccountPermissions(ctx, \u0026incapsula.GetAccountPermissionsArgs{\nAccountId: accountData.CurrentAccount,\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = incapsula.NewAccountRole(ctx, \"role_1\", \u0026incapsula.AccountRoleArgs{\nAccountId: pulumi.Any(accountData.CurrentAccount),\nName: pulumi.String(\"Sample Role 1\"),\nDescription: pulumi.String(\"Sample Role Description 1\"),\nPermissions: pulumi.StringArray{\npulumi.String(\"canAddSite\"),\npulumi.String(\"canEditSite\"),\npulumi.String(accountPermissions.Map.View Infra Protect settings),\npulumi.String(accountPermissions.Map.Delete exception from policy),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountPermissionsArgs;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\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 accountPermissions = IncapsulaFunctions.getAccountPermissions(GetAccountPermissionsArgs.builder()\n            .accountId(accountData.currentAccount())\n            .build());\n\n        var role1 = new AccountRole(\"role1\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 1\")\n            .description(\"Sample Role Description 1\")\n            .permissions(            \n                \"canAddSite\",\n                \"canEditSite\",\n                accountPermissions.map().View Infra Protect settings(),\n                accountPermissions.map().Delete exception from policy())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role1:\n    type: incapsula:AccountRole\n    name: role_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 1\n      description: Sample Role Description 1\n      permissions:\n        - canAddSite\n        - canEditSite\n        - ${accountPermissions.map\"View Infra Protect settings\"[%!s(MISSING)]}\n        - ${accountPermissions.map\"Delete exception from policy\"[%!s(MISSING)]}\nvariables:\n  accountPermissions:\n    fn::invoke:\n      function: incapsula:getAccountPermissions\n      arguments:\n        accountId: ${accountData.currentAccount}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIn this example, we are using the generated \u003cspan pulumi-lang-nodejs=\"`keys`\" pulumi-lang-dotnet=\"`Keys`\" pulumi-lang-go=\"`keys`\" pulumi-lang-python=\"`keys`\" pulumi-lang-yaml=\"`keys`\" pulumi-lang-java=\"`keys`\"\u003e`keys`\u003c/span\u003e attribute filtered by \u003cspan pulumi-lang-nodejs=\"`filterByText`\" pulumi-lang-dotnet=\"`FilterByText`\" pulumi-lang-go=\"`filterByText`\" pulumi-lang-python=\"`filter_by_text`\" pulumi-lang-yaml=\"`filterByText`\" pulumi-lang-java=\"`filterByText`\"\u003e`filter_by_text`\u003c/span\u003e argument.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst accountPermissions = incapsula.getAccountPermissions({\n    accountId: accountData.currentAccount,\n    filterByText: \"site\",\n});\nconst role2 = new incapsula.AccountRole(\"role_2\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 2\",\n    description: \"Sample Role Description 2\",\n    permissions: accountPermissions.then(accountPermissions =\u003e accountPermissions.keys),\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\naccount_permissions = incapsula.get_account_permissions(account_id=account_data[\"currentAccount\"],\n    filter_by_text=\"site\")\nrole2 = incapsula.AccountRole(\"role_2\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 2\",\n    description=\"Sample Role Description 2\",\n    permissions=account_permissions.keys)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountPermissions = Incapsula.GetAccountPermissions.Invoke(new()\n    {\n        AccountId = accountData.CurrentAccount,\n        FilterByText = \"site\",\n    });\n\n    var role2 = new Incapsula.AccountRole(\"role_2\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 2\",\n        Description = \"Sample Role Description 2\",\n        Permissions = accountPermissions.Apply(getAccountPermissionsResult =\u003e getAccountPermissionsResult.Keys),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccountPermissions, err := incapsula.GetAccountPermissions(ctx, \u0026incapsula.GetAccountPermissionsArgs{\n\t\t\tAccountId:    accountData.CurrentAccount,\n\t\t\tFilterByText: pulumi.StringRef(\"site\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountRole(ctx, \"role_2\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId:   pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:        pulumi.String(\"Sample Role 2\"),\n\t\t\tDescription: pulumi.String(\"Sample Role Description 2\"),\n\t\t\tPermissions: interface{}(accountPermissions.Keys),\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.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountPermissionsArgs;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\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 accountPermissions = IncapsulaFunctions.getAccountPermissions(GetAccountPermissionsArgs.builder()\n            .accountId(accountData.currentAccount())\n            .filterByText(\"site\")\n            .build());\n\n        var role2 = new AccountRole(\"role2\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 2\")\n            .description(\"Sample Role Description 2\")\n            .permissions(accountPermissions.keys())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role2:\n    type: incapsula:AccountRole\n    name: role_2\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 2\n      description: Sample Role Description 2\n      permissions: ${accountPermissions.keys}\nvariables:\n  accountPermissions:\n    fn::invoke:\n      function: incapsula:getAccountPermissions\n      arguments:\n        accountId: ${accountData.currentAccount}\n        filterByText: site\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAccount Role can be imported using the `id`\n\n```sh\n$ pulumi import incapsula:index/accountRole:AccountRole demo 1234\n```\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on - a reference to the account datasource may be used\n"},"accountRoleId":{"type":"string","description":"Unique identifier in the API for the account role.\n"},"description":{"type":"string","description":"The role description\n"},"name":{"type":"string","description":"The role name\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"List of account permission keys\n\nDefault value is an empty list (role with no permissions).\n\u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountPermissions`\" pulumi-lang-dotnet=\"`incapsula.getAccountPermissions`\" pulumi-lang-go=\"`getAccountPermissions`\" pulumi-lang-python=\"`get_account_permissions`\" pulumi-lang-yaml=\"`incapsula.getAccountPermissions`\" pulumi-lang-java=\"`incapsula.getAccountPermissions`\"\u003e`incapsula.getAccountPermissions`\u003c/span\u003e data source can be used in different ways (see examples above)\n"}},"type":"object","required":["accountId","accountRoleId","name"],"inputProperties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on - a reference to the account datasource may be used\n"},"accountRoleId":{"type":"string","description":"Unique identifier in the API for the account role.\n"},"description":{"type":"string","description":"The role description\n"},"name":{"type":"string","description":"The role name\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"List of account permission keys\n\nDefault value is an empty list (role with no permissions).\n\u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountPermissions`\" pulumi-lang-dotnet=\"`incapsula.getAccountPermissions`\" pulumi-lang-go=\"`getAccountPermissions`\" pulumi-lang-python=\"`get_account_permissions`\" pulumi-lang-yaml=\"`incapsula.getAccountPermissions`\" pulumi-lang-java=\"`incapsula.getAccountPermissions`\"\u003e`incapsula.getAccountPermissions`\u003c/span\u003e data source can be used in different ways (see examples above)\n"}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountRole resources.\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on - a reference to the account datasource may be used\n"},"accountRoleId":{"type":"string","description":"Unique identifier in the API for the account role.\n"},"description":{"type":"string","description":"The role description\n"},"name":{"type":"string","description":"The role name\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"List of account permission keys\n\nDefault value is an empty list (role with no permissions).\n\u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountPermissions`\" pulumi-lang-dotnet=\"`incapsula.getAccountPermissions`\" pulumi-lang-go=\"`getAccountPermissions`\" pulumi-lang-python=\"`get_account_permissions`\" pulumi-lang-yaml=\"`incapsula.getAccountPermissions`\" pulumi-lang-java=\"`incapsula.getAccountPermissions`\"\u003e`incapsula.getAccountPermissions`\u003c/span\u003e data source can be used in different ways (see examples above)\n"}},"type":"object"}},"incapsula:index/accountSslSettings:AccountSslSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst ssl_52546413 = new incapsula.AccountSslSettings(\"ssl-52546413\", {\n    accountId: \"123\",\n    allowSupportOldTlsVersions: false,\n    enableHstsForNewSites: true,\n    useWildCardSanInsteadOfFqdn: true,\n    addNakedDomainSanForWwwSites: false,\n    allowCnameValidation: true,\n    allowedDomainForCnameValidations: [\n        {\n            name: \"example.com\",\n        },\n        {\n            name: \"example2.com\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nssl_52546413 = incapsula.AccountSslSettings(\"ssl-52546413\",\n    account_id=\"123\",\n    allow_support_old_tls_versions=False,\n    enable_hsts_for_new_sites=True,\n    use_wild_card_san_instead_of_fqdn=True,\n    add_naked_domain_san_for_www_sites=False,\n    allow_cname_validation=True,\n    allowed_domain_for_cname_validations=[\n        {\n            \"name\": \"example.com\",\n        },\n        {\n            \"name\": \"example2.com\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ssl_52546413 = new Incapsula.AccountSslSettings(\"ssl-52546413\", new()\n    {\n        AccountId = \"123\",\n        AllowSupportOldTlsVersions = false,\n        EnableHstsForNewSites = true,\n        UseWildCardSanInsteadOfFqdn = true,\n        AddNakedDomainSanForWwwSites = false,\n        AllowCnameValidation = true,\n        AllowedDomainForCnameValidations = new[]\n        {\n            new Incapsula.Inputs.AccountSslSettingsAllowedDomainForCnameValidationArgs\n            {\n                Name = \"example.com\",\n            },\n            new Incapsula.Inputs.AccountSslSettingsAllowedDomainForCnameValidationArgs\n            {\n                Name = \"example2.com\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewAccountSslSettings(ctx, \"ssl-52546413\", \u0026incapsula.AccountSslSettingsArgs{\n\t\t\tAccountId:                    pulumi.String(\"123\"),\n\t\t\tAllowSupportOldTlsVersions:   pulumi.Bool(false),\n\t\t\tEnableHstsForNewSites:        pulumi.Bool(true),\n\t\t\tUseWildCardSanInsteadOfFqdn:  pulumi.Bool(true),\n\t\t\tAddNakedDomainSanForWwwSites: pulumi.Bool(false),\n\t\t\tAllowCnameValidation:         pulumi.Bool(true),\n\t\t\tAllowedDomainForCnameValidations: incapsula.AccountSslSettingsAllowedDomainForCnameValidationArray{\n\t\t\t\t\u0026incapsula.AccountSslSettingsAllowedDomainForCnameValidationArgs{\n\t\t\t\t\tName: pulumi.String(\"example.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.AccountSslSettingsAllowedDomainForCnameValidationArgs{\n\t\t\t\t\tName: pulumi.String(\"example2.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.AccountSslSettings;\nimport com.pulumi.incapsula.AccountSslSettingsArgs;\nimport com.pulumi.incapsula.inputs.AccountSslSettingsAllowedDomainForCnameValidationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ssl_52546413 = new AccountSslSettings(\"ssl-52546413\", AccountSslSettingsArgs.builder()\n            .accountId(\"123\")\n            .allowSupportOldTlsVersions(false)\n            .enableHstsForNewSites(true)\n            .useWildCardSanInsteadOfFqdn(true)\n            .addNakedDomainSanForWwwSites(false)\n            .allowCnameValidation(true)\n            .allowedDomainForCnameValidations(            \n                AccountSslSettingsAllowedDomainForCnameValidationArgs.builder()\n                    .name(\"example.com\")\n                    .build(),\n                AccountSslSettingsAllowedDomainForCnameValidationArgs.builder()\n                    .name(\"example2.com\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ssl-52546413:\n    type: incapsula:AccountSslSettings\n    properties:\n      accountId: 123\n      allowSupportOldTlsVersions: false\n      enableHstsForNewSites: true\n      useWildCardSanInsteadOfFqdn: true\n      addNakedDomainSanForWwwSites: false\n      allowCnameValidation: true\n      allowedDomainForCnameValidations:\n        - name: example.com\n        - name: example2.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAccount SSL Settings Configuration can be imported using the account_id (id), e.g.:\n\n```sh\n$ pulumi import incapsula:index/accountSslSettings:AccountSslSettings example-terraform-account-ssl-settings-config 123\n```\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on - a reference to the account datasource may be used.\n"},"accountSslSettingsId":{"type":"string","description":"The domain id.\n"},"addNakedDomainSanForWwwSites":{"type":"boolean","description":"Newly created WWW sites will have also naked domain SAN on the Imperva-generated certificate. Default: true.\n"},"allowCnameValidation":{"type":"boolean","description":"Delegate to Imperva the ability to automatically prove ownership of SANs under the domains in the\u003cspan pulumi-lang-nodejs=\" allowedDomainsForCnameValidation \" pulumi-lang-dotnet=\" AllowedDomainsForCnameValidation \" pulumi-lang-go=\" allowedDomainsForCnameValidation \" pulumi-lang-python=\" allowed_domains_for_cname_validation \" pulumi-lang-yaml=\" allowedDomainsForCnameValidation \" pulumi-lang-java=\" allowedDomainsForCnameValidation \"\u003e allowed_domains_for_cname_validation \u003c/span\u003elist. Default: false.\n"},"allowSupportOldTlsVersions":{"type":"boolean","description":"When true, sites under the account or sub-accounts can allow support of old TLS versions traffic. This can be configured only on the parent account level. Default: false.\n"},"allowedDomainForCnameValidations":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FAccountSslSettingsAllowedDomainForCnameValidation:AccountSslSettingsAllowedDomainForCnameValidation"},"description":"Sub resources can be defined to set domains for automatic validation. allow-cname-validation must be set to true.\n\nThe following\u003cspan pulumi-lang-nodejs=\" allowedDomainForCnameValidation \" pulumi-lang-dotnet=\" AllowedDomainForCnameValidation \" pulumi-lang-go=\" allowedDomainForCnameValidation \" pulumi-lang-python=\" allowed_domain_for_cname_validation \" pulumi-lang-yaml=\" allowedDomainForCnameValidation \" pulumi-lang-java=\" allowedDomainForCnameValidation \"\u003e allowed_domain_for_cname_validation \u003c/span\u003earguments are supported:\n"},"enableHstsForNewSites":{"type":"boolean","description":"When true, enables HSTS support for newly created websites. Default: true.\n"},"useWildCardSanInsteadOfFqdn":{"type":"boolean","description":"Newly created sites will use wildcard SAN instead of FQDN SAN on the Imperva-generated certificate. Default: true.\n"}},"type":"object","required":["accountId","accountSslSettingsId","allowSupportOldTlsVersions"],"inputProperties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on - a reference to the account datasource may be used.\n"},"accountSslSettingsId":{"type":"string","description":"The domain id.\n"},"addNakedDomainSanForWwwSites":{"type":"boolean","description":"Newly created WWW sites will have also naked domain SAN on the Imperva-generated certificate. Default: true.\n"},"allowCnameValidation":{"type":"boolean","description":"Delegate to Imperva the ability to automatically prove ownership of SANs under the domains in the\u003cspan pulumi-lang-nodejs=\" allowedDomainsForCnameValidation \" pulumi-lang-dotnet=\" AllowedDomainsForCnameValidation \" pulumi-lang-go=\" allowedDomainsForCnameValidation \" pulumi-lang-python=\" allowed_domains_for_cname_validation \" pulumi-lang-yaml=\" allowedDomainsForCnameValidation \" pulumi-lang-java=\" allowedDomainsForCnameValidation \"\u003e allowed_domains_for_cname_validation \u003c/span\u003elist. Default: false.\n"},"allowSupportOldTlsVersions":{"type":"boolean","description":"When true, sites under the account or sub-accounts can allow support of old TLS versions traffic. This can be configured only on the parent account level. Default: false.\n"},"allowedDomainForCnameValidations":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FAccountSslSettingsAllowedDomainForCnameValidation:AccountSslSettingsAllowedDomainForCnameValidation"},"description":"Sub resources can be defined to set domains for automatic validation. allow-cname-validation must be set to true.\n\nThe following\u003cspan pulumi-lang-nodejs=\" allowedDomainForCnameValidation \" pulumi-lang-dotnet=\" AllowedDomainForCnameValidation \" pulumi-lang-go=\" allowedDomainForCnameValidation \" pulumi-lang-python=\" allowed_domain_for_cname_validation \" pulumi-lang-yaml=\" allowedDomainForCnameValidation \" pulumi-lang-java=\" allowedDomainForCnameValidation \"\u003e allowed_domain_for_cname_validation \u003c/span\u003earguments are supported:\n"},"enableHstsForNewSites":{"type":"boolean","description":"When true, enables HSTS support for newly created websites. Default: true.\n"},"useWildCardSanInsteadOfFqdn":{"type":"boolean","description":"Newly created sites will use wildcard SAN instead of FQDN SAN on the Imperva-generated certificate. Default: true.\n"}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountSslSettings resources.\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on - a reference to the account datasource may be used.\n"},"accountSslSettingsId":{"type":"string","description":"The domain id.\n"},"addNakedDomainSanForWwwSites":{"type":"boolean","description":"Newly created WWW sites will have also naked domain SAN on the Imperva-generated certificate. Default: true.\n"},"allowCnameValidation":{"type":"boolean","description":"Delegate to Imperva the ability to automatically prove ownership of SANs under the domains in the\u003cspan pulumi-lang-nodejs=\" allowedDomainsForCnameValidation \" pulumi-lang-dotnet=\" AllowedDomainsForCnameValidation \" pulumi-lang-go=\" allowedDomainsForCnameValidation \" pulumi-lang-python=\" allowed_domains_for_cname_validation \" pulumi-lang-yaml=\" allowedDomainsForCnameValidation \" pulumi-lang-java=\" allowedDomainsForCnameValidation \"\u003e allowed_domains_for_cname_validation \u003c/span\u003elist. Default: false.\n"},"allowSupportOldTlsVersions":{"type":"boolean","description":"When true, sites under the account or sub-accounts can allow support of old TLS versions traffic. This can be configured only on the parent account level. Default: false.\n"},"allowedDomainForCnameValidations":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FAccountSslSettingsAllowedDomainForCnameValidation:AccountSslSettingsAllowedDomainForCnameValidation"},"description":"Sub resources can be defined to set domains for automatic validation. allow-cname-validation must be set to true.\n\nThe following\u003cspan pulumi-lang-nodejs=\" allowedDomainForCnameValidation \" pulumi-lang-dotnet=\" AllowedDomainForCnameValidation \" pulumi-lang-go=\" allowedDomainForCnameValidation \" pulumi-lang-python=\" allowed_domain_for_cname_validation \" pulumi-lang-yaml=\" allowedDomainForCnameValidation \" pulumi-lang-java=\" allowedDomainForCnameValidation \"\u003e allowed_domain_for_cname_validation \u003c/span\u003earguments are supported:\n"},"enableHstsForNewSites":{"type":"boolean","description":"When true, enables HSTS support for newly created websites. Default: true.\n"},"useWildCardSanInsteadOfFqdn":{"type":"boolean","description":"Newly created sites will use wildcard SAN instead of FQDN SAN on the Imperva-generated certificate. Default: true.\n"}},"type":"object"}},"incapsula:index/accountUser:AccountUser":{"description":"Provides an account user resource.\nThis resource enables you to create users in an account and assign roles to them.\n\nThe user roles should be added as ids which can be taken from \u003cspan pulumi-lang-nodejs=\"`incapsula.AccountRole`\" pulumi-lang-dotnet=\"`incapsula.AccountRole`\" pulumi-lang-go=\"`AccountRole`\" pulumi-lang-python=\"`AccountRole`\" pulumi-lang-yaml=\"`incapsula.AccountRole`\" pulumi-lang-java=\"`incapsula.AccountRole`\"\u003e`incapsula.AccountRole`\u003c/span\u003e resources as reference.\nIn addition, the default account roles may be taken from the \u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountRoles`\" pulumi-lang-dotnet=\"`incapsula.getAccountRoles`\" pulumi-lang-go=\"`getAccountRoles`\" pulumi-lang-python=\"`get_account_roles`\" pulumi-lang-yaml=\"`incapsula.getAccountRoles`\" pulumi-lang-java=\"`incapsula.getAccountRoles`\"\u003e`incapsula.getAccountRoles`\u003c/span\u003e data source.\n\nThis resource also provides the option to assign users to subaccounts.\nThe usage is the same but the behavior differs slightly.\nSee the 'SubAccount User Assignment Usage' example below for more details.\n\n\n## Example Usage\n\n### Basic Usage\n\nSample user creation with no roles.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst user1 = new incapsula.AccountUser(\"user_1\", {\n    accountId: accountData.currentAccount,\n    email: \"example@terraform.com\",\n    firstName: \"First\",\n    lastName: \"Last\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nuser1 = incapsula.AccountUser(\"user_1\",\n    account_id=account_data[\"currentAccount\"],\n    email=\"example@terraform.com\",\n    first_name=\"First\",\n    last_name=\"Last\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user1 = new Incapsula.AccountUser(\"user_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Email = \"example@terraform.com\",\n        FirstName = \"First\",\n        LastName = \"Last\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewAccountUser(ctx, \"user_1\", \u0026incapsula.AccountUserArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tEmail:     pulumi.String(\"example@terraform.com\"),\n\t\t\tFirstName: pulumi.String(\"First\"),\n\t\t\tLastName:  pulumi.String(\"Last\"),\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.incapsula.AccountUser;\nimport com.pulumi.incapsula.AccountUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user1 = new AccountUser(\"user1\", AccountUserArgs.builder()\n            .accountId(accountData.currentAccount())\n            .email(\"example@terraform.com\")\n            .firstName(\"First\")\n            .lastName(\"Last\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user1:\n    type: incapsula:AccountUser\n    name: user_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      email: example@terraform.com\n      firstName: First\n      lastName: Last\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Role References Usage\n\nUsage with role reference.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst role1 = new incapsula.AccountRole(\"role_1\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 1\",\n});\nconst role2 = new incapsula.AccountRole(\"role_2\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 2\",\n});\nconst user2 = new incapsula.AccountUser(\"user_2\", {\n    accountId: accountData.currentAccount,\n    email: \"example@terraform.com\",\n    firstName: \"First\",\n    lastName: \"Last\",\n    roleIds: [\n        role1.accountRoleId,\n        role2.accountRoleId,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nrole1 = incapsula.AccountRole(\"role_1\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 1\")\nrole2 = incapsula.AccountRole(\"role_2\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 2\")\nuser2 = incapsula.AccountUser(\"user_2\",\n    account_id=account_data[\"currentAccount\"],\n    email=\"example@terraform.com\",\n    first_name=\"First\",\n    last_name=\"Last\",\n    role_ids=[\n        role1.account_role_id,\n        role2.account_role_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var role1 = new Incapsula.AccountRole(\"role_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 1\",\n    });\n\n    var role2 = new Incapsula.AccountRole(\"role_2\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 2\",\n    });\n\n    var user2 = new Incapsula.AccountUser(\"user_2\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Email = \"example@terraform.com\",\n        FirstName = \"First\",\n        LastName = \"Last\",\n        RoleIds = new[]\n        {\n            role1.AccountRoleId,\n            role2.AccountRoleId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trole1, err := incapsula.NewAccountRole(ctx, \"role_1\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:      pulumi.String(\"Sample Role 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole2, err := incapsula.NewAccountRole(ctx, \"role_2\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:      pulumi.String(\"Sample Role 2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountUser(ctx, \"user_2\", \u0026incapsula.AccountUserArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tEmail:     pulumi.String(\"example@terraform.com\"),\n\t\t\tFirstName: pulumi.String(\"First\"),\n\t\t\tLastName:  pulumi.String(\"Last\"),\n\t\t\tRoleIds: pulumi.Float64Array{\n\t\t\t\trole1.AccountRoleId,\n\t\t\t\trole2.AccountRoleId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\nimport com.pulumi.incapsula.AccountUser;\nimport com.pulumi.incapsula.AccountUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var role1 = new AccountRole(\"role1\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 1\")\n            .build());\n\n        var role2 = new AccountRole(\"role2\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 2\")\n            .build());\n\n        var user2 = new AccountUser(\"user2\", AccountUserArgs.builder()\n            .accountId(accountData.currentAccount())\n            .email(\"example@terraform.com\")\n            .firstName(\"First\")\n            .lastName(\"Last\")\n            .roleIds(            \n                role1.accountRoleId(),\n                role2.accountRoleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role1:\n    type: incapsula:AccountRole\n    name: role_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 1\n  role2:\n    type: incapsula:AccountRole\n    name: role_2\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 2\n  user2:\n    type: incapsula:AccountUser\n    name: user_2\n    properties:\n      accountId: ${accountData.currentAccount}\n      email: example@terraform.com\n      firstName: First\n      lastName: Last\n      roleIds:\n        - ${role1.accountRoleId}\n        - ${role2.accountRoleId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Role References \u0026 Data Sources Usage\n\nUsing \u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountRoles`\" pulumi-lang-dotnet=\"`incapsula.getAccountRoles`\" pulumi-lang-go=\"`getAccountRoles`\" pulumi-lang-python=\"`get_account_roles`\" pulumi-lang-yaml=\"`incapsula.getAccountRoles`\" pulumi-lang-java=\"`incapsula.getAccountRoles`\"\u003e`incapsula.getAccountRoles`\u003c/span\u003e data sources we can use admin_role_id/reader_role_id exported attributes.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst roles = incapsula.getAccountRoles({\n    accountId: accountData.currentAccount,\n});\nconst role1 = new incapsula.AccountRole(\"role_1\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 1\",\n});\nconst role2 = new incapsula.AccountRole(\"role_2\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 2\",\n});\nconst user3 = new incapsula.AccountUser(\"user_3\", {\n    accountId: accountData.currentAccount,\n    email: \"example@terraform.com\",\n    firstName: \"First\",\n    lastName: \"Last\",\n    roleIds: [\n        role1.accountRoleId,\n        role2.accountRoleId,\n        roles.then(roles =\u003e roles.readerRoleId),\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nroles = incapsula.get_account_roles(account_id=account_data[\"currentAccount\"])\nrole1 = incapsula.AccountRole(\"role_1\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 1\")\nrole2 = incapsula.AccountRole(\"role_2\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 2\")\nuser3 = incapsula.AccountUser(\"user_3\",\n    account_id=account_data[\"currentAccount\"],\n    email=\"example@terraform.com\",\n    first_name=\"First\",\n    last_name=\"Last\",\n    role_ids=[\n        role1.account_role_id,\n        role2.account_role_id,\n        roles.reader_role_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var roles = Incapsula.GetAccountRoles.Invoke(new()\n    {\n        AccountId = accountData.CurrentAccount,\n    });\n\n    var role1 = new Incapsula.AccountRole(\"role_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 1\",\n    });\n\n    var role2 = new Incapsula.AccountRole(\"role_2\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 2\",\n    });\n\n    var user3 = new Incapsula.AccountUser(\"user_3\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Email = \"example@terraform.com\",\n        FirstName = \"First\",\n        LastName = \"Last\",\n        RoleIds = new[]\n        {\n            role1.AccountRoleId,\n            role2.AccountRoleId,\n            roles.Apply(getAccountRolesResult =\u003e getAccountRolesResult.ReaderRoleId),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\troles, err := incapsula.GetAccountRoles(ctx, \u0026incapsula.GetAccountRolesArgs{\n\t\t\tAccountId: accountData.CurrentAccount,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := incapsula.NewAccountRole(ctx, \"role_1\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:      pulumi.String(\"Sample Role 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole2, err := incapsula.NewAccountRole(ctx, \"role_2\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:      pulumi.String(\"Sample Role 2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountUser(ctx, \"user_3\", \u0026incapsula.AccountUserArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tEmail:     pulumi.String(\"example@terraform.com\"),\n\t\t\tFirstName: pulumi.String(\"First\"),\n\t\t\tLastName:  pulumi.String(\"Last\"),\n\t\t\tRoleIds: pulumi.Float64Array{\n\t\t\t\trole1.AccountRoleId,\n\t\t\t\trole2.AccountRoleId,\n\t\t\t\tpulumi.Float64(roles.ReaderRoleId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountRolesArgs;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\nimport com.pulumi.incapsula.AccountUser;\nimport com.pulumi.incapsula.AccountUserArgs;\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 roles = IncapsulaFunctions.getAccountRoles(GetAccountRolesArgs.builder()\n            .accountId(accountData.currentAccount())\n            .build());\n\n        var role1 = new AccountRole(\"role1\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 1\")\n            .build());\n\n        var role2 = new AccountRole(\"role2\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 2\")\n            .build());\n\n        var user3 = new AccountUser(\"user3\", AccountUserArgs.builder()\n            .accountId(accountData.currentAccount())\n            .email(\"example@terraform.com\")\n            .firstName(\"First\")\n            .lastName(\"Last\")\n            .roleIds(            \n                role1.accountRoleId(),\n                role2.accountRoleId(),\n                roles.readerRoleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role1:\n    type: incapsula:AccountRole\n    name: role_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 1\n  role2:\n    type: incapsula:AccountRole\n    name: role_2\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 2\n  user3:\n    type: incapsula:AccountUser\n    name: user_3\n    properties:\n      accountId: ${accountData.currentAccount}\n      email: example@terraform.com\n      firstName: First\n      lastName: Last\n      roleIds:\n        - ${role1.accountRoleId}\n        - ${role2.accountRoleId}\n        - ${roles.readerRoleId}\nvariables:\n  roles:\n    fn::invoke:\n      function: incapsula:getAccountRoles\n      arguments:\n        accountId: ${accountData.currentAccount}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SubAccount User Assignment Usage - Manage by Account\n\nFor subaccounts we are not creating a new user but assigning an existing user from the parent account.\nIn terms of the TF resource, it means the email attribute must be taken from an existing user, by reference (preferred option) or hardcoded.\nThe first and last name are redundant and will be taken from the existing selected account.\nThe roles are not taken from the existing user and must be assigned independently.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst role1 = new incapsula.AccountRole(\"role_1\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 1\",\n});\nconst user1 = new incapsula.AccountUser(\"user_1\", {\n    accountId: accountData.currentAccount,\n    email: \"example@terraform.com\",\n    firstName: \"First\",\n    lastName: \"Last\",\n});\nconst user2 = new incapsula.AccountUser(\"user_2\", {\n    accountId: example_subaccount.id,\n    email: user1.email,\n    roleIds: [role1.accountRoleId],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nrole1 = incapsula.AccountRole(\"role_1\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 1\")\nuser1 = incapsula.AccountUser(\"user_1\",\n    account_id=account_data[\"currentAccount\"],\n    email=\"example@terraform.com\",\n    first_name=\"First\",\n    last_name=\"Last\")\nuser2 = incapsula.AccountUser(\"user_2\",\n    account_id=example_subaccount[\"id\"],\n    email=user1.email,\n    role_ids=[role1.account_role_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var role1 = new Incapsula.AccountRole(\"role_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 1\",\n    });\n\n    var user1 = new Incapsula.AccountUser(\"user_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Email = \"example@terraform.com\",\n        FirstName = \"First\",\n        LastName = \"Last\",\n    });\n\n    var user2 = new Incapsula.AccountUser(\"user_2\", new()\n    {\n        AccountId = example_subaccount.Id,\n        Email = user1.Email,\n        RoleIds = new[]\n        {\n            role1.AccountRoleId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trole1, err := incapsula.NewAccountRole(ctx, \"role_1\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:      pulumi.String(\"Sample Role 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := incapsula.NewAccountUser(ctx, \"user_1\", \u0026incapsula.AccountUserArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tEmail:     pulumi.String(\"example@terraform.com\"),\n\t\t\tFirstName: pulumi.String(\"First\"),\n\t\t\tLastName:  pulumi.String(\"Last\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountUser(ctx, \"user_2\", \u0026incapsula.AccountUserArgs{\n\t\t\tAccountId: pulumi.Any(example_subaccount.Id),\n\t\t\tEmail:     user1.Email,\n\t\t\tRoleIds: pulumi.Float64Array{\n\t\t\t\trole1.AccountRoleId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\nimport com.pulumi.incapsula.AccountUser;\nimport com.pulumi.incapsula.AccountUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var role1 = new AccountRole(\"role1\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 1\")\n            .build());\n\n        var user1 = new AccountUser(\"user1\", AccountUserArgs.builder()\n            .accountId(accountData.currentAccount())\n            .email(\"example@terraform.com\")\n            .firstName(\"First\")\n            .lastName(\"Last\")\n            .build());\n\n        var user2 = new AccountUser(\"user2\", AccountUserArgs.builder()\n            .accountId(example_subaccount.id())\n            .email(user1.email())\n            .roleIds(role1.accountRoleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role1:\n    type: incapsula:AccountRole\n    name: role_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 1\n  user1:\n    type: incapsula:AccountUser\n    name: user_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      email: example@terraform.com\n      firstName: First\n      lastName: Last\n  user2:\n    type: incapsula:AccountUser\n    name: user_2\n    properties:\n      accountId: ${[\"example-subaccount\"].id}\n      email: ${user1.email}\n      roleIds:\n        - ${role1.accountRoleId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SubAccount User Assignment Usage - Manage by SubAccount\n\nIf the API_KEY and API_ID are associated with a subaccount, we don't have the option to manage roles and need to use the \u003cspan pulumi-lang-nodejs=\"`incapsula.getAccountRoles`\" pulumi-lang-dotnet=\"`incapsula.getAccountRoles`\" pulumi-lang-go=\"`getAccountRoles`\" pulumi-lang-python=\"`get_account_roles`\" pulumi-lang-yaml=\"`incapsula.getAccountRoles`\" pulumi-lang-java=\"`incapsula.getAccountRoles`\"\u003e`incapsula.getAccountRoles`\u003c/span\u003e data source.\nUsing the \u003cspan pulumi-lang-nodejs=\"`map`\" pulumi-lang-dotnet=\"`Map`\" pulumi-lang-go=\"`map`\" pulumi-lang-python=\"`map`\" pulumi-lang-yaml=\"`map`\" pulumi-lang-java=\"`map`\"\u003e`map`\u003c/span\u003e attribute, this data source generates a mapping for all the account roles (Role Name to Id map).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst roles = incapsula.getAccountRoles({\n    accountId: accountData.currentAccount,\n});\nconst user2 = new incapsula.AccountUser(\"user_2\", {\n    accountId: accountData.currentAccount,\n    email: \"example@terraform.com\",\n    roleIds: [roles.then(roles =\u003e roles.map?.[\"Sample Role 1\"])],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nroles = incapsula.get_account_roles(account_id=account_data[\"currentAccount\"])\nuser2 = incapsula.AccountUser(\"user_2\",\n    account_id=account_data[\"currentAccount\"],\n    email=\"example@terraform.com\",\n    role_ids=[roles.map[\"Sample Role 1\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var roles = Incapsula.GetAccountRoles.Invoke(new()\n    {\n        AccountId = accountData.CurrentAccount,\n    });\n\n    var user2 = new Incapsula.AccountUser(\"user_2\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Email = \"example@terraform.com\",\n        RoleIds = new[]\n        {\n            roles.Apply(getAccountRolesResult =\u003e getAccountRolesResult.Map?.Sample_Role_1),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nroles, err := incapsula.GetAccountRoles(ctx, \u0026incapsula.GetAccountRolesArgs{\nAccountId: accountData.CurrentAccount,\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = incapsula.NewAccountUser(ctx, \"user_2\", \u0026incapsula.AccountUserArgs{\nAccountId: pulumi.Any(accountData.CurrentAccount),\nEmail: pulumi.String(\"example@terraform.com\"),\nRoleIds: pulumi.Float64Array{\npulumi.Float64(roles.Map.Sample Role 1),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountRolesArgs;\nimport com.pulumi.incapsula.AccountUser;\nimport com.pulumi.incapsula.AccountUserArgs;\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 roles = IncapsulaFunctions.getAccountRoles(GetAccountRolesArgs.builder()\n            .accountId(accountData.currentAccount())\n            .build());\n\n        var user2 = new AccountUser(\"user2\", AccountUserArgs.builder()\n            .accountId(accountData.currentAccount())\n            .email(\"example@terraform.com\")\n            .roleIds(roles.map().Sample Role 1())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user2:\n    type: incapsula:AccountUser\n    name: user_2\n    properties:\n      accountId: ${accountData.currentAccount}\n      email: example@terraform.com\n      roleIds:\n        - ${roles.map\"Sample Role 1\"[%!s(MISSING)]}\nvariables:\n  roles:\n    fn::invoke:\n      function: incapsula:getAccountRoles\n      arguments:\n        accountId: ${accountData.currentAccount}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAccount User can be imported using the `account_id` and `email` separated by `/`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/accountUser:AccountUser demo 1234/example@terraform.com\n```\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on. \u003cp/\u003e\nUsing reference to account datasource\n"},"accountUserId":{"type":"string","description":"Unique identifier in the API for the account user.\n"},"email":{"type":"string","description":"The user email. This attribute cannot be updated.\n"},"firstName":{"type":"string","description":"The user's first name. This attribute cannot be updated.\n"},"lastName":{"type":"string","description":"The user's last name. This attribute cannot be updated.\n"},"roleIds":{"type":"array","items":{"type":"number"},"description":"List of role ids to be associated with the user. \u003cp/\u003e\nDefault value is an empty list (user with no roles).\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of role names."}},"type":"object","required":["accountId","accountUserId","email","roleNames"],"inputProperties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on. \u003cp/\u003e\nUsing reference to account datasource\n"},"accountUserId":{"type":"string","description":"Unique identifier in the API for the account user.\n"},"email":{"type":"string","description":"The user email. This attribute cannot be updated.\n"},"firstName":{"type":"string","description":"The user's first name. This attribute cannot be updated.\n"},"lastName":{"type":"string","description":"The user's last name. This attribute cannot be updated.\n"},"roleIds":{"type":"array","items":{"type":"number"},"description":"List of role ids to be associated with the user. \u003cp/\u003e\nDefault value is an empty list (user with no roles).\n"}},"requiredInputs":["accountId","email"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountUser resources.\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on. \u003cp/\u003e\nUsing reference to account datasource\n"},"accountUserId":{"type":"string","description":"Unique identifier in the API for the account user.\n"},"email":{"type":"string","description":"The user email. This attribute cannot be updated.\n"},"firstName":{"type":"string","description":"The user's first name. This attribute cannot be updated.\n"},"lastName":{"type":"string","description":"The user's last name. This attribute cannot be updated.\n"},"roleIds":{"type":"array","items":{"type":"number"},"description":"List of role ids to be associated with the user. \u003cp/\u003e\nDefault value is an empty list (user with no roles).\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of role names."}},"type":"object"}},"incapsula:index/apiClient:ApiClient":{"description":"Provides an API client resource that manages API credentials (API ID and API key) for a user.\n\nYou can also regenerate the API key secret by updating the expiration date, which causes a new secret to be issued.\n\nNote: Before creating API clients through this resource, an account administrator must explicitly enable API Client Creation Consent in the account settings in the Cloud Security Console.\n\n## Example Usage\n\nAPI client creation for the current user.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst apiClient1 = new incapsula.ApiClient(\"api_client_1\", {\n    name: \"First\",\n    description: \"Last\",\n    expirationDate: \"2026-09-12T10:33:29Z\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\napi_client1 = incapsula.ApiClient(\"api_client_1\",\n    name=\"First\",\n    description=\"Last\",\n    expiration_date=\"2026-09-12T10:33:29Z\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var apiClient1 = new Incapsula.ApiClient(\"api_client_1\", new()\n    {\n        Name = \"First\",\n        Description = \"Last\",\n        ExpirationDate = \"2026-09-12T10:33:29Z\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewApiClient(ctx, \"api_client_1\", \u0026incapsula.ApiClientArgs{\n\t\t\tName:           pulumi.String(\"First\"),\n\t\t\tDescription:    pulumi.String(\"Last\"),\n\t\t\tExpirationDate: pulumi.String(\"2026-09-12T10:33:29Z\"),\n\t\t\tEnabled:        pulumi.Bool(true),\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.incapsula.ApiClient;\nimport com.pulumi.incapsula.ApiClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var apiClient1 = new ApiClient(\"apiClient1\", ApiClientArgs.builder()\n            .name(\"First\")\n            .description(\"Last\")\n            .expirationDate(\"2026-09-12T10:33:29Z\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  apiClient1:\n    type: incapsula:ApiClient\n    name: api_client_1\n    properties:\n      name: First\n      description: Last\n      expirationDate: 2026-09-12T10:33:29Z\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAPI client creation for another user.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst apiClient1 = new incapsula.ApiClient(\"api_client_1\", {\n    userEmail: \"example@terraform.com\",\n    name: \"First\",\n    description: \"Last\",\n    expirationDate: \"2026-09-12T10:33:29Z\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\napi_client1 = incapsula.ApiClient(\"api_client_1\",\n    user_email=\"example@terraform.com\",\n    name=\"First\",\n    description=\"Last\",\n    expiration_date=\"2026-09-12T10:33:29Z\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var apiClient1 = new Incapsula.ApiClient(\"api_client_1\", new()\n    {\n        UserEmail = \"example@terraform.com\",\n        Name = \"First\",\n        Description = \"Last\",\n        ExpirationDate = \"2026-09-12T10:33:29Z\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewApiClient(ctx, \"api_client_1\", \u0026incapsula.ApiClientArgs{\n\t\t\tUserEmail:      pulumi.String(\"example@terraform.com\"),\n\t\t\tName:           pulumi.String(\"First\"),\n\t\t\tDescription:    pulumi.String(\"Last\"),\n\t\t\tExpirationDate: pulumi.String(\"2026-09-12T10:33:29Z\"),\n\t\t\tEnabled:        pulumi.Bool(true),\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.incapsula.ApiClient;\nimport com.pulumi.incapsula.ApiClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var apiClient1 = new ApiClient(\"apiClient1\", ApiClientArgs.builder()\n            .userEmail(\"example@terraform.com\")\n            .name(\"First\")\n            .description(\"Last\")\n            .expirationDate(\"2026-09-12T10:33:29Z\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  apiClient1:\n    type: incapsula:ApiClient\n    name: api_client_1\n    properties:\n      userEmail: example@terraform.com\n      name: First\n      description: Last\n      expirationDate: 2026-09-12T10:33:29Z\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAPI-client creation for a user on another account.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst apiClient1 = new incapsula.ApiClient(\"api_client_1\", {\n    accountId: 1234,\n    userEmail: \"example@terraform.com\",\n    name: \"First\",\n    description: \"Last\",\n    expirationDate: \"2026-09-12T10:33:29Z\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\napi_client1 = incapsula.ApiClient(\"api_client_1\",\n    account_id=1234,\n    user_email=\"example@terraform.com\",\n    name=\"First\",\n    description=\"Last\",\n    expiration_date=\"2026-09-12T10:33:29Z\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var apiClient1 = new Incapsula.ApiClient(\"api_client_1\", new()\n    {\n        AccountId = 1234,\n        UserEmail = \"example@terraform.com\",\n        Name = \"First\",\n        Description = \"Last\",\n        ExpirationDate = \"2026-09-12T10:33:29Z\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewApiClient(ctx, \"api_client_1\", \u0026incapsula.ApiClientArgs{\n\t\t\tAccountId:      pulumi.Float64(1234),\n\t\t\tUserEmail:      pulumi.String(\"example@terraform.com\"),\n\t\t\tName:           pulumi.String(\"First\"),\n\t\t\tDescription:    pulumi.String(\"Last\"),\n\t\t\tExpirationDate: pulumi.String(\"2026-09-12T10:33:29Z\"),\n\t\t\tEnabled:        pulumi.Bool(true),\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.incapsula.ApiClient;\nimport com.pulumi.incapsula.ApiClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var apiClient1 = new ApiClient(\"apiClient1\", ApiClientArgs.builder()\n            .accountId(1234.0)\n            .userEmail(\"example@terraform.com\")\n            .name(\"First\")\n            .description(\"Last\")\n            .expirationDate(\"2026-09-12T10:33:29Z\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  apiClient1:\n    type: incapsula:ApiClient\n    name: api_client_1\n    properties:\n      accountId: 1234\n      userEmail: example@terraform.com\n      name: First\n      description: Last\n      expirationDate: 2026-09-12T10:33:29Z\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn API client can be imported using its API ID, which is the value exported as the `id` attribute for this resource.\nFor example:\n\n```sh\n$ pulumi import incapsula:index/apiClient:ApiClient demo 2222\n```\nAlternatively, import it using the account ID and the API ID (the value exported as the `id` attribute), separated by a slash (/):\n\n```sh\n$ pulumi import incapsula:index/apiClient:ApiClient demo 1234/2222\n```\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on.\n"},"apiClientId":{"type":"string"},"apiKey":{"type":"string","description":"Generated API key for client authentication.","secret":true},"description":{"type":"string","description":"The description of the API client.\n"},"enabled":{"type":"boolean","description":"Whether the API client is enabled. The default is false.\n"},"expirationDate":{"type":"string","description":"Expiration date of the API key, in YYYY-MM-DDTHH:mm:ssZ format. Must be a future date. Changing this value causes regeneration of the API key secret.\n"},"name":{"type":"string","description":"The name of the API client.\n"},"userEmail":{"type":"string","description":"Email address of the user for whom the API client will be created.\n"}},"type":"object","required":["accountId","apiClientId","apiKey","description","enabled","expirationDate","name","userEmail"],"inputProperties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on.\n"},"apiClientId":{"type":"string"},"description":{"type":"string","description":"The description of the API client.\n"},"enabled":{"type":"boolean","description":"Whether the API client is enabled. The default is false.\n"},"expirationDate":{"type":"string","description":"Expiration date of the API key, in YYYY-MM-DDTHH:mm:ssZ format. Must be a future date. Changing this value causes regeneration of the API key secret.\n"},"name":{"type":"string","description":"The name of the API client.\n"},"userEmail":{"type":"string","description":"Email address of the user for whom the API client will be created.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ApiClient resources.\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on.\n"},"apiClientId":{"type":"string"},"apiKey":{"type":"string","description":"Generated API key for client authentication.","secret":true},"description":{"type":"string","description":"The description of the API client.\n"},"enabled":{"type":"boolean","description":"Whether the API client is enabled. The default is false.\n"},"expirationDate":{"type":"string","description":"Expiration date of the API key, in YYYY-MM-DDTHH:mm:ssZ format. Must be a future date. Changing this value causes regeneration of the API key secret.\n"},"name":{"type":"string","description":"The name of the API client.\n"},"userEmail":{"type":"string","description":"Email address of the user for whom the API client will be created.\n"}},"type":"object"}},"incapsula:index/apiSecurityApiConfig:ApiSecurityApiConfig":{"description":"Provides an Incapsula API Security API Config resource.\n\nAPI Security API Config include violation actions set for specific API.\n\n## Import\n\nAPI Security API Configuration can be imported using the site_id and then api_id (id) separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/apiSecurityApiConfig:ApiSecurityApiConfig example-terraform-api-security-api-config 1234/100200\n```\n","properties":{"apiSecurityApiConfigId":{"type":"string","description":"Unique identifier in the API for the API Security Site Configuration.\n"},"apiSpecification":{"type":"string","description":"The API specification document content. The supported format is OAS2 or OAS3.\n"},"basePath":{"type":"string","description":"Override the spec basePath / server base path with this value.\n"},"description":{"type":"string","description":"A description that will help recognize the API in the dashboard.\n"},"hostName":{"type":"string","description":"The API's host name\n"},"invalidMethodViolationAction":{"type":"string","description":"The action taken when an invalid method Violation occurs. Possible\nvalues:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nAssigning `DEFAULT` will inherit the action from parent object. Possible values: `ALERT_ONLY`, `BLOCK_REQUEST`\n, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`. Assigning `DEFAULT` will inherit the action from parent object.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"invalidUrlViolationAction":{"type":"string","description":"The action taken when an invalid URL Violation occurs. Possible values:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"lastModified":{"type":"number","description":"(Optional) The last modified timestamp.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["apiSecurityApiConfigId","apiSpecification","basePath","hostName","invalidParamNameViolationAction","lastModified","siteId"],"inputProperties":{"apiSecurityApiConfigId":{"type":"string","description":"Unique identifier in the API for the API Security Site Configuration.\n"},"apiSpecification":{"type":"string","description":"The API specification document content. The supported format is OAS2 or OAS3.\n"},"basePath":{"type":"string","description":"Override the spec basePath / server base path with this value.\n"},"description":{"type":"string","description":"A description that will help recognize the API in the dashboard.\n"},"invalidMethodViolationAction":{"type":"string","description":"The action taken when an invalid method Violation occurs. Possible\nvalues:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nAssigning `DEFAULT` will inherit the action from parent object. Possible values: `ALERT_ONLY`, `BLOCK_REQUEST`\n, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`. Assigning `DEFAULT` will inherit the action from parent object.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"invalidUrlViolationAction":{"type":"string","description":"The action taken when an invalid URL Violation occurs. Possible values:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["apiSpecification","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiSecurityApiConfig resources.\n","properties":{"apiSecurityApiConfigId":{"type":"string","description":"Unique identifier in the API for the API Security Site Configuration.\n"},"apiSpecification":{"type":"string","description":"The API specification document content. The supported format is OAS2 or OAS3.\n"},"basePath":{"type":"string","description":"Override the spec basePath / server base path with this value.\n"},"description":{"type":"string","description":"A description that will help recognize the API in the dashboard.\n"},"hostName":{"type":"string","description":"The API's host name\n"},"invalidMethodViolationAction":{"type":"string","description":"The action taken when an invalid method Violation occurs. Possible\nvalues:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nAssigning `DEFAULT` will inherit the action from parent object. Possible values: `ALERT_ONLY`, `BLOCK_REQUEST`\n, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`. Assigning `DEFAULT` will inherit the action from parent object.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"invalidUrlViolationAction":{"type":"string","description":"The action taken when an invalid URL Violation occurs. Possible values:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"lastModified":{"type":"number","description":"(Optional) The last modified timestamp.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues:\n`ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`,`DEFAULT`. Assigning `DEFAULT` will inherit the\naction from parent object.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/apiSecurityEndpointConfig:ApiSecurityEndpointConfig":{"description":"Provides an Incapsula API Security Endpoint Config resource.\n\nAPI Security Endpoint Config include violation actions set for specific endpoints.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst demo_api_security_endpoint_config = new incapsula.ApiSecurityEndpointConfig(\"demo-api-security-endpoint-config\", {\n    apiId: demoApiSecurityApiConfig.id,\n    path: \"/endpoint/unit/{id}\",\n    method: \"GET\",\n    invalidParamNameViolationAction: \"BLOCK_REQUEST\",\n    invalidParamValueViolationAction: \"ALERT_ONLY\",\n    missingParamViolationAction: \"BLOCK_IP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\ndemo_api_security_endpoint_config = incapsula.ApiSecurityEndpointConfig(\"demo-api-security-endpoint-config\",\n    api_id=demo_api_security_api_config[\"id\"],\n    path=\"/endpoint/unit/{id}\",\n    method=\"GET\",\n    invalid_param_name_violation_action=\"BLOCK_REQUEST\",\n    invalid_param_value_violation_action=\"ALERT_ONLY\",\n    missing_param_violation_action=\"BLOCK_IP\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var demo_api_security_endpoint_config = new Incapsula.ApiSecurityEndpointConfig(\"demo-api-security-endpoint-config\", new()\n    {\n        ApiId = demoApiSecurityApiConfig.Id,\n        Path = \"/endpoint/unit/{id}\",\n        Method = \"GET\",\n        InvalidParamNameViolationAction = \"BLOCK_REQUEST\",\n        InvalidParamValueViolationAction = \"ALERT_ONLY\",\n        MissingParamViolationAction = \"BLOCK_IP\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewApiSecurityEndpointConfig(ctx, \"demo-api-security-endpoint-config\", \u0026incapsula.ApiSecurityEndpointConfigArgs{\n\t\t\tApiId:                            pulumi.Any(demoApiSecurityApiConfig.Id),\n\t\t\tPath:                             pulumi.String(\"/endpoint/unit/{id}\"),\n\t\t\tMethod:                           pulumi.String(\"GET\"),\n\t\t\tInvalidParamNameViolationAction:  pulumi.String(\"BLOCK_REQUEST\"),\n\t\t\tInvalidParamValueViolationAction: pulumi.String(\"ALERT_ONLY\"),\n\t\t\tMissingParamViolationAction:      pulumi.String(\"BLOCK_IP\"),\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.incapsula.ApiSecurityEndpointConfig;\nimport com.pulumi.incapsula.ApiSecurityEndpointConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var demo_api_security_endpoint_config = new ApiSecurityEndpointConfig(\"demo-api-security-endpoint-config\", ApiSecurityEndpointConfigArgs.builder()\n            .apiId(demoApiSecurityApiConfig.id())\n            .path(\"/endpoint/unit/{id}\")\n            .method(\"GET\")\n            .invalidParamNameViolationAction(\"BLOCK_REQUEST\")\n            .invalidParamValueViolationAction(\"ALERT_ONLY\")\n            .missingParamViolationAction(\"BLOCK_IP\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  demo-api-security-endpoint-config:\n    type: incapsula:ApiSecurityEndpointConfig\n    properties:\n      apiId: ${demoApiSecurityApiConfig.id}\n      path: /endpoint/unit/{id}\n      method: GET\n      invalidParamNameViolationAction: BLOCK_REQUEST\n      invalidParamValueViolationAction: ALERT_ONLY\n      missingParamViolationAction: BLOCK_IP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAPI Security Endpoint Configuration can be imported using api_id and then endpoint_id (id) separated by /, e.g.\n\n```sh\n$ pulumi import incapsula:index/apiSecurityEndpointConfig:ApiSecurityEndpointConfig example-terraform-api-security-endpoint-config 100200/1122\n```\n","properties":{"apiId":{"type":"number","description":"Numeric identifier of the API Security API Configuration to operate on.\n"},"apiSecurityEndpointConfigId":{"type":"string","description":"Unique identifier of the Endpoint for the API Security Endpoint Configuration.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT`\nwill inherit the action from parent object.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT`\nwill inherit the action from parent object.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"method":{"type":"string","description":"HTTP method that describes a specific Endpoint.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit\nthe action from parent object.\n"},"path":{"type":"string","description":"An URL path of specific Endpoint.\n"}},"type":"object","required":["apiId","apiSecurityEndpointConfigId","invalidParamNameViolationAction","method","path"],"inputProperties":{"apiId":{"type":"number","description":"Numeric identifier of the API Security API Configuration to operate on.\n"},"apiSecurityEndpointConfigId":{"type":"string","description":"Unique identifier of the Endpoint for the API Security Endpoint Configuration.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT`\nwill inherit the action from parent object.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT`\nwill inherit the action from parent object.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"method":{"type":"string","description":"HTTP method that describes a specific Endpoint.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit\nthe action from parent object.\n"},"path":{"type":"string","description":"An URL path of specific Endpoint.\n"}},"requiredInputs":["apiId","method","path"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiSecurityEndpointConfig resources.\n","properties":{"apiId":{"type":"number","description":"Numeric identifier of the API Security API Configuration to operate on.\n"},"apiSecurityEndpointConfigId":{"type":"string","description":"Unique identifier of the Endpoint for the API Security Endpoint Configuration.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT`\nwill inherit the action from parent object.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT`\nwill inherit the action from parent object.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"method":{"type":"string","description":"HTTP method that describes a specific Endpoint.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`, `DEFAULT`. Assigning `DEFAULT` will inherit\nthe action from parent object.\n"},"path":{"type":"string","description":"An URL path of specific Endpoint.\n"}},"type":"object"}},"incapsula:index/apiSecuritySiteConfig:ApiSecuritySiteConfig":{"description":"Provides an Incapsula API Security Site Config resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst demo_terraform_api_security_site_config = new incapsula.ApiSecuritySiteConfig(\"demo-terraform-api-security-site-config\", {\n    siteId: example_site.id,\n    isAutomaticDiscoveryApiIntegrationEnabled: false,\n    isApiOnlySite: true,\n    nonApiRequestViolationAction: \"ALERT_ONLY\",\n    invalidUrlViolationAction: \"BLOCK_IP\",\n    invalidMethodViolationAction: \"BLOCK_REQUEST\",\n    missingParamViolationAction: \"BLOCK_IP\",\n    invalidParamValueViolationAction: \"IGNORE\",\n    invalidParamNameViolationAction: \"ALERT_ONLY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\ndemo_terraform_api_security_site_config = incapsula.ApiSecuritySiteConfig(\"demo-terraform-api-security-site-config\",\n    site_id=example_site[\"id\"],\n    is_automatic_discovery_api_integration_enabled=False,\n    is_api_only_site=True,\n    non_api_request_violation_action=\"ALERT_ONLY\",\n    invalid_url_violation_action=\"BLOCK_IP\",\n    invalid_method_violation_action=\"BLOCK_REQUEST\",\n    missing_param_violation_action=\"BLOCK_IP\",\n    invalid_param_value_violation_action=\"IGNORE\",\n    invalid_param_name_violation_action=\"ALERT_ONLY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var demo_terraform_api_security_site_config = new Incapsula.ApiSecuritySiteConfig(\"demo-terraform-api-security-site-config\", new()\n    {\n        SiteId = example_site.Id,\n        IsAutomaticDiscoveryApiIntegrationEnabled = false,\n        IsApiOnlySite = true,\n        NonApiRequestViolationAction = \"ALERT_ONLY\",\n        InvalidUrlViolationAction = \"BLOCK_IP\",\n        InvalidMethodViolationAction = \"BLOCK_REQUEST\",\n        MissingParamViolationAction = \"BLOCK_IP\",\n        InvalidParamValueViolationAction = \"IGNORE\",\n        InvalidParamNameViolationAction = \"ALERT_ONLY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewApiSecuritySiteConfig(ctx, \"demo-terraform-api-security-site-config\", \u0026incapsula.ApiSecuritySiteConfigArgs{\n\t\t\tSiteId: pulumi.Any(example_site.Id),\n\t\t\tIsAutomaticDiscoveryApiIntegrationEnabled: pulumi.Bool(false),\n\t\t\tIsApiOnlySite:                    pulumi.Bool(true),\n\t\t\tNonApiRequestViolationAction:     pulumi.String(\"ALERT_ONLY\"),\n\t\t\tInvalidUrlViolationAction:        pulumi.String(\"BLOCK_IP\"),\n\t\t\tInvalidMethodViolationAction:     pulumi.String(\"BLOCK_REQUEST\"),\n\t\t\tMissingParamViolationAction:      pulumi.String(\"BLOCK_IP\"),\n\t\t\tInvalidParamValueViolationAction: pulumi.String(\"IGNORE\"),\n\t\t\tInvalidParamNameViolationAction:  pulumi.String(\"ALERT_ONLY\"),\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.incapsula.ApiSecuritySiteConfig;\nimport com.pulumi.incapsula.ApiSecuritySiteConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var demo_terraform_api_security_site_config = new ApiSecuritySiteConfig(\"demo-terraform-api-security-site-config\", ApiSecuritySiteConfigArgs.builder()\n            .siteId(example_site.id())\n            .isAutomaticDiscoveryApiIntegrationEnabled(false)\n            .isApiOnlySite(true)\n            .nonApiRequestViolationAction(\"ALERT_ONLY\")\n            .invalidUrlViolationAction(\"BLOCK_IP\")\n            .invalidMethodViolationAction(\"BLOCK_REQUEST\")\n            .missingParamViolationAction(\"BLOCK_IP\")\n            .invalidParamValueViolationAction(\"IGNORE\")\n            .invalidParamNameViolationAction(\"ALERT_ONLY\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  demo-terraform-api-security-site-config:\n    type: incapsula:ApiSecuritySiteConfig\n    properties:\n      siteId: ${[\"example-site\"].id}\n      isAutomaticDiscoveryApiIntegrationEnabled: false\n      isApiOnlySite: true\n      nonApiRequestViolationAction: ALERT_ONLY\n      invalidUrlViolationAction: BLOCK_IP\n      invalidMethodViolationAction: BLOCK_REQUEST\n      missingParamViolationAction: BLOCK_IP\n      invalidParamValueViolationAction: IGNORE\n      invalidParamNameViolationAction: ALERT_ONLY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAPI Security Site Configuration can be imported using the site_id\n\n```sh\n$ pulumi import incapsula:index/apiSecuritySiteConfig:ApiSecuritySiteConfig demo_site_config 1234\n```\n","properties":{"apiSecuritySiteConfigId":{"type":"string","description":"Unique identifier in the API for the API Security Site Configuration.\n"},"invalidMethodViolationAction":{"type":"string","description":"The action taken when an invalid method Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"invalidUrlViolationAction":{"type":"string","description":"The action taken when an invalid URL Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"isApiOnlySite":{"type":"boolean","description":"Apply positive security model for all traffic on the site. Applying the positive\nsecurity model for all traffic on the site may lead to undesired request blocking.\n"},"isAutomaticDiscoveryApiIntegrationEnabled":{"type":"boolean","description":"Parameter shows whether automatic API discovery API\nIntegration is enabled. This field should not be set if `API Security Add-On` subscription is not available.\n"},"lastModified":{"type":"number","description":"The last modified timestamp.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"nonApiRequestViolationAction":{"type":"string","description":"Action to be taken for traffic on the site that does not target the\nuploaded APIs. Possible values: ALERT_ONLY, BLOCK_REQUEST, BLOCK_USER, BLOCK_IP, IGNORE. This parameter is required\nwhen \u003cspan pulumi-lang-nodejs=\"`isApiOnlySite`\" pulumi-lang-dotnet=\"`IsApiOnlySite`\" pulumi-lang-go=\"`isApiOnlySite`\" pulumi-lang-python=\"`is_api_only_site`\" pulumi-lang-yaml=\"`isApiOnlySite`\" pulumi-lang-java=\"`isApiOnlySite`\"\u003e`is_api_only_site`\u003c/span\u003e is set true. Possible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`\n, `BLOCK_IP`, `IGNORE`.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["apiSecuritySiteConfigId","invalidParamNameViolationAction","lastModified","siteId"],"inputProperties":{"apiSecuritySiteConfigId":{"type":"string","description":"Unique identifier in the API for the API Security Site Configuration.\n"},"invalidMethodViolationAction":{"type":"string","description":"The action taken when an invalid method Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"invalidUrlViolationAction":{"type":"string","description":"The action taken when an invalid URL Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"isApiOnlySite":{"type":"boolean","description":"Apply positive security model for all traffic on the site. Applying the positive\nsecurity model for all traffic on the site may lead to undesired request blocking.\n"},"isAutomaticDiscoveryApiIntegrationEnabled":{"type":"boolean","description":"Parameter shows whether automatic API discovery API\nIntegration is enabled. This field should not be set if `API Security Add-On` subscription is not available.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"nonApiRequestViolationAction":{"type":"string","description":"Action to be taken for traffic on the site that does not target the\nuploaded APIs. Possible values: ALERT_ONLY, BLOCK_REQUEST, BLOCK_USER, BLOCK_IP, IGNORE. This parameter is required\nwhen \u003cspan pulumi-lang-nodejs=\"`isApiOnlySite`\" pulumi-lang-dotnet=\"`IsApiOnlySite`\" pulumi-lang-go=\"`isApiOnlySite`\" pulumi-lang-python=\"`is_api_only_site`\" pulumi-lang-yaml=\"`isApiOnlySite`\" pulumi-lang-java=\"`isApiOnlySite`\"\u003e`is_api_only_site`\u003c/span\u003e is set true. Possible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`\n, `BLOCK_IP`, `IGNORE`.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiSecuritySiteConfig resources.\n","properties":{"apiSecuritySiteConfigId":{"type":"string","description":"Unique identifier in the API for the API Security Site Configuration.\n"},"invalidMethodViolationAction":{"type":"string","description":"The action taken when an invalid method Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"invalidParamNameViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`invalidParamNameViolationAction`\" pulumi-lang-dotnet=\"`InvalidParamNameViolationAction`\" pulumi-lang-go=\"`invalidParamNameViolationAction`\" pulumi-lang-python=\"`invalid_param_name_violation_action`\" pulumi-lang-yaml=\"`invalidParamNameViolationAction`\" pulumi-lang-java=\"`invalidParamNameViolationAction`\"\u003e`invalid_param_name_violation_action`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"invalidParamValueViolationAction":{"type":"string","description":"The action taken when an invalid parameter value Violation occurs.\nPossible values: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"invalidUrlViolationAction":{"type":"string","description":"The action taken when an invalid URL Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"isApiOnlySite":{"type":"boolean","description":"Apply positive security model for all traffic on the site. Applying the positive\nsecurity model for all traffic on the site may lead to undesired request blocking.\n"},"isAutomaticDiscoveryApiIntegrationEnabled":{"type":"boolean","description":"Parameter shows whether automatic API discovery API\nIntegration is enabled. This field should not be set if `API Security Add-On` subscription is not available.\n"},"lastModified":{"type":"number","description":"The last modified timestamp.\n"},"missingParamViolationAction":{"type":"string","description":"The action taken when a missing parameter Violation occurs. Possible\nvalues: `ALERT_ONLY` (default value), `BLOCK_REQUEST`, `BLOCK_USER`, `BLOCK_IP`, `IGNORE`.\n"},"nonApiRequestViolationAction":{"type":"string","description":"Action to be taken for traffic on the site that does not target the\nuploaded APIs. Possible values: ALERT_ONLY, BLOCK_REQUEST, BLOCK_USER, BLOCK_IP, IGNORE. This parameter is required\nwhen \u003cspan pulumi-lang-nodejs=\"`isApiOnlySite`\" pulumi-lang-dotnet=\"`IsApiOnlySite`\" pulumi-lang-go=\"`isApiOnlySite`\" pulumi-lang-python=\"`is_api_only_site`\" pulumi-lang-yaml=\"`isApiOnlySite`\" pulumi-lang-java=\"`isApiOnlySite`\"\u003e`is_api_only_site`\u003c/span\u003e is set true. Possible values: `ALERT_ONLY`, `BLOCK_REQUEST`, `BLOCK_USER`\n, `BLOCK_IP`, `IGNORE`.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/applicationDelivery:ApplicationDelivery":{"description":"Configure delivery options to help you optimize your content delivery and improve performance by providing faster loading of your web pages.\n\n## Example Usage\n\n## Import\n\nApplication Delivery configuration can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/applicationDelivery:ApplicationDelivery example_application_delivery 1234\n```\n","properties":{"aggressiveCompression":{"type":"boolean","description":"A more aggressive method of compression is applied with the goal of minimizing the image file size, possibly impacting the final quality of the image displayed. Applies to JPEG compression only. Default: false.\n"},"applicationDeliveryId":{"type":"string","description":"Unique identifier in the API for the application delivery configuration. The id is identical to Site id.\n"},"compressJpeg":{"type":"boolean","description":"Compress JPEG images. Compression reduces download time by reducing the file size. Default: true\n"},"compressPng":{"type":"boolean","description":"Compress PNG images. Compression reduces download time by reducing the file size. PNG compression removes only image meta-data with no impact on quality. Default: true.\n"},"compressionType":{"type":"string","description":"BROTLI (recommended for more efficient compression). Default: GZIP\n"},"defaultErrorPageTemplate":{"type":"string","description":"The default error page HTML template. $TITLE$ and $BODY$ placeholders are required.\n"},"enableHttp2":{"type":"boolean","description":"Allows supporting browsers to take advantage of the performance enhancements provided by HTTP/2 for your website. Non-supporting browsers can connect via HTTP/1.0 or HTTP/1.1.\n"},"errorAbpIdentificationFailed":{"type":"string","description":"The HTML template for 'ABP identification failed' error. Only HTML elements located inside the body tag are supported. Set empty value to return to default.\n"},"errorAccessDenied":{"type":"string","description":"The HTML template for 'Access Denied' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorConnectionFailed":{"type":"string","description":"The HTML template for 'Unable to connect to origin server' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorConnectionTimeout":{"type":"string","description":"The HTML template for 'Connection Timeout' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorDenyAndCaptcha":{"type":"string","description":"The HTML template for 'Initial connection denied - CAPTCHA required' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorNoSslConfig":{"type":"string","description":"The HTML template for 'Site not configured for SSL' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorParseReqError":{"type":"string","description":"The HTML template for 'Unable to parse request' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorParseRespError":{"type":"string","description":"The HTML template for 'Unable to parse response' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorSslFailed":{"type":"string","description":"The HTML template for 'Unable to establish SSL connection' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"fileCompression":{"type":"boolean","description":"When this option is enabled, files such as JavaScript, CSS and HTML are dynamically compressed using the selected format as they are transferred. They are automatically unzipped within the browser. If Brotli is not supported by the browser, files are automatically sent in Gzip. Default: true\n"},"http2ToOrigin":{"type":"boolean","description":"Enables HTTP/2 for the connection between Imperva and your origin server. (HTTP/2 must also be supported by the origin server.)\n"},"minifyCss":{"type":"boolean","description":"Content minification can applied only to cached Javascript, CSS and HTML content. Default: true.\n"},"minifyJs":{"type":"boolean","description":"Minify JavaScript. Minification removes characters that are not necessary for rendering the page, such as whitespace and comments. This makes the files smaller and therefore reduces their access time. Minification has no impact on the functionality of the Javascript, CSS, and HTML files. Default: true\n"},"minifyStaticHtml":{"type":"boolean","description":"Minify static HTML. Default: true.\n"},"originConnectionReuse":{"type":"boolean","description":"TCP connections that are opened for a client request remain open for a short time to handle additional requests that may arrive. Default: true\n"},"portTo":{"type":"number","description":"The port number.\n"},"progressiveImageRendering":{"type":"boolean","description":"The image is rendered with progressively finer resolution, potentially causing a pixelated effect until the final image is rendered with no loss of quality. This option reduces page load times and allows images to gradually load after the page is rendered. Default: false.\n"},"redirectHttpToHttps":{"type":"boolean","description":"Sites that require an HTTPS connection force all HTTP requests to be redirected to HTTPS. This option is displayed only for an SSL site. Default: false\n"},"redirectNakedToFull":{"type":"boolean","description":"Redirect all visitors to your site’s full domain (which includes www). This option is displayed only for a naked domain. Default: false\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"sslPortTo":{"type":"number","description":"The port number to rewrite default SSL port to.\n"},"supportNonSniClients":{"type":"boolean","description":"By default, non-SNI clients are supported. Disable this option to block non-SNI clients. Default: true\n"},"tcpPrePooling":{"type":"boolean","description":"Maintain a set of idle TCP connections to the origin server to eliminate the latency associated with opening new connections or new requests (TCP handshake). Default: true\n"}},"type":"object","required":["applicationDeliveryId","siteId"],"inputProperties":{"aggressiveCompression":{"type":"boolean","description":"A more aggressive method of compression is applied with the goal of minimizing the image file size, possibly impacting the final quality of the image displayed. Applies to JPEG compression only. Default: false.\n"},"applicationDeliveryId":{"type":"string","description":"Unique identifier in the API for the application delivery configuration. The id is identical to Site id.\n"},"compressJpeg":{"type":"boolean","description":"Compress JPEG images. Compression reduces download time by reducing the file size. Default: true\n"},"compressPng":{"type":"boolean","description":"Compress PNG images. Compression reduces download time by reducing the file size. PNG compression removes only image meta-data with no impact on quality. Default: true.\n"},"compressionType":{"type":"string","description":"BROTLI (recommended for more efficient compression). Default: GZIP\n"},"defaultErrorPageTemplate":{"type":"string","description":"The default error page HTML template. $TITLE$ and $BODY$ placeholders are required.\n"},"enableHttp2":{"type":"boolean","description":"Allows supporting browsers to take advantage of the performance enhancements provided by HTTP/2 for your website. Non-supporting browsers can connect via HTTP/1.0 or HTTP/1.1.\n"},"errorAbpIdentificationFailed":{"type":"string","description":"The HTML template for 'ABP identification failed' error. Only HTML elements located inside the body tag are supported. Set empty value to return to default.\n"},"errorAccessDenied":{"type":"string","description":"The HTML template for 'Access Denied' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorConnectionFailed":{"type":"string","description":"The HTML template for 'Unable to connect to origin server' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorConnectionTimeout":{"type":"string","description":"The HTML template for 'Connection Timeout' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorDenyAndCaptcha":{"type":"string","description":"The HTML template for 'Initial connection denied - CAPTCHA required' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorNoSslConfig":{"type":"string","description":"The HTML template for 'Site not configured for SSL' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorParseReqError":{"type":"string","description":"The HTML template for 'Unable to parse request' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorParseRespError":{"type":"string","description":"The HTML template for 'Unable to parse response' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorSslFailed":{"type":"string","description":"The HTML template for 'Unable to establish SSL connection' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"fileCompression":{"type":"boolean","description":"When this option is enabled, files such as JavaScript, CSS and HTML are dynamically compressed using the selected format as they are transferred. They are automatically unzipped within the browser. If Brotli is not supported by the browser, files are automatically sent in Gzip. Default: true\n"},"http2ToOrigin":{"type":"boolean","description":"Enables HTTP/2 for the connection between Imperva and your origin server. (HTTP/2 must also be supported by the origin server.)\n"},"minifyCss":{"type":"boolean","description":"Content minification can applied only to cached Javascript, CSS and HTML content. Default: true.\n"},"minifyJs":{"type":"boolean","description":"Minify JavaScript. Minification removes characters that are not necessary for rendering the page, such as whitespace and comments. This makes the files smaller and therefore reduces their access time. Minification has no impact on the functionality of the Javascript, CSS, and HTML files. Default: true\n"},"minifyStaticHtml":{"type":"boolean","description":"Minify static HTML. Default: true.\n"},"originConnectionReuse":{"type":"boolean","description":"TCP connections that are opened for a client request remain open for a short time to handle additional requests that may arrive. Default: true\n"},"portTo":{"type":"number","description":"The port number.\n"},"progressiveImageRendering":{"type":"boolean","description":"The image is rendered with progressively finer resolution, potentially causing a pixelated effect until the final image is rendered with no loss of quality. This option reduces page load times and allows images to gradually load after the page is rendered. Default: false.\n"},"redirectHttpToHttps":{"type":"boolean","description":"Sites that require an HTTPS connection force all HTTP requests to be redirected to HTTPS. This option is displayed only for an SSL site. Default: false\n"},"redirectNakedToFull":{"type":"boolean","description":"Redirect all visitors to your site’s full domain (which includes www). This option is displayed only for a naked domain. Default: false\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"sslPortTo":{"type":"number","description":"The port number to rewrite default SSL port to.\n"},"supportNonSniClients":{"type":"boolean","description":"By default, non-SNI clients are supported. Disable this option to block non-SNI clients. Default: true\n"},"tcpPrePooling":{"type":"boolean","description":"Maintain a set of idle TCP connections to the origin server to eliminate the latency associated with opening new connections or new requests (TCP handshake). Default: true\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationDelivery resources.\n","properties":{"aggressiveCompression":{"type":"boolean","description":"A more aggressive method of compression is applied with the goal of minimizing the image file size, possibly impacting the final quality of the image displayed. Applies to JPEG compression only. Default: false.\n"},"applicationDeliveryId":{"type":"string","description":"Unique identifier in the API for the application delivery configuration. The id is identical to Site id.\n"},"compressJpeg":{"type":"boolean","description":"Compress JPEG images. Compression reduces download time by reducing the file size. Default: true\n"},"compressPng":{"type":"boolean","description":"Compress PNG images. Compression reduces download time by reducing the file size. PNG compression removes only image meta-data with no impact on quality. Default: true.\n"},"compressionType":{"type":"string","description":"BROTLI (recommended for more efficient compression). Default: GZIP\n"},"defaultErrorPageTemplate":{"type":"string","description":"The default error page HTML template. $TITLE$ and $BODY$ placeholders are required.\n"},"enableHttp2":{"type":"boolean","description":"Allows supporting browsers to take advantage of the performance enhancements provided by HTTP/2 for your website. Non-supporting browsers can connect via HTTP/1.0 or HTTP/1.1.\n"},"errorAbpIdentificationFailed":{"type":"string","description":"The HTML template for 'ABP identification failed' error. Only HTML elements located inside the body tag are supported. Set empty value to return to default.\n"},"errorAccessDenied":{"type":"string","description":"The HTML template for 'Access Denied' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorConnectionFailed":{"type":"string","description":"The HTML template for 'Unable to connect to origin server' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorConnectionTimeout":{"type":"string","description":"The HTML template for 'Connection Timeout' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorDenyAndCaptcha":{"type":"string","description":"The HTML template for 'Initial connection denied - CAPTCHA required' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorNoSslConfig":{"type":"string","description":"The HTML template for 'Site not configured for SSL' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorParseReqError":{"type":"string","description":"The HTML template for 'Unable to parse request' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorParseRespError":{"type":"string","description":"The HTML template for 'Unable to parse response' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"errorSslFailed":{"type":"string","description":"The HTML template for 'Unable to establish SSL connection' error. $TITLE$ and $BODY$ placeholders are required. Set empty value to return to default.\n"},"fileCompression":{"type":"boolean","description":"When this option is enabled, files such as JavaScript, CSS and HTML are dynamically compressed using the selected format as they are transferred. They are automatically unzipped within the browser. If Brotli is not supported by the browser, files are automatically sent in Gzip. Default: true\n"},"http2ToOrigin":{"type":"boolean","description":"Enables HTTP/2 for the connection between Imperva and your origin server. (HTTP/2 must also be supported by the origin server.)\n"},"minifyCss":{"type":"boolean","description":"Content minification can applied only to cached Javascript, CSS and HTML content. Default: true.\n"},"minifyJs":{"type":"boolean","description":"Minify JavaScript. Minification removes characters that are not necessary for rendering the page, such as whitespace and comments. This makes the files smaller and therefore reduces their access time. Minification has no impact on the functionality of the Javascript, CSS, and HTML files. Default: true\n"},"minifyStaticHtml":{"type":"boolean","description":"Minify static HTML. Default: true.\n"},"originConnectionReuse":{"type":"boolean","description":"TCP connections that are opened for a client request remain open for a short time to handle additional requests that may arrive. Default: true\n"},"portTo":{"type":"number","description":"The port number.\n"},"progressiveImageRendering":{"type":"boolean","description":"The image is rendered with progressively finer resolution, potentially causing a pixelated effect until the final image is rendered with no loss of quality. This option reduces page load times and allows images to gradually load after the page is rendered. Default: false.\n"},"redirectHttpToHttps":{"type":"boolean","description":"Sites that require an HTTPS connection force all HTTP requests to be redirected to HTTPS. This option is displayed only for an SSL site. Default: false\n"},"redirectNakedToFull":{"type":"boolean","description":"Redirect all visitors to your site’s full domain (which includes www). This option is displayed only for a naked domain. Default: false\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"sslPortTo":{"type":"number","description":"The port number to rewrite default SSL port to.\n"},"supportNonSniClients":{"type":"boolean","description":"By default, non-SNI clients are supported. Disable this option to block non-SNI clients. Default: true\n"},"tcpPrePooling":{"type":"boolean","description":"Maintain a set of idle TCP connections to the origin server to eliminate the latency associated with opening new connections or new requests (TCP handshake). Default: true\n"}},"type":"object"}},"incapsula:index/atoEndpointMitigationConfiguration:AtoEndpointMitigationConfiguration":{"properties":{"accountId":{"type":"number","description":"Account ID that the site belongs to."},"atoEndpointMitigationConfigurationId":{"type":"string"},"endpointId":{"type":"string","description":"Endpoint ID associated with this request"},"mitigationActionForHighRisk":{"type":"string","description":"Mitigation action configured for high risk requests - in UPPER CASE."},"mitigationActionForLowRisk":{"type":"string","description":"Mitigation action configured for low risk requests - in UPPER CASE."},"mitigationActionForMediumRisk":{"type":"string","description":"Mitigation action configured for medium risk requests - in UPPER CASE."},"siteId":{"type":"number","description":"Site ID to get the allowlist for."}},"type":"object","required":["atoEndpointMitigationConfigurationId","endpointId","mitigationActionForHighRisk","mitigationActionForLowRisk","mitigationActionForMediumRisk","siteId"],"inputProperties":{"accountId":{"type":"number","description":"Account ID that the site belongs to."},"atoEndpointMitigationConfigurationId":{"type":"string"},"endpointId":{"type":"string","description":"Endpoint ID associated with this request"},"mitigationActionForHighRisk":{"type":"string","description":"Mitigation action configured for high risk requests - in UPPER CASE."},"mitigationActionForLowRisk":{"type":"string","description":"Mitigation action configured for low risk requests - in UPPER CASE."},"mitigationActionForMediumRisk":{"type":"string","description":"Mitigation action configured for medium risk requests - in UPPER CASE."},"siteId":{"type":"number","description":"Site ID to get the allowlist for."}},"requiredInputs":["endpointId","mitigationActionForHighRisk","mitigationActionForLowRisk","mitigationActionForMediumRisk","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering AtoEndpointMitigationConfiguration resources.\n","properties":{"accountId":{"type":"number","description":"Account ID that the site belongs to."},"atoEndpointMitigationConfigurationId":{"type":"string"},"endpointId":{"type":"string","description":"Endpoint ID associated with this request"},"mitigationActionForHighRisk":{"type":"string","description":"Mitigation action configured for high risk requests - in UPPER CASE."},"mitigationActionForLowRisk":{"type":"string","description":"Mitigation action configured for low risk requests - in UPPER CASE."},"mitigationActionForMediumRisk":{"type":"string","description":"Mitigation action configured for medium risk requests - in UPPER CASE."},"siteId":{"type":"number","description":"Site ID to get the allowlist for."}},"type":"object"}},"incapsula:index/atoSiteAllowlist:AtoSiteAllowlist":{"properties":{"accountId":{"type":"number","description":"Account ID that the site belongs to."},"allowlists":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"The allowlist of IPs and IP ranges for the given site ID"},"atoSiteAllowlistId":{"type":"string"},"siteId":{"type":"number","description":"Site ID to get the allowlist for."}},"type":"object","required":["atoSiteAllowlistId","siteId"],"inputProperties":{"accountId":{"type":"number","description":"Account ID that the site belongs to."},"allowlists":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"The allowlist of IPs and IP ranges for the given site ID"},"atoSiteAllowlistId":{"type":"string"},"siteId":{"type":"number","description":"Site ID to get the allowlist for."}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering AtoSiteAllowlist resources.\n","properties":{"accountId":{"type":"number","description":"Account ID that the site belongs to."},"allowlists":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"The allowlist of IPs and IP ranges for the given site ID"},"atoSiteAllowlistId":{"type":"string"},"siteId":{"type":"number","description":"Site ID to get the allowlist for."}},"type":"object"}},"incapsula:index/botsConfiguration:BotsConfiguration":{"description":"Provides an Incapsula Bot Access Control Configuration resource.\nEach site has a Good Bots list and a Bad Bots list already configured. This resource allows you to customize these lists.\n\u003cbr/\u003e\nThe \u003cstrong\u003ecanceled_good_bots\u003c/strong\u003e list is used to remove bots from the default Good Bots list.\n\u003cbr/\u003e\nThe \u003cstrong\u003ebad_bots\u003c/strong\u003e list is used to add additional bots to Imperva’s predefined list of bad bots.\n\nThe client application names and their Imperva IDs are needed for customizing the good bot and bad bot lists. \nIn order to get the latest list, use the \u003cb\u003e/api/integration/v1/clapps\u003c/b\u003e found in the \u003cb\u003eIntegration\u003c/b\u003e section of the \n[Cloud Application Security v1/v3 API Definition page.](https://docs.imperva.com/bundle/cloud-application-security/page/cloud-v1-api-definition.htm)\n\n\n## Example Usage\n\n### Basic Usage - Lists\n\nThe basic usage is to use lists of the client application Imperva IDs.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_basic_bots_configuration = new incapsula.BotsConfiguration(\"example-basic-bots-configuration\", {\n    siteId: example_basic_site.id,\n    canceledGoodBots: [\n        6,\n        17,\n    ],\n    badBots: [\n        1,\n        62,\n        245,\n        18,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_basic_bots_configuration = incapsula.BotsConfiguration(\"example-basic-bots-configuration\",\n    site_id=example_basic_site[\"id\"],\n    canceled_good_bots=[\n        6,\n        17,\n    ],\n    bad_bots=[\n        1,\n        62,\n        245,\n        18,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_basic_bots_configuration = new Incapsula.BotsConfiguration(\"example-basic-bots-configuration\", new()\n    {\n        SiteId = example_basic_site.Id,\n        CanceledGoodBots = new[]\n        {\n            6,\n            17,\n        },\n        BadBots = new[]\n        {\n            1,\n            62,\n            245,\n            18,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewBotsConfiguration(ctx, \"example-basic-bots-configuration\", \u0026incapsula.BotsConfigurationArgs{\n\t\t\tSiteId: pulumi.Any(example_basic_site.Id),\n\t\t\tCanceledGoodBots: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(6),\n\t\t\t\tpulumi.Float64(17),\n\t\t\t},\n\t\t\tBadBots: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1),\n\t\t\t\tpulumi.Float64(62),\n\t\t\t\tpulumi.Float64(245),\n\t\t\t\tpulumi.Float64(18),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.BotsConfiguration;\nimport com.pulumi.incapsula.BotsConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_basic_bots_configuration = new BotsConfiguration(\"example-basic-bots-configuration\", BotsConfigurationArgs.builder()\n            .siteId(example_basic_site.id())\n            .canceledGoodBots(            \n                6.0,\n                17.0)\n            .badBots(            \n                1.0,\n                62.0,\n                245.0,\n                18.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-basic-bots-configuration:\n    type: incapsula:BotsConfiguration\n    properties:\n      siteId: ${[\"example-basic-site\"].id}\n      canceledGoodBots:\n        - 6\n        - 17\n      badBots:\n        - 1\n        - 62\n        - 245\n        - 18\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Data Sources Usage\n\nUsing \u003cspan pulumi-lang-nodejs=\"`incapsula.getClientAppsData`\" pulumi-lang-dotnet=\"`incapsula.getClientAppsData`\" pulumi-lang-go=\"`getClientAppsData`\" pulumi-lang-python=\"`get_client_apps_data`\" pulumi-lang-yaml=\"`incapsula.getClientAppsData`\" pulumi-lang-java=\"`incapsula.getClientAppsData`\"\u003e`incapsula.getClientAppsData`\u003c/span\u003e data sources we can use the \"human-readable\" client application names instead of the Imperva IDs.\n\nBoth lists (canceled_good_bots and bad_bots) can access the data sources in 2 ways:\n* \u003cspan pulumi-lang-nodejs=\"`ids`\" pulumi-lang-dotnet=\"`Ids`\" pulumi-lang-go=\"`ids`\" pulumi-lang-python=\"`ids`\" pulumi-lang-yaml=\"`ids`\" pulumi-lang-java=\"`ids`\"\u003e`ids`\u003c/span\u003e - Contains the Ids of each Client Application name set in \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e argument (if set in the data source)\n* \u003cspan pulumi-lang-nodejs=\"`map`\" pulumi-lang-dotnet=\"`Map`\" pulumi-lang-go=\"`map`\" pulumi-lang-python=\"`map`\" pulumi-lang-yaml=\"`map`\" pulumi-lang-java=\"`map`\"\u003e`map`\u003c/span\u003e - Contains all the Client Application (names to ids map)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst clientAppsCanceledGoodBots = incapsula.getClientAppsData({\n    filters: [\n        \"Googlebot\",\n        \"SiteUptime\",\n    ],\n});\nconst clientAppsBadBots = incapsula.getClientAppsData({});\nconst example_basic_bots_configuration = new incapsula.BotsConfiguration(\"example-basic-bots-configuration\", {\n    siteId: example_basic_site.id,\n    canceledGoodBots: clientAppsCanceledGoodBots.then(clientAppsCanceledGoodBots =\u003e clientAppsCanceledGoodBots.ids),\n    badBots: [\n        clientAppsBadBots.then(clientAppsBadBots =\u003e clientAppsBadBots.map?.[\"Google Translate\"]),\n        clientAppsBadBots.then(clientAppsBadBots =\u003e clientAppsBadBots.map?.Googlebot),\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nclient_apps_canceled_good_bots = incapsula.get_client_apps_data(filters=[\n    \"Googlebot\",\n    \"SiteUptime\",\n])\nclient_apps_bad_bots = incapsula.get_client_apps_data()\nexample_basic_bots_configuration = incapsula.BotsConfiguration(\"example-basic-bots-configuration\",\n    site_id=example_basic_site[\"id\"],\n    canceled_good_bots=client_apps_canceled_good_bots.ids,\n    bad_bots=[\n        client_apps_bad_bots.map[\"Google Translate\"],\n        client_apps_bad_bots.map[\"Googlebot\"],\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var clientAppsCanceledGoodBots = Incapsula.GetClientAppsData.Invoke(new()\n    {\n        Filters = new[]\n        {\n            \"Googlebot\",\n            \"SiteUptime\",\n        },\n    });\n\n    var clientAppsBadBots = Incapsula.GetClientAppsData.Invoke();\n\n    var example_basic_bots_configuration = new Incapsula.BotsConfiguration(\"example-basic-bots-configuration\", new()\n    {\n        SiteId = example_basic_site.Id,\n        CanceledGoodBots = clientAppsCanceledGoodBots.Apply(getClientAppsDataResult =\u003e getClientAppsDataResult.Ids),\n        BadBots = new[]\n        {\n            clientAppsBadBots.Apply(getClientAppsDataResult =\u003e getClientAppsDataResult.Map?.Google_Translate),\n            clientAppsBadBots.Apply(getClientAppsDataResult =\u003e getClientAppsDataResult.Map?.Googlebot),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nclientAppsCanceledGoodBots, err := incapsula.GetClientAppsData(ctx, \u0026incapsula.GetClientAppsDataArgs{\nFilters: []string{\n\"Googlebot\",\n\"SiteUptime\",\n},\n}, nil);\nif err != nil {\nreturn err\n}\nclientAppsBadBots, err := incapsula.GetClientAppsData(ctx, \u0026incapsula.GetClientAppsDataArgs{\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = incapsula.NewBotsConfiguration(ctx, \"example-basic-bots-configuration\", \u0026incapsula.BotsConfigurationArgs{\nSiteId: pulumi.Any(example_basic_site.Id),\nCanceledGoodBots: interface{}(clientAppsCanceledGoodBots.Ids),\nBadBots: pulumi.Float64Array{\npulumi.Float64(clientAppsBadBots.Map.Google Translate),\npulumi.Float64(clientAppsBadBots.Map.Googlebot),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetClientAppsDataArgs;\nimport com.pulumi.incapsula.BotsConfiguration;\nimport com.pulumi.incapsula.BotsConfigurationArgs;\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 clientAppsCanceledGoodBots = IncapsulaFunctions.getClientAppsData(GetClientAppsDataArgs.builder()\n            .filters(            \n                \"Googlebot\",\n                \"SiteUptime\")\n            .build());\n\n        final var clientAppsBadBots = IncapsulaFunctions.getClientAppsData(GetClientAppsDataArgs.builder()\n            .build());\n\n        var example_basic_bots_configuration = new BotsConfiguration(\"example-basic-bots-configuration\", BotsConfigurationArgs.builder()\n            .siteId(example_basic_site.id())\n            .canceledGoodBots(clientAppsCanceledGoodBots.ids())\n            .badBots(            \n                clientAppsBadBots.map().Google Translate(),\n                clientAppsBadBots.map().Googlebot())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-basic-bots-configuration:\n    type: incapsula:BotsConfiguration\n    properties:\n      siteId: ${[\"example-basic-site\"].id}\n      canceledGoodBots: ${clientAppsCanceledGoodBots.ids}\n      badBots:\n        - ${clientAppsBadBots.map\"Google Translate\"[%!s(MISSING)]}\n        - ${clientAppsBadBots.map.Googlebot}\nvariables:\n  clientAppsCanceledGoodBots:\n    fn::invoke:\n      function: incapsula:getClientAppsData\n      arguments:\n        filters:\n          - Googlebot\n          - SiteUptime\n  clientAppsBadBots:\n    fn::invoke:\n      function: incapsula:getClientAppsData\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Combination Usage\n\nWe always can combine both usages; list and datasource in the same resource or map and list in the same block.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst clientAppsBadBots = incapsula.getClientAppsData({});\nconst example_basic_bots_configuration = new incapsula.BotsConfiguration(\"example-basic-bots-configuration\", {\n    siteId: example_basic_site.id,\n    canceledGoodBots: [\n        6,\n        17,\n    ],\n    badBots: [\n        clientAppsBadBots.then(clientAppsBadBots =\u003e clientAppsBadBots.map?.[\"Google Translate\"]),\n        clientAppsBadBots.then(clientAppsBadBots =\u003e clientAppsBadBots.map?.Googlebot),\n        530,\n        531,\n        537,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nclient_apps_bad_bots = incapsula.get_client_apps_data()\nexample_basic_bots_configuration = incapsula.BotsConfiguration(\"example-basic-bots-configuration\",\n    site_id=example_basic_site[\"id\"],\n    canceled_good_bots=[\n        6,\n        17,\n    ],\n    bad_bots=[\n        client_apps_bad_bots.map[\"Google Translate\"],\n        client_apps_bad_bots.map[\"Googlebot\"],\n        530,\n        531,\n        537,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var clientAppsBadBots = Incapsula.GetClientAppsData.Invoke();\n\n    var example_basic_bots_configuration = new Incapsula.BotsConfiguration(\"example-basic-bots-configuration\", new()\n    {\n        SiteId = example_basic_site.Id,\n        CanceledGoodBots = new[]\n        {\n            6,\n            17,\n        },\n        BadBots = new[]\n        {\n            clientAppsBadBots.Apply(getClientAppsDataResult =\u003e getClientAppsDataResult.Map?.Google_Translate),\n            clientAppsBadBots.Apply(getClientAppsDataResult =\u003e getClientAppsDataResult.Map?.Googlebot),\n            530,\n            531,\n            537,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nclientAppsBadBots, err := incapsula.GetClientAppsData(ctx, \u0026incapsula.GetClientAppsDataArgs{\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = incapsula.NewBotsConfiguration(ctx, \"example-basic-bots-configuration\", \u0026incapsula.BotsConfigurationArgs{\nSiteId: pulumi.Any(example_basic_site.Id),\nCanceledGoodBots: pulumi.Float64Array{\npulumi.Float64(6),\npulumi.Float64(17),\n},\nBadBots: pulumi.Float64Array{\npulumi.Float64(clientAppsBadBots.Map.Google Translate),\npulumi.Float64(clientAppsBadBots.Map.Googlebot),\npulumi.Float64(530),\npulumi.Float64(531),\npulumi.Float64(537),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetClientAppsDataArgs;\nimport com.pulumi.incapsula.BotsConfiguration;\nimport com.pulumi.incapsula.BotsConfigurationArgs;\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 clientAppsBadBots = IncapsulaFunctions.getClientAppsData(GetClientAppsDataArgs.builder()\n            .build());\n\n        var example_basic_bots_configuration = new BotsConfiguration(\"example-basic-bots-configuration\", BotsConfigurationArgs.builder()\n            .siteId(example_basic_site.id())\n            .canceledGoodBots(            \n                6.0,\n                17.0)\n            .badBots(            \n                clientAppsBadBots.map().Google Translate(),\n                clientAppsBadBots.map().Googlebot(),\n                530.0,\n                531.0,\n                537.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-basic-bots-configuration:\n    type: incapsula:BotsConfiguration\n    properties:\n      siteId: ${[\"example-basic-site\"].id}\n      canceledGoodBots:\n        - 6\n        - 17\n      badBots:\n        - ${clientAppsBadBots.map\"Google Translate\"[%!s(MISSING)]}\n        - ${clientAppsBadBots.map.Googlebot}\n        - 530\n        - 531\n        - 537\nvariables:\n  clientAppsBadBots:\n    fn::invoke:\n      function: incapsula:getClientAppsData\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe bot configuration can be imported using the `id`. The ID is identical to site ID. For example:\n\n```sh\n$ pulumi import incapsula:index/botsConfiguration:BotsConfiguration demo 1234\n```\n","properties":{"badBots":{"type":"array","items":{"type":"number"},"description":"List of Bot IDs taken from Imperva’s predefined list of bad bots\n\nDefault value is an empty list. This restores the default \u003cstrong\u003eBad Bots\u003c/strong\u003e list (empty).\n"},"botsConfigurationId":{"type":"string","description":"Unique identifier in the API for the bots configuration.\n"},"canceledGoodBots":{"type":"array","items":{"type":"number"},"description":"List of bot IDs taken from Imperva’s predefined list of bad bots\n\nDefault value is an empty list. This restores the default \u003cstrong\u003eCanceled Good Bots\u003c/strong\u003e list.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["botsConfigurationId","siteId"],"inputProperties":{"badBots":{"type":"array","items":{"type":"number"},"description":"List of Bot IDs taken from Imperva’s predefined list of bad bots\n\nDefault value is an empty list. This restores the default \u003cstrong\u003eBad Bots\u003c/strong\u003e list (empty).\n"},"botsConfigurationId":{"type":"string","description":"Unique identifier in the API for the bots configuration.\n"},"canceledGoodBots":{"type":"array","items":{"type":"number"},"description":"List of bot IDs taken from Imperva’s predefined list of bad bots\n\nDefault value is an empty list. This restores the default \u003cstrong\u003eCanceled Good Bots\u003c/strong\u003e list.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering BotsConfiguration resources.\n","properties":{"badBots":{"type":"array","items":{"type":"number"},"description":"List of Bot IDs taken from Imperva’s predefined list of bad bots\n\nDefault value is an empty list. This restores the default \u003cstrong\u003eBad Bots\u003c/strong\u003e list (empty).\n"},"botsConfigurationId":{"type":"string","description":"Unique identifier in the API for the bots configuration.\n"},"canceledGoodBots":{"type":"array","items":{"type":"number"},"description":"List of bot IDs taken from Imperva’s predefined list of bad bots\n\nDefault value is an empty list. This restores the default \u003cstrong\u003eCanceled Good Bots\u003c/strong\u003e list.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/cacheRule:CacheRule":{"description":"Provides a custom cache rule resource. Enables you to you define specific exceptions to the overall caching settings.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_incap_cache_rule = new incapsula.CacheRule(\"example-incap-cache-rule\", {\n    name: \"Example cache rule\",\n    siteId: example_site.id,\n    action: \"HTTP_CACHE_MAKE_STATIC\",\n    filter: \"isMobile == Yes\",\n    enabled: true,\n    ttl: 3600,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_incap_cache_rule = incapsula.CacheRule(\"example-incap-cache-rule\",\n    name=\"Example cache rule\",\n    site_id=example_site[\"id\"],\n    action=\"HTTP_CACHE_MAKE_STATIC\",\n    filter=\"isMobile == Yes\",\n    enabled=True,\n    ttl=3600)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_incap_cache_rule = new Incapsula.CacheRule(\"example-incap-cache-rule\", new()\n    {\n        Name = \"Example cache rule\",\n        SiteId = example_site.Id,\n        Action = \"HTTP_CACHE_MAKE_STATIC\",\n        Filter = \"isMobile == Yes\",\n        Enabled = true,\n        Ttl = 3600,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewCacheRule(ctx, \"example-incap-cache-rule\", \u0026incapsula.CacheRuleArgs{\n\t\t\tName:    pulumi.String(\"Example cache rule\"),\n\t\t\tSiteId:  pulumi.Any(example_site.Id),\n\t\t\tAction:  pulumi.String(\"HTTP_CACHE_MAKE_STATIC\"),\n\t\t\tFilter:  pulumi.String(\"isMobile == Yes\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tTtl:     pulumi.Float64(3600),\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.incapsula.CacheRule;\nimport com.pulumi.incapsula.CacheRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_incap_cache_rule = new CacheRule(\"example-incap-cache-rule\", CacheRuleArgs.builder()\n            .name(\"Example cache rule\")\n            .siteId(example_site.id())\n            .action(\"HTTP_CACHE_MAKE_STATIC\")\n            .filter(\"isMobile == Yes\")\n            .enabled(true)\n            .ttl(3600.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-incap-cache-rule:\n    type: incapsula:CacheRule\n    properties:\n      name: Example cache rule\n      siteId: ${[\"example-site\"].id}\n      action: HTTP_CACHE_MAKE_STATIC\n      filter: isMobile == Yes\n      enabled: true\n      ttl: 3600\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCache Rule can be imported using the role `site_id` and `rule_id` separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/cacheRule:CacheRule demo site_id/rule_id\n```\n","properties":{"action":{"type":"string","description":"Rule action. See the detailed descriptions in the API documentation. Possible values: `HTTP_CACHE_MAKE_STATIC`, `HTTP_CACHE_CLIENT_CACHE_CTL`, `HTTP_CACHE_FORCE_UNCACHEABLE`, `HTTP_CACHE_ADD_TAG`, `HTTP_CACHE_DIFFERENTIATE_SSL`, `HTTP_CACHE_DIFFERENTIATE_BY_HEADER`, `HTTP_CACHE_DIFFERENTIATE_BY_COOKIE`, `HTTP_CACHE_DIFFERENTIATE_BY_GEO`, `HTTP_CACHE_IGNORE_PARAMS`, `HTTP_CACHE_ENRICH_CACHE_KEY`, `HTTP_CACHE_FORCE_VALIDATION`, `HTTP_CACHE_IGNORE_AUTH_HEADER`.\n"},"cacheRuleId":{"type":"string","description":"Unique identifier in the API for the Cache Rule.\n"},"differentiateByValue":{"type":"string","description":"Value to differentiate resources by. Relevant for `HTTP_CACHE_DIFFERENTIATE_BY_HEADER`, `HTTP_CACHE_DIFFERENTIATE_BY_COOKIE` and `HTTP_CACHE_DIFFERENTIATE_BY_GEO` actions.\n"},"enabled":{"type":"boolean","description":"Boolean that specifies if the rule should be enabled.\n"},"filter":{"type":"string","description":"The filter defines the conditions that trigger the rule action. If left empty, the rule is always run.\n"},"ignoredParams":{"type":"string","description":"Parameters to ignore. Relevant for `HTTP_CACHE_IGNORE_PARAMS` action. An array containing `'*'` means all parameters are ignored.\n"},"name":{"type":"string","description":"Rule name.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"text":{"type":"string","description":"Tag name if action is HTTP_CACHE_ADD_TAG. Text to be added to the cache key as suffix if action is HTTP_CACHE_ENRICH_CACHE_KEY.\n"},"ttl":{"type":"number","description":"TTL in seconds. Relevant for `HTTP_CACHE_MAKE_STATIC` and `HTTP_CACHE_CLIENT_CACHE_CTL` actions.\n"}},"type":"object","required":["action","cacheRuleId","enabled","filter","name","siteId"],"inputProperties":{"action":{"type":"string","description":"Rule action. See the detailed descriptions in the API documentation. Possible values: `HTTP_CACHE_MAKE_STATIC`, `HTTP_CACHE_CLIENT_CACHE_CTL`, `HTTP_CACHE_FORCE_UNCACHEABLE`, `HTTP_CACHE_ADD_TAG`, `HTTP_CACHE_DIFFERENTIATE_SSL`, `HTTP_CACHE_DIFFERENTIATE_BY_HEADER`, `HTTP_CACHE_DIFFERENTIATE_BY_COOKIE`, `HTTP_CACHE_DIFFERENTIATE_BY_GEO`, `HTTP_CACHE_IGNORE_PARAMS`, `HTTP_CACHE_ENRICH_CACHE_KEY`, `HTTP_CACHE_FORCE_VALIDATION`, `HTTP_CACHE_IGNORE_AUTH_HEADER`.\n"},"cacheRuleId":{"type":"string","description":"Unique identifier in the API for the Cache Rule.\n"},"differentiateByValue":{"type":"string","description":"Value to differentiate resources by. Relevant for `HTTP_CACHE_DIFFERENTIATE_BY_HEADER`, `HTTP_CACHE_DIFFERENTIATE_BY_COOKIE` and `HTTP_CACHE_DIFFERENTIATE_BY_GEO` actions.\n"},"enabled":{"type":"boolean","description":"Boolean that specifies if the rule should be enabled.\n"},"filter":{"type":"string","description":"The filter defines the conditions that trigger the rule action. If left empty, the rule is always run.\n"},"ignoredParams":{"type":"string","description":"Parameters to ignore. Relevant for `HTTP_CACHE_IGNORE_PARAMS` action. An array containing `'*'` means all parameters are ignored.\n"},"name":{"type":"string","description":"Rule name.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"text":{"type":"string","description":"Tag name if action is HTTP_CACHE_ADD_TAG. Text to be added to the cache key as suffix if action is HTTP_CACHE_ENRICH_CACHE_KEY.\n"},"ttl":{"type":"number","description":"TTL in seconds. Relevant for `HTTP_CACHE_MAKE_STATIC` and `HTTP_CACHE_CLIENT_CACHE_CTL` actions.\n"}},"requiredInputs":["action","enabled","filter","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CacheRule resources.\n","properties":{"action":{"type":"string","description":"Rule action. See the detailed descriptions in the API documentation. Possible values: `HTTP_CACHE_MAKE_STATIC`, `HTTP_CACHE_CLIENT_CACHE_CTL`, `HTTP_CACHE_FORCE_UNCACHEABLE`, `HTTP_CACHE_ADD_TAG`, `HTTP_CACHE_DIFFERENTIATE_SSL`, `HTTP_CACHE_DIFFERENTIATE_BY_HEADER`, `HTTP_CACHE_DIFFERENTIATE_BY_COOKIE`, `HTTP_CACHE_DIFFERENTIATE_BY_GEO`, `HTTP_CACHE_IGNORE_PARAMS`, `HTTP_CACHE_ENRICH_CACHE_KEY`, `HTTP_CACHE_FORCE_VALIDATION`, `HTTP_CACHE_IGNORE_AUTH_HEADER`.\n"},"cacheRuleId":{"type":"string","description":"Unique identifier in the API for the Cache Rule.\n"},"differentiateByValue":{"type":"string","description":"Value to differentiate resources by. Relevant for `HTTP_CACHE_DIFFERENTIATE_BY_HEADER`, `HTTP_CACHE_DIFFERENTIATE_BY_COOKIE` and `HTTP_CACHE_DIFFERENTIATE_BY_GEO` actions.\n"},"enabled":{"type":"boolean","description":"Boolean that specifies if the rule should be enabled.\n"},"filter":{"type":"string","description":"The filter defines the conditions that trigger the rule action. If left empty, the rule is always run.\n"},"ignoredParams":{"type":"string","description":"Parameters to ignore. Relevant for `HTTP_CACHE_IGNORE_PARAMS` action. An array containing `'*'` means all parameters are ignored.\n"},"name":{"type":"string","description":"Rule name.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"text":{"type":"string","description":"Tag name if action is HTTP_CACHE_ADD_TAG. Text to be added to the cache key as suffix if action is HTTP_CACHE_ENRICH_CACHE_KEY.\n"},"ttl":{"type":"number","description":"TTL in seconds. Relevant for `HTTP_CACHE_MAKE_STATIC` and `HTTP_CACHE_CLIENT_CACHE_CTL` actions.\n"}},"type":"object"}},"incapsula:index/certificateSigningRequest:CertificateSigningRequest":{"description":"Provides a Incapsula Certificate Signing Request resource. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst certificate_signing_request = new incapsula.CertificateSigningRequest(\"certificate-signing-request\", {\n    siteId: example_site.id,\n    domain: \"sandwich.au\",\n    email: \"test@sandwich.au\",\n    country: \"AU\",\n    state: \"QLD\",\n    city: \"BNE\",\n    organization: \"Tacos Pty Ltd\",\n    organizationUnit: \"Kitchen\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\ncertificate_signing_request = incapsula.CertificateSigningRequest(\"certificate-signing-request\",\n    site_id=example_site[\"id\"],\n    domain=\"sandwich.au\",\n    email=\"test@sandwich.au\",\n    country=\"AU\",\n    state=\"QLD\",\n    city=\"BNE\",\n    organization=\"Tacos Pty Ltd\",\n    organization_unit=\"Kitchen\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var certificate_signing_request = new Incapsula.CertificateSigningRequest(\"certificate-signing-request\", new()\n    {\n        SiteId = example_site.Id,\n        Domain = \"sandwich.au\",\n        Email = \"test@sandwich.au\",\n        Country = \"AU\",\n        State = \"QLD\",\n        City = \"BNE\",\n        Organization = \"Tacos Pty Ltd\",\n        OrganizationUnit = \"Kitchen\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewCertificateSigningRequest(ctx, \"certificate-signing-request\", \u0026incapsula.CertificateSigningRequestArgs{\n\t\t\tSiteId:           pulumi.Any(example_site.Id),\n\t\t\tDomain:           pulumi.String(\"sandwich.au\"),\n\t\t\tEmail:            pulumi.String(\"test@sandwich.au\"),\n\t\t\tCountry:          pulumi.String(\"AU\"),\n\t\t\tState:            pulumi.String(\"QLD\"),\n\t\t\tCity:             pulumi.String(\"BNE\"),\n\t\t\tOrganization:     pulumi.String(\"Tacos Pty Ltd\"),\n\t\t\tOrganizationUnit: pulumi.String(\"Kitchen\"),\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.incapsula.CertificateSigningRequest;\nimport com.pulumi.incapsula.CertificateSigningRequestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate_signing_request = new CertificateSigningRequest(\"certificate-signing-request\", CertificateSigningRequestArgs.builder()\n            .siteId(example_site.id())\n            .domain(\"sandwich.au\")\n            .email(\"test@sandwich.au\")\n            .country(\"AU\")\n            .state(\"QLD\")\n            .city(\"BNE\")\n            .organization(\"Tacos Pty Ltd\")\n            .organizationUnit(\"Kitchen\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate-signing-request:\n    type: incapsula:CertificateSigningRequest\n    properties:\n      siteId: ${[\"example-site\"].id}\n      domain: sandwich.au\n      email: test@sandwich.au\n      country: AU\n      state: QLD\n      city: BNE\n      organization: Tacos Pty Ltd\n      organizationUnit: Kitchen\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"certificateSigningRequestId":{"type":"string","description":"(String) At the moment, only one active certificate can be stored. This exported value is always set to \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e.\n"},"city":{"type":"string","description":"The city where your organization is located.\n"},"country":{"type":"string","description":"The two-letter ISO code for the country where your organization is located.\n"},"csrContent":{"type":"string","description":"(String) The certificate request data.\n"},"domain":{"type":"string","description":"The common name. For example: `example.com`\n"},"email":{"type":"string","description":"The Email address. For example: `joe@example.com`\n"},"organization":{"type":"string","description":"The legal name of your organization. This should not be abbreviated or include suffixes such as Inc., Corp., or LLC.\n"},"organizationUnit":{"type":"string","description":"The division of your organization handling the certificate. For example, IT Department.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"state":{"type":"string","description":"The state/region where your organization is located. This should not be abbreviated.\n"}},"type":"object","required":["certificateSigningRequestId","csrContent","siteId"],"inputProperties":{"certificateSigningRequestId":{"type":"string","description":"(String) At the moment, only one active certificate can be stored. This exported value is always set to \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e.\n"},"city":{"type":"string","description":"The city where your organization is located.\n"},"country":{"type":"string","description":"The two-letter ISO code for the country where your organization is located.\n"},"domain":{"type":"string","description":"The common name. For example: `example.com`\n"},"email":{"type":"string","description":"The Email address. For example: `joe@example.com`\n"},"organization":{"type":"string","description":"The legal name of your organization. This should not be abbreviated or include suffixes such as Inc., Corp., or LLC.\n"},"organizationUnit":{"type":"string","description":"The division of your organization handling the certificate. For example, IT Department.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"state":{"type":"string","description":"The state/region where your organization is located. This should not be abbreviated.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CertificateSigningRequest resources.\n","properties":{"certificateSigningRequestId":{"type":"string","description":"(String) At the moment, only one active certificate can be stored. This exported value is always set to \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e.\n"},"city":{"type":"string","description":"The city where your organization is located.\n"},"country":{"type":"string","description":"The two-letter ISO code for the country where your organization is located.\n"},"csrContent":{"type":"string","description":"(String) The certificate request data.\n"},"domain":{"type":"string","description":"The common name. For example: `example.com`\n"},"email":{"type":"string","description":"The Email address. For example: `joe@example.com`\n"},"organization":{"type":"string","description":"The legal name of your organization. This should not be abbreviated or include suffixes such as Inc., Corp., or LLC.\n"},"organizationUnit":{"type":"string","description":"The division of your organization handling the certificate. For example, IT Department.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"state":{"type":"string","description":"The state/region where your organization is located. This should not be abbreviated.\n"}},"type":"object"}},"incapsula:index/cspSiteConfiguration:CspSiteConfiguration":{"properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on."},"cspSiteConfigurationId":{"type":"string"},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Email address for the event notification recipient list of a specific website. Notifications are reasonably small and limited in frequency"},"mode":{"type":"string","description":"Website Protection Mode. When in \"enforce\" mode, blocked resources will not be available in the application and new resources will be automatically blocked. When in \"monitor\" mode, all resources are available in the application and the system keeps track of all new domains that are discovered.\nValues: monitor\\enforce\\off"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."}},"type":"object","required":["accountId","cspSiteConfigurationId","siteId"],"inputProperties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on."},"cspSiteConfigurationId":{"type":"string"},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Email address for the event notification recipient list of a specific website. Notifications are reasonably small and limited in frequency"},"mode":{"type":"string","description":"Website Protection Mode. When in \"enforce\" mode, blocked resources will not be available in the application and new resources will be automatically blocked. When in \"monitor\" mode, all resources are available in the application and the system keeps track of all new domains that are discovered.\nValues: monitor\\enforce\\off"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."}},"requiredInputs":["accountId","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CspSiteConfiguration resources.\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on."},"cspSiteConfigurationId":{"type":"string"},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Email address for the event notification recipient list of a specific website. Notifications are reasonably small and limited in frequency"},"mode":{"type":"string","description":"Website Protection Mode. When in \"enforce\" mode, blocked resources will not be available in the application and new resources will be automatically blocked. When in \"monitor\" mode, all resources are available in the application and the system keeps track of all new domains that are discovered.\nValues: monitor\\enforce\\off"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."}},"type":"object"}},"incapsula:index/cspSiteDomain:CspSiteDomain":{"properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on."},"cspSiteDomainId":{"type":"string"},"domain":{"type":"string","description":"The fully qualified domain name of the site. For example: www.example.com, hello.example.com."},"includeSubdomains":{"type":"boolean","description":"Defines Whether or not subdomains will inherit the allowance of the parent domain. Values: true, false"},"notes":{"type":"array","items":{"type":"string"},"description":"Add a quick note to a domain to help in future analysis and investigation. You can add as many notes as you like."},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."},"status":{"type":"string","description":"Defines whether the domain should be Blocked or Allowed once the site's mode changes to the Enforcement. Values: Blocked, Allowed"}},"type":"object","required":["cspSiteDomainId","domain","siteId"],"inputProperties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on."},"cspSiteDomainId":{"type":"string"},"domain":{"type":"string","description":"The fully qualified domain name of the site. For example: www.example.com, hello.example.com."},"includeSubdomains":{"type":"boolean","description":"Defines Whether or not subdomains will inherit the allowance of the parent domain. Values: true, false"},"notes":{"type":"array","items":{"type":"string"},"description":"Add a quick note to a domain to help in future analysis and investigation. You can add as many notes as you like."},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."},"status":{"type":"string","description":"Defines whether the domain should be Blocked or Allowed once the site's mode changes to the Enforcement. Values: Blocked, Allowed"}},"requiredInputs":["domain","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CspSiteDomain resources.\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to operate on."},"cspSiteDomainId":{"type":"string"},"domain":{"type":"string","description":"The fully qualified domain name of the site. For example: www.example.com, hello.example.com."},"includeSubdomains":{"type":"boolean","description":"Defines Whether or not subdomains will inherit the allowance of the parent domain. Values: true, false"},"notes":{"type":"array","items":{"type":"string"},"description":"Add a quick note to a domain to help in future analysis and investigation. You can add as many notes as you like."},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."},"status":{"type":"string","description":"Defines whether the domain should be Blocked or Allowed once the site's mode changes to the Enforcement. Values: Blocked, Allowed"}},"type":"object"}},"incapsula:index/customCertificate:CustomCertificate":{"description":"Provides a Incapsula Custom Certificate resource. \nCustom certificates must be one of the following formats: PFX, PEM, or CER.\n\n","properties":{"authType":{"type":"string","description":"The authentication type of the certificate (RSA/ECC). If not provided then RSA will be taken as a default.\n"},"certificate":{"type":"string","description":"The certificate file in base64 format.","secret":true},"customCertificateId":{"type":"string","description":"At the moment, only one active certificate can be stored. This exported value is always set as \u003cspan pulumi-lang-nodejs=\"`12345`\" pulumi-lang-dotnet=\"`12345`\" pulumi-lang-go=\"`12345`\" pulumi-lang-python=\"`12345`\" pulumi-lang-yaml=\"`12345`\" pulumi-lang-java=\"`12345`\"\u003e`12345`\u003c/span\u003e. This will be augmented in future versions of the API.\n"},"inputHash":{"type":"string","description":"Currently ignored. If pulumi preview flags this field as changed, it means that any of: \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`passphrase`\" pulumi-lang-dotnet=\"`Passphrase`\" pulumi-lang-go=\"`passphrase`\" pulumi-lang-python=\"`passphrase`\" pulumi-lang-yaml=\"`passphrase`\" pulumi-lang-java=\"`passphrase`\"\u003e`passphrase`\u003c/span\u003e has changed.\n"},"passphrase":{"type":"string","description":"The passphrase used to protect your SSL certificate.\n","secret":true},"privateKey":{"type":"string","description":"The private key of the certificate in base64 format. Optional in case of PFX certificate file format.\n","secret":true},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["certificate","customCertificateId","siteId"],"inputProperties":{"authType":{"type":"string","description":"The authentication type of the certificate (RSA/ECC). If not provided then RSA will be taken as a default.\n"},"certificate":{"type":"string","description":"The certificate file in base64 format.","secret":true},"customCertificateId":{"type":"string","description":"At the moment, only one active certificate can be stored. This exported value is always set as \u003cspan pulumi-lang-nodejs=\"`12345`\" pulumi-lang-dotnet=\"`12345`\" pulumi-lang-go=\"`12345`\" pulumi-lang-python=\"`12345`\" pulumi-lang-yaml=\"`12345`\" pulumi-lang-java=\"`12345`\"\u003e`12345`\u003c/span\u003e. This will be augmented in future versions of the API.\n"},"inputHash":{"type":"string","description":"Currently ignored. If pulumi preview flags this field as changed, it means that any of: \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`passphrase`\" pulumi-lang-dotnet=\"`Passphrase`\" pulumi-lang-go=\"`passphrase`\" pulumi-lang-python=\"`passphrase`\" pulumi-lang-yaml=\"`passphrase`\" pulumi-lang-java=\"`passphrase`\"\u003e`passphrase`\u003c/span\u003e has changed.\n"},"passphrase":{"type":"string","description":"The passphrase used to protect your SSL certificate.\n","secret":true},"privateKey":{"type":"string","description":"The private key of the certificate in base64 format. Optional in case of PFX certificate file format.\n","secret":true},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["certificate","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomCertificate resources.\n","properties":{"authType":{"type":"string","description":"The authentication type of the certificate (RSA/ECC). If not provided then RSA will be taken as a default.\n"},"certificate":{"type":"string","description":"The certificate file in base64 format.","secret":true},"customCertificateId":{"type":"string","description":"At the moment, only one active certificate can be stored. This exported value is always set as \u003cspan pulumi-lang-nodejs=\"`12345`\" pulumi-lang-dotnet=\"`12345`\" pulumi-lang-go=\"`12345`\" pulumi-lang-python=\"`12345`\" pulumi-lang-yaml=\"`12345`\" pulumi-lang-java=\"`12345`\"\u003e`12345`\u003c/span\u003e. This will be augmented in future versions of the API.\n"},"inputHash":{"type":"string","description":"Currently ignored. If pulumi preview flags this field as changed, it means that any of: \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`passphrase`\" pulumi-lang-dotnet=\"`Passphrase`\" pulumi-lang-go=\"`passphrase`\" pulumi-lang-python=\"`passphrase`\" pulumi-lang-yaml=\"`passphrase`\" pulumi-lang-java=\"`passphrase`\"\u003e`passphrase`\u003c/span\u003e has changed.\n"},"passphrase":{"type":"string","description":"The passphrase used to protect your SSL certificate.\n","secret":true},"privateKey":{"type":"string","description":"The private key of the certificate in base64 format. Optional in case of PFX certificate file format.\n","secret":true},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/customHsmCertificate:CustomHsmCertificate":{"description":"Provides an Incapsula Custom HSM Certificate resource.\nThe certificate content must be in base64 format.\n\n","properties":{"apiDetails":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FCustomHsmCertificateApiDetail:CustomHsmCertificateApiDetail"},"description":"The details of the API in Fortanix"},"certificate":{"type":"string","description":"The certificate file in base64 format."},"customHsmCertificateId":{"type":"string"},"inputHash":{"type":"string","description":"Currently ignored. If pulumi preview flags this field as changed, it means that any of: \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`apiDetail`\" pulumi-lang-dotnet=\"`ApiDetail`\" pulumi-lang-go=\"`apiDetail`\" pulumi-lang-python=\"`api_detail`\" pulumi-lang-yaml=\"`apiDetail`\" pulumi-lang-java=\"`apiDetail`\"\u003e`api_detail`\u003c/span\u003e has changed.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["certificate","customHsmCertificateId","siteId"],"inputProperties":{"apiDetails":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FCustomHsmCertificateApiDetail:CustomHsmCertificateApiDetail"},"description":"The details of the API in Fortanix"},"certificate":{"type":"string","description":"The certificate file in base64 format."},"customHsmCertificateId":{"type":"string"},"inputHash":{"type":"string","description":"Currently ignored. If pulumi preview flags this field as changed, it means that any of: \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`apiDetail`\" pulumi-lang-dotnet=\"`ApiDetail`\" pulumi-lang-go=\"`apiDetail`\" pulumi-lang-python=\"`api_detail`\" pulumi-lang-yaml=\"`apiDetail`\" pulumi-lang-java=\"`apiDetail`\"\u003e`api_detail`\u003c/span\u003e has changed.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["certificate","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomHsmCertificate resources.\n","properties":{"apiDetails":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FCustomHsmCertificateApiDetail:CustomHsmCertificateApiDetail"},"description":"The details of the API in Fortanix"},"certificate":{"type":"string","description":"The certificate file in base64 format."},"customHsmCertificateId":{"type":"string"},"inputHash":{"type":"string","description":"Currently ignored. If pulumi preview flags this field as changed, it means that any of: \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`apiDetail`\" pulumi-lang-dotnet=\"`ApiDetail`\" pulumi-lang-go=\"`apiDetail`\" pulumi-lang-python=\"`api_detail`\" pulumi-lang-yaml=\"`apiDetail`\" pulumi-lang-java=\"`apiDetail`\"\u003e`api_detail`\u003c/span\u003e has changed.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/dataCenter:DataCenter":{"description":"\u003e DEPRECATED:\u003cspan pulumi-lang-nodejs=\" incapsula.DataCenter\n\" pulumi-lang-dotnet=\" incapsula.DataCenter\n\" pulumi-lang-go=\" DataCenter\n\" pulumi-lang-python=\" DataCenter\n\" pulumi-lang-yaml=\" incapsula.DataCenter\n\" pulumi-lang-java=\" incapsula.DataCenter\n\"\u003e incapsula.DataCenter\n\u003c/span\u003e\nThis resource has been DEPRECATED. It will be removed in a future version. \nPlease use the current \u003cspan pulumi-lang-nodejs=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-dotnet=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-go=\"`DataCentersConfiguration`\" pulumi-lang-python=\"`DataCentersConfiguration`\" pulumi-lang-yaml=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-java=\"`incapsula.DataCentersConfiguration`\"\u003e`incapsula.DataCentersConfiguration`\u003c/span\u003e resource instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_data_center = new incapsula.DataCenter(\"example-data-center\", {\n    siteId: example_site.id,\n    name: \"Example data center\",\n    serverAddress: \"8.8.4.4\",\n    isContent: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_data_center = incapsula.DataCenter(\"example-data-center\",\n    site_id=example_site[\"id\"],\n    name=\"Example data center\",\n    server_address=\"8.8.4.4\",\n    is_content=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_data_center = new Incapsula.DataCenter(\"example-data-center\", new()\n    {\n        SiteId = example_site.Id,\n        Name = \"Example data center\",\n        ServerAddress = \"8.8.4.4\",\n        IsContent = \"true\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewDataCenter(ctx, \"example-data-center\", \u0026incapsula.DataCenterArgs{\n\t\t\tSiteId:        pulumi.Any(example_site.Id),\n\t\t\tName:          pulumi.String(\"Example data center\"),\n\t\t\tServerAddress: pulumi.String(\"8.8.4.4\"),\n\t\t\tIsContent:     pulumi.String(\"true\"),\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.incapsula.DataCenter;\nimport com.pulumi.incapsula.DataCenterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_data_center = new DataCenter(\"example-data-center\", DataCenterArgs.builder()\n            .siteId(example_site.id())\n            .name(\"Example data center\")\n            .serverAddress(\"8.8.4.4\")\n            .isContent(\"true\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-data-center:\n    type: incapsula:DataCenter\n    properties:\n      siteId: ${[\"example-site\"].id}\n      name: Example data center\n      serverAddress: 8.8.4.4\n      isContent: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nData Center can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/dataCenter:DataCenter demo 1234\n```\n","properties":{"dataCenterId":{"type":"string","description":"Unique identifier in the API for the data center.\n"},"isContent":{"type":"string","description":"The data center will be available for specific resources (Forward Delivery Rules).\n"},"isEnabled":{"type":"string","description":"Enables the data center.\n"},"name":{"type":"string","description":"The new data center's name.\n"},"serverAddress":{"type":"string","description":"The server's address. Possible values: IP, CNAME.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FDataCenterTimeouts:DataCenterTimeouts"}},"type":"object","required":["dataCenterId","isContent","name","serverAddress","siteId"],"inputProperties":{"dataCenterId":{"type":"string","description":"Unique identifier in the API for the data center.\n"},"isContent":{"type":"string","description":"The data center will be available for specific resources (Forward Delivery Rules).\n"},"isEnabled":{"type":"string","description":"Enables the data center.\n"},"name":{"type":"string","description":"The new data center's name.\n"},"serverAddress":{"type":"string","description":"The server's address. Possible values: IP, CNAME.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FDataCenterTimeouts:DataCenterTimeouts"}},"requiredInputs":["serverAddress","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering DataCenter resources.\n","properties":{"dataCenterId":{"type":"string","description":"Unique identifier in the API for the data center.\n"},"isContent":{"type":"string","description":"The data center will be available for specific resources (Forward Delivery Rules).\n"},"isEnabled":{"type":"string","description":"Enables the data center.\n"},"name":{"type":"string","description":"The new data center's name.\n"},"serverAddress":{"type":"string","description":"The server's address. Possible values: IP, CNAME.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FDataCenterTimeouts:DataCenterTimeouts"}},"type":"object"}},"incapsula:index/dataCenterServer:DataCenterServer":{"description":"\u003e DEPRECATED:\u003cspan pulumi-lang-nodejs=\" incapsula.DataCenterServer\n\" pulumi-lang-dotnet=\" incapsula.DataCenterServer\n\" pulumi-lang-go=\" DataCenterServer\n\" pulumi-lang-python=\" DataCenterServer\n\" pulumi-lang-yaml=\" incapsula.DataCenterServer\n\" pulumi-lang-java=\" incapsula.DataCenterServer\n\"\u003e incapsula.DataCenterServer\n\u003c/span\u003e\nThis resource has been deprecated. It will be removed in a future version. \nPlease use the current \u003cspan pulumi-lang-nodejs=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-dotnet=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-go=\"`DataCentersConfiguration`\" pulumi-lang-python=\"`DataCentersConfiguration`\" pulumi-lang-yaml=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-java=\"`incapsula.DataCentersConfiguration`\"\u003e`incapsula.DataCentersConfiguration`\u003c/span\u003e resource instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_data_center_server = new incapsula.DataCenterServer(\"example-data-center-server\", {\n    dcId: example_data_center.id,\n    siteId: example_site.id,\n    serverAddress: \"4.4.4.4\",\n    isEnabled: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_data_center_server = incapsula.DataCenterServer(\"example-data-center-server\",\n    dc_id=example_data_center[\"id\"],\n    site_id=example_site[\"id\"],\n    server_address=\"4.4.4.4\",\n    is_enabled=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_data_center_server = new Incapsula.DataCenterServer(\"example-data-center-server\", new()\n    {\n        DcId = example_data_center.Id,\n        SiteId = example_site.Id,\n        ServerAddress = \"4.4.4.4\",\n        IsEnabled = \"true\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewDataCenterServer(ctx, \"example-data-center-server\", \u0026incapsula.DataCenterServerArgs{\n\t\t\tDcId:          pulumi.Any(example_data_center.Id),\n\t\t\tSiteId:        pulumi.Any(example_site.Id),\n\t\t\tServerAddress: pulumi.String(\"4.4.4.4\"),\n\t\t\tIsEnabled:     pulumi.String(\"true\"),\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.incapsula.DataCenterServer;\nimport com.pulumi.incapsula.DataCenterServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_data_center_server = new DataCenterServer(\"example-data-center-server\", DataCenterServerArgs.builder()\n            .dcId(example_data_center.id())\n            .siteId(example_site.id())\n            .serverAddress(\"4.4.4.4\")\n            .isEnabled(\"true\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-data-center-server:\n    type: incapsula:DataCenterServer\n    properties:\n      dcId: ${[\"example-data-center\"].id}\n      siteId: ${[\"example-site\"].id}\n      serverAddress: 4.4.4.4\n      isEnabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nData Center Server can be imported using the role `site_id`, `dc_id`, and `server_id` separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/dataCenterServer:DataCenterServer demo site_id/dc_id/server_id\n```\n","properties":{"dataCenterServerId":{"type":"string","description":"Unique identifier in the API for the data center server.\n"},"dcId":{"type":"string","description":"Numeric identifier of the data center server to operate on.\n"},"isEnabled":{"type":"string","description":"Enables the data center server.\n"},"isStandby":{"type":"string","description":"Set the server as Active (P0) or Standby (P1).\n"},"serverAddress":{"type":"string","description":"The server's address.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["dataCenterServerId","dcId","siteId"],"inputProperties":{"dataCenterServerId":{"type":"string","description":"Unique identifier in the API for the data center server.\n"},"dcId":{"type":"string","description":"Numeric identifier of the data center server to operate on.\n"},"isEnabled":{"type":"string","description":"Enables the data center server.\n"},"isStandby":{"type":"string","description":"Set the server as Active (P0) or Standby (P1).\n"},"serverAddress":{"type":"string","description":"The server's address.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["dcId","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering DataCenterServer resources.\n","properties":{"dataCenterServerId":{"type":"string","description":"Unique identifier in the API for the data center server.\n"},"dcId":{"type":"string","description":"Numeric identifier of the data center server to operate on.\n"},"isEnabled":{"type":"string","description":"Enables the data center server.\n"},"isStandby":{"type":"string","description":"Set the server as Active (P0) or Standby (P1).\n"},"serverAddress":{"type":"string","description":"The server's address.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/dataCentersConfiguration:DataCentersConfiguration":{"description":"Provides a Incapsula Data Centers Configuration resource. \nEach Site must have one or more Data Centers.\nEach Data Center must have one or more Origin Servers.\nBoth Load Balancing and Failover can be configured for both Data Centers and Origin Servers.\nEach Data Center can be assigned to serve a specific list of Geo locations.\nOr be dedicated to serve requests that were routed using AD Forward Rules.\n\n## Example Usage\n\n### Basic Usage - Single Data Center with one Active and one Standby Origin Servers\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_basic_data_centers_configuration = new incapsula.DataCentersConfiguration(\"example-basic-data-centers-configuration\", {\n    siteId: example_basic_site.id,\n    siteTopology: \"SINGLE_DC\",\n    dataCenters: [{\n        name: \"New DC\",\n        ipMode: \"MULTIPLE_IP\",\n        originServers: [\n            {\n                address: \"54.74.193.120\",\n                isActive: true,\n            },\n            {\n                address: \"44.72.103.175\",\n                isActive: false,\n            },\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_basic_data_centers_configuration = incapsula.DataCentersConfiguration(\"example-basic-data-centers-configuration\",\n    site_id=example_basic_site[\"id\"],\n    site_topology=\"SINGLE_DC\",\n    data_centers=[{\n        \"name\": \"New DC\",\n        \"ip_mode\": \"MULTIPLE_IP\",\n        \"origin_servers\": [\n            {\n                \"address\": \"54.74.193.120\",\n                \"is_active\": True,\n            },\n            {\n                \"address\": \"44.72.103.175\",\n                \"is_active\": False,\n            },\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_basic_data_centers_configuration = new Incapsula.DataCentersConfiguration(\"example-basic-data-centers-configuration\", new()\n    {\n        SiteId = example_basic_site.Id,\n        SiteTopology = \"SINGLE_DC\",\n        DataCenters = new[]\n        {\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"New DC\",\n                IpMode = \"MULTIPLE_IP\",\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.74.193.120\",\n                        IsActive = true,\n                    },\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"44.72.103.175\",\n                        IsActive = false,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewDataCentersConfiguration(ctx, \"example-basic-data-centers-configuration\", \u0026incapsula.DataCentersConfigurationArgs{\n\t\t\tSiteId:       pulumi.Any(example_basic_site.Id),\n\t\t\tSiteTopology: pulumi.String(\"SINGLE_DC\"),\n\t\t\tDataCenters: incapsula.DataCentersConfigurationDataCenterArray{\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:   pulumi.String(\"New DC\"),\n\t\t\t\t\tIpMode: pulumi.String(\"MULTIPLE_IP\"),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress:  pulumi.String(\"54.74.193.120\"),\n\t\t\t\t\t\t\tIsActive: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress:  pulumi.String(\"44.72.103.175\"),\n\t\t\t\t\t\t\tIsActive: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.DataCentersConfiguration;\nimport com.pulumi.incapsula.DataCentersConfigurationArgs;\nimport com.pulumi.incapsula.inputs.DataCentersConfigurationDataCenterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_basic_data_centers_configuration = new DataCentersConfiguration(\"example-basic-data-centers-configuration\", DataCentersConfigurationArgs.builder()\n            .siteId(example_basic_site.id())\n            .siteTopology(\"SINGLE_DC\")\n            .dataCenters(DataCentersConfigurationDataCenterArgs.builder()\n                .name(\"New DC\")\n                .ipMode(\"MULTIPLE_IP\")\n                .originServers(                \n                    DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"54.74.193.120\")\n                        .isActive(true)\n                        .build(),\n                    DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"44.72.103.175\")\n                        .isActive(false)\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-basic-data-centers-configuration:\n    type: incapsula:DataCentersConfiguration\n    properties:\n      siteId: ${[\"example-basic-site\"].id}\n      siteTopology: SINGLE_DC\n      dataCenters:\n        - name: New DC\n          ipMode: MULTIPLE_IP\n          originServers:\n            - address: 54.74.193.120\n              isActive: true\n            - address: 44.72.103.175\n              isActive: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple Data Centers across Geo Locations\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_geo_assigned_data_centers_configuration = new incapsula.DataCentersConfiguration(\"example-geo-assigned-data-centers-configuration\", {\n    siteId: example_geo_assigned_site.id,\n    isPersistent: true,\n    siteLbAlgorithm: \"GEO_PREFERRED\",\n    siteTopology: \"MULTIPLE_DC\",\n    dataCenters: [\n        {\n            name: \"Rest of the world DC\",\n            ipMode: \"MULTIPLE_IP\",\n            isRestOfTheWorld: true,\n            originPop: \"hkg\",\n            originServers: [{\n                address: \"55.66.77.123\",\n                isActive: true,\n                isEnabled: true,\n            }],\n        },\n        {\n            name: \"EMEA DC\",\n            geoLocations: \"AFRICA,EUROPE,ASIA\",\n            originPop: \"lon\",\n            originServers: [{\n                address: \"54.74.193.120\",\n                isActive: true,\n            }],\n        },\n        {\n            name: \"Americas DC\",\n            geoLocations: \"US_EAST,US_WEST\",\n            originPop: \"iad\",\n            originServers: [{\n                address: \"54.90.145.67\",\n                isActive: true,\n                isEnabled: true,\n            }],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_geo_assigned_data_centers_configuration = incapsula.DataCentersConfiguration(\"example-geo-assigned-data-centers-configuration\",\n    site_id=example_geo_assigned_site[\"id\"],\n    is_persistent=True,\n    site_lb_algorithm=\"GEO_PREFERRED\",\n    site_topology=\"MULTIPLE_DC\",\n    data_centers=[\n        {\n            \"name\": \"Rest of the world DC\",\n            \"ip_mode\": \"MULTIPLE_IP\",\n            \"is_rest_of_the_world\": True,\n            \"origin_pop\": \"hkg\",\n            \"origin_servers\": [{\n                \"address\": \"55.66.77.123\",\n                \"is_active\": True,\n                \"is_enabled\": True,\n            }],\n        },\n        {\n            \"name\": \"EMEA DC\",\n            \"geo_locations\": \"AFRICA,EUROPE,ASIA\",\n            \"origin_pop\": \"lon\",\n            \"origin_servers\": [{\n                \"address\": \"54.74.193.120\",\n                \"is_active\": True,\n            }],\n        },\n        {\n            \"name\": \"Americas DC\",\n            \"geo_locations\": \"US_EAST,US_WEST\",\n            \"origin_pop\": \"iad\",\n            \"origin_servers\": [{\n                \"address\": \"54.90.145.67\",\n                \"is_active\": True,\n                \"is_enabled\": True,\n            }],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_geo_assigned_data_centers_configuration = new Incapsula.DataCentersConfiguration(\"example-geo-assigned-data-centers-configuration\", new()\n    {\n        SiteId = example_geo_assigned_site.Id,\n        IsPersistent = true,\n        SiteLbAlgorithm = \"GEO_PREFERRED\",\n        SiteTopology = \"MULTIPLE_DC\",\n        DataCenters = new[]\n        {\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"Rest of the world DC\",\n                IpMode = \"MULTIPLE_IP\",\n                IsRestOfTheWorld = true,\n                OriginPop = \"hkg\",\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"55.66.77.123\",\n                        IsActive = true,\n                        IsEnabled = true,\n                    },\n                },\n            },\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"EMEA DC\",\n                GeoLocations = \"AFRICA,EUROPE,ASIA\",\n                OriginPop = \"lon\",\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.74.193.120\",\n                        IsActive = true,\n                    },\n                },\n            },\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"Americas DC\",\n                GeoLocations = \"US_EAST,US_WEST\",\n                OriginPop = \"iad\",\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.90.145.67\",\n                        IsActive = true,\n                        IsEnabled = true,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewDataCentersConfiguration(ctx, \"example-geo-assigned-data-centers-configuration\", \u0026incapsula.DataCentersConfigurationArgs{\n\t\t\tSiteId:          pulumi.Any(example_geo_assigned_site.Id),\n\t\t\tIsPersistent:    pulumi.Bool(true),\n\t\t\tSiteLbAlgorithm: pulumi.String(\"GEO_PREFERRED\"),\n\t\t\tSiteTopology:    pulumi.String(\"MULTIPLE_DC\"),\n\t\t\tDataCenters: incapsula.DataCentersConfigurationDataCenterArray{\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:             pulumi.String(\"Rest of the world DC\"),\n\t\t\t\t\tIpMode:           pulumi.String(\"MULTIPLE_IP\"),\n\t\t\t\t\tIsRestOfTheWorld: pulumi.Bool(true),\n\t\t\t\t\tOriginPop:        pulumi.String(\"hkg\"),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress:   pulumi.String(\"55.66.77.123\"),\n\t\t\t\t\t\t\tIsActive:  pulumi.Bool(true),\n\t\t\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:         pulumi.String(\"EMEA DC\"),\n\t\t\t\t\tGeoLocations: pulumi.String(\"AFRICA,EUROPE,ASIA\"),\n\t\t\t\t\tOriginPop:    pulumi.String(\"lon\"),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress:  pulumi.String(\"54.74.193.120\"),\n\t\t\t\t\t\t\tIsActive: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:         pulumi.String(\"Americas DC\"),\n\t\t\t\t\tGeoLocations: pulumi.String(\"US_EAST,US_WEST\"),\n\t\t\t\t\tOriginPop:    pulumi.String(\"iad\"),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress:   pulumi.String(\"54.90.145.67\"),\n\t\t\t\t\t\t\tIsActive:  pulumi.Bool(true),\n\t\t\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.DataCentersConfiguration;\nimport com.pulumi.incapsula.DataCentersConfigurationArgs;\nimport com.pulumi.incapsula.inputs.DataCentersConfigurationDataCenterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_geo_assigned_data_centers_configuration = new DataCentersConfiguration(\"example-geo-assigned-data-centers-configuration\", DataCentersConfigurationArgs.builder()\n            .siteId(example_geo_assigned_site.id())\n            .isPersistent(true)\n            .siteLbAlgorithm(\"GEO_PREFERRED\")\n            .siteTopology(\"MULTIPLE_DC\")\n            .dataCenters(            \n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"Rest of the world DC\")\n                    .ipMode(\"MULTIPLE_IP\")\n                    .isRestOfTheWorld(true)\n                    .originPop(\"hkg\")\n                    .originServers(DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"55.66.77.123\")\n                        .isActive(true)\n                        .isEnabled(true)\n                        .build())\n                    .build(),\n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"EMEA DC\")\n                    .geoLocations(\"AFRICA,EUROPE,ASIA\")\n                    .originPop(\"lon\")\n                    .originServers(DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"54.74.193.120\")\n                        .isActive(true)\n                        .build())\n                    .build(),\n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"Americas DC\")\n                    .geoLocations(\"US_EAST,US_WEST\")\n                    .originPop(\"iad\")\n                    .originServers(DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"54.90.145.67\")\n                        .isActive(true)\n                        .isEnabled(true)\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-geo-assigned-data-centers-configuration:\n    type: incapsula:DataCentersConfiguration\n    properties:\n      siteId: ${[\"example-geo-assigned-site\"].id}\n      isPersistent: true\n      siteLbAlgorithm: GEO_PREFERRED\n      siteTopology: MULTIPLE_DC\n      dataCenters:\n        - name: Rest of the world DC\n          ipMode: MULTIPLE_IP\n          isRestOfTheWorld: true\n          originPop: hkg\n          originServers:\n            - address: 55.66.77.123\n              isActive: true\n              isEnabled: true\n        - name: EMEA DC\n          geoLocations: AFRICA,EUROPE,ASIA\n          originPop: lon\n          originServers:\n            - address: 54.74.193.120\n              isActive: true\n        - name: Americas DC\n          geoLocations: US_EAST,US_WEST\n          originPop: iad\n          originServers:\n            - address: 54.90.145.67\n              isActive: true\n              isEnabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple Data Centers with different capacities plus a dedicated Data Center for handling AD forward rules' traffic \n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_weighted_data_centers_configuration = new incapsula.DataCentersConfiguration(\"example-weighted-data-centers-configuration\", {\n    siteId: example_weighted_site.id,\n    isPersistent: true,\n    siteLbAlgorithm: \"WEIGHTED_LB\",\n    siteTopology: \"MULTIPLE_DC\",\n    dataCenters: [\n        {\n            name: \"AD Forward Rules DC\",\n            isContent: true,\n            originServers: [{\n                address: \"55.66.77.123\",\n            }],\n        },\n        {\n            name: \"Powerful DC\",\n            weight: 67,\n            originServers: [{\n                address: \"54.74.193.120\",\n                isActive: true,\n            }],\n        },\n        {\n            name: \"Slagish DC\",\n            weight: 33,\n            dcLbAlgorithm: \"WEIGHTED\",\n            originServers: [\n                {\n                    address: \"54.90.145.67\",\n                    weight: 50,\n                },\n                {\n                    address: \"54.90.145.68\",\n                    weight: 30,\n                },\n                {\n                    address: \"54.90.145.69\",\n                    weight: 20,\n                },\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_weighted_data_centers_configuration = incapsula.DataCentersConfiguration(\"example-weighted-data-centers-configuration\",\n    site_id=example_weighted_site[\"id\"],\n    is_persistent=True,\n    site_lb_algorithm=\"WEIGHTED_LB\",\n    site_topology=\"MULTIPLE_DC\",\n    data_centers=[\n        {\n            \"name\": \"AD Forward Rules DC\",\n            \"is_content\": True,\n            \"origin_servers\": [{\n                \"address\": \"55.66.77.123\",\n            }],\n        },\n        {\n            \"name\": \"Powerful DC\",\n            \"weight\": 67,\n            \"origin_servers\": [{\n                \"address\": \"54.74.193.120\",\n                \"is_active\": True,\n            }],\n        },\n        {\n            \"name\": \"Slagish DC\",\n            \"weight\": 33,\n            \"dc_lb_algorithm\": \"WEIGHTED\",\n            \"origin_servers\": [\n                {\n                    \"address\": \"54.90.145.67\",\n                    \"weight\": 50,\n                },\n                {\n                    \"address\": \"54.90.145.68\",\n                    \"weight\": 30,\n                },\n                {\n                    \"address\": \"54.90.145.69\",\n                    \"weight\": 20,\n                },\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_weighted_data_centers_configuration = new Incapsula.DataCentersConfiguration(\"example-weighted-data-centers-configuration\", new()\n    {\n        SiteId = example_weighted_site.Id,\n        IsPersistent = true,\n        SiteLbAlgorithm = \"WEIGHTED_LB\",\n        SiteTopology = \"MULTIPLE_DC\",\n        DataCenters = new[]\n        {\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"AD Forward Rules DC\",\n                IsContent = true,\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"55.66.77.123\",\n                    },\n                },\n            },\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"Powerful DC\",\n                Weight = 67,\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.74.193.120\",\n                        IsActive = true,\n                    },\n                },\n            },\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"Slagish DC\",\n                Weight = 33,\n                DcLbAlgorithm = \"WEIGHTED\",\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.90.145.67\",\n                        Weight = 50,\n                    },\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.90.145.68\",\n                        Weight = 30,\n                    },\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.90.145.69\",\n                        Weight = 20,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewDataCentersConfiguration(ctx, \"example-weighted-data-centers-configuration\", \u0026incapsula.DataCentersConfigurationArgs{\n\t\t\tSiteId:          pulumi.Any(example_weighted_site.Id),\n\t\t\tIsPersistent:    pulumi.Bool(true),\n\t\t\tSiteLbAlgorithm: pulumi.String(\"WEIGHTED_LB\"),\n\t\t\tSiteTopology:    pulumi.String(\"MULTIPLE_DC\"),\n\t\t\tDataCenters: incapsula.DataCentersConfigurationDataCenterArray{\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:      pulumi.String(\"AD Forward Rules DC\"),\n\t\t\t\t\tIsContent: pulumi.Bool(true),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress: pulumi.String(\"55.66.77.123\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:   pulumi.String(\"Powerful DC\"),\n\t\t\t\t\tWeight: pulumi.Float64(67),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress:  pulumi.String(\"54.74.193.120\"),\n\t\t\t\t\t\t\tIsActive: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:          pulumi.String(\"Slagish DC\"),\n\t\t\t\t\tWeight:        pulumi.Float64(33),\n\t\t\t\t\tDcLbAlgorithm: pulumi.String(\"WEIGHTED\"),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress: pulumi.String(\"54.90.145.67\"),\n\t\t\t\t\t\t\tWeight:  pulumi.Float64(50),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress: pulumi.String(\"54.90.145.68\"),\n\t\t\t\t\t\t\tWeight:  pulumi.Float64(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress: pulumi.String(\"54.90.145.69\"),\n\t\t\t\t\t\t\tWeight:  pulumi.Float64(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.DataCentersConfiguration;\nimport com.pulumi.incapsula.DataCentersConfigurationArgs;\nimport com.pulumi.incapsula.inputs.DataCentersConfigurationDataCenterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_weighted_data_centers_configuration = new DataCentersConfiguration(\"example-weighted-data-centers-configuration\", DataCentersConfigurationArgs.builder()\n            .siteId(example_weighted_site.id())\n            .isPersistent(true)\n            .siteLbAlgorithm(\"WEIGHTED_LB\")\n            .siteTopology(\"MULTIPLE_DC\")\n            .dataCenters(            \n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"AD Forward Rules DC\")\n                    .isContent(true)\n                    .originServers(DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"55.66.77.123\")\n                        .build())\n                    .build(),\n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"Powerful DC\")\n                    .weight(67.0)\n                    .originServers(DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"54.74.193.120\")\n                        .isActive(true)\n                        .build())\n                    .build(),\n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"Slagish DC\")\n                    .weight(33.0)\n                    .dcLbAlgorithm(\"WEIGHTED\")\n                    .originServers(                    \n                        DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                            .address(\"54.90.145.67\")\n                            .weight(50.0)\n                            .build(),\n                        DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                            .address(\"54.90.145.68\")\n                            .weight(30.0)\n                            .build(),\n                        DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                            .address(\"54.90.145.69\")\n                            .weight(20.0)\n                            .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-weighted-data-centers-configuration:\n    type: incapsula:DataCentersConfiguration\n    properties:\n      siteId: ${[\"example-weighted-site\"].id}\n      isPersistent: true\n      siteLbAlgorithm: WEIGHTED_LB\n      siteTopology: MULTIPLE_DC\n      dataCenters:\n        - name: AD Forward Rules DC\n          isContent: true\n          originServers:\n            - address: 55.66.77.123\n        - name: Powerful DC\n          weight: 67\n          originServers:\n            - address: 54.74.193.120\n              isActive: true\n        - name: Slagish DC\n          weight: 33\n          dcLbAlgorithm: WEIGHTED\n          originServers:\n            - address: 54.90.145.67\n              weight: 50\n            - address: 54.90.145.68\n              weight: 30\n            - address: 54.90.145.69\n              weight: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nData Centers Configuration can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/dataCentersConfiguration:DataCentersConfiguration demo 1234\n```\n","properties":{"dataCenters":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FDataCentersConfigurationDataCenter:DataCentersConfigurationDataCenter"},"description":"A set of Data Centers and their Origin Servers"},"dataCentersConfigurationId":{"type":"string","description":"Unique identifier in the API for the data centers configuration. The id is identical to Site id.\n"},"failOverRequiredMonitors":{"type":"string","description":"How many Imperva PoPs should assess Data Center as down before failover is performed. One of: ONE, MANY, MOST, ALL.\n"},"isPersistent":{"type":"boolean","description":"When true (the default) our proxy servers will maintain session stickiness to origin servers by a cookie.\n\nAt least one \u003cspan pulumi-lang-nodejs=\"`dataCenter`\" pulumi-lang-dotnet=\"`DataCenter`\" pulumi-lang-go=\"`dataCenter`\" pulumi-lang-python=\"`data_center`\" pulumi-lang-yaml=\"`dataCenter`\" pulumi-lang-java=\"`dataCenter`\"\u003e`data_center`\u003c/span\u003e sub resource must be defined.\nThe following Data Center arguments are supported:\n"},"kickstartPassword":{"type":"string","description":"User name, if required by the kickstart URL.\n"},"kickstartUrl":{"type":"string","description":"The URL that will be sent to the standby server when Imperva performs failover based on our monitoring. E.g. \"https://www.example.com/kickStart\".\n"},"kickstartUser":{"type":"string","description":"User name, if required by the kickstart URL.\n"},"minAvailableServersForDcUp":{"type":"number","description":"The minimal number of available data center's servers to consider that data center as UP. Default: 1.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"siteLbAlgorithm":{"type":"string","description":"How to load balance between multiple Data Centers. One of: BEST_CONNECTION_TIME, GEO_PREFERRED, GEO_REQUIRED, WEIGHTED_LB.\n"},"siteTopology":{"type":"string","description":"One of: SINGLE_SERVER (no failover), SINGLE_DC (allows failover and LB), or MULTIPLE_DC (allows also Geo and/or AD Forward rules assignment)\n"}},"type":"object","required":["dataCenters","dataCentersConfigurationId","siteId"],"inputProperties":{"dataCenters":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FDataCentersConfigurationDataCenter:DataCentersConfigurationDataCenter"},"description":"A set of Data Centers and their Origin Servers"},"dataCentersConfigurationId":{"type":"string","description":"Unique identifier in the API for the data centers configuration. The id is identical to Site id.\n"},"failOverRequiredMonitors":{"type":"string","description":"How many Imperva PoPs should assess Data Center as down before failover is performed. One of: ONE, MANY, MOST, ALL.\n"},"isPersistent":{"type":"boolean","description":"When true (the default) our proxy servers will maintain session stickiness to origin servers by a cookie.\n\nAt least one \u003cspan pulumi-lang-nodejs=\"`dataCenter`\" pulumi-lang-dotnet=\"`DataCenter`\" pulumi-lang-go=\"`dataCenter`\" pulumi-lang-python=\"`data_center`\" pulumi-lang-yaml=\"`dataCenter`\" pulumi-lang-java=\"`dataCenter`\"\u003e`data_center`\u003c/span\u003e sub resource must be defined.\nThe following Data Center arguments are supported:\n"},"kickstartPassword":{"type":"string","description":"User name, if required by the kickstart URL.\n"},"kickstartUrl":{"type":"string","description":"The URL that will be sent to the standby server when Imperva performs failover based on our monitoring. E.g. \"https://www.example.com/kickStart\".\n"},"kickstartUser":{"type":"string","description":"User name, if required by the kickstart URL.\n"},"minAvailableServersForDcUp":{"type":"number","description":"The minimal number of available data center's servers to consider that data center as UP. Default: 1.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"siteLbAlgorithm":{"type":"string","description":"How to load balance between multiple Data Centers. One of: BEST_CONNECTION_TIME, GEO_PREFERRED, GEO_REQUIRED, WEIGHTED_LB.\n"},"siteTopology":{"type":"string","description":"One of: SINGLE_SERVER (no failover), SINGLE_DC (allows failover and LB), or MULTIPLE_DC (allows also Geo and/or AD Forward rules assignment)\n"}},"requiredInputs":["dataCenters","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering DataCentersConfiguration resources.\n","properties":{"dataCenters":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FDataCentersConfigurationDataCenter:DataCentersConfigurationDataCenter"},"description":"A set of Data Centers and their Origin Servers"},"dataCentersConfigurationId":{"type":"string","description":"Unique identifier in the API for the data centers configuration. The id is identical to Site id.\n"},"failOverRequiredMonitors":{"type":"string","description":"How many Imperva PoPs should assess Data Center as down before failover is performed. One of: ONE, MANY, MOST, ALL.\n"},"isPersistent":{"type":"boolean","description":"When true (the default) our proxy servers will maintain session stickiness to origin servers by a cookie.\n\nAt least one \u003cspan pulumi-lang-nodejs=\"`dataCenter`\" pulumi-lang-dotnet=\"`DataCenter`\" pulumi-lang-go=\"`dataCenter`\" pulumi-lang-python=\"`data_center`\" pulumi-lang-yaml=\"`dataCenter`\" pulumi-lang-java=\"`dataCenter`\"\u003e`data_center`\u003c/span\u003e sub resource must be defined.\nThe following Data Center arguments are supported:\n"},"kickstartPassword":{"type":"string","description":"User name, if required by the kickstart URL.\n"},"kickstartUrl":{"type":"string","description":"The URL that will be sent to the standby server when Imperva performs failover based on our monitoring. E.g. \"https://www.example.com/kickStart\".\n"},"kickstartUser":{"type":"string","description":"User name, if required by the kickstart URL.\n"},"minAvailableServersForDcUp":{"type":"number","description":"The minimal number of available data center's servers to consider that data center as UP. Default: 1.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"siteLbAlgorithm":{"type":"string","description":"How to load balance between multiple Data Centers. One of: BEST_CONNECTION_TIME, GEO_PREFERRED, GEO_REQUIRED, WEIGHTED_LB.\n"},"siteTopology":{"type":"string","description":"One of: SINGLE_SERVER (no failover), SINGLE_DC (allows failover and LB), or MULTIPLE_DC (allows also Geo and/or AD Forward rules assignment)\n"}},"type":"object"}},"incapsula:index/deliveryRulesConfiguration:DeliveryRulesConfiguration":{"description":"Provides the delivery rules configuration for a specific site. The order of rules execution (a.k.a. priority) is the same as the order they are defined in the resource configuration. \n\nCurrently there are 5 possible types of delivery rule:\n* **REDIRECT** - Redirect requests with 30X response.\n* **REWRITE** - Modify, add, and remove different request attributes such as URL, headers and cookies.\n* **REWRITE_RESPONSE** - Modify, add, and remove different response attributes such as headers, statuc code and error responses.\n* **FORWARD** - Forward the request to a specific data-center or port.\n* **SIMPLIFIED_REDIRECT** - Available as a separate resource: \u003cspan pulumi-lang-nodejs=\"`simplifiedRedirectRulesConfiguration`\" pulumi-lang-dotnet=\"`SimplifiedRedirectRulesConfiguration`\" pulumi-lang-go=\"`simplifiedRedirectRulesConfiguration`\" pulumi-lang-python=\"`simplified_redirect_rules_configuration`\" pulumi-lang-yaml=\"`simplifiedRedirectRulesConfiguration`\" pulumi-lang-java=\"`simplifiedRedirectRulesConfiguration`\"\u003e`simplified_redirect_rules_configuration`\u003c/span\u003e\n\n**Important Notes:** \n* When using this resource, the rule names within each category must be unique. When multiple rules have the same name, the update would fail with an error message specifying the index of the offending rules.\n* This resource replaces all rules within the specified category, so existing rules that are not specified in the configuration will be deleted. In particular, this resource cannot be used with \u003cspan pulumi-lang-nodejs=\"`incapsula.IncapRule`\" pulumi-lang-dotnet=\"`incapsula.IncapRule`\" pulumi-lang-go=\"`IncapRule`\" pulumi-lang-python=\"`IncapRule`\" pulumi-lang-yaml=\"`incapsula.IncapRule`\" pulumi-lang-java=\"`incapsula.IncapRule`\"\u003e`incapsula.IncapRule`\u003c/span\u003e to configure rules for the same category type.\n\n\n## `REWRITE_RESPONSE` RULES\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst rewrite_response_rules = new incapsula.DeliveryRulesConfiguration(\"rewrite-response-rules\", {\n    category: \"REWRITE_RESPONSE\",\n    siteId: example_site.id,\n    rules: [\n        {\n            filter: \"ASN == 1\",\n            headerName: \"abc\",\n            multipleHeadersDeletion: false,\n            ruleName: \"New delivery rule\",\n            action: \"RULE_ACTION_RESPONSE_DELETE_HEADER\",\n            enabled: true,\n        },\n        {\n            filter: \"ASN == 1\",\n            headerName: \"abc\",\n            from: \"header1\",\n            to: \"header2\",\n            rewriteExisting: true,\n            addIfMissing: false,\n            ruleName: \"New delivery rule\",\n            action: \"RULE_ACTION_RESPONSE_REWRITE_HEADER\",\n            enabled: true,\n        },\n        {\n            filter: \"ASN == 1\",\n            responseCode: 302,\n            ruleName: \"New delivery rule\",\n            action: \"RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE\",\n            enabled: true,\n        },\n        {\n            filter: \"ASN == 1\",\n            errorResponseFormat: \"[JSON|XML]\",\n            errorResponseData: \"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\",\n            errorType: \"error.type.all\",\n            responseCode: 400,\n            ruleName: \"New delivery rule\",\n            action: \"RULE_ACTION_CUSTOM_ERROR_RESPONSE\",\n            enabled: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nrewrite_response_rules = incapsula.DeliveryRulesConfiguration(\"rewrite-response-rules\",\n    category=\"REWRITE_RESPONSE\",\n    site_id=example_site[\"id\"],\n    rules=[\n        {\n            \"filter\": \"ASN == 1\",\n            \"header_name\": \"abc\",\n            \"multiple_headers_deletion\": False,\n            \"rule_name\": \"New delivery rule\",\n            \"action\": \"RULE_ACTION_RESPONSE_DELETE_HEADER\",\n            \"enabled\": True,\n        },\n        {\n            \"filter\": \"ASN == 1\",\n            \"header_name\": \"abc\",\n            \"from_\": \"header1\",\n            \"to\": \"header2\",\n            \"rewrite_existing\": True,\n            \"add_if_missing\": False,\n            \"rule_name\": \"New delivery rule\",\n            \"action\": \"RULE_ACTION_RESPONSE_REWRITE_HEADER\",\n            \"enabled\": True,\n        },\n        {\n            \"filter\": \"ASN == 1\",\n            \"response_code\": 302,\n            \"rule_name\": \"New delivery rule\",\n            \"action\": \"RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE\",\n            \"enabled\": True,\n        },\n        {\n            \"filter\": \"ASN == 1\",\n            \"error_response_format\": \"[JSON|XML]\",\n            \"error_response_data\": \"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\",\n            \"error_type\": \"error.type.all\",\n            \"response_code\": 400,\n            \"rule_name\": \"New delivery rule\",\n            \"action\": \"RULE_ACTION_CUSTOM_ERROR_RESPONSE\",\n            \"enabled\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rewrite_response_rules = new Incapsula.DeliveryRulesConfiguration(\"rewrite-response-rules\", new()\n    {\n        Category = \"REWRITE_RESPONSE\",\n        SiteId = example_site.Id,\n        Rules = new[]\n        {\n            new Incapsula.Inputs.DeliveryRulesConfigurationRuleArgs\n            {\n                Filter = \"ASN == 1\",\n                HeaderName = \"abc\",\n                MultipleHeadersDeletion = false,\n                RuleName = \"New delivery rule\",\n                Action = \"RULE_ACTION_RESPONSE_DELETE_HEADER\",\n                Enabled = true,\n            },\n            new Incapsula.Inputs.DeliveryRulesConfigurationRuleArgs\n            {\n                Filter = \"ASN == 1\",\n                HeaderName = \"abc\",\n                From = \"header1\",\n                To = \"header2\",\n                RewriteExisting = true,\n                AddIfMissing = false,\n                RuleName = \"New delivery rule\",\n                Action = \"RULE_ACTION_RESPONSE_REWRITE_HEADER\",\n                Enabled = true,\n            },\n            new Incapsula.Inputs.DeliveryRulesConfigurationRuleArgs\n            {\n                Filter = \"ASN == 1\",\n                ResponseCode = 302,\n                RuleName = \"New delivery rule\",\n                Action = \"RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE\",\n                Enabled = true,\n            },\n            new Incapsula.Inputs.DeliveryRulesConfigurationRuleArgs\n            {\n                Filter = \"ASN == 1\",\n                ErrorResponseFormat = \"[JSON|XML]\",\n                ErrorResponseData = \"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\",\n                ErrorType = \"error.type.all\",\n                ResponseCode = 400,\n                RuleName = \"New delivery rule\",\n                Action = \"RULE_ACTION_CUSTOM_ERROR_RESPONSE\",\n                Enabled = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewDeliveryRulesConfiguration(ctx, \"rewrite-response-rules\", \u0026incapsula.DeliveryRulesConfigurationArgs{\n\t\t\tCategory: pulumi.String(\"REWRITE_RESPONSE\"),\n\t\t\tSiteId:   pulumi.Any(example_site.Id),\n\t\t\tRules: incapsula.DeliveryRulesConfigurationRuleArray{\n\t\t\t\t\u0026incapsula.DeliveryRulesConfigurationRuleArgs{\n\t\t\t\t\tFilter:                  pulumi.String(\"ASN == 1\"),\n\t\t\t\t\tHeaderName:              pulumi.String(\"abc\"),\n\t\t\t\t\tMultipleHeadersDeletion: pulumi.Bool(false),\n\t\t\t\t\tRuleName:                pulumi.String(\"New delivery rule\"),\n\t\t\t\t\tAction:                  pulumi.String(\"RULE_ACTION_RESPONSE_DELETE_HEADER\"),\n\t\t\t\t\tEnabled:                 pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DeliveryRulesConfigurationRuleArgs{\n\t\t\t\t\tFilter:          pulumi.String(\"ASN == 1\"),\n\t\t\t\t\tHeaderName:      pulumi.String(\"abc\"),\n\t\t\t\t\tFrom:            pulumi.String(\"header1\"),\n\t\t\t\t\tTo:              pulumi.String(\"header2\"),\n\t\t\t\t\tRewriteExisting: pulumi.Bool(true),\n\t\t\t\t\tAddIfMissing:    pulumi.Bool(false),\n\t\t\t\t\tRuleName:        pulumi.String(\"New delivery rule\"),\n\t\t\t\t\tAction:          pulumi.String(\"RULE_ACTION_RESPONSE_REWRITE_HEADER\"),\n\t\t\t\t\tEnabled:         pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DeliveryRulesConfigurationRuleArgs{\n\t\t\t\t\tFilter:       pulumi.String(\"ASN == 1\"),\n\t\t\t\t\tResponseCode: pulumi.Float64(302),\n\t\t\t\t\tRuleName:     pulumi.String(\"New delivery rule\"),\n\t\t\t\t\tAction:       pulumi.String(\"RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE\"),\n\t\t\t\t\tEnabled:      pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DeliveryRulesConfigurationRuleArgs{\n\t\t\t\t\tFilter:              pulumi.String(\"ASN == 1\"),\n\t\t\t\t\tErrorResponseFormat: pulumi.String(\"[JSON|XML]\"),\n\t\t\t\t\tErrorResponseData:   pulumi.String(\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\"),\n\t\t\t\t\tErrorType:           pulumi.String(\"error.type.all\"),\n\t\t\t\t\tResponseCode:        pulumi.Float64(400),\n\t\t\t\t\tRuleName:            pulumi.String(\"New delivery rule\"),\n\t\t\t\t\tAction:              pulumi.String(\"RULE_ACTION_CUSTOM_ERROR_RESPONSE\"),\n\t\t\t\t\tEnabled:             pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.DeliveryRulesConfiguration;\nimport com.pulumi.incapsula.DeliveryRulesConfigurationArgs;\nimport com.pulumi.incapsula.inputs.DeliveryRulesConfigurationRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rewrite_response_rules = new DeliveryRulesConfiguration(\"rewrite-response-rules\", DeliveryRulesConfigurationArgs.builder()\n            .category(\"REWRITE_RESPONSE\")\n            .siteId(example_site.id())\n            .rules(            \n                DeliveryRulesConfigurationRuleArgs.builder()\n                    .filter(\"ASN == 1\")\n                    .headerName(\"abc\")\n                    .multipleHeadersDeletion(false)\n                    .ruleName(\"New delivery rule\")\n                    .action(\"RULE_ACTION_RESPONSE_DELETE_HEADER\")\n                    .enabled(true)\n                    .build(),\n                DeliveryRulesConfigurationRuleArgs.builder()\n                    .filter(\"ASN == 1\")\n                    .headerName(\"abc\")\n                    .from(\"header1\")\n                    .to(\"header2\")\n                    .rewriteExisting(true)\n                    .addIfMissing(false)\n                    .ruleName(\"New delivery rule\")\n                    .action(\"RULE_ACTION_RESPONSE_REWRITE_HEADER\")\n                    .enabled(true)\n                    .build(),\n                DeliveryRulesConfigurationRuleArgs.builder()\n                    .filter(\"ASN == 1\")\n                    .responseCode(302.0)\n                    .ruleName(\"New delivery rule\")\n                    .action(\"RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE\")\n                    .enabled(true)\n                    .build(),\n                DeliveryRulesConfigurationRuleArgs.builder()\n                    .filter(\"ASN == 1\")\n                    .errorResponseFormat(\"[JSON|XML]\")\n                    .errorResponseData(\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\")\n                    .errorType(\"error.type.all\")\n                    .responseCode(400.0)\n                    .ruleName(\"New delivery rule\")\n                    .action(\"RULE_ACTION_CUSTOM_ERROR_RESPONSE\")\n                    .enabled(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rewrite-response-rules:\n    type: incapsula:DeliveryRulesConfiguration\n    properties:\n      category: REWRITE_RESPONSE\n      siteId: ${[\"example-site\"].id}\n      rules:\n        - filter: ASN == 1\n          headerName: abc\n          multipleHeadersDeletion: 'false'\n          ruleName: New delivery rule\n          action: RULE_ACTION_RESPONSE_DELETE_HEADER\n          enabled: 'true'\n        - filter: ASN == 1\n          headerName: abc\n          from: header1\n          to: header2\n          rewriteExisting: 'true'\n          addIfMissing: 'false'\n          ruleName: New delivery rule\n          action: RULE_ACTION_RESPONSE_REWRITE_HEADER\n          enabled: 'true'\n        - filter: ASN == 1\n          responseCode: '302'\n          ruleName: New delivery rule\n          action: RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE\n          enabled: 'true'\n        - filter: ASN == 1\n          errorResponseFormat: '[JSON|XML]'\n          errorResponseData: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n          errorType: error.type.all\n          responseCode: '400'\n          ruleName: New delivery rule\n          action: RULE_ACTION_CUSTOM_ERROR_RESPONSE\n          enabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Argument Reference\n\n* \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e - (Required) Numeric identifier of the site to operate on.\n* \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e - (Required) Category of rules - `REWRITE`.\n* \u003cspan pulumi-lang-nodejs=\"`ruleName`\" pulumi-lang-dotnet=\"`RuleName`\" pulumi-lang-go=\"`ruleName`\" pulumi-lang-python=\"`rule_name`\" pulumi-lang-yaml=\"`ruleName`\" pulumi-lang-java=\"`ruleName`\"\u003e`rule_name`\u003c/span\u003e - (Required) Rule name.\n* \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e - (Required) Rule action. Possible values:\n  * `RULE_ACTION_RESPONSE_REWRITE_HEADER` - Modify header of outgoing response\n  * `RULE_ACTION_RESPONSE_DELETE_HEADER` - Remove header from outgoing response\n  * `RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE` - Modify HTTP status code of outgoing response\n  * `RULE_ACTION_CUSTOM_ERROR_RESPONSE` - Set custom template for various error responses\n* \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e - (Optional) The filter defines the conditions that trigger the rule action.\n* \u003cspan pulumi-lang-nodejs=\"`headerName`\" pulumi-lang-dotnet=\"`HeaderName`\" pulumi-lang-go=\"`headerName`\" pulumi-lang-python=\"`header_name`\" pulumi-lang-yaml=\"`headerName`\" pulumi-lang-java=\"`headerName`\"\u003e`header_name`\u003c/span\u003e - (Required) The header name that the rules applies to.\n* \u003cspan pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\"\u003e`from`\u003c/span\u003e - (Optional) Header pattern to rewrite.\n* \u003cspan pulumi-lang-nodejs=\"`to`\" pulumi-lang-dotnet=\"`To`\" pulumi-lang-go=\"`to`\" pulumi-lang-python=\"`to`\" pulumi-lang-yaml=\"`to`\" pulumi-lang-java=\"`to`\"\u003e`to`\u003c/span\u003e - (Required) Header pattern to change to.\n* \u003cspan pulumi-lang-nodejs=\"`addMissing`\" pulumi-lang-dotnet=\"`AddMissing`\" pulumi-lang-go=\"`addMissing`\" pulumi-lang-python=\"`add_missing`\" pulumi-lang-yaml=\"`addMissing`\" pulumi-lang-java=\"`addMissing`\"\u003e`add_missing`\u003c/span\u003e - (Optional) When rewriting a header, add it if it doesn't exist.\n* \u003cspan pulumi-lang-nodejs=\"`rewriteExisting`\" pulumi-lang-dotnet=\"`RewriteExisting`\" pulumi-lang-go=\"`rewriteExisting`\" pulumi-lang-python=\"`rewrite_existing`\" pulumi-lang-yaml=\"`rewriteExisting`\" pulumi-lang-java=\"`rewriteExisting`\"\u003e`rewrite_existing`\u003c/span\u003e - (Optional) Rewrite a header even it if it exists already.\n* \u003cspan pulumi-lang-nodejs=\"`multipleHeadersDeletion`\" pulumi-lang-dotnet=\"`MultipleHeadersDeletion`\" pulumi-lang-go=\"`multipleHeadersDeletion`\" pulumi-lang-python=\"`multiple_headers_deletion`\" pulumi-lang-yaml=\"`multipleHeadersDeletion`\" pulumi-lang-java=\"`multipleHeadersDeletion`\"\u003e`multiple_headers_deletion`\u003c/span\u003e - (Optional) Delete all header occurrences.\n* \u003cspan pulumi-lang-nodejs=\"`responseCode`\" pulumi-lang-dotnet=\"`ResponseCode`\" pulumi-lang-go=\"`responseCode`\" pulumi-lang-python=\"`response_code`\" pulumi-lang-yaml=\"`responseCode`\" pulumi-lang-java=\"`responseCode`\"\u003e`response_code`\u003c/span\u003e - (Required) HTTP status code. For `RULE_ACTION_CUSTOM_ERROR_RESPONSE`, values are limited to \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`401`\" pulumi-lang-dotnet=\"`401`\" pulumi-lang-go=\"`401`\" pulumi-lang-python=\"`401`\" pulumi-lang-yaml=\"`401`\" pulumi-lang-java=\"`401`\"\u003e`401`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`402`\" pulumi-lang-dotnet=\"`402`\" pulumi-lang-go=\"`402`\" pulumi-lang-python=\"`402`\" pulumi-lang-yaml=\"`402`\" pulumi-lang-java=\"`402`\"\u003e`402`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`403`\" pulumi-lang-dotnet=\"`403`\" pulumi-lang-go=\"`403`\" pulumi-lang-python=\"`403`\" pulumi-lang-yaml=\"`403`\" pulumi-lang-java=\"`403`\"\u003e`403`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`404`\" pulumi-lang-dotnet=\"`404`\" pulumi-lang-go=\"`404`\" pulumi-lang-python=\"`404`\" pulumi-lang-yaml=\"`404`\" pulumi-lang-java=\"`404`\"\u003e`404`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`405`\" pulumi-lang-dotnet=\"`405`\" pulumi-lang-go=\"`405`\" pulumi-lang-python=\"`405`\" pulumi-lang-yaml=\"`405`\" pulumi-lang-java=\"`405`\"\u003e`405`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`406`\" pulumi-lang-dotnet=\"`406`\" pulumi-lang-go=\"`406`\" pulumi-lang-python=\"`406`\" pulumi-lang-yaml=\"`406`\" pulumi-lang-java=\"`406`\"\u003e`406`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`407`\" pulumi-lang-dotnet=\"`407`\" pulumi-lang-go=\"`407`\" pulumi-lang-python=\"`407`\" pulumi-lang-yaml=\"`407`\" pulumi-lang-java=\"`407`\"\u003e`407`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`408`\" pulumi-lang-dotnet=\"`408`\" pulumi-lang-go=\"`408`\" pulumi-lang-python=\"`408`\" pulumi-lang-yaml=\"`408`\" pulumi-lang-java=\"`408`\"\u003e`408`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`409`\" pulumi-lang-dotnet=\"`409`\" pulumi-lang-go=\"`409`\" pulumi-lang-python=\"`409`\" pulumi-lang-yaml=\"`409`\" pulumi-lang-java=\"`409`\"\u003e`409`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`410`\" pulumi-lang-dotnet=\"`410`\" pulumi-lang-go=\"`410`\" pulumi-lang-python=\"`410`\" pulumi-lang-yaml=\"`410`\" pulumi-lang-java=\"`410`\"\u003e`410`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`411`\" pulumi-lang-dotnet=\"`411`\" pulumi-lang-go=\"`411`\" pulumi-lang-python=\"`411`\" pulumi-lang-yaml=\"`411`\" pulumi-lang-java=\"`411`\"\u003e`411`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`412`\" pulumi-lang-dotnet=\"`412`\" pulumi-lang-go=\"`412`\" pulumi-lang-python=\"`412`\" pulumi-lang-yaml=\"`412`\" pulumi-lang-java=\"`412`\"\u003e`412`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`413`\" pulumi-lang-dotnet=\"`413`\" pulumi-lang-go=\"`413`\" pulumi-lang-python=\"`413`\" pulumi-lang-yaml=\"`413`\" pulumi-lang-java=\"`413`\"\u003e`413`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`414`\" pulumi-lang-dotnet=\"`414`\" pulumi-lang-go=\"`414`\" pulumi-lang-python=\"`414`\" pulumi-lang-yaml=\"`414`\" pulumi-lang-java=\"`414`\"\u003e`414`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`415`\" pulumi-lang-dotnet=\"`415`\" pulumi-lang-go=\"`415`\" pulumi-lang-python=\"`415`\" pulumi-lang-yaml=\"`415`\" pulumi-lang-java=\"`415`\"\u003e`415`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`416`\" pulumi-lang-dotnet=\"`416`\" pulumi-lang-go=\"`416`\" pulumi-lang-python=\"`416`\" pulumi-lang-yaml=\"`416`\" pulumi-lang-java=\"`416`\"\u003e`416`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`417`\" pulumi-lang-dotnet=\"`417`\" pulumi-lang-go=\"`417`\" pulumi-lang-python=\"`417`\" pulumi-lang-yaml=\"`417`\" pulumi-lang-java=\"`417`\"\u003e`417`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`419`\" pulumi-lang-dotnet=\"`419`\" pulumi-lang-go=\"`419`\" pulumi-lang-python=\"`419`\" pulumi-lang-yaml=\"`419`\" pulumi-lang-java=\"`419`\"\u003e`419`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`420`\" pulumi-lang-dotnet=\"`420`\" pulumi-lang-go=\"`420`\" pulumi-lang-python=\"`420`\" pulumi-lang-yaml=\"`420`\" pulumi-lang-java=\"`420`\"\u003e`420`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`422`\" pulumi-lang-dotnet=\"`422`\" pulumi-lang-go=\"`422`\" pulumi-lang-python=\"`422`\" pulumi-lang-yaml=\"`422`\" pulumi-lang-java=\"`422`\"\u003e`422`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`423`\" pulumi-lang-dotnet=\"`423`\" pulumi-lang-go=\"`423`\" pulumi-lang-python=\"`423`\" pulumi-lang-yaml=\"`423`\" pulumi-lang-java=\"`423`\"\u003e`423`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`424`\" pulumi-lang-dotnet=\"`424`\" pulumi-lang-go=\"`424`\" pulumi-lang-python=\"`424`\" pulumi-lang-yaml=\"`424`\" pulumi-lang-java=\"`424`\"\u003e`424`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`501`\" pulumi-lang-dotnet=\"`501`\" pulumi-lang-go=\"`501`\" pulumi-lang-python=\"`501`\" pulumi-lang-yaml=\"`501`\" pulumi-lang-java=\"`501`\"\u003e`501`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`502`\" pulumi-lang-dotnet=\"`502`\" pulumi-lang-go=\"`502`\" pulumi-lang-python=\"`502`\" pulumi-lang-yaml=\"`502`\" pulumi-lang-java=\"`502`\"\u003e`502`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`503`\" pulumi-lang-dotnet=\"`503`\" pulumi-lang-go=\"`503`\" pulumi-lang-python=\"`503`\" pulumi-lang-yaml=\"`503`\" pulumi-lang-java=\"`503`\"\u003e`503`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`504`\" pulumi-lang-dotnet=\"`504`\" pulumi-lang-go=\"`504`\" pulumi-lang-python=\"`504`\" pulumi-lang-yaml=\"`504`\" pulumi-lang-java=\"`504`\"\u003e`504`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`505`\" pulumi-lang-dotnet=\"`505`\" pulumi-lang-go=\"`505`\" pulumi-lang-python=\"`505`\" pulumi-lang-yaml=\"`505`\" pulumi-lang-java=\"`505`\"\u003e`505`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`507`\" pulumi-lang-dotnet=\"`507`\" pulumi-lang-go=\"`507`\" pulumi-lang-python=\"`507`\" pulumi-lang-yaml=\"`507`\" pulumi-lang-java=\"`507`\"\u003e`507`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.\n* \u003cspan pulumi-lang-nodejs=\"`errorType`\" pulumi-lang-dotnet=\"`ErrorType`\" pulumi-lang-go=\"`errorType`\" pulumi-lang-python=\"`error_type`\" pulumi-lang-yaml=\"`errorType`\" pulumi-lang-java=\"`errorType`\"\u003e`error_type`\u003c/span\u003e - (Optional) The error that triggers the rule. `error.type.all` triggers the rule regardless of the error type. Possible values: `error.type.all`, `error.type.connection_timeout`, `error.type.access_denied`, `error.type.parse_req_error`, `error.type.parse_resp_error`, `error.type.connection_failed`, `error.type.deny_and_retry`, `error.type.ssl_failed`, `error.type.deny_and_captcha`, `error.type.2fa_required`, `error.type.no_ssl_config`, `error.type.no_ipv6_config`, `error.type.waiting_room`.\n* \u003cspan pulumi-lang-nodejs=\"`errorResponseFormat`\" pulumi-lang-dotnet=\"`ErrorResponseFormat`\" pulumi-lang-go=\"`errorResponseFormat`\" pulumi-lang-python=\"`error_response_format`\" pulumi-lang-yaml=\"`errorResponseFormat`\" pulumi-lang-java=\"`errorResponseFormat`\"\u003e`error_response_format`\u003c/span\u003e - (Optional) The format of the given error response in the\u003cspan pulumi-lang-nodejs=\" errorResponseData \" pulumi-lang-dotnet=\" ErrorResponseData \" pulumi-lang-go=\" errorResponseData \" pulumi-lang-python=\" error_response_data \" pulumi-lang-yaml=\" errorResponseData \" pulumi-lang-java=\" errorResponseData \"\u003e error_response_data \u003c/span\u003efield. Possible values: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xml`\" pulumi-lang-dotnet=\"`Xml`\" pulumi-lang-go=\"`xml`\" pulumi-lang-python=\"`xml`\" pulumi-lang-yaml=\"`xml`\" pulumi-lang-java=\"`xml`\"\u003e`xml`\u003c/span\u003e.\n* \u003cspan pulumi-lang-nodejs=\"`errorResponseData`\" pulumi-lang-dotnet=\"`ErrorResponseData`\" pulumi-lang-go=\"`errorResponseData`\" pulumi-lang-python=\"`error_response_data`\" pulumi-lang-yaml=\"`errorResponseData`\" pulumi-lang-java=\"`errorResponseData`\"\u003e`error_response_data`\u003c/span\u003e - (Optional) The response returned when the request matches the filter and is blocked.\n* \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e - (Optional) Boolean that enables the rule. Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\n## Import\n\nDelivery rules configuration can be imported using the site_id and category separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/deliveryRulesConfiguration:DeliveryRulesConfiguration demo site_id/category\n```\n","properties":{"category":{"type":"string","description":"How to load balance between multiple Data Centers."},"deliveryRulesConfigurationId":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FDeliveryRulesConfigurationRule:DeliveryRulesConfigurationRule"},"description":"List of delivery rules"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"type":"object","required":["category","deliveryRulesConfigurationId","siteId"],"inputProperties":{"category":{"type":"string","description":"How to load balance between multiple Data Centers."},"deliveryRulesConfigurationId":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FDeliveryRulesConfigurationRule:DeliveryRulesConfigurationRule"},"description":"List of delivery rules"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"requiredInputs":["category","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering DeliveryRulesConfiguration resources.\n","properties":{"category":{"type":"string","description":"How to load balance between multiple Data Centers."},"deliveryRulesConfigurationId":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FDeliveryRulesConfigurationRule:DeliveryRulesConfigurationRule"},"description":"List of delivery rules"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"type":"object"}},"incapsula:index/domain:Domain":{"description":"Provides an Incapsula Domain resource for V3 Sites.\nThe provider will add/delete domains to/from an Imperva site, based on this resource.\nThese domains are protected by Imperva and share the website settings and configuration of the onboarded website. Legitimate traffic for all verified domains is allowed.\n\nNote:\nThis resource applies only to sites managed by the\u003cspan pulumi-lang-nodejs=\" incapsula.SiteV3 \" pulumi-lang-dotnet=\" incapsula.SiteV3 \" pulumi-lang-go=\" SiteV3 \" pulumi-lang-python=\" SiteV3 \" pulumi-lang-yaml=\" incapsula.SiteV3 \" pulumi-lang-java=\" incapsula.SiteV3 \"\u003e incapsula.SiteV3 \u003c/span\u003eresource. For sites managed by the\u003cspan pulumi-lang-nodejs=\" incapsula.Site \" pulumi-lang-dotnet=\" incapsula.Site \" pulumi-lang-go=\" Site \" pulumi-lang-python=\" Site \" pulumi-lang-yaml=\" incapsula.Site \" pulumi-lang-java=\" incapsula.Site \"\u003e incapsula.Site \u003c/span\u003eresource, please use the\u003cspan pulumi-lang-nodejs=\" incapsula.SiteDomainConfiguration \" pulumi-lang-dotnet=\" incapsula.SiteDomainConfiguration \" pulumi-lang-go=\" SiteDomainConfiguration \" pulumi-lang-python=\" SiteDomainConfiguration \" pulumi-lang-yaml=\" incapsula.SiteDomainConfiguration \" pulumi-lang-java=\" incapsula.SiteDomainConfiguration \"\u003e incapsula.SiteDomainConfiguration \u003c/span\u003eresource instead.\nAdding an apex domain without its corresponding www subdomain is not supported.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSite = new incapsula.SiteV3(\"example_site\", {name: \"example-site.com\"});\nconst exampleDomain = new incapsula.Domain(\"example_domain\", {\n    siteId: exampleSite.siteId,\n    domain: \"example-domain.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_site = incapsula.SiteV3(\"example_site\", name=\"example-site.com\")\nexample_domain = incapsula.Domain(\"example_domain\",\n    site_id=example_site.site_id,\n    domain=\"example-domain.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSite = new Incapsula.SiteV3(\"example_site\", new()\n    {\n        Name = \"example-site.com\",\n    });\n\n    var exampleDomain = new Incapsula.Domain(\"example_domain\", new()\n    {\n        SiteId = exampleSite.SiteId,\n        Domain = \"example-domain.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleSite, err := incapsula.NewSiteV3(ctx, \"example_site\", \u0026incapsula.SiteV3Args{\n\t\t\tName: pulumi.String(\"example-site.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewDomain(ctx, \"example_domain\", \u0026incapsula.DomainArgs{\n\t\t\tSiteId: exampleSite.SiteId,\n\t\t\tDomain: pulumi.String(\"example-domain.com\"),\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.incapsula.SiteV3;\nimport com.pulumi.incapsula.SiteV3Args;\nimport com.pulumi.incapsula.Domain;\nimport com.pulumi.incapsula.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSite = new SiteV3(\"exampleSite\", SiteV3Args.builder()\n            .name(\"example-site.com\")\n            .build());\n\n        var exampleDomain = new Domain(\"exampleDomain\", DomainArgs.builder()\n            .siteId(exampleSite.siteId())\n            .domain(\"example-domain.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSite:\n    type: incapsula:SiteV3\n    name: example_site\n    properties:\n      name: example-site.com\n  exampleDomain:\n    type: incapsula:Domain\n    name: example_domain\n    properties:\n      siteId: ${exampleSite.siteId}\n      domain: example-domain.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\n### Maximum domains per Imperva site: \nAs per the official Website Domain Management feature, the number of domains permitted for each website is\nup to 1,000.\u003cbr /\u003e\nNote: This includes auto-discovered domains.\u003cbr /\u003e\nThe official docs for Website Domain Management API are located here: https://docs.imperva.com/bundle/cloud-application-security/page/website-domain-api-definition.htm\n\n## Import\n\nDomains can be imported using the site_id and domain_id separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/domain:Domain example_domain site_id/domain_id\n```\n","properties":{"aRecords":{"type":"array","items":{"type":"string"},"description":"Will appear for apex domains only. A Records for traffic redirection. Point your apex domain's DNS to this record in order to forward the traffic to Imperva.\n"},"cnameRedirectionRecord":{"type":"string","description":"CNAME validation code for traffic redirection.  Point your domain's DNS to this record in order to forward the traffic to Imperva.\n"},"domain":{"type":"string","description":"The fully qualified domain name of the site.\n"},"domainId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site.\n"},"status":{"type":"string","description":"Status of the domain. Indicates if domain DNS is pointed to Imperva's CNAME. Options: BYPASSED, VERIFIED, PROTECTED, MISCONFIGURED.\n"}},"type":"object","required":["aRecords","cnameRedirectionRecord","domain","domainId","siteId","status"],"inputProperties":{"domain":{"type":"string","description":"The fully qualified domain name of the site.\n"},"domainId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site.\n"}},"requiredInputs":["domain","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"aRecords":{"type":"array","items":{"type":"string"},"description":"Will appear for apex domains only. A Records for traffic redirection. Point your apex domain's DNS to this record in order to forward the traffic to Imperva.\n"},"cnameRedirectionRecord":{"type":"string","description":"CNAME validation code for traffic redirection.  Point your domain's DNS to this record in order to forward the traffic to Imperva.\n"},"domain":{"type":"string","description":"The fully qualified domain name of the site.\n"},"domainId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site.\n"},"status":{"type":"string","description":"Status of the domain. Indicates if domain DNS is pointed to Imperva's CNAME. Options: BYPASSED, VERIFIED, PROTECTED, MISCONFIGURED.\n"}},"type":"object"}},"incapsula:index/incapRule:IncapRule":{"description":"Provides a resource to create security, delivery, and rate rules.\n\n**Note:** A newer resource for configuring delivery rules and their priority is available in \u003cspan pulumi-lang-nodejs=\"`incapsula.DeliveryRulesConfiguration`\" pulumi-lang-dotnet=\"`incapsula.DeliveryRulesConfiguration`\" pulumi-lang-go=\"`DeliveryRulesConfiguration`\" pulumi-lang-python=\"`DeliveryRulesConfiguration`\" pulumi-lang-yaml=\"`incapsula.DeliveryRulesConfiguration`\" pulumi-lang-java=\"`incapsula.DeliveryRulesConfiguration`\"\u003e`incapsula.DeliveryRulesConfiguration`\u003c/span\u003e\n\n## Import\n\nIncap Rule can be imported using the role site_id and rule_id separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/incapRule:IncapRule demo site_id/rule_id\n```\n","properties":{"action":{"type":"string","description":"Rule action. See the detailed descriptions in the API documentation. Possible values: `RULE_ACTION_REDIRECT`, `RULE_ACTION_SIMPLIFIED_REDIRECT`, `RULE_ACTION_REWRITE_URL`, `RULE_ACTION_REWRITE_HEADER`, `RULE_ACTION_REWRITE_COOKIE`, `RULE_ACTION_DELETE_HEADER`, `RULE_ACTION_DELETE_COOKIE`, `RULE_ACTION_RESPONSE_REWRITE_HEADER`, `RULE_ACTION_RESPONSE_DELETE_HEADER`, `RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE`, `RULE_ACTION_FORWARD_TO_DC`, `RULE_ACTION_ALERT`, `RULE_ACTION_BLOCK`, `RULE_ACTION_BLOCK_USER`, `RULE_ACTION_BLOCK_IP`, `RULE_ACTION_RETRY`, `RULE_ACTION_INTRUSIVE_HTML`, `RULE_ACTION_CAPTCHA`, `RULE_ACTION_RATE`, `RULE_ACTION_CUSTOM_ERROR_RESPONSE`, `RULE_ACTION_FORWARD_TO_PORT`, `RULE_ACTION_WAF_OVERRIDE`.\n"},"addMissing":{"type":"boolean","description":"Add cookie or header if it doesn't exist (Rewrite cookie rule only).\n"},"blockDuration":{"type":"number","description":"Value of the fixed block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationMax":{"type":"number","description":"The upper limit for the randomized block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationMin":{"type":"number","description":"The lower limit for the randomized block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationType":{"type":"string","description":"Block duration types: \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e. Time range: 1-1440 minutes.The Fixed type blocks the IP address or session for the duration specified by the \u003cspan pulumi-lang-nodejs=\"`blockDuration`\" pulumi-lang-dotnet=\"`BlockDuration`\" pulumi-lang-go=\"`blockDuration`\" pulumi-lang-python=\"`block_duration`\" pulumi-lang-yaml=\"`blockDuration`\" pulumi-lang-java=\"`blockDuration`\"\u003e`block_duration`\u003c/span\u003e parameter. The Randomized type generates a random duration for each block between the specified minimum and maximum values. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e.\n"},"dcId":{"type":"number","description":"Data center to forward request to. Applies only for `RULE_ACTION_FORWARD_TO_DC`.\n"},"enabled":{"type":"boolean","description":"Boolean that enables the rule. Possible values: true, false. Default value is true.\n"},"errorResponseData":{"type":"string","description":"The response returned when the request matches the filter and is blocked. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`.\n"},"errorResponseFormat":{"type":"string","description":"The format of the given error response in the\u003cspan pulumi-lang-nodejs=\" errorResponseData \" pulumi-lang-dotnet=\" ErrorResponseData \" pulumi-lang-go=\" errorResponseData \" pulumi-lang-python=\" error_response_data \" pulumi-lang-yaml=\" errorResponseData \" pulumi-lang-java=\" errorResponseData \"\u003e error_response_data \u003c/span\u003efield. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`. Possible values: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xml`\" pulumi-lang-dotnet=\"`Xml`\" pulumi-lang-go=\"`xml`\" pulumi-lang-python=\"`xml`\" pulumi-lang-yaml=\"`xml`\" pulumi-lang-java=\"`xml`\"\u003e`xml`\u003c/span\u003e.\n"},"errorType":{"type":"string","description":"The error that triggers the rule. `error.type.all` triggers the rule regardless of the error type. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`. Possible values: `error.type.all`, `error.type.connection_timeout`, `error.type.access_denied`, `error.type.parse_req_error`, `error.type.parse_resp_error`, `error.type.connection_failed`, `error.type.deny_and_retry`, `error.type.ssl_failed`, `error.type.deny_and_captcha`, `error.type.2fa_required`, `error.type.no_ssl_config`, `error.type.no_ipv6_config`.\n"},"filter":{"type":"string","description":"The filter defines the conditions that trigger the rule action. For action `RULE_ACTION_SIMPLIFIED_REDIRECT` filter is not relevant. For other actions, if left empty, the rule is always run.\n"},"from":{"type":"string","description":"Pattern to rewrite. For `RULE_ACTION_REWRITE_URL` - Url to rewrite. For `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER` - Header value to rewrite. For `RULE_ACTION_REWRITE_COOKIE` - Cookie value to rewrite.\n"},"incapRuleId":{"type":"string","description":"Unique identifier in the API for the Incap Rule.\n"},"multipleDeletions":{"type":"boolean","description":"Delete multiple header occurrences. Applies only to rules using `RULE_ACTION_DELETE_HEADER` and `RULE_ACTION_RESPONSE_DELETE_HEADER`.\n"},"name":{"type":"string","description":"Rule name.\n"},"overrideWafAction":{"type":"string","description":"The action for the override rule `RULE_ACTION_WAF_OVERRIDE`. Possible values: Alert Only, Block Request, Block User, Block IP, Ignore.\n"},"overrideWafRule":{"type":"string","description":"The setting to override `RULE_ACTION_WAF_OVERRIDE`. Possible values: SQL Injection, Remote File Inclusion, Cross Site Scripting, Illegal Resource Access.\n"},"portForwardingContext":{"type":"string","description":"Context for port forwarding. \\\"Use Port Value\\\" or \\\"Use Header Name\\\". Applies only for `RULE_ACTION_FORWARD_TO_PORT`.\n"},"portForwardingValue":{"type":"string","description":"Port number or header name for port forwarding. Applies only for `RULE_ACTION_FORWARD_TO_PORT`.\n"},"rateContext":{"type":"string","description":"The context of the rate counter. Possible values `IP` or `Session`. Applies only to rules using `RULE_ACTION_RATE`.\n"},"rateInterval":{"type":"number","description":"The interval in seconds of the rate counter. Possible values is a multiple of \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e; minimum \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e and maximum \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Applies only to rules using `RULE_ACTION_RATE`.\n"},"responseCode":{"type":"number","description":"For `RULE_ACTION_REDIRECT` or `RULE_ACTION_SIMPLIFIED_REDIRECT` rule's response code, valid values are \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e. For `RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE` rule's response code, valid values are all 3-digits numbers. For `RULE_ACTION_CUSTOM_ERROR_RESPONSE`, valid values are \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`401`\" pulumi-lang-dotnet=\"`401`\" pulumi-lang-go=\"`401`\" pulumi-lang-python=\"`401`\" pulumi-lang-yaml=\"`401`\" pulumi-lang-java=\"`401`\"\u003e`401`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`402`\" pulumi-lang-dotnet=\"`402`\" pulumi-lang-go=\"`402`\" pulumi-lang-python=\"`402`\" pulumi-lang-yaml=\"`402`\" pulumi-lang-java=\"`402`\"\u003e`402`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`403`\" pulumi-lang-dotnet=\"`403`\" pulumi-lang-go=\"`403`\" pulumi-lang-python=\"`403`\" pulumi-lang-yaml=\"`403`\" pulumi-lang-java=\"`403`\"\u003e`403`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`404`\" pulumi-lang-dotnet=\"`404`\" pulumi-lang-go=\"`404`\" pulumi-lang-python=\"`404`\" pulumi-lang-yaml=\"`404`\" pulumi-lang-java=\"`404`\"\u003e`404`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`405`\" pulumi-lang-dotnet=\"`405`\" pulumi-lang-go=\"`405`\" pulumi-lang-python=\"`405`\" pulumi-lang-yaml=\"`405`\" pulumi-lang-java=\"`405`\"\u003e`405`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`406`\" pulumi-lang-dotnet=\"`406`\" pulumi-lang-go=\"`406`\" pulumi-lang-python=\"`406`\" pulumi-lang-yaml=\"`406`\" pulumi-lang-java=\"`406`\"\u003e`406`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`407`\" pulumi-lang-dotnet=\"`407`\" pulumi-lang-go=\"`407`\" pulumi-lang-python=\"`407`\" pulumi-lang-yaml=\"`407`\" pulumi-lang-java=\"`407`\"\u003e`407`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`408`\" pulumi-lang-dotnet=\"`408`\" pulumi-lang-go=\"`408`\" pulumi-lang-python=\"`408`\" pulumi-lang-yaml=\"`408`\" pulumi-lang-java=\"`408`\"\u003e`408`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`409`\" pulumi-lang-dotnet=\"`409`\" pulumi-lang-go=\"`409`\" pulumi-lang-python=\"`409`\" pulumi-lang-yaml=\"`409`\" pulumi-lang-java=\"`409`\"\u003e`409`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`410`\" pulumi-lang-dotnet=\"`410`\" pulumi-lang-go=\"`410`\" pulumi-lang-python=\"`410`\" pulumi-lang-yaml=\"`410`\" pulumi-lang-java=\"`410`\"\u003e`410`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`411`\" pulumi-lang-dotnet=\"`411`\" pulumi-lang-go=\"`411`\" pulumi-lang-python=\"`411`\" pulumi-lang-yaml=\"`411`\" pulumi-lang-java=\"`411`\"\u003e`411`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`412`\" pulumi-lang-dotnet=\"`412`\" pulumi-lang-go=\"`412`\" pulumi-lang-python=\"`412`\" pulumi-lang-yaml=\"`412`\" pulumi-lang-java=\"`412`\"\u003e`412`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`413`\" pulumi-lang-dotnet=\"`413`\" pulumi-lang-go=\"`413`\" pulumi-lang-python=\"`413`\" pulumi-lang-yaml=\"`413`\" pulumi-lang-java=\"`413`\"\u003e`413`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`414`\" pulumi-lang-dotnet=\"`414`\" pulumi-lang-go=\"`414`\" pulumi-lang-python=\"`414`\" pulumi-lang-yaml=\"`414`\" pulumi-lang-java=\"`414`\"\u003e`414`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`415`\" pulumi-lang-dotnet=\"`415`\" pulumi-lang-go=\"`415`\" pulumi-lang-python=\"`415`\" pulumi-lang-yaml=\"`415`\" pulumi-lang-java=\"`415`\"\u003e`415`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`416`\" pulumi-lang-dotnet=\"`416`\" pulumi-lang-go=\"`416`\" pulumi-lang-python=\"`416`\" pulumi-lang-yaml=\"`416`\" pulumi-lang-java=\"`416`\"\u003e`416`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`417`\" pulumi-lang-dotnet=\"`417`\" pulumi-lang-go=\"`417`\" pulumi-lang-python=\"`417`\" pulumi-lang-yaml=\"`417`\" pulumi-lang-java=\"`417`\"\u003e`417`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`419`\" pulumi-lang-dotnet=\"`419`\" pulumi-lang-go=\"`419`\" pulumi-lang-python=\"`419`\" pulumi-lang-yaml=\"`419`\" pulumi-lang-java=\"`419`\"\u003e`419`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`420`\" pulumi-lang-dotnet=\"`420`\" pulumi-lang-go=\"`420`\" pulumi-lang-python=\"`420`\" pulumi-lang-yaml=\"`420`\" pulumi-lang-java=\"`420`\"\u003e`420`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`422`\" pulumi-lang-dotnet=\"`422`\" pulumi-lang-go=\"`422`\" pulumi-lang-python=\"`422`\" pulumi-lang-yaml=\"`422`\" pulumi-lang-java=\"`422`\"\u003e`422`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`423`\" pulumi-lang-dotnet=\"`423`\" pulumi-lang-go=\"`423`\" pulumi-lang-python=\"`423`\" pulumi-lang-yaml=\"`423`\" pulumi-lang-java=\"`423`\"\u003e`423`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`424`\" pulumi-lang-dotnet=\"`424`\" pulumi-lang-go=\"`424`\" pulumi-lang-python=\"`424`\" pulumi-lang-yaml=\"`424`\" pulumi-lang-java=\"`424`\"\u003e`424`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`501`\" pulumi-lang-dotnet=\"`501`\" pulumi-lang-go=\"`501`\" pulumi-lang-python=\"`501`\" pulumi-lang-yaml=\"`501`\" pulumi-lang-java=\"`501`\"\u003e`501`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`502`\" pulumi-lang-dotnet=\"`502`\" pulumi-lang-go=\"`502`\" pulumi-lang-python=\"`502`\" pulumi-lang-yaml=\"`502`\" pulumi-lang-java=\"`502`\"\u003e`502`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`503`\" pulumi-lang-dotnet=\"`503`\" pulumi-lang-go=\"`503`\" pulumi-lang-python=\"`503`\" pulumi-lang-yaml=\"`503`\" pulumi-lang-java=\"`503`\"\u003e`503`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`504`\" pulumi-lang-dotnet=\"`504`\" pulumi-lang-go=\"`504`\" pulumi-lang-python=\"`504`\" pulumi-lang-yaml=\"`504`\" pulumi-lang-java=\"`504`\"\u003e`504`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`505`\" pulumi-lang-dotnet=\"`505`\" pulumi-lang-go=\"`505`\" pulumi-lang-python=\"`505`\" pulumi-lang-yaml=\"`505`\" pulumi-lang-java=\"`505`\"\u003e`505`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`507`\" pulumi-lang-dotnet=\"`507`\" pulumi-lang-go=\"`507`\" pulumi-lang-python=\"`507`\" pulumi-lang-yaml=\"`507`\" pulumi-lang-java=\"`507`\"\u003e`507`\u003c/span\u003e.\n"},"rewriteExisting":{"type":"boolean","description":"Rewrite cookie or header if it exists.\n"},"rewriteName":{"type":"string","description":"Name of cookie or header to rewrite. Applies only for `RULE_ACTION_REWRITE_COOKIE`, `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER`.\n"},"sendNotifications":{"type":"string","description":"Send an email notification whenever this rule is triggered. Possible values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Applies to the following security actions: `RULE_ACTION_ALERT`, `RULE_ACTION_BLOCK`, `RULE_ACTION_BLOCK_USER`, `RULE_ACTION_BLOCK_IP`, `RULE_ACTION_RETRY`, `RULE_ACTION_INTRUSIVE_HTML`, `RULE_ACTION_CAPTCHA`.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"to":{"type":"string","description":"Pattern to change to. `RULE_ACTION_REWRITE_URL` - Url to change to. `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER` - Header value to change to. `RULE_ACTION_REWRITE_COOKIE` - Cookie value to change to.\n"}},"type":"object","required":["action","blockDuration","blockDurationMax","blockDurationMin","blockDurationType","incapRuleId","name","sendNotifications","siteId"],"inputProperties":{"action":{"type":"string","description":"Rule action. See the detailed descriptions in the API documentation. Possible values: `RULE_ACTION_REDIRECT`, `RULE_ACTION_SIMPLIFIED_REDIRECT`, `RULE_ACTION_REWRITE_URL`, `RULE_ACTION_REWRITE_HEADER`, `RULE_ACTION_REWRITE_COOKIE`, `RULE_ACTION_DELETE_HEADER`, `RULE_ACTION_DELETE_COOKIE`, `RULE_ACTION_RESPONSE_REWRITE_HEADER`, `RULE_ACTION_RESPONSE_DELETE_HEADER`, `RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE`, `RULE_ACTION_FORWARD_TO_DC`, `RULE_ACTION_ALERT`, `RULE_ACTION_BLOCK`, `RULE_ACTION_BLOCK_USER`, `RULE_ACTION_BLOCK_IP`, `RULE_ACTION_RETRY`, `RULE_ACTION_INTRUSIVE_HTML`, `RULE_ACTION_CAPTCHA`, `RULE_ACTION_RATE`, `RULE_ACTION_CUSTOM_ERROR_RESPONSE`, `RULE_ACTION_FORWARD_TO_PORT`, `RULE_ACTION_WAF_OVERRIDE`.\n"},"addMissing":{"type":"boolean","description":"Add cookie or header if it doesn't exist (Rewrite cookie rule only).\n"},"blockDuration":{"type":"number","description":"Value of the fixed block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationMax":{"type":"number","description":"The upper limit for the randomized block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationMin":{"type":"number","description":"The lower limit for the randomized block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationType":{"type":"string","description":"Block duration types: \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e. Time range: 1-1440 minutes.The Fixed type blocks the IP address or session for the duration specified by the \u003cspan pulumi-lang-nodejs=\"`blockDuration`\" pulumi-lang-dotnet=\"`BlockDuration`\" pulumi-lang-go=\"`blockDuration`\" pulumi-lang-python=\"`block_duration`\" pulumi-lang-yaml=\"`blockDuration`\" pulumi-lang-java=\"`blockDuration`\"\u003e`block_duration`\u003c/span\u003e parameter. The Randomized type generates a random duration for each block between the specified minimum and maximum values. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e.\n"},"dcId":{"type":"number","description":"Data center to forward request to. Applies only for `RULE_ACTION_FORWARD_TO_DC`.\n"},"enabled":{"type":"boolean","description":"Boolean that enables the rule. Possible values: true, false. Default value is true.\n"},"errorResponseData":{"type":"string","description":"The response returned when the request matches the filter and is blocked. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`.\n"},"errorResponseFormat":{"type":"string","description":"The format of the given error response in the\u003cspan pulumi-lang-nodejs=\" errorResponseData \" pulumi-lang-dotnet=\" ErrorResponseData \" pulumi-lang-go=\" errorResponseData \" pulumi-lang-python=\" error_response_data \" pulumi-lang-yaml=\" errorResponseData \" pulumi-lang-java=\" errorResponseData \"\u003e error_response_data \u003c/span\u003efield. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`. Possible values: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xml`\" pulumi-lang-dotnet=\"`Xml`\" pulumi-lang-go=\"`xml`\" pulumi-lang-python=\"`xml`\" pulumi-lang-yaml=\"`xml`\" pulumi-lang-java=\"`xml`\"\u003e`xml`\u003c/span\u003e.\n"},"errorType":{"type":"string","description":"The error that triggers the rule. `error.type.all` triggers the rule regardless of the error type. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`. Possible values: `error.type.all`, `error.type.connection_timeout`, `error.type.access_denied`, `error.type.parse_req_error`, `error.type.parse_resp_error`, `error.type.connection_failed`, `error.type.deny_and_retry`, `error.type.ssl_failed`, `error.type.deny_and_captcha`, `error.type.2fa_required`, `error.type.no_ssl_config`, `error.type.no_ipv6_config`.\n"},"filter":{"type":"string","description":"The filter defines the conditions that trigger the rule action. For action `RULE_ACTION_SIMPLIFIED_REDIRECT` filter is not relevant. For other actions, if left empty, the rule is always run.\n"},"from":{"type":"string","description":"Pattern to rewrite. For `RULE_ACTION_REWRITE_URL` - Url to rewrite. For `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER` - Header value to rewrite. For `RULE_ACTION_REWRITE_COOKIE` - Cookie value to rewrite.\n"},"incapRuleId":{"type":"string","description":"Unique identifier in the API for the Incap Rule.\n"},"multipleDeletions":{"type":"boolean","description":"Delete multiple header occurrences. Applies only to rules using `RULE_ACTION_DELETE_HEADER` and `RULE_ACTION_RESPONSE_DELETE_HEADER`.\n"},"name":{"type":"string","description":"Rule name.\n"},"overrideWafAction":{"type":"string","description":"The action for the override rule `RULE_ACTION_WAF_OVERRIDE`. Possible values: Alert Only, Block Request, Block User, Block IP, Ignore.\n"},"overrideWafRule":{"type":"string","description":"The setting to override `RULE_ACTION_WAF_OVERRIDE`. Possible values: SQL Injection, Remote File Inclusion, Cross Site Scripting, Illegal Resource Access.\n"},"portForwardingContext":{"type":"string","description":"Context for port forwarding. \\\"Use Port Value\\\" or \\\"Use Header Name\\\". Applies only for `RULE_ACTION_FORWARD_TO_PORT`.\n"},"portForwardingValue":{"type":"string","description":"Port number or header name for port forwarding. Applies only for `RULE_ACTION_FORWARD_TO_PORT`.\n"},"rateContext":{"type":"string","description":"The context of the rate counter. Possible values `IP` or `Session`. Applies only to rules using `RULE_ACTION_RATE`.\n"},"rateInterval":{"type":"number","description":"The interval in seconds of the rate counter. Possible values is a multiple of \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e; minimum \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e and maximum \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Applies only to rules using `RULE_ACTION_RATE`.\n"},"responseCode":{"type":"number","description":"For `RULE_ACTION_REDIRECT` or `RULE_ACTION_SIMPLIFIED_REDIRECT` rule's response code, valid values are \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e. For `RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE` rule's response code, valid values are all 3-digits numbers. For `RULE_ACTION_CUSTOM_ERROR_RESPONSE`, valid values are \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`401`\" pulumi-lang-dotnet=\"`401`\" pulumi-lang-go=\"`401`\" pulumi-lang-python=\"`401`\" pulumi-lang-yaml=\"`401`\" pulumi-lang-java=\"`401`\"\u003e`401`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`402`\" pulumi-lang-dotnet=\"`402`\" pulumi-lang-go=\"`402`\" pulumi-lang-python=\"`402`\" pulumi-lang-yaml=\"`402`\" pulumi-lang-java=\"`402`\"\u003e`402`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`403`\" pulumi-lang-dotnet=\"`403`\" pulumi-lang-go=\"`403`\" pulumi-lang-python=\"`403`\" pulumi-lang-yaml=\"`403`\" pulumi-lang-java=\"`403`\"\u003e`403`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`404`\" pulumi-lang-dotnet=\"`404`\" pulumi-lang-go=\"`404`\" pulumi-lang-python=\"`404`\" pulumi-lang-yaml=\"`404`\" pulumi-lang-java=\"`404`\"\u003e`404`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`405`\" pulumi-lang-dotnet=\"`405`\" pulumi-lang-go=\"`405`\" pulumi-lang-python=\"`405`\" pulumi-lang-yaml=\"`405`\" pulumi-lang-java=\"`405`\"\u003e`405`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`406`\" pulumi-lang-dotnet=\"`406`\" pulumi-lang-go=\"`406`\" pulumi-lang-python=\"`406`\" pulumi-lang-yaml=\"`406`\" pulumi-lang-java=\"`406`\"\u003e`406`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`407`\" pulumi-lang-dotnet=\"`407`\" pulumi-lang-go=\"`407`\" pulumi-lang-python=\"`407`\" pulumi-lang-yaml=\"`407`\" pulumi-lang-java=\"`407`\"\u003e`407`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`408`\" pulumi-lang-dotnet=\"`408`\" pulumi-lang-go=\"`408`\" pulumi-lang-python=\"`408`\" pulumi-lang-yaml=\"`408`\" pulumi-lang-java=\"`408`\"\u003e`408`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`409`\" pulumi-lang-dotnet=\"`409`\" pulumi-lang-go=\"`409`\" pulumi-lang-python=\"`409`\" pulumi-lang-yaml=\"`409`\" pulumi-lang-java=\"`409`\"\u003e`409`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`410`\" pulumi-lang-dotnet=\"`410`\" pulumi-lang-go=\"`410`\" pulumi-lang-python=\"`410`\" pulumi-lang-yaml=\"`410`\" pulumi-lang-java=\"`410`\"\u003e`410`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`411`\" pulumi-lang-dotnet=\"`411`\" pulumi-lang-go=\"`411`\" pulumi-lang-python=\"`411`\" pulumi-lang-yaml=\"`411`\" pulumi-lang-java=\"`411`\"\u003e`411`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`412`\" pulumi-lang-dotnet=\"`412`\" pulumi-lang-go=\"`412`\" pulumi-lang-python=\"`412`\" pulumi-lang-yaml=\"`412`\" pulumi-lang-java=\"`412`\"\u003e`412`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`413`\" pulumi-lang-dotnet=\"`413`\" pulumi-lang-go=\"`413`\" pulumi-lang-python=\"`413`\" pulumi-lang-yaml=\"`413`\" pulumi-lang-java=\"`413`\"\u003e`413`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`414`\" pulumi-lang-dotnet=\"`414`\" pulumi-lang-go=\"`414`\" pulumi-lang-python=\"`414`\" pulumi-lang-yaml=\"`414`\" pulumi-lang-java=\"`414`\"\u003e`414`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`415`\" pulumi-lang-dotnet=\"`415`\" pulumi-lang-go=\"`415`\" pulumi-lang-python=\"`415`\" pulumi-lang-yaml=\"`415`\" pulumi-lang-java=\"`415`\"\u003e`415`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`416`\" pulumi-lang-dotnet=\"`416`\" pulumi-lang-go=\"`416`\" pulumi-lang-python=\"`416`\" pulumi-lang-yaml=\"`416`\" pulumi-lang-java=\"`416`\"\u003e`416`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`417`\" pulumi-lang-dotnet=\"`417`\" pulumi-lang-go=\"`417`\" pulumi-lang-python=\"`417`\" pulumi-lang-yaml=\"`417`\" pulumi-lang-java=\"`417`\"\u003e`417`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`419`\" pulumi-lang-dotnet=\"`419`\" pulumi-lang-go=\"`419`\" pulumi-lang-python=\"`419`\" pulumi-lang-yaml=\"`419`\" pulumi-lang-java=\"`419`\"\u003e`419`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`420`\" pulumi-lang-dotnet=\"`420`\" pulumi-lang-go=\"`420`\" pulumi-lang-python=\"`420`\" pulumi-lang-yaml=\"`420`\" pulumi-lang-java=\"`420`\"\u003e`420`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`422`\" pulumi-lang-dotnet=\"`422`\" pulumi-lang-go=\"`422`\" pulumi-lang-python=\"`422`\" pulumi-lang-yaml=\"`422`\" pulumi-lang-java=\"`422`\"\u003e`422`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`423`\" pulumi-lang-dotnet=\"`423`\" pulumi-lang-go=\"`423`\" pulumi-lang-python=\"`423`\" pulumi-lang-yaml=\"`423`\" pulumi-lang-java=\"`423`\"\u003e`423`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`424`\" pulumi-lang-dotnet=\"`424`\" pulumi-lang-go=\"`424`\" pulumi-lang-python=\"`424`\" pulumi-lang-yaml=\"`424`\" pulumi-lang-java=\"`424`\"\u003e`424`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`501`\" pulumi-lang-dotnet=\"`501`\" pulumi-lang-go=\"`501`\" pulumi-lang-python=\"`501`\" pulumi-lang-yaml=\"`501`\" pulumi-lang-java=\"`501`\"\u003e`501`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`502`\" pulumi-lang-dotnet=\"`502`\" pulumi-lang-go=\"`502`\" pulumi-lang-python=\"`502`\" pulumi-lang-yaml=\"`502`\" pulumi-lang-java=\"`502`\"\u003e`502`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`503`\" pulumi-lang-dotnet=\"`503`\" pulumi-lang-go=\"`503`\" pulumi-lang-python=\"`503`\" pulumi-lang-yaml=\"`503`\" pulumi-lang-java=\"`503`\"\u003e`503`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`504`\" pulumi-lang-dotnet=\"`504`\" pulumi-lang-go=\"`504`\" pulumi-lang-python=\"`504`\" pulumi-lang-yaml=\"`504`\" pulumi-lang-java=\"`504`\"\u003e`504`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`505`\" pulumi-lang-dotnet=\"`505`\" pulumi-lang-go=\"`505`\" pulumi-lang-python=\"`505`\" pulumi-lang-yaml=\"`505`\" pulumi-lang-java=\"`505`\"\u003e`505`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`507`\" pulumi-lang-dotnet=\"`507`\" pulumi-lang-go=\"`507`\" pulumi-lang-python=\"`507`\" pulumi-lang-yaml=\"`507`\" pulumi-lang-java=\"`507`\"\u003e`507`\u003c/span\u003e.\n"},"rewriteExisting":{"type":"boolean","description":"Rewrite cookie or header if it exists.\n"},"rewriteName":{"type":"string","description":"Name of cookie or header to rewrite. Applies only for `RULE_ACTION_REWRITE_COOKIE`, `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER`.\n"},"sendNotifications":{"type":"string","description":"Send an email notification whenever this rule is triggered. Possible values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Applies to the following security actions: `RULE_ACTION_ALERT`, `RULE_ACTION_BLOCK`, `RULE_ACTION_BLOCK_USER`, `RULE_ACTION_BLOCK_IP`, `RULE_ACTION_RETRY`, `RULE_ACTION_INTRUSIVE_HTML`, `RULE_ACTION_CAPTCHA`.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"to":{"type":"string","description":"Pattern to change to. `RULE_ACTION_REWRITE_URL` - Url to change to. `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER` - Header value to change to. `RULE_ACTION_REWRITE_COOKIE` - Cookie value to change to.\n"}},"requiredInputs":["action","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering IncapRule resources.\n","properties":{"action":{"type":"string","description":"Rule action. See the detailed descriptions in the API documentation. Possible values: `RULE_ACTION_REDIRECT`, `RULE_ACTION_SIMPLIFIED_REDIRECT`, `RULE_ACTION_REWRITE_URL`, `RULE_ACTION_REWRITE_HEADER`, `RULE_ACTION_REWRITE_COOKIE`, `RULE_ACTION_DELETE_HEADER`, `RULE_ACTION_DELETE_COOKIE`, `RULE_ACTION_RESPONSE_REWRITE_HEADER`, `RULE_ACTION_RESPONSE_DELETE_HEADER`, `RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE`, `RULE_ACTION_FORWARD_TO_DC`, `RULE_ACTION_ALERT`, `RULE_ACTION_BLOCK`, `RULE_ACTION_BLOCK_USER`, `RULE_ACTION_BLOCK_IP`, `RULE_ACTION_RETRY`, `RULE_ACTION_INTRUSIVE_HTML`, `RULE_ACTION_CAPTCHA`, `RULE_ACTION_RATE`, `RULE_ACTION_CUSTOM_ERROR_RESPONSE`, `RULE_ACTION_FORWARD_TO_PORT`, `RULE_ACTION_WAF_OVERRIDE`.\n"},"addMissing":{"type":"boolean","description":"Add cookie or header if it doesn't exist (Rewrite cookie rule only).\n"},"blockDuration":{"type":"number","description":"Value of the fixed block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationMax":{"type":"number","description":"The upper limit for the randomized block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationMin":{"type":"number","description":"The lower limit for the randomized block duration. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`blockDurationType`\" pulumi-lang-dotnet=\"`BlockDurationType`\" pulumi-lang-go=\"`blockDurationType`\" pulumi-lang-python=\"`block_duration_type`\" pulumi-lang-yaml=\"`blockDurationType`\" pulumi-lang-java=\"`blockDurationType`\"\u003e`block_duration_type`\u003c/span\u003e\n"},"blockDurationType":{"type":"string","description":"Block duration types: \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`randomized`\" pulumi-lang-dotnet=\"`Randomized`\" pulumi-lang-go=\"`randomized`\" pulumi-lang-python=\"`randomized`\" pulumi-lang-yaml=\"`randomized`\" pulumi-lang-java=\"`randomized`\"\u003e`randomized`\u003c/span\u003e. Time range: 1-1440 minutes.The Fixed type blocks the IP address or session for the duration specified by the \u003cspan pulumi-lang-nodejs=\"`blockDuration`\" pulumi-lang-dotnet=\"`BlockDuration`\" pulumi-lang-go=\"`blockDuration`\" pulumi-lang-python=\"`block_duration`\" pulumi-lang-yaml=\"`blockDuration`\" pulumi-lang-java=\"`blockDuration`\"\u003e`block_duration`\u003c/span\u003e parameter. The Randomized type generates a random duration for each block between the specified minimum and maximum values. Valid only for `RULE_ACTION_BLOCK_USER` or `RULE_ACTION_BLOCK_IP` \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e.\n"},"dcId":{"type":"number","description":"Data center to forward request to. Applies only for `RULE_ACTION_FORWARD_TO_DC`.\n"},"enabled":{"type":"boolean","description":"Boolean that enables the rule. Possible values: true, false. Default value is true.\n"},"errorResponseData":{"type":"string","description":"The response returned when the request matches the filter and is blocked. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`.\n"},"errorResponseFormat":{"type":"string","description":"The format of the given error response in the\u003cspan pulumi-lang-nodejs=\" errorResponseData \" pulumi-lang-dotnet=\" ErrorResponseData \" pulumi-lang-go=\" errorResponseData \" pulumi-lang-python=\" error_response_data \" pulumi-lang-yaml=\" errorResponseData \" pulumi-lang-java=\" errorResponseData \"\u003e error_response_data \u003c/span\u003efield. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`. Possible values: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xml`\" pulumi-lang-dotnet=\"`Xml`\" pulumi-lang-go=\"`xml`\" pulumi-lang-python=\"`xml`\" pulumi-lang-yaml=\"`xml`\" pulumi-lang-java=\"`xml`\"\u003e`xml`\u003c/span\u003e.\n"},"errorType":{"type":"string","description":"The error that triggers the rule. `error.type.all` triggers the rule regardless of the error type. Applies only for `RULE_ACTION_CUSTOM_ERROR_RESPONSE`. Possible values: `error.type.all`, `error.type.connection_timeout`, `error.type.access_denied`, `error.type.parse_req_error`, `error.type.parse_resp_error`, `error.type.connection_failed`, `error.type.deny_and_retry`, `error.type.ssl_failed`, `error.type.deny_and_captcha`, `error.type.2fa_required`, `error.type.no_ssl_config`, `error.type.no_ipv6_config`.\n"},"filter":{"type":"string","description":"The filter defines the conditions that trigger the rule action. For action `RULE_ACTION_SIMPLIFIED_REDIRECT` filter is not relevant. For other actions, if left empty, the rule is always run.\n"},"from":{"type":"string","description":"Pattern to rewrite. For `RULE_ACTION_REWRITE_URL` - Url to rewrite. For `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER` - Header value to rewrite. For `RULE_ACTION_REWRITE_COOKIE` - Cookie value to rewrite.\n"},"incapRuleId":{"type":"string","description":"Unique identifier in the API for the Incap Rule.\n"},"multipleDeletions":{"type":"boolean","description":"Delete multiple header occurrences. Applies only to rules using `RULE_ACTION_DELETE_HEADER` and `RULE_ACTION_RESPONSE_DELETE_HEADER`.\n"},"name":{"type":"string","description":"Rule name.\n"},"overrideWafAction":{"type":"string","description":"The action for the override rule `RULE_ACTION_WAF_OVERRIDE`. Possible values: Alert Only, Block Request, Block User, Block IP, Ignore.\n"},"overrideWafRule":{"type":"string","description":"The setting to override `RULE_ACTION_WAF_OVERRIDE`. Possible values: SQL Injection, Remote File Inclusion, Cross Site Scripting, Illegal Resource Access.\n"},"portForwardingContext":{"type":"string","description":"Context for port forwarding. \\\"Use Port Value\\\" or \\\"Use Header Name\\\". Applies only for `RULE_ACTION_FORWARD_TO_PORT`.\n"},"portForwardingValue":{"type":"string","description":"Port number or header name for port forwarding. Applies only for `RULE_ACTION_FORWARD_TO_PORT`.\n"},"rateContext":{"type":"string","description":"The context of the rate counter. Possible values `IP` or `Session`. Applies only to rules using `RULE_ACTION_RATE`.\n"},"rateInterval":{"type":"number","description":"The interval in seconds of the rate counter. Possible values is a multiple of \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e; minimum \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e and maximum \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Applies only to rules using `RULE_ACTION_RATE`.\n"},"responseCode":{"type":"number","description":"For `RULE_ACTION_REDIRECT` or `RULE_ACTION_SIMPLIFIED_REDIRECT` rule's response code, valid values are \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e. For `RULE_ACTION_RESPONSE_REWRITE_RESPONSE_CODE` rule's response code, valid values are all 3-digits numbers. For `RULE_ACTION_CUSTOM_ERROR_RESPONSE`, valid values are \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`401`\" pulumi-lang-dotnet=\"`401`\" pulumi-lang-go=\"`401`\" pulumi-lang-python=\"`401`\" pulumi-lang-yaml=\"`401`\" pulumi-lang-java=\"`401`\"\u003e`401`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`402`\" pulumi-lang-dotnet=\"`402`\" pulumi-lang-go=\"`402`\" pulumi-lang-python=\"`402`\" pulumi-lang-yaml=\"`402`\" pulumi-lang-java=\"`402`\"\u003e`402`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`403`\" pulumi-lang-dotnet=\"`403`\" pulumi-lang-go=\"`403`\" pulumi-lang-python=\"`403`\" pulumi-lang-yaml=\"`403`\" pulumi-lang-java=\"`403`\"\u003e`403`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`404`\" pulumi-lang-dotnet=\"`404`\" pulumi-lang-go=\"`404`\" pulumi-lang-python=\"`404`\" pulumi-lang-yaml=\"`404`\" pulumi-lang-java=\"`404`\"\u003e`404`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`405`\" pulumi-lang-dotnet=\"`405`\" pulumi-lang-go=\"`405`\" pulumi-lang-python=\"`405`\" pulumi-lang-yaml=\"`405`\" pulumi-lang-java=\"`405`\"\u003e`405`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`406`\" pulumi-lang-dotnet=\"`406`\" pulumi-lang-go=\"`406`\" pulumi-lang-python=\"`406`\" pulumi-lang-yaml=\"`406`\" pulumi-lang-java=\"`406`\"\u003e`406`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`407`\" pulumi-lang-dotnet=\"`407`\" pulumi-lang-go=\"`407`\" pulumi-lang-python=\"`407`\" pulumi-lang-yaml=\"`407`\" pulumi-lang-java=\"`407`\"\u003e`407`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`408`\" pulumi-lang-dotnet=\"`408`\" pulumi-lang-go=\"`408`\" pulumi-lang-python=\"`408`\" pulumi-lang-yaml=\"`408`\" pulumi-lang-java=\"`408`\"\u003e`408`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`409`\" pulumi-lang-dotnet=\"`409`\" pulumi-lang-go=\"`409`\" pulumi-lang-python=\"`409`\" pulumi-lang-yaml=\"`409`\" pulumi-lang-java=\"`409`\"\u003e`409`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`410`\" pulumi-lang-dotnet=\"`410`\" pulumi-lang-go=\"`410`\" pulumi-lang-python=\"`410`\" pulumi-lang-yaml=\"`410`\" pulumi-lang-java=\"`410`\"\u003e`410`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`411`\" pulumi-lang-dotnet=\"`411`\" pulumi-lang-go=\"`411`\" pulumi-lang-python=\"`411`\" pulumi-lang-yaml=\"`411`\" pulumi-lang-java=\"`411`\"\u003e`411`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`412`\" pulumi-lang-dotnet=\"`412`\" pulumi-lang-go=\"`412`\" pulumi-lang-python=\"`412`\" pulumi-lang-yaml=\"`412`\" pulumi-lang-java=\"`412`\"\u003e`412`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`413`\" pulumi-lang-dotnet=\"`413`\" pulumi-lang-go=\"`413`\" pulumi-lang-python=\"`413`\" pulumi-lang-yaml=\"`413`\" pulumi-lang-java=\"`413`\"\u003e`413`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`414`\" pulumi-lang-dotnet=\"`414`\" pulumi-lang-go=\"`414`\" pulumi-lang-python=\"`414`\" pulumi-lang-yaml=\"`414`\" pulumi-lang-java=\"`414`\"\u003e`414`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`415`\" pulumi-lang-dotnet=\"`415`\" pulumi-lang-go=\"`415`\" pulumi-lang-python=\"`415`\" pulumi-lang-yaml=\"`415`\" pulumi-lang-java=\"`415`\"\u003e`415`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`416`\" pulumi-lang-dotnet=\"`416`\" pulumi-lang-go=\"`416`\" pulumi-lang-python=\"`416`\" pulumi-lang-yaml=\"`416`\" pulumi-lang-java=\"`416`\"\u003e`416`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`417`\" pulumi-lang-dotnet=\"`417`\" pulumi-lang-go=\"`417`\" pulumi-lang-python=\"`417`\" pulumi-lang-yaml=\"`417`\" pulumi-lang-java=\"`417`\"\u003e`417`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`419`\" pulumi-lang-dotnet=\"`419`\" pulumi-lang-go=\"`419`\" pulumi-lang-python=\"`419`\" pulumi-lang-yaml=\"`419`\" pulumi-lang-java=\"`419`\"\u003e`419`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`420`\" pulumi-lang-dotnet=\"`420`\" pulumi-lang-go=\"`420`\" pulumi-lang-python=\"`420`\" pulumi-lang-yaml=\"`420`\" pulumi-lang-java=\"`420`\"\u003e`420`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`422`\" pulumi-lang-dotnet=\"`422`\" pulumi-lang-go=\"`422`\" pulumi-lang-python=\"`422`\" pulumi-lang-yaml=\"`422`\" pulumi-lang-java=\"`422`\"\u003e`422`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`423`\" pulumi-lang-dotnet=\"`423`\" pulumi-lang-go=\"`423`\" pulumi-lang-python=\"`423`\" pulumi-lang-yaml=\"`423`\" pulumi-lang-java=\"`423`\"\u003e`423`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`424`\" pulumi-lang-dotnet=\"`424`\" pulumi-lang-go=\"`424`\" pulumi-lang-python=\"`424`\" pulumi-lang-yaml=\"`424`\" pulumi-lang-java=\"`424`\"\u003e`424`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`501`\" pulumi-lang-dotnet=\"`501`\" pulumi-lang-go=\"`501`\" pulumi-lang-python=\"`501`\" pulumi-lang-yaml=\"`501`\" pulumi-lang-java=\"`501`\"\u003e`501`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`502`\" pulumi-lang-dotnet=\"`502`\" pulumi-lang-go=\"`502`\" pulumi-lang-python=\"`502`\" pulumi-lang-yaml=\"`502`\" pulumi-lang-java=\"`502`\"\u003e`502`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`503`\" pulumi-lang-dotnet=\"`503`\" pulumi-lang-go=\"`503`\" pulumi-lang-python=\"`503`\" pulumi-lang-yaml=\"`503`\" pulumi-lang-java=\"`503`\"\u003e`503`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`504`\" pulumi-lang-dotnet=\"`504`\" pulumi-lang-go=\"`504`\" pulumi-lang-python=\"`504`\" pulumi-lang-yaml=\"`504`\" pulumi-lang-java=\"`504`\"\u003e`504`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`505`\" pulumi-lang-dotnet=\"`505`\" pulumi-lang-go=\"`505`\" pulumi-lang-python=\"`505`\" pulumi-lang-yaml=\"`505`\" pulumi-lang-java=\"`505`\"\u003e`505`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`507`\" pulumi-lang-dotnet=\"`507`\" pulumi-lang-go=\"`507`\" pulumi-lang-python=\"`507`\" pulumi-lang-yaml=\"`507`\" pulumi-lang-java=\"`507`\"\u003e`507`\u003c/span\u003e.\n"},"rewriteExisting":{"type":"boolean","description":"Rewrite cookie or header if it exists.\n"},"rewriteName":{"type":"string","description":"Name of cookie or header to rewrite. Applies only for `RULE_ACTION_REWRITE_COOKIE`, `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER`.\n"},"sendNotifications":{"type":"string","description":"Send an email notification whenever this rule is triggered. Possible values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Applies to the following security actions: `RULE_ACTION_ALERT`, `RULE_ACTION_BLOCK`, `RULE_ACTION_BLOCK_USER`, `RULE_ACTION_BLOCK_IP`, `RULE_ACTION_RETRY`, `RULE_ACTION_INTRUSIVE_HTML`, `RULE_ACTION_CAPTCHA`.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"to":{"type":"string","description":"Pattern to change to. `RULE_ACTION_REWRITE_URL` - Url to change to. `RULE_ACTION_REWRITE_HEADER` and `RULE_ACTION_RESPONSE_REWRITE_HEADER` - Header value to change to. `RULE_ACTION_REWRITE_COOKIE` - Cookie value to change to.\n"}},"type":"object"}},"incapsula:index/managedCertificateSettings:ManagedCertificateSettings":{"description":"Provides an Incapsula Site's managed certificate settings resource.\nThe provider will configure or remove a managed certificate for the sites' domains, based on this resource.\n\u003cbr/\u003e\n\nNote: This resource applies only to sites managed by the\u003cspan pulumi-lang-nodejs=\" incapsula.SiteV3 \" pulumi-lang-dotnet=\" incapsula.SiteV3 \" pulumi-lang-go=\" SiteV3 \" pulumi-lang-python=\" SiteV3 \" pulumi-lang-yaml=\" incapsula.SiteV3 \" pulumi-lang-java=\" incapsula.SiteV3 \"\u003e incapsula.SiteV3 \u003c/span\u003eresource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_managedCertificateSettings = new incapsula.ManagedCertificateSettings(\"example-managed_certificate_settings\", {\n    siteId: example_v3_site.siteId,\n    defaultValidationMethod: \"CNAME\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_managed_certificate_settings = incapsula.ManagedCertificateSettings(\"example-managed_certificate_settings\",\n    site_id=example_v3_site[\"siteId\"],\n    default_validation_method=\"CNAME\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_managedCertificateSettings = new Incapsula.ManagedCertificateSettings(\"example-managed_certificate_settings\", new()\n    {\n        SiteId = example_v3_site.SiteId,\n        DefaultValidationMethod = \"CNAME\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewManagedCertificateSettings(ctx, \"example-managed_certificate_settings\", \u0026incapsula.ManagedCertificateSettingsArgs{\n\t\t\tSiteId:                  pulumi.Any(example_v3_site.SiteId),\n\t\t\tDefaultValidationMethod: pulumi.String(\"CNAME\"),\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.incapsula.ManagedCertificateSettings;\nimport com.pulumi.incapsula.ManagedCertificateSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_managedCertificateSettings = new ManagedCertificateSettings(\"example-managedCertificateSettings\", ManagedCertificateSettingsArgs.builder()\n            .siteId(example_v3_site.siteId())\n            .defaultValidationMethod(\"CNAME\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-managedCertificateSettings:\n    type: incapsula:ManagedCertificateSettings\n    name: example-managed_certificate_settings\n    properties:\n      siteId: ${[\"example-v3-site\"].siteId}\n      defaultValidationMethod: CNAME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nManaged certificate settings can be imported using the site_id, e.g.:\n\n```sh\n$ pulumi import incapsula:index/managedCertificateSettings:ManagedCertificateSettings example-managed_certificate_settings site_id\n```\nOr by using the account_id and site_id separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/managedCertificateSettings:ManagedCertificateSettings example-managed_certificate_settings account_id/site_id\n```\nThe official docs for Manage Certificate settings API are located here: https://docs.imperva.com/bundle/cloud-application-security/page/certificatesUI-api-definition.htm\n\n","properties":{"accountId":{"type":"number","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"defaultValidationMethod":{"type":"string","description":"The default SSL validation method that will be used for new domains. Options are `CNAME`, `DNS` and `EMAIL`. Defaults to `CNAME`.\n"},"managedCertificateSettingsId":{"type":"string","description":"The id of the managed certificate settings resource.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["accountId","managedCertificateSettingsId","siteId"],"inputProperties":{"accountId":{"type":"number","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"defaultValidationMethod":{"type":"string","description":"The default SSL validation method that will be used for new domains. Options are `CNAME`, `DNS` and `EMAIL`. Defaults to `CNAME`.\n"},"managedCertificateSettingsId":{"type":"string","description":"The id of the managed certificate settings resource.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ManagedCertificateSettings resources.\n","properties":{"accountId":{"type":"number","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"defaultValidationMethod":{"type":"string","description":"The default SSL validation method that will be used for new domains. Options are `CNAME`, `DNS` and `EMAIL`. Defaults to `CNAME`.\n"},"managedCertificateSettingsId":{"type":"string","description":"The id of the managed certificate settings resource.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/mtlsClientToImpervaCaCertificate:MtlsClientToImpervaCaCertificate":{"description":"\n\n## Import\n\nYour Incapsula Mutual TLS Imperva to Origin Certificate can be imported using `account_id` and `certificate_id`:\n\n```sh\n$ pulumi import incapsula:index/mtlsClientToImpervaCaCertificate:MtlsClientToImpervaCaCertificate client_ca_certificate_1 account_id/certificate_id\n```\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on.\n"},"certificate":{"type":"string","description":"The certificate file in base64 format."},"certificateName":{"type":"string","description":"A descriptive name for your mTLS Client Certificate.\n"},"mtlsClientToImpervaCaCertificateId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"}},"type":"object","required":["accountId","certificate","mtlsClientToImpervaCaCertificateId"],"inputProperties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on.\n"},"certificate":{"type":"string","description":"The certificate file in base64 format."},"certificateName":{"type":"string","description":"A descriptive name for your mTLS Client Certificate.\n"},"mtlsClientToImpervaCaCertificateId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"}},"requiredInputs":["accountId","certificate"],"stateInputs":{"description":"Input properties used for looking up and filtering MtlsClientToImpervaCaCertificate resources.\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on.\n"},"certificate":{"type":"string","description":"The certificate file in base64 format."},"certificateName":{"type":"string","description":"A descriptive name for your mTLS Client Certificate.\n"},"mtlsClientToImpervaCaCertificateId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"}},"type":"object"}},"incapsula:index/mtlsClientToImpervaCaCertificateSiteAssociation:MtlsClientToImpervaCaCertificateSiteAssociation":{"description":"Provides an Incapsula Mutual TLS Client to Imperva CA Certificate Association resource.\n\n## Import\n\nIncapsula Mutual TLS Client to Imperva CA Certificate Association can be imported using `site_id` and `certificate_id` separated by a slash:\n\n```sh\n$ pulumi import incapsula:index/mtlsClientToImpervaCaCertificateSiteAssociation:MtlsClientToImpervaCaCertificateSiteAssociation site_certificate_association_1 site_id/certificate_id\n```\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"certificateId":{"type":"string","description":"The Mutual TLS Client to Imperva CA Certificate ID.\n"},"mtlsClientToImpervaCaCertificateSiteAssociationId":{"type":"string","description":"Incapsula Mutual TLS Client to Imperva CA Certificate Association ID. The ID is composed of 2 parts: \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e separated by a slash.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["certificateId","mtlsClientToImpervaCaCertificateSiteAssociationId","siteId"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"certificateId":{"type":"string","description":"The Mutual TLS Client to Imperva CA Certificate ID.\n"},"mtlsClientToImpervaCaCertificateSiteAssociationId":{"type":"string","description":"Incapsula Mutual TLS Client to Imperva CA Certificate Association ID. The ID is composed of 2 parts: \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e separated by a slash.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["certificateId","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering MtlsClientToImpervaCaCertificateSiteAssociation resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"certificateId":{"type":"string","description":"The Mutual TLS Client to Imperva CA Certificate ID.\n"},"mtlsClientToImpervaCaCertificateSiteAssociationId":{"type":"string","description":"Incapsula Mutual TLS Client to Imperva CA Certificate Association ID. The ID is composed of 2 parts: \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e separated by a slash.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/mtlsClientToImpervaCaCertificateSiteSettings:MtlsClientToImpervaCaCertificateSiteSettings":{"description":"## Example Usage\n\nAssociate 2 different certificates with the same site.\nUse the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e parameter to ensure that related resources are applied in the proper order.\n\n## Import\n\nIncapsula mutual TLS Client to Imperva Certificate Site Settings can be imported using Site ID :\n\n```sh\n$ pulumi import incapsula:index/mtlsClientToImpervaCaCertificateSiteSettings:MtlsClientToImpervaCaCertificateSiteSettings demo_client_to_imperva_certificate_site_settings 1234\n```\n","properties":{"fingerprints":{"type":"array","items":{"type":"string"},"description":"Permitted client certificate fingerprints. If left empty, all fingerprints are permitted. Default - empty list.\n"},"forwardToOrigin":{"type":"boolean","description":"When set to true, the contents specified in headerValue are sent to the origin server in the header specified by headerName. Default - false. If parameter is set to true, \u003cspan pulumi-lang-nodejs=\"`headerName`\" pulumi-lang-dotnet=\"`HeaderName`\" pulumi-lang-go=\"`headerName`\" pulumi-lang-python=\"`header_name`\" pulumi-lang-yaml=\"`headerName`\" pulumi-lang-java=\"`headerName`\"\u003e`header_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`headerValue`\" pulumi-lang-dotnet=\"`HeaderValue`\" pulumi-lang-go=\"`headerValue`\" pulumi-lang-python=\"`header_value`\" pulumi-lang-yaml=\"`headerValue`\" pulumi-lang-java=\"`headerValue`\"\u003e`header_value`\u003c/span\u003e are required.\n"},"headerName":{"type":"string","description":"The name of the header to send header content in. By default, the header name is 'clientCertificateInfo'. Specifying this parameter is relevant only if \u003cspan pulumi-lang-nodejs=\"`forwardToOrigin`\" pulumi-lang-dotnet=\"`ForwardToOrigin`\" pulumi-lang-go=\"`forwardToOrigin`\" pulumi-lang-python=\"`forward_to_origin`\" pulumi-lang-yaml=\"`forwardToOrigin`\" pulumi-lang-java=\"`forwardToOrigin`\"\u003e`forward_to_origin`\u003c/span\u003e is set to true. Default - `clientCertificateInfo`.\n"},"headerValue":{"type":"string","description":"The content to send in the header specified by headerName. One of the following: `FULL_CERT` (for full certificate in Base64) `COMMON_NAME` (for certificate's common name (CN)) `FINGERPRINT` (for the certificate fingerprints in SHA1) `SERIAL_NUMBER` (for the certificate's serial number). This parameter is required if \u003cspan pulumi-lang-nodejs=\"`forwardToOrigin`\" pulumi-lang-dotnet=\"`ForwardToOrigin`\" pulumi-lang-go=\"`forwardToOrigin`\" pulumi-lang-python=\"`forward_to_origin`\" pulumi-lang-yaml=\"`forwardToOrigin`\" pulumi-lang-java=\"`forwardToOrigin`\"\u003e`forward_to_origin`\u003c/span\u003e is set to true. Default: `FULL_CERT`.\n"},"hosts":{"type":"array","items":{"type":"string"},"description":"The hosts on which client certificate authentication is supported. If left empty, client certificates are supported on all hosts. Default - empty list.\n"},"isDisableSessionResumption":{"type":"boolean","description":"Disables SSL session resumption for site. Needed when Incapsula Client CA Certificate is needed only for specific hosts/ports and site have clients that reuse TLS session across different hosts/ports. Default - false.\n"},"isHostsException":{"type":"boolean","description":"When set to true, client certificates are not supported on the hosts listed in the Hosts field ('blacklisted'). Default - false.\n"},"isPortsException":{"type":"boolean","description":"When set to true, client certificates are not supported on the ports listed in the Ports field ('blacklisted'). Default - false.\n"},"mtlsClientToImpervaCaCertificateSiteSettingsId":{"type":"string","description":"Value of Site ID in the Incapsula Mutual TLS Client to Imperva CA Certificate Site Settings.\n"},"ports":{"type":"array","items":{"type":"number"},"description":"The ports on which client certificate authentication is supported. If left empty, client certificates are supported on all ports. Default: empty list.\n"},"requireClientCertificate":{"type":"boolean","description":"When set to true, the end user is required to present the client certificate in order to access the site. Default - false.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["mtlsClientToImpervaCaCertificateSiteSettingsId","siteId"],"inputProperties":{"fingerprints":{"type":"array","items":{"type":"string"},"description":"Permitted client certificate fingerprints. If left empty, all fingerprints are permitted. Default - empty list.\n"},"forwardToOrigin":{"type":"boolean","description":"When set to true, the contents specified in headerValue are sent to the origin server in the header specified by headerName. Default - false. If parameter is set to true, \u003cspan pulumi-lang-nodejs=\"`headerName`\" pulumi-lang-dotnet=\"`HeaderName`\" pulumi-lang-go=\"`headerName`\" pulumi-lang-python=\"`header_name`\" pulumi-lang-yaml=\"`headerName`\" pulumi-lang-java=\"`headerName`\"\u003e`header_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`headerValue`\" pulumi-lang-dotnet=\"`HeaderValue`\" pulumi-lang-go=\"`headerValue`\" pulumi-lang-python=\"`header_value`\" pulumi-lang-yaml=\"`headerValue`\" pulumi-lang-java=\"`headerValue`\"\u003e`header_value`\u003c/span\u003e are required.\n"},"headerName":{"type":"string","description":"The name of the header to send header content in. By default, the header name is 'clientCertificateInfo'. Specifying this parameter is relevant only if \u003cspan pulumi-lang-nodejs=\"`forwardToOrigin`\" pulumi-lang-dotnet=\"`ForwardToOrigin`\" pulumi-lang-go=\"`forwardToOrigin`\" pulumi-lang-python=\"`forward_to_origin`\" pulumi-lang-yaml=\"`forwardToOrigin`\" pulumi-lang-java=\"`forwardToOrigin`\"\u003e`forward_to_origin`\u003c/span\u003e is set to true. Default - `clientCertificateInfo`.\n"},"headerValue":{"type":"string","description":"The content to send in the header specified by headerName. One of the following: `FULL_CERT` (for full certificate in Base64) `COMMON_NAME` (for certificate's common name (CN)) `FINGERPRINT` (for the certificate fingerprints in SHA1) `SERIAL_NUMBER` (for the certificate's serial number). This parameter is required if \u003cspan pulumi-lang-nodejs=\"`forwardToOrigin`\" pulumi-lang-dotnet=\"`ForwardToOrigin`\" pulumi-lang-go=\"`forwardToOrigin`\" pulumi-lang-python=\"`forward_to_origin`\" pulumi-lang-yaml=\"`forwardToOrigin`\" pulumi-lang-java=\"`forwardToOrigin`\"\u003e`forward_to_origin`\u003c/span\u003e is set to true. Default: `FULL_CERT`.\n"},"hosts":{"type":"array","items":{"type":"string"},"description":"The hosts on which client certificate authentication is supported. If left empty, client certificates are supported on all hosts. Default - empty list.\n"},"isDisableSessionResumption":{"type":"boolean","description":"Disables SSL session resumption for site. Needed when Incapsula Client CA Certificate is needed only for specific hosts/ports and site have clients that reuse TLS session across different hosts/ports. Default - false.\n"},"isHostsException":{"type":"boolean","description":"When set to true, client certificates are not supported on the hosts listed in the Hosts field ('blacklisted'). Default - false.\n"},"isPortsException":{"type":"boolean","description":"When set to true, client certificates are not supported on the ports listed in the Ports field ('blacklisted'). Default - false.\n"},"mtlsClientToImpervaCaCertificateSiteSettingsId":{"type":"string","description":"Value of Site ID in the Incapsula Mutual TLS Client to Imperva CA Certificate Site Settings.\n"},"ports":{"type":"array","items":{"type":"number"},"description":"The ports on which client certificate authentication is supported. If left empty, client certificates are supported on all ports. Default: empty list.\n"},"requireClientCertificate":{"type":"boolean","description":"When set to true, the end user is required to present the client certificate in order to access the site. Default - false.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering MtlsClientToImpervaCaCertificateSiteSettings resources.\n","properties":{"fingerprints":{"type":"array","items":{"type":"string"},"description":"Permitted client certificate fingerprints. If left empty, all fingerprints are permitted. Default - empty list.\n"},"forwardToOrigin":{"type":"boolean","description":"When set to true, the contents specified in headerValue are sent to the origin server in the header specified by headerName. Default - false. If parameter is set to true, \u003cspan pulumi-lang-nodejs=\"`headerName`\" pulumi-lang-dotnet=\"`HeaderName`\" pulumi-lang-go=\"`headerName`\" pulumi-lang-python=\"`header_name`\" pulumi-lang-yaml=\"`headerName`\" pulumi-lang-java=\"`headerName`\"\u003e`header_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`headerValue`\" pulumi-lang-dotnet=\"`HeaderValue`\" pulumi-lang-go=\"`headerValue`\" pulumi-lang-python=\"`header_value`\" pulumi-lang-yaml=\"`headerValue`\" pulumi-lang-java=\"`headerValue`\"\u003e`header_value`\u003c/span\u003e are required.\n"},"headerName":{"type":"string","description":"The name of the header to send header content in. By default, the header name is 'clientCertificateInfo'. Specifying this parameter is relevant only if \u003cspan pulumi-lang-nodejs=\"`forwardToOrigin`\" pulumi-lang-dotnet=\"`ForwardToOrigin`\" pulumi-lang-go=\"`forwardToOrigin`\" pulumi-lang-python=\"`forward_to_origin`\" pulumi-lang-yaml=\"`forwardToOrigin`\" pulumi-lang-java=\"`forwardToOrigin`\"\u003e`forward_to_origin`\u003c/span\u003e is set to true. Default - `clientCertificateInfo`.\n"},"headerValue":{"type":"string","description":"The content to send in the header specified by headerName. One of the following: `FULL_CERT` (for full certificate in Base64) `COMMON_NAME` (for certificate's common name (CN)) `FINGERPRINT` (for the certificate fingerprints in SHA1) `SERIAL_NUMBER` (for the certificate's serial number). This parameter is required if \u003cspan pulumi-lang-nodejs=\"`forwardToOrigin`\" pulumi-lang-dotnet=\"`ForwardToOrigin`\" pulumi-lang-go=\"`forwardToOrigin`\" pulumi-lang-python=\"`forward_to_origin`\" pulumi-lang-yaml=\"`forwardToOrigin`\" pulumi-lang-java=\"`forwardToOrigin`\"\u003e`forward_to_origin`\u003c/span\u003e is set to true. Default: `FULL_CERT`.\n"},"hosts":{"type":"array","items":{"type":"string"},"description":"The hosts on which client certificate authentication is supported. If left empty, client certificates are supported on all hosts. Default - empty list.\n"},"isDisableSessionResumption":{"type":"boolean","description":"Disables SSL session resumption for site. Needed when Incapsula Client CA Certificate is needed only for specific hosts/ports and site have clients that reuse TLS session across different hosts/ports. Default - false.\n"},"isHostsException":{"type":"boolean","description":"When set to true, client certificates are not supported on the hosts listed in the Hosts field ('blacklisted'). Default - false.\n"},"isPortsException":{"type":"boolean","description":"When set to true, client certificates are not supported on the ports listed in the Ports field ('blacklisted'). Default - false.\n"},"mtlsClientToImpervaCaCertificateSiteSettingsId":{"type":"string","description":"Value of Site ID in the Incapsula Mutual TLS Client to Imperva CA Certificate Site Settings.\n"},"ports":{"type":"array","items":{"type":"number"},"description":"The ports on which client certificate authentication is supported. If left empty, client certificates are supported on all ports. Default: empty list.\n"},"requireClientCertificate":{"type":"boolean","description":"When set to true, the end user is required to present the client certificate in order to access the site. Default - false.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/mtlsImpervaToOriginCertificate:MtlsImpervaToOriginCertificate":{"description":"Provides a Mutual TLS Imperva to Origin certificate resource.\nThis resource is used to upload mTLS client certificates to enable mutual authentication between Imperva and origin servers.\nMutual TLS Imperva to Origin Certificates must be in one of the following formats: pem, der, pfx, cert, crt, p7b, cer, p12, key, ca-bundle, bundle, priv, cert.\n\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on.\n"},"certificate":{"type":"string","description":"Your mTLS client certificate file in base64 format. Supported formats: PEM, DER and PFX. Only RSA certificates are currently supported. The certificate RSA key size must be 2048 bit or less. The certificate must be issued by a certificate authority (CA) and cannot be self-signed.","secret":true},"certificateName":{"type":"string","description":"A descriptive name for your mTLS Certificate.\n"},"inputHash":{"type":"string"},"mtlsImpervaToOriginCertificateId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"},"passphrase":{"type":"string","description":"Your private key passphrase. Leave empty if the private key is not password protected.\n","secret":true},"privateKey":{"type":"string","description":"Your private key file. supported formats: pem, der, priv, key. If pfx or p12 certificate is used, then this field can remain empty.\n","secret":true}},"type":"object","required":["certificate","mtlsImpervaToOriginCertificateId"],"inputProperties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on.\n"},"certificate":{"type":"string","description":"Your mTLS client certificate file in base64 format. Supported formats: PEM, DER and PFX. Only RSA certificates are currently supported. The certificate RSA key size must be 2048 bit or less. The certificate must be issued by a certificate authority (CA) and cannot be self-signed.","secret":true},"certificateName":{"type":"string","description":"A descriptive name for your mTLS Certificate.\n"},"inputHash":{"type":"string"},"mtlsImpervaToOriginCertificateId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"},"passphrase":{"type":"string","description":"Your private key passphrase. Leave empty if the private key is not password protected.\n","secret":true},"privateKey":{"type":"string","description":"Your private key file. supported formats: pem, der, priv, key. If pfx or p12 certificate is used, then this field can remain empty.\n","secret":true}},"requiredInputs":["certificate"],"stateInputs":{"description":"Input properties used for looking up and filtering MtlsImpervaToOriginCertificate resources.\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on.\n"},"certificate":{"type":"string","description":"Your mTLS client certificate file in base64 format. Supported formats: PEM, DER and PFX. Only RSA certificates are currently supported. The certificate RSA key size must be 2048 bit or less. The certificate must be issued by a certificate authority (CA) and cannot be self-signed.","secret":true},"certificateName":{"type":"string","description":"A descriptive name for your mTLS Certificate.\n"},"inputHash":{"type":"string"},"mtlsImpervaToOriginCertificateId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"},"passphrase":{"type":"string","description":"Your private key passphrase. Leave empty if the private key is not password protected.\n","secret":true},"privateKey":{"type":"string","description":"Your private key file. supported formats: pem, der, priv, key. If pfx or p12 certificate is used, then this field can remain empty.\n","secret":true}},"type":"object"}},"incapsula:index/mtlsImpervaToOriginCertificateSiteAssociation:MtlsImpervaToOriginCertificateSiteAssociation":{"description":"Provides a Mutual TLS Imperva to Origin certificate Association resource.\nThis resource is used to associate between mTLS client certificates and site.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst mtlsImpervaToOriginCertificateSiteAssociation = new incapsula.MtlsImpervaToOriginCertificateSiteAssociation(\"mtls_imperva_to_origin_certificate_site_association\", {\n    siteId: example_site.id,\n    certificateId: example_certificate.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nmtls_imperva_to_origin_certificate_site_association = incapsula.MtlsImpervaToOriginCertificateSiteAssociation(\"mtls_imperva_to_origin_certificate_site_association\",\n    site_id=example_site[\"id\"],\n    certificate_id=example_certificate[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mtlsImpervaToOriginCertificateSiteAssociation = new Incapsula.MtlsImpervaToOriginCertificateSiteAssociation(\"mtls_imperva_to_origin_certificate_site_association\", new()\n    {\n        SiteId = example_site.Id,\n        CertificateId = example_certificate.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewMtlsImpervaToOriginCertificateSiteAssociation(ctx, \"mtls_imperva_to_origin_certificate_site_association\", \u0026incapsula.MtlsImpervaToOriginCertificateSiteAssociationArgs{\n\t\t\tSiteId:        pulumi.Any(example_site.Id),\n\t\t\tCertificateId: pulumi.Any(example_certificate.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.incapsula.MtlsImpervaToOriginCertificateSiteAssociation;\nimport com.pulumi.incapsula.MtlsImpervaToOriginCertificateSiteAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mtlsImpervaToOriginCertificateSiteAssociation = new MtlsImpervaToOriginCertificateSiteAssociation(\"mtlsImpervaToOriginCertificateSiteAssociation\", MtlsImpervaToOriginCertificateSiteAssociationArgs.builder()\n            .siteId(example_site.id())\n            .certificateId(example_certificate.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mtlsImpervaToOriginCertificateSiteAssociation:\n    type: incapsula:MtlsImpervaToOriginCertificateSiteAssociation\n    name: mtls_imperva_to_origin_certificate_site_association\n    properties:\n      siteId: ${[\"example-site\"].id}\n      certificateId: ${[\"example-certificate\"].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"certificateId":{"type":"string","description":"The mTLS certificate id you want to assign to your site.\n"},"mtlsImpervaToOriginCertificateSiteAssociationId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"},"siteId":{"type":"string","description":"Site id to assign to a given mTLS client certificate.\n"}},"type":"object","required":["certificateId","mtlsImpervaToOriginCertificateSiteAssociationId","siteId"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"certificateId":{"type":"string","description":"The mTLS certificate id you want to assign to your site.\n"},"mtlsImpervaToOriginCertificateSiteAssociationId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"},"siteId":{"type":"string","description":"Site id to assign to a given mTLS client certificate.\n"}},"requiredInputs":["certificateId","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering MtlsImpervaToOriginCertificateSiteAssociation resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"certificateId":{"type":"string","description":"The mTLS certificate id you want to assign to your site.\n"},"mtlsImpervaToOriginCertificateSiteAssociationId":{"type":"string","description":"Unique identifier of the Mutual TLS Imperva to Origin Certificate.\n"},"siteId":{"type":"string","description":"Site id to assign to a given mTLS client certificate.\n"}},"type":"object"}},"incapsula:index/notificationCenterPolicy:NotificationCenterPolicy":{"description":"Provides an Incapsula Notification Center Policy resource.\n\n## Example Usage\n\nNotification center policy that applies on subaccounts\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst notification_policy_subaccount = new incapsula.NotificationCenterPolicy(\"notification-policy-subaccount\", {\n    accountId: 12345,\n    policyName: \"Terraform policy sub account\",\n    status: \"ENABLE\",\n    subCategory: \"SITE_NOTIFICATIONS\",\n    emailchannelUserRecipientLists: [\n        1111,\n        2222,\n    ],\n    emailchannelExternalRecipientLists: [\n        \"john.doe@company.com\",\n        \"another.email@company.com\",\n    ],\n    policyType: \"SUB_ACCOUNT\",\n    subAccountLists: [\n        123456,\n        tmp_subaccount.id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nnotification_policy_subaccount = incapsula.NotificationCenterPolicy(\"notification-policy-subaccount\",\n    account_id=12345,\n    policy_name=\"Terraform policy sub account\",\n    status=\"ENABLE\",\n    sub_category=\"SITE_NOTIFICATIONS\",\n    emailchannel_user_recipient_lists=[\n        1111,\n        2222,\n    ],\n    emailchannel_external_recipient_lists=[\n        \"john.doe@company.com\",\n        \"another.email@company.com\",\n    ],\n    policy_type=\"SUB_ACCOUNT\",\n    sub_account_lists=[\n        123456,\n        tmp_subaccount[\"id\"],\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var notification_policy_subaccount = new Incapsula.NotificationCenterPolicy(\"notification-policy-subaccount\", new()\n    {\n        AccountId = 12345,\n        PolicyName = \"Terraform policy sub account\",\n        Status = \"ENABLE\",\n        SubCategory = \"SITE_NOTIFICATIONS\",\n        EmailchannelUserRecipientLists = new[]\n        {\n            1111,\n            2222,\n        },\n        EmailchannelExternalRecipientLists = new[]\n        {\n            \"john.doe@company.com\",\n            \"another.email@company.com\",\n        },\n        PolicyType = \"SUB_ACCOUNT\",\n        SubAccountLists = new[]\n        {\n            123456,\n            tmp_subaccount.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewNotificationCenterPolicy(ctx, \"notification-policy-subaccount\", \u0026incapsula.NotificationCenterPolicyArgs{\n\t\t\tAccountId:   pulumi.Float64(12345),\n\t\t\tPolicyName:  pulumi.String(\"Terraform policy sub account\"),\n\t\t\tStatus:      pulumi.String(\"ENABLE\"),\n\t\t\tSubCategory: pulumi.String(\"SITE_NOTIFICATIONS\"),\n\t\t\tEmailchannelUserRecipientLists: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1111),\n\t\t\t\tpulumi.Float64(2222),\n\t\t\t},\n\t\t\tEmailchannelExternalRecipientLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"john.doe@company.com\"),\n\t\t\t\tpulumi.String(\"another.email@company.com\"),\n\t\t\t},\n\t\t\tPolicyType: pulumi.String(\"SUB_ACCOUNT\"),\n\t\t\tSubAccountLists: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(123456),\n\t\t\t\ttmp_subaccount.Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.NotificationCenterPolicy;\nimport com.pulumi.incapsula.NotificationCenterPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var notification_policy_subaccount = new NotificationCenterPolicy(\"notification-policy-subaccount\", NotificationCenterPolicyArgs.builder()\n            .accountId(12345.0)\n            .policyName(\"Terraform policy sub account\")\n            .status(\"ENABLE\")\n            .subCategory(\"SITE_NOTIFICATIONS\")\n            .emailchannelUserRecipientLists(            \n                1111.0,\n                2222.0)\n            .emailchannelExternalRecipientLists(            \n                \"john.doe@company.com\",\n                \"another.email@company.com\")\n            .policyType(\"SUB_ACCOUNT\")\n            .subAccountLists(            \n                123456.0,\n                tmp_subaccount.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  notification-policy-subaccount:\n    type: incapsula:NotificationCenterPolicy\n    properties:\n      accountId: 12345\n      policyName: Terraform policy sub account\n      status: ENABLE\n      subCategory: SITE_NOTIFICATIONS\n      emailchannelUserRecipientLists:\n        - 1111\n        - 2222\n      emailchannelExternalRecipientLists:\n        - john.doe@company.com\n        - another.email@company.com\n      policyType: SUB_ACCOUNT\n      subAccountLists:\n        - 123456\n        - ${[\"tmp-subaccount\"].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nNotification policy that applies to assets of type \u003cspan pulumi-lang-nodejs=\"\"incapsula.Site\"\" pulumi-lang-dotnet=\"\"incapsula.Site\"\" pulumi-lang-go=\"\"Site\"\" pulumi-lang-python=\"\"Site\"\" pulumi-lang-yaml=\"\"incapsula.Site\"\" pulumi-lang-java=\"\"incapsula.Site\"\"\u003e\"incapsula.Site\"\u003c/span\u003e\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst notification_policy_account_with_assets = new incapsula.NotificationCenterPolicy(\"notification-policy-account-with-assets\", {\n    accountId: 12345,\n    policyName: \"Terraform policy account with assets\",\n    assets: [\n        {\n            assetType: \"SITE\",\n            assetId: tmp_site.id,\n        },\n        {\n            assetType: \"SITE\",\n            assetId: 7999203,\n        },\n    ],\n    status: \"ENABLE\",\n    subCategory: \"SITE_NOTIFICATIONS\",\n    emailchannelUserRecipientLists: [\n        1111,\n        2222,\n    ],\n    emailchannelExternalRecipientLists: [\n        \"john.doe@company.com\",\n        \"another.exernal.email@company.com\",\n    ],\n    policyType: \"ACCOUNT\",\n    applyToNewAssets: \"FALSE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nnotification_policy_account_with_assets = incapsula.NotificationCenterPolicy(\"notification-policy-account-with-assets\",\n    account_id=12345,\n    policy_name=\"Terraform policy account with assets\",\n    assets=[\n        {\n            \"asset_type\": \"SITE\",\n            \"asset_id\": tmp_site[\"id\"],\n        },\n        {\n            \"asset_type\": \"SITE\",\n            \"asset_id\": 7999203,\n        },\n    ],\n    status=\"ENABLE\",\n    sub_category=\"SITE_NOTIFICATIONS\",\n    emailchannel_user_recipient_lists=[\n        1111,\n        2222,\n    ],\n    emailchannel_external_recipient_lists=[\n        \"john.doe@company.com\",\n        \"another.exernal.email@company.com\",\n    ],\n    policy_type=\"ACCOUNT\",\n    apply_to_new_assets=\"FALSE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var notification_policy_account_with_assets = new Incapsula.NotificationCenterPolicy(\"notification-policy-account-with-assets\", new()\n    {\n        AccountId = 12345,\n        PolicyName = \"Terraform policy account with assets\",\n        Assets = new[]\n        {\n            new Incapsula.Inputs.NotificationCenterPolicyAssetArgs\n            {\n                AssetType = \"SITE\",\n                AssetId = tmp_site.Id,\n            },\n            new Incapsula.Inputs.NotificationCenterPolicyAssetArgs\n            {\n                AssetType = \"SITE\",\n                AssetId = 7999203,\n            },\n        },\n        Status = \"ENABLE\",\n        SubCategory = \"SITE_NOTIFICATIONS\",\n        EmailchannelUserRecipientLists = new[]\n        {\n            1111,\n            2222,\n        },\n        EmailchannelExternalRecipientLists = new[]\n        {\n            \"john.doe@company.com\",\n            \"another.exernal.email@company.com\",\n        },\n        PolicyType = \"ACCOUNT\",\n        ApplyToNewAssets = \"FALSE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewNotificationCenterPolicy(ctx, \"notification-policy-account-with-assets\", \u0026incapsula.NotificationCenterPolicyArgs{\n\t\t\tAccountId:  pulumi.Float64(12345),\n\t\t\tPolicyName: pulumi.String(\"Terraform policy account with assets\"),\n\t\t\tAssets: incapsula.NotificationCenterPolicyAssetArray{\n\t\t\t\t\u0026incapsula.NotificationCenterPolicyAssetArgs{\n\t\t\t\t\tAssetType: pulumi.String(\"SITE\"),\n\t\t\t\t\tAssetId:   pulumi.Any(tmp_site.Id),\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.NotificationCenterPolicyAssetArgs{\n\t\t\t\t\tAssetType: pulumi.String(\"SITE\"),\n\t\t\t\t\tAssetId:   pulumi.Float64(7999203),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStatus:      pulumi.String(\"ENABLE\"),\n\t\t\tSubCategory: pulumi.String(\"SITE_NOTIFICATIONS\"),\n\t\t\tEmailchannelUserRecipientLists: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1111),\n\t\t\t\tpulumi.Float64(2222),\n\t\t\t},\n\t\t\tEmailchannelExternalRecipientLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"john.doe@company.com\"),\n\t\t\t\tpulumi.String(\"another.exernal.email@company.com\"),\n\t\t\t},\n\t\t\tPolicyType:       pulumi.String(\"ACCOUNT\"),\n\t\t\tApplyToNewAssets: pulumi.String(\"FALSE\"),\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.incapsula.NotificationCenterPolicy;\nimport com.pulumi.incapsula.NotificationCenterPolicyArgs;\nimport com.pulumi.incapsula.inputs.NotificationCenterPolicyAssetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var notification_policy_account_with_assets = new NotificationCenterPolicy(\"notification-policy-account-with-assets\", NotificationCenterPolicyArgs.builder()\n            .accountId(12345.0)\n            .policyName(\"Terraform policy account with assets\")\n            .assets(            \n                NotificationCenterPolicyAssetArgs.builder()\n                    .assetType(\"SITE\")\n                    .assetId(tmp_site.id())\n                    .build(),\n                NotificationCenterPolicyAssetArgs.builder()\n                    .assetType(\"SITE\")\n                    .assetId(7999203.0)\n                    .build())\n            .status(\"ENABLE\")\n            .subCategory(\"SITE_NOTIFICATIONS\")\n            .emailchannelUserRecipientLists(            \n                1111.0,\n                2222.0)\n            .emailchannelExternalRecipientLists(            \n                \"john.doe@company.com\",\n                \"another.exernal.email@company.com\")\n            .policyType(\"ACCOUNT\")\n            .applyToNewAssets(\"FALSE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  notification-policy-account-with-assets:\n    type: incapsula:NotificationCenterPolicy\n    properties:\n      accountId: 12345\n      policyName: Terraform policy account with assets\n      assets:\n        - assetType: SITE\n          assetId: ${[\"tmp-site\"].id}\n        - assetType: SITE\n          assetId: 7.999203e+06\n      status: ENABLE\n      subCategory: SITE_NOTIFICATIONS\n      emailchannelUserRecipientLists:\n        - 1111\n        - 2222\n      emailchannelExternalRecipientLists:\n        - john.doe@company.com\n        - another.exernal.email@company.com\n      policyType: ACCOUNT\n      applyToNewAssets: FALSE\n```\n\u003c!--End PulumiCodeChooser --\u003e\nNotification policy on sub-category with no relevance to assets\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst notification_policy_account_without_assets = new incapsula.NotificationCenterPolicy(\"notification-policy-account-without-assets\", {\n    accountId: 12345,\n    policyName: \"Terraform policy account without assets\",\n    status: \"ENABLE\",\n    subCategory: \"ACCOUNT_NOTIFICATIONS\",\n    emailchannelUserRecipientLists: [\n        1111,\n        2222,\n    ],\n    emailchannelExternalRecipientLists: [\n        \"john.doe@company.com\",\n        \"another.exernal.email@company.com\",\n    ],\n    policyType: \"ACCOUNT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nnotification_policy_account_without_assets = incapsula.NotificationCenterPolicy(\"notification-policy-account-without-assets\",\n    account_id=12345,\n    policy_name=\"Terraform policy account without assets\",\n    status=\"ENABLE\",\n    sub_category=\"ACCOUNT_NOTIFICATIONS\",\n    emailchannel_user_recipient_lists=[\n        1111,\n        2222,\n    ],\n    emailchannel_external_recipient_lists=[\n        \"john.doe@company.com\",\n        \"another.exernal.email@company.com\",\n    ],\n    policy_type=\"ACCOUNT\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var notification_policy_account_without_assets = new Incapsula.NotificationCenterPolicy(\"notification-policy-account-without-assets\", new()\n    {\n        AccountId = 12345,\n        PolicyName = \"Terraform policy account without assets\",\n        Status = \"ENABLE\",\n        SubCategory = \"ACCOUNT_NOTIFICATIONS\",\n        EmailchannelUserRecipientLists = new[]\n        {\n            1111,\n            2222,\n        },\n        EmailchannelExternalRecipientLists = new[]\n        {\n            \"john.doe@company.com\",\n            \"another.exernal.email@company.com\",\n        },\n        PolicyType = \"ACCOUNT\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewNotificationCenterPolicy(ctx, \"notification-policy-account-without-assets\", \u0026incapsula.NotificationCenterPolicyArgs{\n\t\t\tAccountId:   pulumi.Float64(12345),\n\t\t\tPolicyName:  pulumi.String(\"Terraform policy account without assets\"),\n\t\t\tStatus:      pulumi.String(\"ENABLE\"),\n\t\t\tSubCategory: pulumi.String(\"ACCOUNT_NOTIFICATIONS\"),\n\t\t\tEmailchannelUserRecipientLists: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1111),\n\t\t\t\tpulumi.Float64(2222),\n\t\t\t},\n\t\t\tEmailchannelExternalRecipientLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"john.doe@company.com\"),\n\t\t\t\tpulumi.String(\"another.exernal.email@company.com\"),\n\t\t\t},\n\t\t\tPolicyType: pulumi.String(\"ACCOUNT\"),\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.incapsula.NotificationCenterPolicy;\nimport com.pulumi.incapsula.NotificationCenterPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var notification_policy_account_without_assets = new NotificationCenterPolicy(\"notification-policy-account-without-assets\", NotificationCenterPolicyArgs.builder()\n            .accountId(12345.0)\n            .policyName(\"Terraform policy account without assets\")\n            .status(\"ENABLE\")\n            .subCategory(\"ACCOUNT_NOTIFICATIONS\")\n            .emailchannelUserRecipientLists(            \n                1111.0,\n                2222.0)\n            .emailchannelExternalRecipientLists(            \n                \"john.doe@company.com\",\n                \"another.exernal.email@company.com\")\n            .policyType(\"ACCOUNT\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  notification-policy-account-without-assets:\n    type: incapsula:NotificationCenterPolicy\n    properties:\n      accountId: 12345\n      policyName: Terraform policy account without assets\n      status: ENABLE\n      subCategory: ACCOUNT_NOTIFICATIONS\n      emailchannelUserRecipientLists:\n        - 1111\n        - 2222\n      emailchannelExternalRecipientLists:\n        - john.doe@company.com\n        - another.exernal.email@company.com\n      policyType: ACCOUNT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNotification Policy can be imported using the account_id/policy_id\n\n```sh\n$ pulumi import incapsula:index/notificationCenterPolicy:NotificationCenterPolicy notification-policy-account-without-assets 12345/9999\n```\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to work on.\n"},"applyToNewAssets":{"type":"string","description":"If value is `TRUE`, all newly onboarded assets are automatically added to the\nnotification policy's assets list. Possible values: `TRUE`, `FALSE` (default value).\\\nWe recommend always setting this field's value to `FALSE`, to disable automatic updates of assets on the policy, so you\nhave full control over your resources.\n"},"applyToNewSubAccounts":{"type":"string","description":"If value is `TRUE`, all newly onboarded sub accounts are automatically added\nto the notification policy's sub account list. Possible values: `TRUE`, `FALSE` (default value)\\\nRelevant if the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e is `SUB_ACCOUNT`.\\\nWe recommend always setting this field's value to `FALSE`, to disable automatic updates of sub-accounts on the policy,\nso you have full control over your resources.\n\n\nUnder the following conditions, you need to define at least 1 asset:\nIf the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e argument is `ACCOUNT`, and the chosen \u003cspan pulumi-lang-nodejs=\"`subCategory`\" pulumi-lang-dotnet=\"`SubCategory`\" pulumi-lang-go=\"`subCategory`\" pulumi-lang-python=\"`sub_category`\" pulumi-lang-yaml=\"`subCategory`\" pulumi-lang-java=\"`subCategory`\"\u003e`sub_category`\u003c/span\u003e requires configuration of assets, and the\nargument \u003cspan pulumi-lang-nodejs=\"`applyToNewAssets`\" pulumi-lang-dotnet=\"`ApplyToNewAssets`\" pulumi-lang-go=\"`applyToNewAssets`\" pulumi-lang-python=\"`apply_to_new_assets`\" pulumi-lang-yaml=\"`applyToNewAssets`\" pulumi-lang-java=\"`applyToNewAssets`\"\u003e`apply_to_new_assets`\u003c/span\u003e is `FALSE`, then at least 1 asset must be defined.\\\nFor example, when configuring a policy for the `SITE_NOTIFICATIONS` \u003cspan pulumi-lang-nodejs=\"`subCategory`\" pulumi-lang-dotnet=\"`SubCategory`\" pulumi-lang-go=\"`subCategory`\" pulumi-lang-python=\"`sub_category`\" pulumi-lang-yaml=\"`subCategory`\" pulumi-lang-java=\"`subCategory`\"\u003e`sub_category`\u003c/span\u003e, if the argument \u003cspan pulumi-lang-nodejs=\"`applyToNewAssets`\" pulumi-lang-dotnet=\"`ApplyToNewAssets`\" pulumi-lang-go=\"`applyToNewAssets`\" pulumi-lang-python=\"`apply_to_new_assets`\" pulumi-lang-yaml=\"`applyToNewAssets`\" pulumi-lang-java=\"`applyToNewAssets`\"\u003e`apply_to_new_assets`\u003c/span\u003e is FALSE, at least one SITE asset must be specified.\nThe arguments that are supported in \u003cspan pulumi-lang-nodejs=\"`asset`\" pulumi-lang-dotnet=\"`Asset`\" pulumi-lang-go=\"`asset`\" pulumi-lang-python=\"`asset`\" pulumi-lang-yaml=\"`asset`\" pulumi-lang-java=\"`asset`\"\u003e`asset`\u003c/span\u003e sub resource are:\n"},"assets":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FNotificationCenterPolicyAsset:NotificationCenterPolicyAsset"},"description":"Assets to receive notifications (if assets are relevant to the sub category type). \nObject struct:\nassetType: the asset type. Example: websites, router connections, network prefixes, individual IPs, Flow exporters\nassetId: the asset id."},"emailchannelExternalRecipientLists":{"type":"array","items":{"type":"string"},"description":"List of email addresses (for recipients who are not Imperva users) to receive email notifications.\nThere must be at least one value in this list or in the \u003cspan pulumi-lang-nodejs=\"`emailchannelUserRecipientList`\" pulumi-lang-dotnet=\"`EmailchannelUserRecipientList`\" pulumi-lang-go=\"`emailchannelUserRecipientList`\" pulumi-lang-python=\"`emailchannel_user_recipient_list`\" pulumi-lang-yaml=\"`emailchannelUserRecipientList`\" pulumi-lang-java=\"`emailchannelUserRecipientList`\"\u003e`emailchannel_user_recipient_list`\u003c/span\u003e list.\n"},"emailchannelUserRecipientLists":{"type":"array","items":{"type":"number"},"description":"List of numeric identifiers of the users from the Imperva account \nto receive emails notifications. There must be at least one value in this list or in the \u003cspan pulumi-lang-nodejs=\"`emailchannelExternalRecipientList`\" pulumi-lang-dotnet=\"`EmailchannelExternalRecipientList`\" pulumi-lang-go=\"`emailchannelExternalRecipientList`\" pulumi-lang-python=\"`emailchannel_external_recipient_list`\" pulumi-lang-yaml=\"`emailchannelExternalRecipientList`\" pulumi-lang-java=\"`emailchannelExternalRecipientList`\"\u003e`emailchannel_external_recipient_list`\u003c/span\u003e list.\n"},"notificationCenterPolicyId":{"type":"string","description":"Unique identifier for the Notification Policy.\n"},"policyName":{"type":"string","description":"The name of the policy. Cannot contain special characters\n"},"policyType":{"type":"string","description":"If the value is `ACCOUNT`, the policy will apply only to the current account that is \nspecified by the account_id. If the value is `SUB_ACCOUNT` the policy applies to the sub accounts only.\nThe parent account will receive notifications for activity in the sub accounts that are specified in the\n\u003cspan pulumi-lang-nodejs=\"`subAccountList`\" pulumi-lang-dotnet=\"`SubAccountList`\" pulumi-lang-go=\"`subAccountList`\" pulumi-lang-python=\"`sub_account_list`\" pulumi-lang-yaml=\"`subAccountList`\" pulumi-lang-java=\"`subAccountList`\"\u003e`sub_account_list`\u003c/span\u003e parameter. This \u003cspan pulumi-lang-nodejs=\"`subAccountList`\" pulumi-lang-dotnet=\"`SubAccountList`\" pulumi-lang-go=\"`subAccountList`\" pulumi-lang-python=\"`sub_account_list`\" pulumi-lang-yaml=\"`subAccountList`\" pulumi-lang-java=\"`subAccountList`\"\u003e`sub_account_list`\u003c/span\u003e is available only in accounts that can contain sub accounts.\nPossible values: `ACCOUNT` (default value), `SUB_ACCOUNT`.\n"},"status":{"type":"string","description":"Indicates whether the policy is enabled or disabled. Possible\nvalues: `ENABLE` (default value), `DISABLE`.\n"},"subAccountLists":{"type":"array","items":{"type":"number"},"description":"List of numeric identifiers of sub accounts of this account for which the parent account will\nreceive notifications. Should be set if the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e is `SUB_ACCOUNT`.\n"},"subCategory":{"type":"string","description":"The sub category of notifications that the policy will apply to. The possible\nvalues are available via the API at https://api.imperva.com/notification-settings/v3/subtypes.\n"}},"type":"object","required":["accountId","notificationCenterPolicyId","policyName","subCategory"],"inputProperties":{"accountId":{"type":"number","description":"Numeric identifier of the account to work on.\n"},"applyToNewAssets":{"type":"string","description":"If value is `TRUE`, all newly onboarded assets are automatically added to the\nnotification policy's assets list. Possible values: `TRUE`, `FALSE` (default value).\\\nWe recommend always setting this field's value to `FALSE`, to disable automatic updates of assets on the policy, so you\nhave full control over your resources.\n"},"applyToNewSubAccounts":{"type":"string","description":"If value is `TRUE`, all newly onboarded sub accounts are automatically added\nto the notification policy's sub account list. Possible values: `TRUE`, `FALSE` (default value)\\\nRelevant if the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e is `SUB_ACCOUNT`.\\\nWe recommend always setting this field's value to `FALSE`, to disable automatic updates of sub-accounts on the policy,\nso you have full control over your resources.\n\n\nUnder the following conditions, you need to define at least 1 asset:\nIf the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e argument is `ACCOUNT`, and the chosen \u003cspan pulumi-lang-nodejs=\"`subCategory`\" pulumi-lang-dotnet=\"`SubCategory`\" pulumi-lang-go=\"`subCategory`\" pulumi-lang-python=\"`sub_category`\" pulumi-lang-yaml=\"`subCategory`\" pulumi-lang-java=\"`subCategory`\"\u003e`sub_category`\u003c/span\u003e requires configuration of assets, and the\nargument \u003cspan pulumi-lang-nodejs=\"`applyToNewAssets`\" pulumi-lang-dotnet=\"`ApplyToNewAssets`\" pulumi-lang-go=\"`applyToNewAssets`\" pulumi-lang-python=\"`apply_to_new_assets`\" pulumi-lang-yaml=\"`applyToNewAssets`\" pulumi-lang-java=\"`applyToNewAssets`\"\u003e`apply_to_new_assets`\u003c/span\u003e is `FALSE`, then at least 1 asset must be defined.\\\nFor example, when configuring a policy for the `SITE_NOTIFICATIONS` \u003cspan pulumi-lang-nodejs=\"`subCategory`\" pulumi-lang-dotnet=\"`SubCategory`\" pulumi-lang-go=\"`subCategory`\" pulumi-lang-python=\"`sub_category`\" pulumi-lang-yaml=\"`subCategory`\" pulumi-lang-java=\"`subCategory`\"\u003e`sub_category`\u003c/span\u003e, if the argument \u003cspan pulumi-lang-nodejs=\"`applyToNewAssets`\" pulumi-lang-dotnet=\"`ApplyToNewAssets`\" pulumi-lang-go=\"`applyToNewAssets`\" pulumi-lang-python=\"`apply_to_new_assets`\" pulumi-lang-yaml=\"`applyToNewAssets`\" pulumi-lang-java=\"`applyToNewAssets`\"\u003e`apply_to_new_assets`\u003c/span\u003e is FALSE, at least one SITE asset must be specified.\nThe arguments that are supported in \u003cspan pulumi-lang-nodejs=\"`asset`\" pulumi-lang-dotnet=\"`Asset`\" pulumi-lang-go=\"`asset`\" pulumi-lang-python=\"`asset`\" pulumi-lang-yaml=\"`asset`\" pulumi-lang-java=\"`asset`\"\u003e`asset`\u003c/span\u003e sub resource are:\n"},"assets":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FNotificationCenterPolicyAsset:NotificationCenterPolicyAsset"},"description":"Assets to receive notifications (if assets are relevant to the sub category type). \nObject struct:\nassetType: the asset type. Example: websites, router connections, network prefixes, individual IPs, Flow exporters\nassetId: the asset id."},"emailchannelExternalRecipientLists":{"type":"array","items":{"type":"string"},"description":"List of email addresses (for recipients who are not Imperva users) to receive email notifications.\nThere must be at least one value in this list or in the \u003cspan pulumi-lang-nodejs=\"`emailchannelUserRecipientList`\" pulumi-lang-dotnet=\"`EmailchannelUserRecipientList`\" pulumi-lang-go=\"`emailchannelUserRecipientList`\" pulumi-lang-python=\"`emailchannel_user_recipient_list`\" pulumi-lang-yaml=\"`emailchannelUserRecipientList`\" pulumi-lang-java=\"`emailchannelUserRecipientList`\"\u003e`emailchannel_user_recipient_list`\u003c/span\u003e list.\n"},"emailchannelUserRecipientLists":{"type":"array","items":{"type":"number"},"description":"List of numeric identifiers of the users from the Imperva account \nto receive emails notifications. There must be at least one value in this list or in the \u003cspan pulumi-lang-nodejs=\"`emailchannelExternalRecipientList`\" pulumi-lang-dotnet=\"`EmailchannelExternalRecipientList`\" pulumi-lang-go=\"`emailchannelExternalRecipientList`\" pulumi-lang-python=\"`emailchannel_external_recipient_list`\" pulumi-lang-yaml=\"`emailchannelExternalRecipientList`\" pulumi-lang-java=\"`emailchannelExternalRecipientList`\"\u003e`emailchannel_external_recipient_list`\u003c/span\u003e list.\n"},"notificationCenterPolicyId":{"type":"string","description":"Unique identifier for the Notification Policy.\n"},"policyName":{"type":"string","description":"The name of the policy. Cannot contain special characters\n"},"policyType":{"type":"string","description":"If the value is `ACCOUNT`, the policy will apply only to the current account that is \nspecified by the account_id. If the value is `SUB_ACCOUNT` the policy applies to the sub accounts only.\nThe parent account will receive notifications for activity in the sub accounts that are specified in the\n\u003cspan pulumi-lang-nodejs=\"`subAccountList`\" pulumi-lang-dotnet=\"`SubAccountList`\" pulumi-lang-go=\"`subAccountList`\" pulumi-lang-python=\"`sub_account_list`\" pulumi-lang-yaml=\"`subAccountList`\" pulumi-lang-java=\"`subAccountList`\"\u003e`sub_account_list`\u003c/span\u003e parameter. This \u003cspan pulumi-lang-nodejs=\"`subAccountList`\" pulumi-lang-dotnet=\"`SubAccountList`\" pulumi-lang-go=\"`subAccountList`\" pulumi-lang-python=\"`sub_account_list`\" pulumi-lang-yaml=\"`subAccountList`\" pulumi-lang-java=\"`subAccountList`\"\u003e`sub_account_list`\u003c/span\u003e is available only in accounts that can contain sub accounts.\nPossible values: `ACCOUNT` (default value), `SUB_ACCOUNT`.\n"},"status":{"type":"string","description":"Indicates whether the policy is enabled or disabled. Possible\nvalues: `ENABLE` (default value), `DISABLE`.\n"},"subAccountLists":{"type":"array","items":{"type":"number"},"description":"List of numeric identifiers of sub accounts of this account for which the parent account will\nreceive notifications. Should be set if the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e is `SUB_ACCOUNT`.\n"},"subCategory":{"type":"string","description":"The sub category of notifications that the policy will apply to. The possible\nvalues are available via the API at https://api.imperva.com/notification-settings/v3/subtypes.\n"}},"requiredInputs":["accountId","policyName","subCategory"],"stateInputs":{"description":"Input properties used for looking up and filtering NotificationCenterPolicy resources.\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account to work on.\n"},"applyToNewAssets":{"type":"string","description":"If value is `TRUE`, all newly onboarded assets are automatically added to the\nnotification policy's assets list. Possible values: `TRUE`, `FALSE` (default value).\\\nWe recommend always setting this field's value to `FALSE`, to disable automatic updates of assets on the policy, so you\nhave full control over your resources.\n"},"applyToNewSubAccounts":{"type":"string","description":"If value is `TRUE`, all newly onboarded sub accounts are automatically added\nto the notification policy's sub account list. Possible values: `TRUE`, `FALSE` (default value)\\\nRelevant if the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e is `SUB_ACCOUNT`.\\\nWe recommend always setting this field's value to `FALSE`, to disable automatic updates of sub-accounts on the policy,\nso you have full control over your resources.\n\n\nUnder the following conditions, you need to define at least 1 asset:\nIf the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e argument is `ACCOUNT`, and the chosen \u003cspan pulumi-lang-nodejs=\"`subCategory`\" pulumi-lang-dotnet=\"`SubCategory`\" pulumi-lang-go=\"`subCategory`\" pulumi-lang-python=\"`sub_category`\" pulumi-lang-yaml=\"`subCategory`\" pulumi-lang-java=\"`subCategory`\"\u003e`sub_category`\u003c/span\u003e requires configuration of assets, and the\nargument \u003cspan pulumi-lang-nodejs=\"`applyToNewAssets`\" pulumi-lang-dotnet=\"`ApplyToNewAssets`\" pulumi-lang-go=\"`applyToNewAssets`\" pulumi-lang-python=\"`apply_to_new_assets`\" pulumi-lang-yaml=\"`applyToNewAssets`\" pulumi-lang-java=\"`applyToNewAssets`\"\u003e`apply_to_new_assets`\u003c/span\u003e is `FALSE`, then at least 1 asset must be defined.\\\nFor example, when configuring a policy for the `SITE_NOTIFICATIONS` \u003cspan pulumi-lang-nodejs=\"`subCategory`\" pulumi-lang-dotnet=\"`SubCategory`\" pulumi-lang-go=\"`subCategory`\" pulumi-lang-python=\"`sub_category`\" pulumi-lang-yaml=\"`subCategory`\" pulumi-lang-java=\"`subCategory`\"\u003e`sub_category`\u003c/span\u003e, if the argument \u003cspan pulumi-lang-nodejs=\"`applyToNewAssets`\" pulumi-lang-dotnet=\"`ApplyToNewAssets`\" pulumi-lang-go=\"`applyToNewAssets`\" pulumi-lang-python=\"`apply_to_new_assets`\" pulumi-lang-yaml=\"`applyToNewAssets`\" pulumi-lang-java=\"`applyToNewAssets`\"\u003e`apply_to_new_assets`\u003c/span\u003e is FALSE, at least one SITE asset must be specified.\nThe arguments that are supported in \u003cspan pulumi-lang-nodejs=\"`asset`\" pulumi-lang-dotnet=\"`Asset`\" pulumi-lang-go=\"`asset`\" pulumi-lang-python=\"`asset`\" pulumi-lang-yaml=\"`asset`\" pulumi-lang-java=\"`asset`\"\u003e`asset`\u003c/span\u003e sub resource are:\n"},"assets":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FNotificationCenterPolicyAsset:NotificationCenterPolicyAsset"},"description":"Assets to receive notifications (if assets are relevant to the sub category type). \nObject struct:\nassetType: the asset type. Example: websites, router connections, network prefixes, individual IPs, Flow exporters\nassetId: the asset id."},"emailchannelExternalRecipientLists":{"type":"array","items":{"type":"string"},"description":"List of email addresses (for recipients who are not Imperva users) to receive email notifications.\nThere must be at least one value in this list or in the \u003cspan pulumi-lang-nodejs=\"`emailchannelUserRecipientList`\" pulumi-lang-dotnet=\"`EmailchannelUserRecipientList`\" pulumi-lang-go=\"`emailchannelUserRecipientList`\" pulumi-lang-python=\"`emailchannel_user_recipient_list`\" pulumi-lang-yaml=\"`emailchannelUserRecipientList`\" pulumi-lang-java=\"`emailchannelUserRecipientList`\"\u003e`emailchannel_user_recipient_list`\u003c/span\u003e list.\n"},"emailchannelUserRecipientLists":{"type":"array","items":{"type":"number"},"description":"List of numeric identifiers of the users from the Imperva account \nto receive emails notifications. There must be at least one value in this list or in the \u003cspan pulumi-lang-nodejs=\"`emailchannelExternalRecipientList`\" pulumi-lang-dotnet=\"`EmailchannelExternalRecipientList`\" pulumi-lang-go=\"`emailchannelExternalRecipientList`\" pulumi-lang-python=\"`emailchannel_external_recipient_list`\" pulumi-lang-yaml=\"`emailchannelExternalRecipientList`\" pulumi-lang-java=\"`emailchannelExternalRecipientList`\"\u003e`emailchannel_external_recipient_list`\u003c/span\u003e list.\n"},"notificationCenterPolicyId":{"type":"string","description":"Unique identifier for the Notification Policy.\n"},"policyName":{"type":"string","description":"The name of the policy. Cannot contain special characters\n"},"policyType":{"type":"string","description":"If the value is `ACCOUNT`, the policy will apply only to the current account that is \nspecified by the account_id. If the value is `SUB_ACCOUNT` the policy applies to the sub accounts only.\nThe parent account will receive notifications for activity in the sub accounts that are specified in the\n\u003cspan pulumi-lang-nodejs=\"`subAccountList`\" pulumi-lang-dotnet=\"`SubAccountList`\" pulumi-lang-go=\"`subAccountList`\" pulumi-lang-python=\"`sub_account_list`\" pulumi-lang-yaml=\"`subAccountList`\" pulumi-lang-java=\"`subAccountList`\"\u003e`sub_account_list`\u003c/span\u003e parameter. This \u003cspan pulumi-lang-nodejs=\"`subAccountList`\" pulumi-lang-dotnet=\"`SubAccountList`\" pulumi-lang-go=\"`subAccountList`\" pulumi-lang-python=\"`sub_account_list`\" pulumi-lang-yaml=\"`subAccountList`\" pulumi-lang-java=\"`subAccountList`\"\u003e`sub_account_list`\u003c/span\u003e is available only in accounts that can contain sub accounts.\nPossible values: `ACCOUNT` (default value), `SUB_ACCOUNT`.\n"},"status":{"type":"string","description":"Indicates whether the policy is enabled or disabled. Possible\nvalues: `ENABLE` (default value), `DISABLE`.\n"},"subAccountLists":{"type":"array","items":{"type":"number"},"description":"List of numeric identifiers of sub accounts of this account for which the parent account will\nreceive notifications. Should be set if the \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e is `SUB_ACCOUNT`.\n"},"subCategory":{"type":"string","description":"The sub category of notifications that the policy will apply to. The possible\nvalues are available via the API at https://api.imperva.com/notification-settings/v3/subtypes.\n"}},"type":"object"}},"incapsula:index/originPop:OriginPop":{"description":"\u003e DEPRECATED:\u003cspan pulumi-lang-nodejs=\" incapsula.OriginPop\n\" pulumi-lang-dotnet=\" incapsula.OriginPop\n\" pulumi-lang-go=\" OriginPop\n\" pulumi-lang-python=\" OriginPop\n\" pulumi-lang-yaml=\" incapsula.OriginPop\n\" pulumi-lang-java=\" incapsula.OriginPop\n\"\u003e incapsula.OriginPop\n\u003c/span\u003e\nThis resource has been DEPRECATED. It will be removed in a future version. \nPlease use the current \u003cspan pulumi-lang-nodejs=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-dotnet=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-go=\"`DataCentersConfiguration`\" pulumi-lang-python=\"`DataCentersConfiguration`\" pulumi-lang-yaml=\"`incapsula.DataCentersConfiguration`\" pulumi-lang-java=\"`incapsula.DataCentersConfiguration`\"\u003e`incapsula.DataCentersConfiguration`\u003c/span\u003e resource instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_data_center = new incapsula.DataCenter(\"example-data-center\", {\n    siteId: example_site.id,\n    name: \"Example data center\",\n    serverAddress: \"8.8.4.4\",\n    isContent: \"true\",\n});\nconst aws_east = new incapsula.OriginPop(\"aws-east\", {\n    dcId: example_data_center.dataCenterId,\n    siteId: example_site.id,\n    originPop: \"iad\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_data_center = incapsula.DataCenter(\"example-data-center\",\n    site_id=example_site[\"id\"],\n    name=\"Example data center\",\n    server_address=\"8.8.4.4\",\n    is_content=\"true\")\naws_east = incapsula.OriginPop(\"aws-east\",\n    dc_id=example_data_center.data_center_id,\n    site_id=example_site[\"id\"],\n    origin_pop=\"iad\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_data_center = new Incapsula.DataCenter(\"example-data-center\", new()\n    {\n        SiteId = example_site.Id,\n        Name = \"Example data center\",\n        ServerAddress = \"8.8.4.4\",\n        IsContent = \"true\",\n    });\n\n    var aws_east = new Incapsula.OriginPop(\"aws-east\", new()\n    {\n        DcId = example_data_center.DataCenterId,\n        SiteId = example_site.Id,\n        OriginPop = \"iad\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_data_center, err := incapsula.NewDataCenter(ctx, \"example-data-center\", \u0026incapsula.DataCenterArgs{\n\t\t\tSiteId:        pulumi.Any(example_site.Id),\n\t\t\tName:          pulumi.String(\"Example data center\"),\n\t\t\tServerAddress: pulumi.String(\"8.8.4.4\"),\n\t\t\tIsContent:     pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewOriginPop(ctx, \"aws-east\", \u0026incapsula.OriginPopArgs{\n\t\t\tDcId:      example_data_center.DataCenterId,\n\t\t\tSiteId:    pulumi.Any(example_site.Id),\n\t\t\tOriginPop: pulumi.String(\"iad\"),\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.incapsula.DataCenter;\nimport com.pulumi.incapsula.DataCenterArgs;\nimport com.pulumi.incapsula.OriginPop;\nimport com.pulumi.incapsula.OriginPopArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_data_center = new DataCenter(\"example-data-center\", DataCenterArgs.builder()\n            .siteId(example_site.id())\n            .name(\"Example data center\")\n            .serverAddress(\"8.8.4.4\")\n            .isContent(\"true\")\n            .build());\n\n        var aws_east = new OriginPop(\"aws-east\", OriginPopArgs.builder()\n            .dcId(example_data_center.dataCenterId())\n            .siteId(example_site.id())\n            .originPop(\"iad\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-data-center:\n    type: incapsula:DataCenter\n    properties:\n      siteId: ${[\"example-site\"].id}\n      name: Example data center\n      serverAddress: 8.8.4.4\n      isContent: 'true'\n  aws-east:\n    type: incapsula:OriginPop\n    properties:\n      dcId: ${[\"example-data-center\"].dataCenterId}\n      siteId: ${[\"example-site\"].id}\n      originPop: iad\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOrigin Pop can be imported using the `site_id` and `dc_id` separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/originPop:OriginPop aws-east site_id/dc_id\n```\n","properties":{"dcId":{"type":"number","description":"Numeric identifier of the data center.\n"},"originPop":{"type":"string","description":"The Origin POP code (must be lowercase), e.g: \u003cspan pulumi-lang-nodejs=\"`iad`\" pulumi-lang-dotnet=\"`Iad`\" pulumi-lang-go=\"`iad`\" pulumi-lang-python=\"`iad`\" pulumi-lang-yaml=\"`iad`\" pulumi-lang-java=\"`iad`\"\u003e`iad`\u003c/span\u003e. Note, this field is create/update only. Reads are not supported as the API doesn't exist yet. Note that drift may happen.\n"},"originPopId":{"type":"string","description":"Unique identifier for the Origin POP association.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["dcId","originPop","originPopId","siteId"],"inputProperties":{"dcId":{"type":"number","description":"Numeric identifier of the data center.\n"},"originPop":{"type":"string","description":"The Origin POP code (must be lowercase), e.g: \u003cspan pulumi-lang-nodejs=\"`iad`\" pulumi-lang-dotnet=\"`Iad`\" pulumi-lang-go=\"`iad`\" pulumi-lang-python=\"`iad`\" pulumi-lang-yaml=\"`iad`\" pulumi-lang-java=\"`iad`\"\u003e`iad`\u003c/span\u003e. Note, this field is create/update only. Reads are not supported as the API doesn't exist yet. Note that drift may happen.\n"},"originPopId":{"type":"string","description":"Unique identifier for the Origin POP association.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"requiredInputs":["dcId","originPop","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering OriginPop resources.\n","properties":{"dcId":{"type":"number","description":"Numeric identifier of the data center.\n"},"originPop":{"type":"string","description":"The Origin POP code (must be lowercase), e.g: \u003cspan pulumi-lang-nodejs=\"`iad`\" pulumi-lang-dotnet=\"`Iad`\" pulumi-lang-go=\"`iad`\" pulumi-lang-python=\"`iad`\" pulumi-lang-yaml=\"`iad`\" pulumi-lang-java=\"`iad`\"\u003e`iad`\u003c/span\u003e. Note, this field is create/update only. Reads are not supported as the API doesn't exist yet. Note that drift may happen.\n"},"originPopId":{"type":"string","description":"Unique identifier for the Origin POP association.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"}},"type":"object"}},"incapsula:index/policy:Policy":{"description":"Provides a resource to define WAF security, Whitelist, File Upload, and ACL policies. All policies are created at the parent account level. \n\nThe follow-on action is to use the \u003cspan pulumi-lang-nodejs=\"`incapsula.AccountPolicyAssociation`\" pulumi-lang-dotnet=\"`incapsula.AccountPolicyAssociation`\" pulumi-lang-go=\"`AccountPolicyAssociation`\" pulumi-lang-python=\"`AccountPolicyAssociation`\" pulumi-lang-yaml=\"`incapsula.AccountPolicyAssociation`\" pulumi-lang-java=\"`incapsula.AccountPolicyAssociation`\"\u003e`incapsula.AccountPolicyAssociation`\u003c/span\u003e resource, to assign the policy to a sub account.\n\nTo simplify the use of policies, you can utilize this cloud-waf Module along with its submodules.\n\nFor full feature documentation, see [Create and Manage Policies](https://docs.imperva.com/bundle/cloud-application-security/page/policies.htm).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_whitelist_ip_policy = new incapsula.Policy(\"example-whitelist-ip-policy\", {\n    name: \"Example WHITELIST IP Policy\",\n    enabled: true,\n    policyType: \"WHITELIST\",\n    description: \"Example WHITELIST IP Policy description\",\n    policySettings: `    [\n      {\n        \\\\\"settingsAction\\\\\": \\\\\"ALLOW\\\\\",\n        \\\\\"policySettingType\\\\\": \\\\\"IP\\\\\",\n        \\\\\"data\\\\\": {\n          \\\\\"ips\\\\\": [\n            \\\\\"1.2.3.4\\\\\"\n          ]\n        }\n      }\n    ]\n`,\n});\nconst example_file_upload_policy = new incapsula.Policy(\"example-file-upload-policy\", {\n    name: \"Example FILE-UPLOAD Policy\",\n    enabled: true,\n    policyType: \"FILE_UPLOAD\",\n    description: \"Example FILE-UPLOAD Policy description\",\n    policySettings: `  [\n    {\n      \\\\\"settingsAction\\\\\": \\\\\"ALERT\\\\\",\n      \\\\\"policySettingType\\\\\": \\\\\"MALICIOUS_FILE_UPLOAD\\\\\",\n      \\\\\"policyDataExceptions\\\\\": [\n        {\n          \\\\\"data\\\\\": [\n            {\n              \\\\\"exceptionType\\\\\": \\\\\"FILE_HASH\\\\\",\n              \\\\\"values\\\\\": [\n                \\\\\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ]\n`,\n});\nconst example_acl_country_block_policy = new incapsula.Policy(\"example-acl-country-block-policy\", {\n    description: \"EXAMPLE ACL Block Countries based on attack.\",\n    enabled: true,\n    policyType: \"ACL\",\n    name: dynamicCountryBlockPolicyName,\n    policySettings: JSON.stringify([{\n        data: {\n            geo: {\n                countries: countries,\n            },\n        },\n        policySettingType: \"GEO\",\n        settingsAction: \"BLOCK\",\n    }]),\n});\nconst example_waf_rule_illegal_resource_access_policy = new incapsula.Policy(\"example-waf-rule-illegal-resource-access-policy\", {\n    name: \"Example WAF-RULE ILLEGAL RESOURCE ACCESS Policy\",\n    enabled: true,\n    policyType: \"WAF_RULES\",\n    policySettings: `    [\n    {\n      \\\\\"settingsAction\\\\\": \\\\\"BLOCK\\\\\",\n      \\\\\"policySettingType\\\\\": \\\\\"REMOTE_FILE_INCLUSION\\\\\"\n\n    },\n    {\n      \\\\\"settingsAction\\\\\": \\\\\"BLOCK\\\\\",\n      \\\\\"policySettingType\\\\\": \\\\\"ILLEGAL_RESOURCE_ACCESS\\\\\",\n      \\\\\"policyDataExceptions\\\\\": [\n        {\n          \\\\\"data\\\\\": [\n            {\n              \\\\\"exceptionType\\\\\": \\\\\"URL\\\\\",\n              \\\\\"values\\\\\": [\n                \\\\\"/cmd.exe\\\\\"\n              ]\n            },\n            {\n              \\\\\"exceptionType\\\\\": \\\\\"SITE_ID\\\\\",\n              \\\\\"values\\\\\": [\n              \\\\\"132456789\\\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \\\\\"settingsAction\\\\\": \\\\\"BLOCK\\\\\",\n      \\\\\"policySettingType\\\\\": \\\\\"CROSS_SITE_SCRIPTING\\\\\"\n      \n    },\n    {\n      \\\\\"settingsAction\\\\\": \\\\\"BLOCK\\\\\",\n      \\\\\"policySettingType\\\\\": \\\\\"SQL_INJECTION\\\\\"\n      \n    }\n    ]\n`,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_incapsula as incapsula\n\nexample_whitelist_ip_policy = incapsula.Policy(\"example-whitelist-ip-policy\",\n    name=\"Example WHITELIST IP Policy\",\n    enabled=True,\n    policy_type=\"WHITELIST\",\n    description=\"Example WHITELIST IP Policy description\",\n    policy_settings=\"\"\"    [\n      {\n        \\\"settingsAction\\\": \\\"ALLOW\\\",\n        \\\"policySettingType\\\": \\\"IP\\\",\n        \\\"data\\\": {\n          \\\"ips\\\": [\n            \\\"1.2.3.4\\\"\n          ]\n        }\n      }\n    ]\n\"\"\")\nexample_file_upload_policy = incapsula.Policy(\"example-file-upload-policy\",\n    name=\"Example FILE-UPLOAD Policy\",\n    enabled=True,\n    policy_type=\"FILE_UPLOAD\",\n    description=\"Example FILE-UPLOAD Policy description\",\n    policy_settings=\"\"\"  [\n    {\n      \\\"settingsAction\\\": \\\"ALERT\\\",\n      \\\"policySettingType\\\": \\\"MALICIOUS_FILE_UPLOAD\\\",\n      \\\"policyDataExceptions\\\": [\n        {\n          \\\"data\\\": [\n            {\n              \\\"exceptionType\\\": \\\"FILE_HASH\\\",\n              \\\"values\\\": [\n                \\\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ]\n\"\"\")\nexample_acl_country_block_policy = incapsula.Policy(\"example-acl-country-block-policy\",\n    description=\"EXAMPLE ACL Block Countries based on attack.\",\n    enabled=True,\n    policy_type=\"ACL\",\n    name=dynamic_country_block_policy_name,\n    policy_settings=json.dumps([{\n        \"data\": {\n            \"geo\": {\n                \"countries\": countries,\n            },\n        },\n        \"policySettingType\": \"GEO\",\n        \"settingsAction\": \"BLOCK\",\n    }]))\nexample_waf_rule_illegal_resource_access_policy = incapsula.Policy(\"example-waf-rule-illegal-resource-access-policy\",\n    name=\"Example WAF-RULE ILLEGAL RESOURCE ACCESS Policy\",\n    enabled=True,\n    policy_type=\"WAF_RULES\",\n    policy_settings=\"\"\"    [\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"REMOTE_FILE_INCLUSION\\\"\n\n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"ILLEGAL_RESOURCE_ACCESS\\\",\n      \\\"policyDataExceptions\\\": [\n        {\n          \\\"data\\\": [\n            {\n              \\\"exceptionType\\\": \\\"URL\\\",\n              \\\"values\\\": [\n                \\\"/cmd.exe\\\"\n              ]\n            },\n            {\n              \\\"exceptionType\\\": \\\"SITE_ID\\\",\n              \\\"values\\\": [\n              \\\"132456789\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"CROSS_SITE_SCRIPTING\\\"\n      \n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"SQL_INJECTION\\\"\n      \n    }\n    ]\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_whitelist_ip_policy = new Incapsula.Policy(\"example-whitelist-ip-policy\", new()\n    {\n        Name = \"Example WHITELIST IP Policy\",\n        Enabled = true,\n        PolicyType = \"WHITELIST\",\n        Description = \"Example WHITELIST IP Policy description\",\n        PolicySettings = @\"    [\n      {\n        \\\"\"settingsAction\\\"\": \\\"\"ALLOW\\\"\",\n        \\\"\"policySettingType\\\"\": \\\"\"IP\\\"\",\n        \\\"\"data\\\"\": {\n          \\\"\"ips\\\"\": [\n            \\\"\"1.2.3.4\\\"\"\n          ]\n        }\n      }\n    ]\n\",\n    });\n\n    var example_file_upload_policy = new Incapsula.Policy(\"example-file-upload-policy\", new()\n    {\n        Name = \"Example FILE-UPLOAD Policy\",\n        Enabled = true,\n        PolicyType = \"FILE_UPLOAD\",\n        Description = \"Example FILE-UPLOAD Policy description\",\n        PolicySettings = @\"  [\n    {\n      \\\"\"settingsAction\\\"\": \\\"\"ALERT\\\"\",\n      \\\"\"policySettingType\\\"\": \\\"\"MALICIOUS_FILE_UPLOAD\\\"\",\n      \\\"\"policyDataExceptions\\\"\": [\n        {\n          \\\"\"data\\\"\": [\n            {\n              \\\"\"exceptionType\\\"\": \\\"\"FILE_HASH\\\"\",\n              \\\"\"values\\\"\": [\n                \\\"\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\"\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ]\n\",\n    });\n\n    var example_acl_country_block_policy = new Incapsula.Policy(\"example-acl-country-block-policy\", new()\n    {\n        Description = \"EXAMPLE ACL Block Countries based on attack.\",\n        Enabled = true,\n        PolicyType = \"ACL\",\n        Name = dynamicCountryBlockPolicyName,\n        PolicySettings = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"data\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"geo\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"countries\"] = countries,\n                    },\n                },\n                [\"policySettingType\"] = \"GEO\",\n                [\"settingsAction\"] = \"BLOCK\",\n            },\n        }),\n    });\n\n    var example_waf_rule_illegal_resource_access_policy = new Incapsula.Policy(\"example-waf-rule-illegal-resource-access-policy\", new()\n    {\n        Name = \"Example WAF-RULE ILLEGAL RESOURCE ACCESS Policy\",\n        Enabled = true,\n        PolicyType = \"WAF_RULES\",\n        PolicySettings = @\"    [\n    {\n      \\\"\"settingsAction\\\"\": \\\"\"BLOCK\\\"\",\n      \\\"\"policySettingType\\\"\": \\\"\"REMOTE_FILE_INCLUSION\\\"\"\n\n    },\n    {\n      \\\"\"settingsAction\\\"\": \\\"\"BLOCK\\\"\",\n      \\\"\"policySettingType\\\"\": \\\"\"ILLEGAL_RESOURCE_ACCESS\\\"\",\n      \\\"\"policyDataExceptions\\\"\": [\n        {\n          \\\"\"data\\\"\": [\n            {\n              \\\"\"exceptionType\\\"\": \\\"\"URL\\\"\",\n              \\\"\"values\\\"\": [\n                \\\"\"/cmd.exe\\\"\"\n              ]\n            },\n            {\n              \\\"\"exceptionType\\\"\": \\\"\"SITE_ID\\\"\",\n              \\\"\"values\\\"\": [\n              \\\"\"132456789\\\"\"\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \\\"\"settingsAction\\\"\": \\\"\"BLOCK\\\"\",\n      \\\"\"policySettingType\\\"\": \\\"\"CROSS_SITE_SCRIPTING\\\"\"\n      \n    },\n    {\n      \\\"\"settingsAction\\\"\": \\\"\"BLOCK\\\"\",\n      \\\"\"policySettingType\\\"\": \\\"\"SQL_INJECTION\\\"\"\n      \n    }\n    ]\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewPolicy(ctx, \"example-whitelist-ip-policy\", \u0026incapsula.PolicyArgs{\n\t\t\tName:        pulumi.String(\"Example WHITELIST IP Policy\"),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tPolicyType:  pulumi.String(\"WHITELIST\"),\n\t\t\tDescription: pulumi.String(\"Example WHITELIST IP Policy description\"),\n\t\t\tPolicySettings: pulumi.String(`    [\n      {\n        \\\"settingsAction\\\": \\\"ALLOW\\\",\n        \\\"policySettingType\\\": \\\"IP\\\",\n        \\\"data\\\": {\n          \\\"ips\\\": [\n            \\\"1.2.3.4\\\"\n          ]\n        }\n      }\n    ]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewPolicy(ctx, \"example-file-upload-policy\", \u0026incapsula.PolicyArgs{\n\t\t\tName:        pulumi.String(\"Example FILE-UPLOAD Policy\"),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tPolicyType:  pulumi.String(\"FILE_UPLOAD\"),\n\t\t\tDescription: pulumi.String(\"Example FILE-UPLOAD Policy description\"),\n\t\t\tPolicySettings: pulumi.String(`  [\n    {\n      \\\"settingsAction\\\": \\\"ALERT\\\",\n      \\\"policySettingType\\\": \\\"MALICIOUS_FILE_UPLOAD\\\",\n      \\\"policyDataExceptions\\\": [\n        {\n          \\\"data\\\": [\n            {\n              \\\"exceptionType\\\": \\\"FILE_HASH\\\",\n              \\\"values\\\": [\n                \\\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"data\": map[string]interface{}{\n\t\t\t\t\t\"geo\": map[string]interface{}{\n\t\t\t\t\t\t\"countries\": countries,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"policySettingType\": \"GEO\",\n\t\t\t\t\"settingsAction\":    \"BLOCK\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = incapsula.NewPolicy(ctx, \"example-acl-country-block-policy\", \u0026incapsula.PolicyArgs{\n\t\t\tDescription:    pulumi.String(\"EXAMPLE ACL Block Countries based on attack.\"),\n\t\t\tEnabled:        pulumi.Bool(true),\n\t\t\tPolicyType:     pulumi.String(\"ACL\"),\n\t\t\tName:           pulumi.Any(dynamicCountryBlockPolicyName),\n\t\t\tPolicySettings: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewPolicy(ctx, \"example-waf-rule-illegal-resource-access-policy\", \u0026incapsula.PolicyArgs{\n\t\t\tName:       pulumi.String(\"Example WAF-RULE ILLEGAL RESOURCE ACCESS Policy\"),\n\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\tPolicyType: pulumi.String(\"WAF_RULES\"),\n\t\t\tPolicySettings: pulumi.String(`    [\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"REMOTE_FILE_INCLUSION\\\"\n\n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"ILLEGAL_RESOURCE_ACCESS\\\",\n      \\\"policyDataExceptions\\\": [\n        {\n          \\\"data\\\": [\n            {\n              \\\"exceptionType\\\": \\\"URL\\\",\n              \\\"values\\\": [\n                \\\"/cmd.exe\\\"\n              ]\n            },\n            {\n              \\\"exceptionType\\\": \\\"SITE_ID\\\",\n              \\\"values\\\": [\n              \\\"132456789\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"CROSS_SITE_SCRIPTING\\\"\n      \n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"SQL_INJECTION\\\"\n      \n    }\n    ]\n`),\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.incapsula.Policy;\nimport com.pulumi.incapsula.PolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_whitelist_ip_policy = new Policy(\"example-whitelist-ip-policy\", PolicyArgs.builder()\n            .name(\"Example WHITELIST IP Policy\")\n            .enabled(true)\n            .policyType(\"WHITELIST\")\n            .description(\"Example WHITELIST IP Policy description\")\n            .policySettings(\"\"\"\n    [\n      {\n        \\\"settingsAction\\\": \\\"ALLOW\\\",\n        \\\"policySettingType\\\": \\\"IP\\\",\n        \\\"data\\\": {\n          \\\"ips\\\": [\n            \\\"1.2.3.4\\\"\n          ]\n        }\n      }\n    ]\n            \"\"\")\n            .build());\n\n        var example_file_upload_policy = new Policy(\"example-file-upload-policy\", PolicyArgs.builder()\n            .name(\"Example FILE-UPLOAD Policy\")\n            .enabled(true)\n            .policyType(\"FILE_UPLOAD\")\n            .description(\"Example FILE-UPLOAD Policy description\")\n            .policySettings(\"\"\"\n  [\n    {\n      \\\"settingsAction\\\": \\\"ALERT\\\",\n      \\\"policySettingType\\\": \\\"MALICIOUS_FILE_UPLOAD\\\",\n      \\\"policyDataExceptions\\\": [\n        {\n          \\\"data\\\": [\n            {\n              \\\"exceptionType\\\": \\\"FILE_HASH\\\",\n              \\\"values\\\": [\n                \\\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ]\n            \"\"\")\n            .build());\n\n        var example_acl_country_block_policy = new Policy(\"example-acl-country-block-policy\", PolicyArgs.builder()\n            .description(\"EXAMPLE ACL Block Countries based on attack.\")\n            .enabled(true)\n            .policyType(\"ACL\")\n            .name(dynamicCountryBlockPolicyName)\n            .policySettings(serializeJson(\n                jsonArray(jsonObject(\n                    jsonProperty(\"data\", jsonObject(\n                        jsonProperty(\"geo\", jsonObject(\n                            jsonProperty(\"countries\", countries)\n                        ))\n                    )),\n                    jsonProperty(\"policySettingType\", \"GEO\"),\n                    jsonProperty(\"settingsAction\", \"BLOCK\")\n                ))))\n            .build());\n\n        var example_waf_rule_illegal_resource_access_policy = new Policy(\"example-waf-rule-illegal-resource-access-policy\", PolicyArgs.builder()\n            .name(\"Example WAF-RULE ILLEGAL RESOURCE ACCESS Policy\")\n            .enabled(true)\n            .policyType(\"WAF_RULES\")\n            .policySettings(\"\"\"\n    [\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"REMOTE_FILE_INCLUSION\\\"\n\n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"ILLEGAL_RESOURCE_ACCESS\\\",\n      \\\"policyDataExceptions\\\": [\n        {\n          \\\"data\\\": [\n            {\n              \\\"exceptionType\\\": \\\"URL\\\",\n              \\\"values\\\": [\n                \\\"/cmd.exe\\\"\n              ]\n            },\n            {\n              \\\"exceptionType\\\": \\\"SITE_ID\\\",\n              \\\"values\\\": [\n              \\\"132456789\\\"\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"CROSS_SITE_SCRIPTING\\\"\n      \n    },\n    {\n      \\\"settingsAction\\\": \\\"BLOCK\\\",\n      \\\"policySettingType\\\": \\\"SQL_INJECTION\\\"\n      \n    }\n    ]\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-whitelist-ip-policy:\n    type: incapsula:Policy\n    properties:\n      name: Example WHITELIST IP Policy\n      enabled: true\n      policyType: WHITELIST\n      description: Example WHITELIST IP Policy description\n      policySettings: |2\n            [\n              {\n                \\\"settingsAction\\\": \\\"ALLOW\\\",\n                \\\"policySettingType\\\": \\\"IP\\\",\n                \\\"data\\\": {\n                  \\\"ips\\\": [\n                    \\\"1.2.3.4\\\"\n                  ]\n                }\n              }\n            ]\n  example-file-upload-policy:\n    type: incapsula:Policy\n    properties:\n      name: Example FILE-UPLOAD Policy\n      enabled: true\n      policyType: FILE_UPLOAD\n      description: Example FILE-UPLOAD Policy description\n      policySettings: |2\n          [\n            {\n              \\\"settingsAction\\\": \\\"ALERT\\\",\n              \\\"policySettingType\\\": \\\"MALICIOUS_FILE_UPLOAD\\\",\n              \\\"policyDataExceptions\\\": [\n                {\n                  \\\"data\\\": [\n                    {\n                      \\\"exceptionType\\\": \\\"FILE_HASH\\\",\n                      \\\"values\\\": [\n                        \\\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\"\n                      ]\n                    }\n                  ]\n                }\n              ]\n            }\n          ]\n  example-acl-country-block-policy:\n    type: incapsula:Policy\n    properties:\n      description: EXAMPLE ACL Block Countries based on attack.\n      enabled: true\n      policyType: ACL\n      name: ${dynamicCountryBlockPolicyName}\n      policySettings:\n        fn::toJSON:\n          - data:\n              geo:\n                countries: ${countries}\n            policySettingType: GEO\n            settingsAction: BLOCK\n  example-waf-rule-illegal-resource-access-policy:\n    type: incapsula:Policy\n    properties:\n      name: Example WAF-RULE ILLEGAL RESOURCE ACCESS Policy\n      enabled: true\n      policyType: WAF_RULES\n      policySettings: \"    [\\n    {\\n      \\\\\\\"settingsAction\\\\\\\": \\\\\\\"BLOCK\\\\\\\",\\n      \\\\\\\"policySettingType\\\\\\\": \\\\\\\"REMOTE_FILE_INCLUSION\\\\\\\"\\n\\n    },\\n    {\\n      \\\\\\\"settingsAction\\\\\\\": \\\\\\\"BLOCK\\\\\\\",\\n      \\\\\\\"policySettingType\\\\\\\": \\\\\\\"ILLEGAL_RESOURCE_ACCESS\\\\\\\",\\n      \\\\\\\"policyDataExceptions\\\\\\\": [\\n        {\\n          \\\\\\\"data\\\\\\\": [\\n            {\\n              \\\\\\\"exceptionType\\\\\\\": \\\\\\\"URL\\\\\\\",\\n              \\\\\\\"values\\\\\\\": [\\n                \\\\\\\"/cmd.exe\\\\\\\"\\n              ]\\n            },\\n            {\\n              \\\\\\\"exceptionType\\\\\\\": \\\\\\\"SITE_ID\\\\\\\",\\n              \\\\\\\"values\\\\\\\": [\\n              \\\\\\\"132456789\\\\\\\"\\n              ]\\n            }\\n          ]\\n        }\\n      ]\\n    },\\n    {\\n      \\\\\\\"settingsAction\\\\\\\": \\\\\\\"BLOCK\\\\\\\",\\n      \\\\\\\"policySettingType\\\\\\\": \\\\\\\"CROSS_SITE_SCRIPTING\\\\\\\"\\n      \\n    },\\n    {\\n      \\\\\\\"settingsAction\\\\\\\": \\\\\\\"BLOCK\\\\\\\",\\n      \\\\\\\"policySettingType\\\\\\\": \\\\\\\"SQL_INJECTION\\\\\\\"\\n      \\n    }\\n    ]\\n\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicy can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/policy:Policy demo 1234\n```\n","properties":{"accountId":{"type":"number","description":"Account ID of the policy.\n","deprecationMessage":"Deprecated"},"description":{"type":"string","description":"The policy description.\n"},"enabled":{"type":"boolean","description":"Enables the policy.\n"},"name":{"type":"string","description":"The policy name.\n"},"policyId":{"type":"string","description":"Unique identifier in the API for the policy.\n"},"policySettings":{"type":"string","description":"The policy settings as JSON string. See Imperva documentation for help with constructing a correct value.\nPolicy_settings internal values:\npolicySettingType: IP, GEO, URL\nsettingsAction: BLOCK, ALLOW, ALERT, BLOCK_USER, BLOCK_IP, IGNORE\npolicySettings.data.url.pattern: CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS, NOT_PREFIX, NOT_SUFFIX, PREFIX, SUFFIX\nexceptionType: GEO, IP, URL, CLIENT_ID, SITE_ID\n"},"policyType":{"type":"string","description":"The policy type. Possible values: ACL, WHITELIST, FILE_UPLOAD, WAF_RULES.  Note: For (policy_type=WAF_RULES), all 4 setting types (policySettingType) are mandatory (REMOTE_FILE_INCLUSION, ILLEGAL_RESOURCE_ACCESS, CROSS_SITE_SCRIPTING, SQL_INJECTION). \u003c/br\u003eRESP_DATA_LEAK is optional and can be added only if this feature is included with your plan.\n"}},"type":"object","required":["accountId","enabled","name","policyId","policySettings","policyType"],"inputProperties":{"accountId":{"type":"number","description":"Account ID of the policy.\n","deprecationMessage":"Deprecated"},"description":{"type":"string","description":"The policy description.\n"},"enabled":{"type":"boolean","description":"Enables the policy.\n"},"name":{"type":"string","description":"The policy name.\n"},"policyId":{"type":"string","description":"Unique identifier in the API for the policy.\n"},"policySettings":{"type":"string","description":"The policy settings as JSON string. See Imperva documentation for help with constructing a correct value.\nPolicy_settings internal values:\npolicySettingType: IP, GEO, URL\nsettingsAction: BLOCK, ALLOW, ALERT, BLOCK_USER, BLOCK_IP, IGNORE\npolicySettings.data.url.pattern: CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS, NOT_PREFIX, NOT_SUFFIX, PREFIX, SUFFIX\nexceptionType: GEO, IP, URL, CLIENT_ID, SITE_ID\n"},"policyType":{"type":"string","description":"The policy type. Possible values: ACL, WHITELIST, FILE_UPLOAD, WAF_RULES.  Note: For (policy_type=WAF_RULES), all 4 setting types (policySettingType) are mandatory (REMOTE_FILE_INCLUSION, ILLEGAL_RESOURCE_ACCESS, CROSS_SITE_SCRIPTING, SQL_INJECTION). \u003c/br\u003eRESP_DATA_LEAK is optional and can be added only if this feature is included with your plan.\n"}},"requiredInputs":["enabled","policySettings","policyType"],"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"accountId":{"type":"number","description":"Account ID of the policy.\n","deprecationMessage":"Deprecated"},"description":{"type":"string","description":"The policy description.\n"},"enabled":{"type":"boolean","description":"Enables the policy.\n"},"name":{"type":"string","description":"The policy name.\n"},"policyId":{"type":"string","description":"Unique identifier in the API for the policy.\n"},"policySettings":{"type":"string","description":"The policy settings as JSON string. See Imperva documentation for help with constructing a correct value.\nPolicy_settings internal values:\npolicySettingType: IP, GEO, URL\nsettingsAction: BLOCK, ALLOW, ALERT, BLOCK_USER, BLOCK_IP, IGNORE\npolicySettings.data.url.pattern: CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS, NOT_PREFIX, NOT_SUFFIX, PREFIX, SUFFIX\nexceptionType: GEO, IP, URL, CLIENT_ID, SITE_ID\n"},"policyType":{"type":"string","description":"The policy type. Possible values: ACL, WHITELIST, FILE_UPLOAD, WAF_RULES.  Note: For (policy_type=WAF_RULES), all 4 setting types (policySettingType) are mandatory (REMOTE_FILE_INCLUSION, ILLEGAL_RESOURCE_ACCESS, CROSS_SITE_SCRIPTING, SQL_INJECTION). \u003c/br\u003eRESP_DATA_LEAK is optional and can be added only if this feature is included with your plan.\n"}},"type":"object"}},"incapsula:index/policyAssetAssociation:PolicyAssetAssociation":{"description":"Provides an Incapsula Policy Asset Association resource. This resource enables you to apply existing policies to assets in your account.\n\nDependency is on existing policies, created using the \u003cspan pulumi-lang-nodejs=\"`incapsula.Policy`\" pulumi-lang-dotnet=\"`incapsula.Policy`\" pulumi-lang-go=\"`Policy`\" pulumi-lang-python=\"`Policy`\" pulumi-lang-yaml=\"`incapsula.Policy`\" pulumi-lang-java=\"`incapsula.Policy`\"\u003e`incapsula.Policy`\u003c/span\u003e resource.\n\nTo simplify the use of policies, you can utilize this cloud-waf Module along with its submodules.\n\nFor full feature documentation, see [Create and Manage Policies](https://docs.imperva.com/bundle/cloud-application-security/page/policies.htm).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_policy_asset_association = new incapsula.PolicyAssetAssociation(\"example-policy-asset-association\", {\n    policyId: example_policy.id,\n    assetId: example_site_dns.id,\n    assetType: \"WEBSITE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_policy_asset_association = incapsula.PolicyAssetAssociation(\"example-policy-asset-association\",\n    policy_id=example_policy[\"id\"],\n    asset_id=example_site_dns[\"id\"],\n    asset_type=\"WEBSITE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_policy_asset_association = new Incapsula.PolicyAssetAssociation(\"example-policy-asset-association\", new()\n    {\n        PolicyId = example_policy.Id,\n        AssetId = example_site_dns.Id,\n        AssetType = \"WEBSITE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewPolicyAssetAssociation(ctx, \"example-policy-asset-association\", \u0026incapsula.PolicyAssetAssociationArgs{\n\t\t\tPolicyId:  pulumi.Any(example_policy.Id),\n\t\t\tAssetId:   pulumi.Any(example_site_dns.Id),\n\t\t\tAssetType: pulumi.String(\"WEBSITE\"),\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.incapsula.PolicyAssetAssociation;\nimport com.pulumi.incapsula.PolicyAssetAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_policy_asset_association = new PolicyAssetAssociation(\"example-policy-asset-association\", PolicyAssetAssociationArgs.builder()\n            .policyId(example_policy.id())\n            .assetId(example_site_dns.id())\n            .assetType(\"WEBSITE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-policy-asset-association:\n    type: incapsula:PolicyAssetAssociation\n    properties:\n      policyId: ${[\"example-policy\"].id}\n      assetId: ${[\"example-site-dns\"].id}\n      assetType: WEBSITE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicy can be imported using the `policy_id`, `asset_id` and `asset_type` e.g.:\n\n```sh\n$ pulumi import incapsula:index/policyAssetAssociation:PolicyAssetAssociation example-policy-asset-association policy_id/asset_id/asset_type\n```\n","properties":{"accountId":{"type":"number","description":"The account ID of the asset. Set this field if the asset's account is different than the account used in the credentials. For example, when setting a sub account’s asset association from the parent account.\n"},"assetId":{"type":"string","description":"The Asset ID for the asset association. Only type of asset supported at the moment is site.\n"},"assetType":{"type":"string","description":"The Policy type for the asset association. Only value at the moment is `WEBSITE`.\n"},"policyAssetAssociationId":{"type":"string","description":"Unique identifier in the API for the policy asset association.\n"},"policyId":{"type":"string","description":"The Policy ID for the asset association.\n"}},"type":"object","required":["accountId","assetId","assetType","policyAssetAssociationId","policyId"],"inputProperties":{"accountId":{"type":"number","description":"The account ID of the asset. Set this field if the asset's account is different than the account used in the credentials. For example, when setting a sub account’s asset association from the parent account.\n"},"assetId":{"type":"string","description":"The Asset ID for the asset association. Only type of asset supported at the moment is site.\n"},"assetType":{"type":"string","description":"The Policy type for the asset association. Only value at the moment is `WEBSITE`.\n"},"policyAssetAssociationId":{"type":"string","description":"Unique identifier in the API for the policy asset association.\n"},"policyId":{"type":"string","description":"The Policy ID for the asset association.\n"}},"requiredInputs":["assetId","assetType","policyId"],"stateInputs":{"description":"Input properties used for looking up and filtering PolicyAssetAssociation resources.\n","properties":{"accountId":{"type":"number","description":"The account ID of the asset. Set this field if the asset's account is different than the account used in the credentials. For example, when setting a sub account’s asset association from the parent account.\n"},"assetId":{"type":"string","description":"The Asset ID for the asset association. Only type of asset supported at the moment is site.\n"},"assetType":{"type":"string","description":"The Policy type for the asset association. Only value at the moment is `WEBSITE`.\n"},"policyAssetAssociationId":{"type":"string","description":"Unique identifier in the API for the policy asset association.\n"},"policyId":{"type":"string","description":"The Policy ID for the asset association.\n"}},"type":"object"}},"incapsula:index/securityRuleException:SecurityRuleException":{"description":"This resource enables you to configure exceptions to WAF security rules and policies.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_waf_backdoor_rule_exception = new incapsula.SecurityRuleException(\"example-waf-backdoor-rule-exception\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.backdoor\",\n    clientApps: \"488,123\",\n    countries: \"JM,US\",\n    continents: \"NA,AF\",\n    ips: \"1.2.3.6,1.2.3.7\",\n    urls: \"/myurl,/myurl2\",\n    userAgents: \"myUserAgent\",\n    parameters: \"myparam\",\n});\nconst example_waf_botAccess_control_rule_exception = new incapsula.SecurityRuleException(\"example-waf-bot_access-control-rule-exception\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.bot_access_control\",\n    clientAppTypes: \"DataScraper,\",\n    ips: \"1.2.3.6,1.2.3.7\",\n    urls: \"/myurl,/myurl2\",\n    userAgents: \"myUserAgent\",\n});\nconst example_waf_cross_site_scripting_rule_exception = new incapsula.SecurityRuleException(\"example-waf-cross-site-scripting-rule-exception\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.cross_site_scripting\",\n    clientApps: \"488,123\",\n    countries: \"JM,US\",\n    continents: \"NA,AF\",\n    urls: \"/myurl,/myurl2\",\n    parameters: \"myparam\",\n});\nconst example_waf_ddos_rule_exception = new incapsula.SecurityRuleException(\"example-waf-ddos-rule-exception\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.ddos\",\n    clientApps: \"488,123\",\n    countries: \"JM,US\",\n    continents: \"NA,AF\",\n    ips: \"1.2.3.6,1.2.3.7\",\n    urls: \"/myurl,/myurl2\",\n});\nconst example_waf_illegal_resource_access_rule_exception = new incapsula.SecurityRuleException(\"example-waf-illegal-resource-access-rule-exception\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.illegal_resource_access\",\n    clientApps: \"488,123\",\n    countries: \"JM,US\",\n    continents: \"NA,AF\",\n    ips: \"1.2.3.6,1.2.3.7\",\n    urls: \"/myurl,/myurl2\",\n    parameters: \"myparam\",\n});\nconst example_waf_remote_file_inclusion_rule_exception = new incapsula.SecurityRuleException(\"example-waf-remote-file-inclusion-rule-exception\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.remote_file_inclusion\",\n    clientApps: \"488,123\",\n    countries: \"JM,US\",\n    continents: \"NA,AF\",\n    ips: \"1.2.3.6,1.2.3.7\",\n    urls: \"/myurl,/myurl2\",\n    userAgents: \"myUserAgent\",\n    parameters: \"myparam\",\n});\nconst example_waf_sql_injection_rule_exception = new incapsula.SecurityRuleException(\"example-waf-sql-injection-rule-exception\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.sql_injection\",\n    clientApps: \"488,123\",\n    countries: \"JM,US\",\n    continents: \"NA,AF\",\n    ips: \"1.2.3.6,1.2.3.7\",\n    urls: \"/myurl,/myurl2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_waf_backdoor_rule_exception = incapsula.SecurityRuleException(\"example-waf-backdoor-rule-exception\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.backdoor\",\n    client_apps=\"488,123\",\n    countries=\"JM,US\",\n    continents=\"NA,AF\",\n    ips=\"1.2.3.6,1.2.3.7\",\n    urls=\"/myurl,/myurl2\",\n    user_agents=\"myUserAgent\",\n    parameters=\"myparam\")\nexample_waf_bot_access_control_rule_exception = incapsula.SecurityRuleException(\"example-waf-bot_access-control-rule-exception\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.bot_access_control\",\n    client_app_types=\"DataScraper,\",\n    ips=\"1.2.3.6,1.2.3.7\",\n    urls=\"/myurl,/myurl2\",\n    user_agents=\"myUserAgent\")\nexample_waf_cross_site_scripting_rule_exception = incapsula.SecurityRuleException(\"example-waf-cross-site-scripting-rule-exception\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.cross_site_scripting\",\n    client_apps=\"488,123\",\n    countries=\"JM,US\",\n    continents=\"NA,AF\",\n    urls=\"/myurl,/myurl2\",\n    parameters=\"myparam\")\nexample_waf_ddos_rule_exception = incapsula.SecurityRuleException(\"example-waf-ddos-rule-exception\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.ddos\",\n    client_apps=\"488,123\",\n    countries=\"JM,US\",\n    continents=\"NA,AF\",\n    ips=\"1.2.3.6,1.2.3.7\",\n    urls=\"/myurl,/myurl2\")\nexample_waf_illegal_resource_access_rule_exception = incapsula.SecurityRuleException(\"example-waf-illegal-resource-access-rule-exception\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.illegal_resource_access\",\n    client_apps=\"488,123\",\n    countries=\"JM,US\",\n    continents=\"NA,AF\",\n    ips=\"1.2.3.6,1.2.3.7\",\n    urls=\"/myurl,/myurl2\",\n    parameters=\"myparam\")\nexample_waf_remote_file_inclusion_rule_exception = incapsula.SecurityRuleException(\"example-waf-remote-file-inclusion-rule-exception\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.remote_file_inclusion\",\n    client_apps=\"488,123\",\n    countries=\"JM,US\",\n    continents=\"NA,AF\",\n    ips=\"1.2.3.6,1.2.3.7\",\n    urls=\"/myurl,/myurl2\",\n    user_agents=\"myUserAgent\",\n    parameters=\"myparam\")\nexample_waf_sql_injection_rule_exception = incapsula.SecurityRuleException(\"example-waf-sql-injection-rule-exception\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.sql_injection\",\n    client_apps=\"488,123\",\n    countries=\"JM,US\",\n    continents=\"NA,AF\",\n    ips=\"1.2.3.6,1.2.3.7\",\n    urls=\"/myurl,/myurl2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_waf_backdoor_rule_exception = new Incapsula.SecurityRuleException(\"example-waf-backdoor-rule-exception\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.backdoor\",\n        ClientApps = \"488,123\",\n        Countries = \"JM,US\",\n        Continents = \"NA,AF\",\n        Ips = \"1.2.3.6,1.2.3.7\",\n        Urls = \"/myurl,/myurl2\",\n        UserAgents = \"myUserAgent\",\n        Parameters = \"myparam\",\n    });\n\n    var example_waf_botAccess_control_rule_exception = new Incapsula.SecurityRuleException(\"example-waf-bot_access-control-rule-exception\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.bot_access_control\",\n        ClientAppTypes = \"DataScraper,\",\n        Ips = \"1.2.3.6,1.2.3.7\",\n        Urls = \"/myurl,/myurl2\",\n        UserAgents = \"myUserAgent\",\n    });\n\n    var example_waf_cross_site_scripting_rule_exception = new Incapsula.SecurityRuleException(\"example-waf-cross-site-scripting-rule-exception\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.cross_site_scripting\",\n        ClientApps = \"488,123\",\n        Countries = \"JM,US\",\n        Continents = \"NA,AF\",\n        Urls = \"/myurl,/myurl2\",\n        Parameters = \"myparam\",\n    });\n\n    var example_waf_ddos_rule_exception = new Incapsula.SecurityRuleException(\"example-waf-ddos-rule-exception\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.ddos\",\n        ClientApps = \"488,123\",\n        Countries = \"JM,US\",\n        Continents = \"NA,AF\",\n        Ips = \"1.2.3.6,1.2.3.7\",\n        Urls = \"/myurl,/myurl2\",\n    });\n\n    var example_waf_illegal_resource_access_rule_exception = new Incapsula.SecurityRuleException(\"example-waf-illegal-resource-access-rule-exception\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.illegal_resource_access\",\n        ClientApps = \"488,123\",\n        Countries = \"JM,US\",\n        Continents = \"NA,AF\",\n        Ips = \"1.2.3.6,1.2.3.7\",\n        Urls = \"/myurl,/myurl2\",\n        Parameters = \"myparam\",\n    });\n\n    var example_waf_remote_file_inclusion_rule_exception = new Incapsula.SecurityRuleException(\"example-waf-remote-file-inclusion-rule-exception\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.remote_file_inclusion\",\n        ClientApps = \"488,123\",\n        Countries = \"JM,US\",\n        Continents = \"NA,AF\",\n        Ips = \"1.2.3.6,1.2.3.7\",\n        Urls = \"/myurl,/myurl2\",\n        UserAgents = \"myUserAgent\",\n        Parameters = \"myparam\",\n    });\n\n    var example_waf_sql_injection_rule_exception = new Incapsula.SecurityRuleException(\"example-waf-sql-injection-rule-exception\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.sql_injection\",\n        ClientApps = \"488,123\",\n        Countries = \"JM,US\",\n        Continents = \"NA,AF\",\n        Ips = \"1.2.3.6,1.2.3.7\",\n        Urls = \"/myurl,/myurl2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSecurityRuleException(ctx, \"example-waf-backdoor-rule-exception\", \u0026incapsula.SecurityRuleExceptionArgs{\n\t\t\tSiteId:     pulumi.Any(example_site.Id),\n\t\t\tRuleId:     pulumi.String(\"api.threats.backdoor\"),\n\t\t\tClientApps: pulumi.String(\"488,123\"),\n\t\t\tCountries:  pulumi.String(\"JM,US\"),\n\t\t\tContinents: pulumi.String(\"NA,AF\"),\n\t\t\tIps:        pulumi.String(\"1.2.3.6,1.2.3.7\"),\n\t\t\tUrls:       pulumi.String(\"/myurl,/myurl2\"),\n\t\t\tUserAgents: pulumi.String(\"myUserAgent\"),\n\t\t\tParameters: pulumi.String(\"myparam\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewSecurityRuleException(ctx, \"example-waf-bot_access-control-rule-exception\", \u0026incapsula.SecurityRuleExceptionArgs{\n\t\t\tSiteId:         pulumi.Any(example_site.Id),\n\t\t\tRuleId:         pulumi.String(\"api.threats.bot_access_control\"),\n\t\t\tClientAppTypes: pulumi.String(\"DataScraper,\"),\n\t\t\tIps:            pulumi.String(\"1.2.3.6,1.2.3.7\"),\n\t\t\tUrls:           pulumi.String(\"/myurl,/myurl2\"),\n\t\t\tUserAgents:     pulumi.String(\"myUserAgent\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewSecurityRuleException(ctx, \"example-waf-cross-site-scripting-rule-exception\", \u0026incapsula.SecurityRuleExceptionArgs{\n\t\t\tSiteId:     pulumi.Any(example_site.Id),\n\t\t\tRuleId:     pulumi.String(\"api.threats.cross_site_scripting\"),\n\t\t\tClientApps: pulumi.String(\"488,123\"),\n\t\t\tCountries:  pulumi.String(\"JM,US\"),\n\t\t\tContinents: pulumi.String(\"NA,AF\"),\n\t\t\tUrls:       pulumi.String(\"/myurl,/myurl2\"),\n\t\t\tParameters: pulumi.String(\"myparam\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewSecurityRuleException(ctx, \"example-waf-ddos-rule-exception\", \u0026incapsula.SecurityRuleExceptionArgs{\n\t\t\tSiteId:     pulumi.Any(example_site.Id),\n\t\t\tRuleId:     pulumi.String(\"api.threats.ddos\"),\n\t\t\tClientApps: pulumi.String(\"488,123\"),\n\t\t\tCountries:  pulumi.String(\"JM,US\"),\n\t\t\tContinents: pulumi.String(\"NA,AF\"),\n\t\t\tIps:        pulumi.String(\"1.2.3.6,1.2.3.7\"),\n\t\t\tUrls:       pulumi.String(\"/myurl,/myurl2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewSecurityRuleException(ctx, \"example-waf-illegal-resource-access-rule-exception\", \u0026incapsula.SecurityRuleExceptionArgs{\n\t\t\tSiteId:     pulumi.Any(example_site.Id),\n\t\t\tRuleId:     pulumi.String(\"api.threats.illegal_resource_access\"),\n\t\t\tClientApps: pulumi.String(\"488,123\"),\n\t\t\tCountries:  pulumi.String(\"JM,US\"),\n\t\t\tContinents: pulumi.String(\"NA,AF\"),\n\t\t\tIps:        pulumi.String(\"1.2.3.6,1.2.3.7\"),\n\t\t\tUrls:       pulumi.String(\"/myurl,/myurl2\"),\n\t\t\tParameters: pulumi.String(\"myparam\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewSecurityRuleException(ctx, \"example-waf-remote-file-inclusion-rule-exception\", \u0026incapsula.SecurityRuleExceptionArgs{\n\t\t\tSiteId:     pulumi.Any(example_site.Id),\n\t\t\tRuleId:     pulumi.String(\"api.threats.remote_file_inclusion\"),\n\t\t\tClientApps: pulumi.String(\"488,123\"),\n\t\t\tCountries:  pulumi.String(\"JM,US\"),\n\t\t\tContinents: pulumi.String(\"NA,AF\"),\n\t\t\tIps:        pulumi.String(\"1.2.3.6,1.2.3.7\"),\n\t\t\tUrls:       pulumi.String(\"/myurl,/myurl2\"),\n\t\t\tUserAgents: pulumi.String(\"myUserAgent\"),\n\t\t\tParameters: pulumi.String(\"myparam\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewSecurityRuleException(ctx, \"example-waf-sql-injection-rule-exception\", \u0026incapsula.SecurityRuleExceptionArgs{\n\t\t\tSiteId:     pulumi.Any(example_site.Id),\n\t\t\tRuleId:     pulumi.String(\"api.threats.sql_injection\"),\n\t\t\tClientApps: pulumi.String(\"488,123\"),\n\t\t\tCountries:  pulumi.String(\"JM,US\"),\n\t\t\tContinents: pulumi.String(\"NA,AF\"),\n\t\t\tIps:        pulumi.String(\"1.2.3.6,1.2.3.7\"),\n\t\t\tUrls:       pulumi.String(\"/myurl,/myurl2\"),\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.incapsula.SecurityRuleException;\nimport com.pulumi.incapsula.SecurityRuleExceptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_waf_backdoor_rule_exception = new SecurityRuleException(\"example-waf-backdoor-rule-exception\", SecurityRuleExceptionArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.backdoor\")\n            .clientApps(\"488,123\")\n            .countries(\"JM,US\")\n            .continents(\"NA,AF\")\n            .ips(\"1.2.3.6,1.2.3.7\")\n            .urls(\"/myurl,/myurl2\")\n            .userAgents(\"myUserAgent\")\n            .parameters(\"myparam\")\n            .build());\n\n        var example_waf_botAccess_control_rule_exception = new SecurityRuleException(\"example-waf-botAccess-control-rule-exception\", SecurityRuleExceptionArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.bot_access_control\")\n            .clientAppTypes(\"DataScraper,\")\n            .ips(\"1.2.3.6,1.2.3.7\")\n            .urls(\"/myurl,/myurl2\")\n            .userAgents(\"myUserAgent\")\n            .build());\n\n        var example_waf_cross_site_scripting_rule_exception = new SecurityRuleException(\"example-waf-cross-site-scripting-rule-exception\", SecurityRuleExceptionArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.cross_site_scripting\")\n            .clientApps(\"488,123\")\n            .countries(\"JM,US\")\n            .continents(\"NA,AF\")\n            .urls(\"/myurl,/myurl2\")\n            .parameters(\"myparam\")\n            .build());\n\n        var example_waf_ddos_rule_exception = new SecurityRuleException(\"example-waf-ddos-rule-exception\", SecurityRuleExceptionArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.ddos\")\n            .clientApps(\"488,123\")\n            .countries(\"JM,US\")\n            .continents(\"NA,AF\")\n            .ips(\"1.2.3.6,1.2.3.7\")\n            .urls(\"/myurl,/myurl2\")\n            .build());\n\n        var example_waf_illegal_resource_access_rule_exception = new SecurityRuleException(\"example-waf-illegal-resource-access-rule-exception\", SecurityRuleExceptionArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.illegal_resource_access\")\n            .clientApps(\"488,123\")\n            .countries(\"JM,US\")\n            .continents(\"NA,AF\")\n            .ips(\"1.2.3.6,1.2.3.7\")\n            .urls(\"/myurl,/myurl2\")\n            .parameters(\"myparam\")\n            .build());\n\n        var example_waf_remote_file_inclusion_rule_exception = new SecurityRuleException(\"example-waf-remote-file-inclusion-rule-exception\", SecurityRuleExceptionArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.remote_file_inclusion\")\n            .clientApps(\"488,123\")\n            .countries(\"JM,US\")\n            .continents(\"NA,AF\")\n            .ips(\"1.2.3.6,1.2.3.7\")\n            .urls(\"/myurl,/myurl2\")\n            .userAgents(\"myUserAgent\")\n            .parameters(\"myparam\")\n            .build());\n\n        var example_waf_sql_injection_rule_exception = new SecurityRuleException(\"example-waf-sql-injection-rule-exception\", SecurityRuleExceptionArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.sql_injection\")\n            .clientApps(\"488,123\")\n            .countries(\"JM,US\")\n            .continents(\"NA,AF\")\n            .ips(\"1.2.3.6,1.2.3.7\")\n            .urls(\"/myurl,/myurl2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-waf-backdoor-rule-exception:\n    type: incapsula:SecurityRuleException\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.backdoor\n      clientApps: 488,123\n      countries: JM,US\n      continents: NA,AF\n      ips: 1.2.3.6,1.2.3.7\n      urls: /myurl,/myurl2\n      userAgents: myUserAgent\n      parameters: myparam\n  example-waf-botAccess-control-rule-exception:\n    type: incapsula:SecurityRuleException\n    name: example-waf-bot_access-control-rule-exception\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.bot_access_control\n      clientAppTypes: DataScraper,\n      ips: 1.2.3.6,1.2.3.7\n      urls: /myurl,/myurl2\n      userAgents: myUserAgent\n  example-waf-cross-site-scripting-rule-exception:\n    type: incapsula:SecurityRuleException\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.cross_site_scripting\n      clientApps: 488,123\n      countries: JM,US\n      continents: NA,AF\n      urls: /myurl,/myurl2\n      parameters: myparam\n  example-waf-ddos-rule-exception:\n    type: incapsula:SecurityRuleException\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.ddos\n      clientApps: 488,123\n      countries: JM,US\n      continents: NA,AF\n      ips: 1.2.3.6,1.2.3.7\n      urls: /myurl,/myurl2\n  example-waf-illegal-resource-access-rule-exception:\n    type: incapsula:SecurityRuleException\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.illegal_resource_access\n      clientApps: 488,123\n      countries: JM,US\n      continents: NA,AF\n      ips: 1.2.3.6,1.2.3.7\n      urls: /myurl,/myurl2\n      parameters: myparam\n  example-waf-remote-file-inclusion-rule-exception:\n    type: incapsula:SecurityRuleException\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.remote_file_inclusion\n      clientApps: 488,123\n      countries: JM,US\n      continents: NA,AF\n      ips: 1.2.3.6,1.2.3.7\n      urls: /myurl,/myurl2\n      userAgents: myUserAgent\n      parameters: myparam\n  example-waf-sql-injection-rule-exception:\n    type: incapsula:SecurityRuleException\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.sql_injection\n      clientApps: 488,123\n      countries: JM,US\n      continents: NA,AF\n      ips: 1.2.3.6,1.2.3.7\n      urls: /myurl,/myurl2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSecurity Rule Exception can be imported using the role `site_id`, `rule_id` and `rule_exception_id` separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/securityRuleException:SecurityRuleException demo site_id/rule_id/rule_exception_id\n```\n","properties":{"clientAppTypes":{"type":"string","description":"A comma separated list of client application types.\n"},"clientApps":{"type":"string","description":"A comma separated list of client application IDs.\n"},"continents":{"type":"string","description":"A comma separated list of continent codes.\n* `ips=` - (Optional) A comma separated list of IPs or IP ranges, e.g: 192.168.1.1, 192.168.1.1-192.168.1.100 or 192.168.1.1/24\n* `urls=` - (Optional) A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while http://www.example.com/home is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (http://tools.ietf.org/html/rfc3986#section-2.1). An empty URL list will remove all URLs. The resource configures exceptions for the exact URLs listed in this parameter.\n"},"countries":{"type":"string","description":"A comma separated list of country codes.\n"},"exceptionIdOnly":{"type":"string","description":"The id (an integer) of the whitelist to be set. This field is optional - in case no id is supplied, a new whitelist will be created."},"ips":{"type":"string","description":"A comma separated list of IPs or IP ranges, e.g: 192.168.1.1, 192.168.1.1-192.168.1.100 or 192.168.1.1/24"},"parameters":{"type":"string","description":"A comma separated list of encoded parameters.\n"},"ruleId":{"type":"string","description":"The identifier of the WAF rule, e.g api.threats.cross_site_scripting.\n"},"securityRuleExceptionId":{"type":"string","description":"Unique identifier in the API for the Rule Exception ID.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"urlPatterns":{"type":"string","description":"A comma separated list of url patterns. One of: contains | equals | prefix | suffix |\u003cspan pulumi-lang-nodejs=\" notEquals \" pulumi-lang-dotnet=\" NotEquals \" pulumi-lang-go=\" notEquals \" pulumi-lang-python=\" not_equals \" pulumi-lang-yaml=\" notEquals \" pulumi-lang-java=\" notEquals \"\u003e not_equals \u003c/span\u003e|\u003cspan pulumi-lang-nodejs=\" notContain \" pulumi-lang-dotnet=\" NotContain \" pulumi-lang-go=\" notContain \" pulumi-lang-python=\" not_contain \" pulumi-lang-yaml=\" notContain \" pulumi-lang-java=\" notContain \"\u003e not_contain \u003c/span\u003e|\u003cspan pulumi-lang-nodejs=\" notPrefix \" pulumi-lang-dotnet=\" NotPrefix \" pulumi-lang-go=\" notPrefix \" pulumi-lang-python=\" not_prefix \" pulumi-lang-yaml=\" notPrefix \" pulumi-lang-java=\" notPrefix \"\u003e not_prefix \u003c/span\u003e| not_suffix. The patterns should be in accordance with the matching urls sent by the urls parameter.","deprecationMessage":"Deprecated"},"urls":{"type":"string","description":"A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while http://www.example.com/home is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (http://tools.ietf.org/html/rfc3986#section-2.1). An empty URL list will remove all URLs."},"userAgents":{"type":"string","description":"A comma separated list of encoded user agents.\n"},"whitelistId":{"type":"string","description":"The id (an integer) of the whitelist to be set. This field is optional - in case no id is supplied, a new whitelist will be created."}},"type":"object","required":["ruleId","securityRuleExceptionId","siteId"],"inputProperties":{"clientAppTypes":{"type":"string","description":"A comma separated list of client application types.\n"},"clientApps":{"type":"string","description":"A comma separated list of client application IDs.\n"},"continents":{"type":"string","description":"A comma separated list of continent codes.\n* `ips=` - (Optional) A comma separated list of IPs or IP ranges, e.g: 192.168.1.1, 192.168.1.1-192.168.1.100 or 192.168.1.1/24\n* `urls=` - (Optional) A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while http://www.example.com/home is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (http://tools.ietf.org/html/rfc3986#section-2.1). An empty URL list will remove all URLs. The resource configures exceptions for the exact URLs listed in this parameter.\n"},"countries":{"type":"string","description":"A comma separated list of country codes.\n"},"exceptionIdOnly":{"type":"string","description":"The id (an integer) of the whitelist to be set. This field is optional - in case no id is supplied, a new whitelist will be created."},"ips":{"type":"string","description":"A comma separated list of IPs or IP ranges, e.g: 192.168.1.1, 192.168.1.1-192.168.1.100 or 192.168.1.1/24"},"parameters":{"type":"string","description":"A comma separated list of encoded parameters.\n"},"ruleId":{"type":"string","description":"The identifier of the WAF rule, e.g api.threats.cross_site_scripting.\n"},"securityRuleExceptionId":{"type":"string","description":"Unique identifier in the API for the Rule Exception ID.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"urlPatterns":{"type":"string","description":"A comma separated list of url patterns. One of: contains | equals | prefix | suffix |\u003cspan pulumi-lang-nodejs=\" notEquals \" pulumi-lang-dotnet=\" NotEquals \" pulumi-lang-go=\" notEquals \" pulumi-lang-python=\" not_equals \" pulumi-lang-yaml=\" notEquals \" pulumi-lang-java=\" notEquals \"\u003e not_equals \u003c/span\u003e|\u003cspan pulumi-lang-nodejs=\" notContain \" pulumi-lang-dotnet=\" NotContain \" pulumi-lang-go=\" notContain \" pulumi-lang-python=\" not_contain \" pulumi-lang-yaml=\" notContain \" pulumi-lang-java=\" notContain \"\u003e not_contain \u003c/span\u003e|\u003cspan pulumi-lang-nodejs=\" notPrefix \" pulumi-lang-dotnet=\" NotPrefix \" pulumi-lang-go=\" notPrefix \" pulumi-lang-python=\" not_prefix \" pulumi-lang-yaml=\" notPrefix \" pulumi-lang-java=\" notPrefix \"\u003e not_prefix \u003c/span\u003e| not_suffix. The patterns should be in accordance with the matching urls sent by the urls parameter.","deprecationMessage":"Deprecated"},"urls":{"type":"string","description":"A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while http://www.example.com/home is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (http://tools.ietf.org/html/rfc3986#section-2.1). An empty URL list will remove all URLs."},"userAgents":{"type":"string","description":"A comma separated list of encoded user agents.\n"},"whitelistId":{"type":"string","description":"The id (an integer) of the whitelist to be set. This field is optional - in case no id is supplied, a new whitelist will be created."}},"requiredInputs":["ruleId","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityRuleException resources.\n","properties":{"clientAppTypes":{"type":"string","description":"A comma separated list of client application types.\n"},"clientApps":{"type":"string","description":"A comma separated list of client application IDs.\n"},"continents":{"type":"string","description":"A comma separated list of continent codes.\n* `ips=` - (Optional) A comma separated list of IPs or IP ranges, e.g: 192.168.1.1, 192.168.1.1-192.168.1.100 or 192.168.1.1/24\n* `urls=` - (Optional) A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while http://www.example.com/home is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (http://tools.ietf.org/html/rfc3986#section-2.1). An empty URL list will remove all URLs. The resource configures exceptions for the exact URLs listed in this parameter.\n"},"countries":{"type":"string","description":"A comma separated list of country codes.\n"},"exceptionIdOnly":{"type":"string","description":"The id (an integer) of the whitelist to be set. This field is optional - in case no id is supplied, a new whitelist will be created."},"ips":{"type":"string","description":"A comma separated list of IPs or IP ranges, e.g: 192.168.1.1, 192.168.1.1-192.168.1.100 or 192.168.1.1/24"},"parameters":{"type":"string","description":"A comma separated list of encoded parameters.\n"},"ruleId":{"type":"string","description":"The identifier of the WAF rule, e.g api.threats.cross_site_scripting.\n"},"securityRuleExceptionId":{"type":"string","description":"Unique identifier in the API for the Rule Exception ID.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"urlPatterns":{"type":"string","description":"A comma separated list of url patterns. One of: contains | equals | prefix | suffix |\u003cspan pulumi-lang-nodejs=\" notEquals \" pulumi-lang-dotnet=\" NotEquals \" pulumi-lang-go=\" notEquals \" pulumi-lang-python=\" not_equals \" pulumi-lang-yaml=\" notEquals \" pulumi-lang-java=\" notEquals \"\u003e not_equals \u003c/span\u003e|\u003cspan pulumi-lang-nodejs=\" notContain \" pulumi-lang-dotnet=\" NotContain \" pulumi-lang-go=\" notContain \" pulumi-lang-python=\" not_contain \" pulumi-lang-yaml=\" notContain \" pulumi-lang-java=\" notContain \"\u003e not_contain \u003c/span\u003e|\u003cspan pulumi-lang-nodejs=\" notPrefix \" pulumi-lang-dotnet=\" NotPrefix \" pulumi-lang-go=\" notPrefix \" pulumi-lang-python=\" not_prefix \" pulumi-lang-yaml=\" notPrefix \" pulumi-lang-java=\" notPrefix \"\u003e not_prefix \u003c/span\u003e| not_suffix. The patterns should be in accordance with the matching urls sent by the urls parameter.","deprecationMessage":"Deprecated"},"urls":{"type":"string","description":"A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while http://www.example.com/home is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (http://tools.ietf.org/html/rfc3986#section-2.1). An empty URL list will remove all URLs."},"userAgents":{"type":"string","description":"A comma separated list of encoded user agents.\n"},"whitelistId":{"type":"string","description":"The id (an integer) of the whitelist to be set. This field is optional - in case no id is supplied, a new whitelist will be created."}},"type":"object"}},"incapsula:index/shortRenewalCycle:ShortRenewalCycle":{"properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters."},"managedCertificateSettingsId":{"type":"string","description":"Numeric identifier of the site ssl settings to operate on."},"shortRenewalCycle":{"type":"boolean","description":"The short renewal cycle configuration. If true, then short renewal cycle is enabled. If false, then short renewal cycle is disabled."},"shortRenewalCycleId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"type":"object","required":["managedCertificateSettingsId","shortRenewalCycle","shortRenewalCycleId","siteId"],"inputProperties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters."},"managedCertificateSettingsId":{"type":"string","description":"Numeric identifier of the site ssl settings to operate on."},"shortRenewalCycle":{"type":"boolean","description":"The short renewal cycle configuration. If true, then short renewal cycle is enabled. If false, then short renewal cycle is disabled."},"shortRenewalCycleId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"requiredInputs":["managedCertificateSettingsId","shortRenewalCycle","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ShortRenewalCycle resources.\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters."},"managedCertificateSettingsId":{"type":"string","description":"Numeric identifier of the site ssl settings to operate on."},"shortRenewalCycle":{"type":"boolean","description":"The short renewal cycle configuration. If true, then short renewal cycle is enabled. If false, then short renewal cycle is disabled."},"shortRenewalCycleId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"type":"object"}},"incapsula:index/siemConnection:SiemConnection":{"description":"Provides a customer S3 connection configuration resource.\n\nThe follow-on action is to use the \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-dotnet=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-go=\"`SiemLogConfiguration`\" pulumi-lang-python=\"`SiemLogConfiguration`\" pulumi-lang-yaml=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-java=\"`incapsula.SiemLogConfiguration`\"\u003e`incapsula.SiemLogConfiguration`\u003c/span\u003e resource, to configure the connection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiemConnectionS3Basic = new incapsula.SiemConnection(\"example_siem_connection_s3_basic\", {\n    accountId: \"1234567\",\n    connectionName: \"APB siem-logs connection basic auth\",\n    storageType: \"CUSTOMER_S3\",\n    accessKey: \"AKIAIOSFODNN7EXAMPLE\",\n    secretKey: \"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\",\n    path: \"myBucket/siem/logs\",\n});\nconst exampleSiemConnectionS3Arn = new incapsula.SiemConnection(\"example_siem_connection_s3_arn\", {\n    accountId: \"1234567\",\n    connectionName: \"ABP siem-logs connection arn auth\",\n    storageType: \"CUSTOMER_S3_ARN\",\n    path: \"myBucket/siem/logs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_siem_connection_s3_basic = incapsula.SiemConnection(\"example_siem_connection_s3_basic\",\n    account_id=\"1234567\",\n    connection_name=\"APB siem-logs connection basic auth\",\n    storage_type=\"CUSTOMER_S3\",\n    access_key=\"AKIAIOSFODNN7EXAMPLE\",\n    secret_key=\"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\",\n    path=\"myBucket/siem/logs\")\nexample_siem_connection_s3_arn = incapsula.SiemConnection(\"example_siem_connection_s3_arn\",\n    account_id=\"1234567\",\n    connection_name=\"ABP siem-logs connection arn auth\",\n    storage_type=\"CUSTOMER_S3_ARN\",\n    path=\"myBucket/siem/logs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiemConnectionS3Basic = new Incapsula.SiemConnection(\"example_siem_connection_s3_basic\", new()\n    {\n        AccountId = \"1234567\",\n        ConnectionName = \"APB siem-logs connection basic auth\",\n        StorageType = \"CUSTOMER_S3\",\n        AccessKey = \"AKIAIOSFODNN7EXAMPLE\",\n        SecretKey = \"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\",\n        Path = \"myBucket/siem/logs\",\n    });\n\n    var exampleSiemConnectionS3Arn = new Incapsula.SiemConnection(\"example_siem_connection_s3_arn\", new()\n    {\n        AccountId = \"1234567\",\n        ConnectionName = \"ABP siem-logs connection arn auth\",\n        StorageType = \"CUSTOMER_S3_ARN\",\n        Path = \"myBucket/siem/logs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiemConnection(ctx, \"example_siem_connection_s3_basic\", \u0026incapsula.SiemConnectionArgs{\n\t\t\tAccountId:      pulumi.String(\"1234567\"),\n\t\t\tConnectionName: pulumi.String(\"APB siem-logs connection basic auth\"),\n\t\t\tStorageType:    pulumi.String(\"CUSTOMER_S3\"),\n\t\t\tAccessKey:      pulumi.String(\"AKIAIOSFODNN7EXAMPLE\"),\n\t\t\tSecretKey:      pulumi.String(\"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\"),\n\t\t\tPath:           pulumi.String(\"myBucket/siem/logs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewSiemConnection(ctx, \"example_siem_connection_s3_arn\", \u0026incapsula.SiemConnectionArgs{\n\t\t\tAccountId:      pulumi.String(\"1234567\"),\n\t\t\tConnectionName: pulumi.String(\"ABP siem-logs connection arn auth\"),\n\t\t\tStorageType:    pulumi.String(\"CUSTOMER_S3_ARN\"),\n\t\t\tPath:           pulumi.String(\"myBucket/siem/logs\"),\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.incapsula.SiemConnection;\nimport com.pulumi.incapsula.SiemConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiemConnectionS3Basic = new SiemConnection(\"exampleSiemConnectionS3Basic\", SiemConnectionArgs.builder()\n            .accountId(\"1234567\")\n            .connectionName(\"APB siem-logs connection basic auth\")\n            .storageType(\"CUSTOMER_S3\")\n            .accessKey(\"AKIAIOSFODNN7EXAMPLE\")\n            .secretKey(\"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\")\n            .path(\"myBucket/siem/logs\")\n            .build());\n\n        var exampleSiemConnectionS3Arn = new SiemConnection(\"exampleSiemConnectionS3Arn\", SiemConnectionArgs.builder()\n            .accountId(\"1234567\")\n            .connectionName(\"ABP siem-logs connection arn auth\")\n            .storageType(\"CUSTOMER_S3_ARN\")\n            .path(\"myBucket/siem/logs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiemConnectionS3Basic:\n    type: incapsula:SiemConnection\n    name: example_siem_connection_s3_basic\n    properties:\n      accountId: '1234567'\n      connectionName: APB siem-logs connection basic auth\n      storageType: CUSTOMER_S3\n      accessKey: AKIAIOSFODNN7EXAMPLE\n      secretKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\n      path: myBucket/siem/logs\n  exampleSiemConnectionS3Arn:\n    type: incapsula:SiemConnection\n    name: example_siem_connection_s3_arn\n    properties:\n      accountId: '1234567'\n      connectionName: ABP siem-logs connection arn auth\n      storageType: CUSTOMER_S3_ARN\n      path: myBucket/siem/logs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\u003e **NOTE:**\nFor security reasons, when a resource is exported, the \u003cspan pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\"\u003e`access_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\"\u003e`secret_key`\u003c/span\u003e fields will be replaced with the value `Sensitive data placeholder`.\nThe actual key values are still used in the communication with the s3 bucket.\nNote - This resource cannot be updated unless you specify a real value for the \u003cspan pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\"\u003e`access_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\"\u003e`secret_key`\u003c/span\u003e fields instead of `Sensitive data placeholder`.\nTo clarify, none of the fields in exported resources can be updated unless real \u003cspan pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\"\u003e`access_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\"\u003e`secret_key`\u003c/span\u003e values are set.\n\nExample of exported resource:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiemConnectionS3Basic = new incapsula.SiemConnection(\"example_siem_connection_s3_basic\", {\n    accountId: \"1234567\",\n    connectionName: \"APB siem-logs connection basic auth\",\n    storageType: \"CUSTOMER_S3\",\n    accessKey: \"Sensitive data placeholder\",\n    secretKey: \"Sensitive data placeholder\",\n    path: \"myBucket/siem/logs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_siem_connection_s3_basic = incapsula.SiemConnection(\"example_siem_connection_s3_basic\",\n    account_id=\"1234567\",\n    connection_name=\"APB siem-logs connection basic auth\",\n    storage_type=\"CUSTOMER_S3\",\n    access_key=\"Sensitive data placeholder\",\n    secret_key=\"Sensitive data placeholder\",\n    path=\"myBucket/siem/logs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiemConnectionS3Basic = new Incapsula.SiemConnection(\"example_siem_connection_s3_basic\", new()\n    {\n        AccountId = \"1234567\",\n        ConnectionName = \"APB siem-logs connection basic auth\",\n        StorageType = \"CUSTOMER_S3\",\n        AccessKey = \"Sensitive data placeholder\",\n        SecretKey = \"Sensitive data placeholder\",\n        Path = \"myBucket/siem/logs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiemConnection(ctx, \"example_siem_connection_s3_basic\", \u0026incapsula.SiemConnectionArgs{\n\t\t\tAccountId:      pulumi.String(\"1234567\"),\n\t\t\tConnectionName: pulumi.String(\"APB siem-logs connection basic auth\"),\n\t\t\tStorageType:    pulumi.String(\"CUSTOMER_S3\"),\n\t\t\tAccessKey:      pulumi.String(\"Sensitive data placeholder\"),\n\t\t\tSecretKey:      pulumi.String(\"Sensitive data placeholder\"),\n\t\t\tPath:           pulumi.String(\"myBucket/siem/logs\"),\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.incapsula.SiemConnection;\nimport com.pulumi.incapsula.SiemConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiemConnectionS3Basic = new SiemConnection(\"exampleSiemConnectionS3Basic\", SiemConnectionArgs.builder()\n            .accountId(\"1234567\")\n            .connectionName(\"APB siem-logs connection basic auth\")\n            .storageType(\"CUSTOMER_S3\")\n            .accessKey(\"Sensitive data placeholder\")\n            .secretKey(\"Sensitive data placeholder\")\n            .path(\"myBucket/siem/logs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiemConnectionS3Basic:\n    type: incapsula:SiemConnection\n    name: example_siem_connection_s3_basic\n    properties:\n      accountId: '1234567'\n      connectionName: APB siem-logs connection basic auth\n      storageType: CUSTOMER_S3\n      accessKey: Sensitive data placeholder\n      secretKey: Sensitive data placeholder\n      path: myBucket/siem/logs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustomer connection  can be imported using `accountId`/`connectionId`:\n\n```sh\n$ pulumi import incapsula:index/siemConnection:SiemConnection example_siem_connection accountId/connectionId\n```\n","properties":{"accessKey":{"type":"string","description":"AWS access key.\n","secret":true},"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"path":{"type":"string","description":"Path to the files inside bucket including bucket name: `bucketName/folder/subfolder`.\n"},"secretKey":{"type":"string","description":"AWS access secret.\n","secret":true},"siemConnectionId":{"type":"string","description":"Unique identifier of the customer’s S3 connection.\n"},"storageType":{"type":"string","description":"Storage type. Possible values: `CUSTOMER_S3`, `CUSTOMER_S3_ARN`\n"}},"type":"object","required":["accountId","connectionName","inputHash","path","siemConnectionId","storageType"],"inputProperties":{"accessKey":{"type":"string","description":"AWS access key.\n","secret":true},"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"path":{"type":"string","description":"Path to the files inside bucket including bucket name: `bucketName/folder/subfolder`.\n"},"secretKey":{"type":"string","description":"AWS access secret.\n","secret":true},"siemConnectionId":{"type":"string","description":"Unique identifier of the customer’s S3 connection.\n"},"storageType":{"type":"string","description":"Storage type. Possible values: `CUSTOMER_S3`, `CUSTOMER_S3_ARN`\n"}},"requiredInputs":["connectionName","path","storageType"],"stateInputs":{"description":"Input properties used for looking up and filtering SiemConnection resources.\n","properties":{"accessKey":{"type":"string","description":"AWS access key.\n","secret":true},"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"path":{"type":"string","description":"Path to the files inside bucket including bucket name: `bucketName/folder/subfolder`.\n"},"secretKey":{"type":"string","description":"AWS access secret.\n","secret":true},"siemConnectionId":{"type":"string","description":"Unique identifier of the customer’s S3 connection.\n"},"storageType":{"type":"string","description":"Storage type. Possible values: `CUSTOMER_S3`, `CUSTOMER_S3_ARN`\n"}},"type":"object"}},"incapsula:index/siemLogConfiguration:SiemLogConfiguration":{"description":"Provides a resource to configure a log connection.\n\nDependency is on existing connection, created using the \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemConnection`\" pulumi-lang-dotnet=\"`incapsula.SiemConnection`\" pulumi-lang-go=\"`SiemConnection`\" pulumi-lang-python=\"`SiemConnection`\" pulumi-lang-yaml=\"`incapsula.SiemConnection`\" pulumi-lang-java=\"`incapsula.SiemConnection`\"\u003e`incapsula.SiemConnection`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemSplunkConnection`\" pulumi-lang-dotnet=\"`incapsula.SiemSplunkConnection`\" pulumi-lang-go=\"`SiemSplunkConnection`\" pulumi-lang-python=\"`SiemSplunkConnection`\" pulumi-lang-yaml=\"`incapsula.SiemSplunkConnection`\" pulumi-lang-java=\"`incapsula.SiemSplunkConnection`\"\u003e`incapsula.SiemSplunkConnection`\u003c/span\u003e resource.\n\n## Import\n\nCustomer connection can be imported using `accountId`/`logConfigurationId`:\n\n```sh\n$ pulumi import incapsula:index/siemLogConfiguration:SiemLogConfiguration example_siem_log_configuration_abp accountId/logConfigurationId\n```\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n* `configurationName` - (Required) Unique configuration name.\n"},"compressLogs":{"type":"boolean","description":"Boolean - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers. Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e/ \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"configurationName":{"type":"string","description":"Name of the configuration."},"connectionId":{"type":"string","description":"The id of the connection for this log configuration."},"datasets":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the type of logs. Values:\u003cbr /\u003e `ABP` for provider type `ABP`\u003cbr /\u003e `CONNECTION`, `NETFLOW`, `IP`, `ATTACK`,`NOTIFICATIONS` for provider type `NETSEC`\u003cbr /\u003e `ATO` for provider type `ATO`\u003cbr /\u003e `AUDIT_TRAIL` for provider type `AUDIT` \u003cbr /\u003e `GOOGLE_ANALYTICS_IDS`, `SIGNIFICANT_DOMAIN_DISCOVERY`, `SIGNIFICANT_SCRIPT_DISCOVERY`, `SIGNIFICANT_DATA_TRANSFER_DISCOVERY`, `DOMAIN_DISCOVERY_ENFORCE_MODE`, `CSP_HEADER_HEALTH` for provider type `CSP`\u003cbr /\u003e `WAF_RAW_LOGS`, `CLOUD_WAF_ACCESS` for provider type `CLOUD_WAF` \u003cbr /\u003e `WAF_ANALYTICS_LOGS` for provider type `ATTACK_ANALYTICS`\n"},"enabled":{"type":"boolean","description":"Boolean. Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e/ \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n* `connectionId` - (Required) Connection id associated with this log configuration\n"},"format":{"type":"string","description":"Log format - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers. Values: `CEF`, `W3C` , `LEEF`\n"},"logsLevel":{"type":"string","description":"Security log level - compatible only with CLOUD_WAF producer. Values: `NONE`, `FULL`, `SECURITY`\n"},"producer":{"type":"string","description":"Provider type. Values: `ABP`, `NETSEC`, `ATO`, `AUDIT`, `CLOUD_WAF`, `ATTACK_ANALYTICS`\n"},"publicKey":{"type":"string","description":"Public key for encryption - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers.\n"},"publicKeyFileName":{"type":"string","description":"The name of the public key file corresponding to the\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003efield. This is compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers.\n\n**Note**: The connection should be chosen according to conjunction of producer and dataset:\n\n| producer         | datasets                                                                                                                                                              |\n|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ABP              | ABP                                                                                                                                                                   |\n| NETSEC           | CONNECTION, NETFLOW, IP, ATTACK, NOTIFICATIONS                                                                                                                        |\n| ATO              | ATO                                                                                                                                                                   |\n| AUDIT            | AUDIT_TRAIL                                                                                                                                                           |\n| CSP              | GOOGLE_ANALYTICS_IDS, SIGNIFICANT_DOMAIN_DISCOVERY, SIGNIFICANT_SCRIPT_DISCOVERY, SIGNIFICANT_DATA_TRANSFER_DISCOVERY,DOMAIN_DISCOVERY_ENFORCE_MODE,CSP_HEADER_HEALTH |\n| CLOUD_WAF        | WAF_RAW_LOGS, CLOUD_WAF_ACCESS                                                                                                                                        |\n| ATTACK_ANALYTICS | WAF_ANALYTICS_LOGS                                                                                                                                                    |\n"},"siemLogConfigurationId":{"type":"string","description":"Unique identifier of the log configuration.\n"}},"type":"object","required":["accountId","configurationName","connectionId","datasets","enabled","producer","siemLogConfigurationId"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n* `configurationName` - (Required) Unique configuration name.\n"},"compressLogs":{"type":"boolean","description":"Boolean - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers. Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e/ \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"configurationName":{"type":"string","description":"Name of the configuration."},"connectionId":{"type":"string","description":"The id of the connection for this log configuration."},"datasets":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the type of logs. Values:\u003cbr /\u003e `ABP` for provider type `ABP`\u003cbr /\u003e `CONNECTION`, `NETFLOW`, `IP`, `ATTACK`,`NOTIFICATIONS` for provider type `NETSEC`\u003cbr /\u003e `ATO` for provider type `ATO`\u003cbr /\u003e `AUDIT_TRAIL` for provider type `AUDIT` \u003cbr /\u003e `GOOGLE_ANALYTICS_IDS`, `SIGNIFICANT_DOMAIN_DISCOVERY`, `SIGNIFICANT_SCRIPT_DISCOVERY`, `SIGNIFICANT_DATA_TRANSFER_DISCOVERY`, `DOMAIN_DISCOVERY_ENFORCE_MODE`, `CSP_HEADER_HEALTH` for provider type `CSP`\u003cbr /\u003e `WAF_RAW_LOGS`, `CLOUD_WAF_ACCESS` for provider type `CLOUD_WAF` \u003cbr /\u003e `WAF_ANALYTICS_LOGS` for provider type `ATTACK_ANALYTICS`\n"},"enabled":{"type":"boolean","description":"Boolean. Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e/ \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n* `connectionId` - (Required) Connection id associated with this log configuration\n"},"format":{"type":"string","description":"Log format - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers. Values: `CEF`, `W3C` , `LEEF`\n"},"logsLevel":{"type":"string","description":"Security log level - compatible only with CLOUD_WAF producer. Values: `NONE`, `FULL`, `SECURITY`\n"},"producer":{"type":"string","description":"Provider type. Values: `ABP`, `NETSEC`, `ATO`, `AUDIT`, `CLOUD_WAF`, `ATTACK_ANALYTICS`\n"},"publicKey":{"type":"string","description":"Public key for encryption - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers.\n"},"publicKeyFileName":{"type":"string","description":"The name of the public key file corresponding to the\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003efield. This is compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers.\n\n**Note**: The connection should be chosen according to conjunction of producer and dataset:\n\n| producer         | datasets                                                                                                                                                              |\n|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ABP              | ABP                                                                                                                                                                   |\n| NETSEC           | CONNECTION, NETFLOW, IP, ATTACK, NOTIFICATIONS                                                                                                                        |\n| ATO              | ATO                                                                                                                                                                   |\n| AUDIT            | AUDIT_TRAIL                                                                                                                                                           |\n| CSP              | GOOGLE_ANALYTICS_IDS, SIGNIFICANT_DOMAIN_DISCOVERY, SIGNIFICANT_SCRIPT_DISCOVERY, SIGNIFICANT_DATA_TRANSFER_DISCOVERY,DOMAIN_DISCOVERY_ENFORCE_MODE,CSP_HEADER_HEALTH |\n| CLOUD_WAF        | WAF_RAW_LOGS, CLOUD_WAF_ACCESS                                                                                                                                        |\n| ATTACK_ANALYTICS | WAF_ANALYTICS_LOGS                                                                                                                                                    |\n"},"siemLogConfigurationId":{"type":"string","description":"Unique identifier of the log configuration.\n"}},"requiredInputs":["configurationName","connectionId","datasets","enabled","producer"],"stateInputs":{"description":"Input properties used for looking up and filtering SiemLogConfiguration resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n* `configurationName` - (Required) Unique configuration name.\n"},"compressLogs":{"type":"boolean","description":"Boolean - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers. Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e/ \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"configurationName":{"type":"string","description":"Name of the configuration."},"connectionId":{"type":"string","description":"The id of the connection for this log configuration."},"datasets":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the type of logs. Values:\u003cbr /\u003e `ABP` for provider type `ABP`\u003cbr /\u003e `CONNECTION`, `NETFLOW`, `IP`, `ATTACK`,`NOTIFICATIONS` for provider type `NETSEC`\u003cbr /\u003e `ATO` for provider type `ATO`\u003cbr /\u003e `AUDIT_TRAIL` for provider type `AUDIT` \u003cbr /\u003e `GOOGLE_ANALYTICS_IDS`, `SIGNIFICANT_DOMAIN_DISCOVERY`, `SIGNIFICANT_SCRIPT_DISCOVERY`, `SIGNIFICANT_DATA_TRANSFER_DISCOVERY`, `DOMAIN_DISCOVERY_ENFORCE_MODE`, `CSP_HEADER_HEALTH` for provider type `CSP`\u003cbr /\u003e `WAF_RAW_LOGS`, `CLOUD_WAF_ACCESS` for provider type `CLOUD_WAF` \u003cbr /\u003e `WAF_ANALYTICS_LOGS` for provider type `ATTACK_ANALYTICS`\n"},"enabled":{"type":"boolean","description":"Boolean. Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e/ \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n* `connectionId` - (Required) Connection id associated with this log configuration\n"},"format":{"type":"string","description":"Log format - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers. Values: `CEF`, `W3C` , `LEEF`\n"},"logsLevel":{"type":"string","description":"Security log level - compatible only with CLOUD_WAF producer. Values: `NONE`, `FULL`, `SECURITY`\n"},"producer":{"type":"string","description":"Provider type. Values: `ABP`, `NETSEC`, `ATO`, `AUDIT`, `CLOUD_WAF`, `ATTACK_ANALYTICS`\n"},"publicKey":{"type":"string","description":"Public key for encryption - compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers.\n"},"publicKeyFileName":{"type":"string","description":"The name of the public key file corresponding to the\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003efield. This is compatible only with CLOUD_WAF and ATTACK_ANALYTICS producers.\n\n**Note**: The connection should be chosen according to conjunction of producer and dataset:\n\n| producer         | datasets                                                                                                                                                              |\n|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ABP              | ABP                                                                                                                                                                   |\n| NETSEC           | CONNECTION, NETFLOW, IP, ATTACK, NOTIFICATIONS                                                                                                                        |\n| ATO              | ATO                                                                                                                                                                   |\n| AUDIT            | AUDIT_TRAIL                                                                                                                                                           |\n| CSP              | GOOGLE_ANALYTICS_IDS, SIGNIFICANT_DOMAIN_DISCOVERY, SIGNIFICANT_SCRIPT_DISCOVERY, SIGNIFICANT_DATA_TRANSFER_DISCOVERY,DOMAIN_DISCOVERY_ENFORCE_MODE,CSP_HEADER_HEALTH |\n| CLOUD_WAF        | WAF_RAW_LOGS, CLOUD_WAF_ACCESS                                                                                                                                        |\n| ATTACK_ANALYTICS | WAF_ANALYTICS_LOGS                                                                                                                                                    |\n"},"siemLogConfigurationId":{"type":"string","description":"Unique identifier of the log configuration.\n"}},"type":"object"}},"incapsula:index/siemSftpConnection:SiemSftpConnection":{"description":"Provides a customer SFTP connection configuration resource.\n\nThe follow-on action is to use the \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-dotnet=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-go=\"`SiemLogConfiguration`\" pulumi-lang-python=\"`SiemLogConfiguration`\" pulumi-lang-yaml=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-java=\"`incapsula.SiemLogConfiguration`\"\u003e`incapsula.SiemLogConfiguration`\u003c/span\u003e resource to configure the connection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiemSftpConnection = new incapsula.SiemSftpConnection(\"example_siem_sftp_connection\", {\n    accountId: \"1234567\",\n    connectionName: \"ABP siem-logs SFTP connection\",\n    host: \"ec2.eu-west-2.compute.amazonaws.com\",\n    path: \"/example/accounts/1234567\",\n    username: \"example_sftp_user\",\n    password: \"Sensitive data placeholder\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_siem_sftp_connection = incapsula.SiemSftpConnection(\"example_siem_sftp_connection\",\n    account_id=\"1234567\",\n    connection_name=\"ABP siem-logs SFTP connection\",\n    host=\"ec2.eu-west-2.compute.amazonaws.com\",\n    path=\"/example/accounts/1234567\",\n    username=\"example_sftp_user\",\n    password=\"Sensitive data placeholder\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiemSftpConnection = new Incapsula.SiemSftpConnection(\"example_siem_sftp_connection\", new()\n    {\n        AccountId = \"1234567\",\n        ConnectionName = \"ABP siem-logs SFTP connection\",\n        Host = \"ec2.eu-west-2.compute.amazonaws.com\",\n        Path = \"/example/accounts/1234567\",\n        Username = \"example_sftp_user\",\n        Password = \"Sensitive data placeholder\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiemSftpConnection(ctx, \"example_siem_sftp_connection\", \u0026incapsula.SiemSftpConnectionArgs{\n\t\t\tAccountId:      pulumi.String(\"1234567\"),\n\t\t\tConnectionName: pulumi.String(\"ABP siem-logs SFTP connection\"),\n\t\t\tHost:           pulumi.String(\"ec2.eu-west-2.compute.amazonaws.com\"),\n\t\t\tPath:           pulumi.String(\"/example/accounts/1234567\"),\n\t\t\tUsername:       pulumi.String(\"example_sftp_user\"),\n\t\t\tPassword:       pulumi.String(\"Sensitive data placeholder\"),\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.incapsula.SiemSftpConnection;\nimport com.pulumi.incapsula.SiemSftpConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiemSftpConnection = new SiemSftpConnection(\"exampleSiemSftpConnection\", SiemSftpConnectionArgs.builder()\n            .accountId(\"1234567\")\n            .connectionName(\"ABP siem-logs SFTP connection\")\n            .host(\"ec2.eu-west-2.compute.amazonaws.com\")\n            .path(\"/example/accounts/1234567\")\n            .username(\"example_sftp_user\")\n            .password(\"Sensitive data placeholder\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiemSftpConnection:\n    type: incapsula:SiemSftpConnection\n    name: example_siem_sftp_connection\n    properties:\n      accountId: '1234567'\n      connectionName: ABP siem-logs SFTP connection\n      host: ec2.eu-west-2.compute.amazonaws.com\n      path: /example/accounts/1234567\n      username: example_sftp_user\n      password: Sensitive data placeholder\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\u003e **NOTE:**\nFor security reasons, when a resource is exported, the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e field will be replaced with the value `Sensitive data placeholder`.\nThe actual values are still used in the communication with the SFTP server.\nNote - This resource cannot be updated unless you specify a real value for the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e field instead of `Sensitive data placeholder`.\nTo clarify, none of the fields in exported resources can be updated unless a real \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e value is set.\n\nExample of exported resource:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiemSftpConnection = new incapsula.SiemSftpConnection(\"example_siem_sftp_connection\", {\n    accountId: \"1234567\",\n    connectionName: \"APB siem-logs SFTP connection\",\n    host: \"ec2.eu-west-2.compute.amazonaws.com\",\n    path: \"/example/accounts/1234567\",\n    username: \"example_sftp_user\",\n    password: \"Sensitive data placeholder\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_siem_sftp_connection = incapsula.SiemSftpConnection(\"example_siem_sftp_connection\",\n    account_id=\"1234567\",\n    connection_name=\"APB siem-logs SFTP connection\",\n    host=\"ec2.eu-west-2.compute.amazonaws.com\",\n    path=\"/example/accounts/1234567\",\n    username=\"example_sftp_user\",\n    password=\"Sensitive data placeholder\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiemSftpConnection = new Incapsula.SiemSftpConnection(\"example_siem_sftp_connection\", new()\n    {\n        AccountId = \"1234567\",\n        ConnectionName = \"APB siem-logs SFTP connection\",\n        Host = \"ec2.eu-west-2.compute.amazonaws.com\",\n        Path = \"/example/accounts/1234567\",\n        Username = \"example_sftp_user\",\n        Password = \"Sensitive data placeholder\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiemSftpConnection(ctx, \"example_siem_sftp_connection\", \u0026incapsula.SiemSftpConnectionArgs{\n\t\t\tAccountId:      pulumi.String(\"1234567\"),\n\t\t\tConnectionName: pulumi.String(\"APB siem-logs SFTP connection\"),\n\t\t\tHost:           pulumi.String(\"ec2.eu-west-2.compute.amazonaws.com\"),\n\t\t\tPath:           pulumi.String(\"/example/accounts/1234567\"),\n\t\t\tUsername:       pulumi.String(\"example_sftp_user\"),\n\t\t\tPassword:       pulumi.String(\"Sensitive data placeholder\"),\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.incapsula.SiemSftpConnection;\nimport com.pulumi.incapsula.SiemSftpConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiemSftpConnection = new SiemSftpConnection(\"exampleSiemSftpConnection\", SiemSftpConnectionArgs.builder()\n            .accountId(\"1234567\")\n            .connectionName(\"APB siem-logs SFTP connection\")\n            .host(\"ec2.eu-west-2.compute.amazonaws.com\")\n            .path(\"/example/accounts/1234567\")\n            .username(\"example_sftp_user\")\n            .password(\"Sensitive data placeholder\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiemSftpConnection:\n    type: incapsula:SiemSftpConnection\n    name: example_siem_sftp_connection\n    properties:\n      accountId: '1234567'\n      connectionName: APB siem-logs SFTP connection\n      host: ec2.eu-west-2.compute.amazonaws.com\n      path: /example/accounts/1234567\n      username: example_sftp_user\n      password: Sensitive data placeholder\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustomer connection can be imported using `accountId`/`connectionId`:\n\n```sh\n$ pulumi import incapsula:index/siemSftpConnection:SiemSftpConnection example_siem_sftp_connection accountId/connectionId\n```\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"host":{"type":"string","description":"SFTP server host.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"password":{"type":"string","description":"SFTP access password.\n","secret":true},"path":{"type":"string","description":"SFTP server path.\n"},"siemSftpConnectionId":{"type":"string","description":"Unique identifier of the customer’s SFTP connection.\n"},"username":{"type":"string","description":"SFTP access username.\n"}},"type":"object","required":["accountId","connectionName","host","inputHash","path","siemSftpConnectionId","username"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"host":{"type":"string","description":"SFTP server host.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"password":{"type":"string","description":"SFTP access password.\n","secret":true},"path":{"type":"string","description":"SFTP server path.\n"},"siemSftpConnectionId":{"type":"string","description":"Unique identifier of the customer’s SFTP connection.\n"},"username":{"type":"string","description":"SFTP access username.\n"}},"requiredInputs":["connectionName","host","path","username"],"stateInputs":{"description":"Input properties used for looking up and filtering SiemSftpConnection resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"host":{"type":"string","description":"SFTP server host.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"password":{"type":"string","description":"SFTP access password.\n","secret":true},"path":{"type":"string","description":"SFTP server path.\n"},"siemSftpConnectionId":{"type":"string","description":"Unique identifier of the customer’s SFTP connection.\n"},"username":{"type":"string","description":"SFTP access username.\n"}},"type":"object"}},"incapsula:index/siemSplunkConnection:SiemSplunkConnection":{"description":"Provides a customer Splunk connection configuration resource.\n\nThe follow-on action is to use the \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-dotnet=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-go=\"`SiemLogConfiguration`\" pulumi-lang-python=\"`SiemLogConfiguration`\" pulumi-lang-yaml=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-java=\"`incapsula.SiemLogConfiguration`\"\u003e`incapsula.SiemLogConfiguration`\u003c/span\u003e resource to configure the connection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiemSplunkConnection = new incapsula.SiemSplunkConnection(\"example_siem_splunk_connection\", {\n    accountId: \"1234567\",\n    connectionName: \"APB siem-logs Splunk connection\",\n    host: \"my.splunk.com\",\n    port: 8080,\n    token: \"Sensitive data placeholder\",\n    disableCertVerification: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_siem_splunk_connection = incapsula.SiemSplunkConnection(\"example_siem_splunk_connection\",\n    account_id=\"1234567\",\n    connection_name=\"APB siem-logs Splunk connection\",\n    host=\"my.splunk.com\",\n    port=8080,\n    token=\"Sensitive data placeholder\",\n    disable_cert_verification=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiemSplunkConnection = new Incapsula.SiemSplunkConnection(\"example_siem_splunk_connection\", new()\n    {\n        AccountId = \"1234567\",\n        ConnectionName = \"APB siem-logs Splunk connection\",\n        Host = \"my.splunk.com\",\n        Port = 8080,\n        Token = \"Sensitive data placeholder\",\n        DisableCertVerification = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiemSplunkConnection(ctx, \"example_siem_splunk_connection\", \u0026incapsula.SiemSplunkConnectionArgs{\n\t\t\tAccountId:               pulumi.String(\"1234567\"),\n\t\t\tConnectionName:          pulumi.String(\"APB siem-logs Splunk connection\"),\n\t\t\tHost:                    pulumi.String(\"my.splunk.com\"),\n\t\t\tPort:                    pulumi.Float64(8080),\n\t\t\tToken:                   pulumi.String(\"Sensitive data placeholder\"),\n\t\t\tDisableCertVerification: pulumi.Bool(false),\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.incapsula.SiemSplunkConnection;\nimport com.pulumi.incapsula.SiemSplunkConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiemSplunkConnection = new SiemSplunkConnection(\"exampleSiemSplunkConnection\", SiemSplunkConnectionArgs.builder()\n            .accountId(\"1234567\")\n            .connectionName(\"APB siem-logs Splunk connection\")\n            .host(\"my.splunk.com\")\n            .port(8080.0)\n            .token(\"Sensitive data placeholder\")\n            .disableCertVerification(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiemSplunkConnection:\n    type: incapsula:SiemSplunkConnection\n    name: example_siem_splunk_connection\n    properties:\n      accountId: '1234567'\n      connectionName: APB siem-logs Splunk connection\n      host: my.splunk.com\n      port: 8080\n      token: Sensitive data placeholder\n      disableCertVerification: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\u003e **NOTE:**\nFor security reasons, when a resource is exported, the \u003cspan pulumi-lang-nodejs=\"`token`\" pulumi-lang-dotnet=\"`Token`\" pulumi-lang-go=\"`token`\" pulumi-lang-python=\"`token`\" pulumi-lang-yaml=\"`token`\" pulumi-lang-java=\"`token`\"\u003e`token`\u003c/span\u003e field will be replaced with the value `Sensitive data placeholder`.\nThe actual values are still used in the communication with the Splunk server.\nNote - This resource cannot be updated unless you specify a real value for the \u003cspan pulumi-lang-nodejs=\"`token`\" pulumi-lang-dotnet=\"`Token`\" pulumi-lang-go=\"`token`\" pulumi-lang-python=\"`token`\" pulumi-lang-yaml=\"`token`\" pulumi-lang-java=\"`token`\"\u003e`token`\u003c/span\u003e field instead of `Sensitive data placeholder`.\nTo clarify, none of the fields in exported resources can be updated unless a real \u003cspan pulumi-lang-nodejs=\"`token`\" pulumi-lang-dotnet=\"`Token`\" pulumi-lang-go=\"`token`\" pulumi-lang-python=\"`token`\" pulumi-lang-yaml=\"`token`\" pulumi-lang-java=\"`token`\"\u003e`token`\u003c/span\u003e value is set.\n\nExample of exported resource:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiemSplunkConnection = new incapsula.SiemSplunkConnection(\"example_siem_splunk_connection\", {\n    accountId: \"1234567\",\n    connectionName: \"APB siem-logs Splunk connection\",\n    host: \"my.splunk.com\",\n    port: 8080,\n    token: \"Sensitive data placeholder\",\n    disableCertVerification: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_siem_splunk_connection = incapsula.SiemSplunkConnection(\"example_siem_splunk_connection\",\n    account_id=\"1234567\",\n    connection_name=\"APB siem-logs Splunk connection\",\n    host=\"my.splunk.com\",\n    port=8080,\n    token=\"Sensitive data placeholder\",\n    disable_cert_verification=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiemSplunkConnection = new Incapsula.SiemSplunkConnection(\"example_siem_splunk_connection\", new()\n    {\n        AccountId = \"1234567\",\n        ConnectionName = \"APB siem-logs Splunk connection\",\n        Host = \"my.splunk.com\",\n        Port = 8080,\n        Token = \"Sensitive data placeholder\",\n        DisableCertVerification = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiemSplunkConnection(ctx, \"example_siem_splunk_connection\", \u0026incapsula.SiemSplunkConnectionArgs{\n\t\t\tAccountId:               pulumi.String(\"1234567\"),\n\t\t\tConnectionName:          pulumi.String(\"APB siem-logs Splunk connection\"),\n\t\t\tHost:                    pulumi.String(\"my.splunk.com\"),\n\t\t\tPort:                    pulumi.Float64(8080),\n\t\t\tToken:                   pulumi.String(\"Sensitive data placeholder\"),\n\t\t\tDisableCertVerification: pulumi.Bool(false),\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.incapsula.SiemSplunkConnection;\nimport com.pulumi.incapsula.SiemSplunkConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiemSplunkConnection = new SiemSplunkConnection(\"exampleSiemSplunkConnection\", SiemSplunkConnectionArgs.builder()\n            .accountId(\"1234567\")\n            .connectionName(\"APB siem-logs Splunk connection\")\n            .host(\"my.splunk.com\")\n            .port(8080.0)\n            .token(\"Sensitive data placeholder\")\n            .disableCertVerification(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiemSplunkConnection:\n    type: incapsula:SiemSplunkConnection\n    name: example_siem_splunk_connection\n    properties:\n      accountId: '1234567'\n      connectionName: APB siem-logs Splunk connection\n      host: my.splunk.com\n      port: 8080\n      token: Sensitive data placeholder\n      disableCertVerification: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustomer connection  can be imported using `accountId`/`connectionId`:\n\n```sh\n$ pulumi import incapsula:index/siemSplunkConnection:SiemSplunkConnection example_siem_splunk_connection accountId/connectionId\n```\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"disableCertVerification":{"type":"boolean","description":"Flag to disable/enable server certificate. Used when a self-signed certificate applied on the server side.\n"},"host":{"type":"string","description":"Splunk server host.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"port":{"type":"number","description":"Splunk server port.\n"},"siemSplunkConnectionId":{"type":"string","description":"Unique identifier of the customer’s Splunk connection.\n"},"token":{"type":"string","description":"Splunk access token - Version 4 UUID format.\n","secret":true}},"type":"object","required":["accountId","connectionName","host","inputHash","port","siemSplunkConnectionId"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"disableCertVerification":{"type":"boolean","description":"Flag to disable/enable server certificate. Used when a self-signed certificate applied on the server side.\n"},"host":{"type":"string","description":"Splunk server host.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"port":{"type":"number","description":"Splunk server port.\n"},"siemSplunkConnectionId":{"type":"string","description":"Unique identifier of the customer’s Splunk connection.\n"},"token":{"type":"string","description":"Splunk access token - Version 4 UUID format.\n","secret":true}},"requiredInputs":["connectionName","host","port"],"stateInputs":{"description":"Input properties used for looking up and filtering SiemSplunkConnection resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"connectionName":{"type":"string","description":"Unique connection name.\n"},"disableCertVerification":{"type":"boolean","description":"Flag to disable/enable server certificate. Used when a self-signed certificate applied on the server side.\n"},"host":{"type":"string","description":"Splunk server host.\n"},"inputHash":{"type":"string","description":"inputHash","secret":true},"port":{"type":"number","description":"Splunk server port.\n"},"siemSplunkConnectionId":{"type":"string","description":"Unique identifier of the customer’s Splunk connection.\n"},"token":{"type":"string","description":"Splunk access token - Version 4 UUID format.\n","secret":true}},"type":"object"}},"incapsula:index/simplifiedRedirectRulesConfiguration:SimplifiedRedirectRulesConfiguration":{"description":"Provides simplified redirect rules. The functionality is similar to REDIRECT rules in \u003cspan pulumi-lang-nodejs=\"`incapsula.DeliveryRulesConfiguration`\" pulumi-lang-dotnet=\"`incapsula.DeliveryRulesConfiguration`\" pulumi-lang-go=\"`DeliveryRulesConfiguration`\" pulumi-lang-python=\"`DeliveryRulesConfiguration`\" pulumi-lang-yaml=\"`incapsula.DeliveryRulesConfiguration`\" pulumi-lang-java=\"`incapsula.DeliveryRulesConfiguration`\"\u003e`incapsula.DeliveryRulesConfiguration`\u003c/span\u003e but with the following limitations:\n* They cannot specify a \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e (logical predicate tested before executing the rule)\n* There cannot be 2 rules with the same origin (\u003cspan pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\"\u003e`from`\u003c/span\u003e) argument\n* Wildcards cannot be used in the origin (\u003cspan pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\"\u003e`from`\u003c/span\u003e) argument\n* Consequently, they cannot be assigned a priority value, since there can be at most one rule for any origin URL\n\nDue to their simplicity, the limits of simplified redirect rules per sites is much higher than normal rules (currently 20,000, compared to only 500 for other delivery rules).\n\n**Notes:**\n* Simplified redirect rules should be enabled in the account settings before being able to use them. \n* This resource replaces all simplified rules of the site, so existing rules that are not specified in the configuration will be deleted. In particular, this resource cannot cannot be used with \u003cspan pulumi-lang-nodejs=\"`incapsula.IncapRule`\" pulumi-lang-dotnet=\"`incapsula.IncapRule`\" pulumi-lang-go=\"`IncapRule`\" pulumi-lang-python=\"`IncapRule`\" pulumi-lang-yaml=\"`incapsula.IncapRule`\" pulumi-lang-java=\"`incapsula.IncapRule`\"\u003e`incapsula.IncapRule`\u003c/span\u003e to configure simplified redirect rules for the same site.\n\n## Import\n\nSimplified redirect rules configuration can be imported using the site_id, e.g.:\n\n```sh\n$ pulumi import incapsula:index/simplifiedRedirectRulesConfiguration:SimplifiedRedirectRulesConfiguration demo site_id\n```\n","properties":{"rules":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSimplifiedRedirectRulesConfigurationRule:SimplifiedRedirectRulesConfigurationRule"},"description":"List of simplified redirect rules"},"simplifiedRedirectRulesConfigurationId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"type":"object","required":["simplifiedRedirectRulesConfigurationId","siteId"],"inputProperties":{"rules":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSimplifiedRedirectRulesConfigurationRule:SimplifiedRedirectRulesConfigurationRule"},"description":"List of simplified redirect rules"},"simplifiedRedirectRulesConfigurationId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SimplifiedRedirectRulesConfiguration resources.\n","properties":{"rules":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSimplifiedRedirectRulesConfigurationRule:SimplifiedRedirectRulesConfigurationRule"},"description":"List of simplified redirect rules"},"simplifiedRedirectRulesConfigurationId":{"type":"string"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on."}},"type":"object"}},"incapsula:index/site:Site":{"description":"Provides a Incapsula Site resource. \nSites are the core resource that is required by all other resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_site = new incapsula.Site(\"example-site\", {\n    domain: \"examplesite.com\",\n    accountId: 123,\n    refId: \"123\",\n    sendSiteSetupEmails: \"false\",\n    siteIp: \"2.2.2.2\",\n    forceSsl: \"false\",\n    logsAccountId: \"456\",\n    dataStorageRegion: \"US\",\n    hashingEnabled: true,\n    hashSalt: \"foobar\",\n    logLevel: \"full\",\n    perfClientComplyNoCache: true,\n    perfClientEnableClientSideCaching: true,\n    perfClientSendAgeHeader: true,\n    perfKeyComplyVary: true,\n    perfKeyUniteNakedFullCache: true,\n    perfModeHttps: \"include_all_resources\",\n    perfModeLevel: \"standard\",\n    perfModeTime: 1000,\n    perfResponseCache300x: true,\n    perfResponseCache404Enabled: true,\n    perfResponseCache404Time: 60,\n    perfResponseCacheEmptyResponses: true,\n    perfResponseCacheHttp10Responses: true,\n    perfResponseCacheResponseHeaderMode: \"custom\",\n    perfResponseCacheResponseHeaders: [\n        \"Access-Control-Allow-Origin\",\n        \"Foo-Bar-Header\",\n    ],\n    perfResponseCacheShield: true,\n    perfResponseStaleContentMode: \"custom\",\n    perfResponseStaleContentTime: 1000,\n    perfResponseTagResponseHeader: \"Example-Tag-Value-Header\",\n    perfTtlPreferLastModified: true,\n    perfTtlUseShortestCaching: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_site = incapsula.Site(\"example-site\",\n    domain=\"examplesite.com\",\n    account_id=123,\n    ref_id=\"123\",\n    send_site_setup_emails=\"false\",\n    site_ip=\"2.2.2.2\",\n    force_ssl=\"false\",\n    logs_account_id=\"456\",\n    data_storage_region=\"US\",\n    hashing_enabled=True,\n    hash_salt=\"foobar\",\n    log_level=\"full\",\n    perf_client_comply_no_cache=True,\n    perf_client_enable_client_side_caching=True,\n    perf_client_send_age_header=True,\n    perf_key_comply_vary=True,\n    perf_key_unite_naked_full_cache=True,\n    perf_mode_https=\"include_all_resources\",\n    perf_mode_level=\"standard\",\n    perf_mode_time=1000,\n    perf_response_cache300x=True,\n    perf_response_cache404_enabled=True,\n    perf_response_cache404_time=60,\n    perf_response_cache_empty_responses=True,\n    perf_response_cache_http10_responses=True,\n    perf_response_cache_response_header_mode=\"custom\",\n    perf_response_cache_response_headers=[\n        \"Access-Control-Allow-Origin\",\n        \"Foo-Bar-Header\",\n    ],\n    perf_response_cache_shield=True,\n    perf_response_stale_content_mode=\"custom\",\n    perf_response_stale_content_time=1000,\n    perf_response_tag_response_header=\"Example-Tag-Value-Header\",\n    perf_ttl_prefer_last_modified=True,\n    perf_ttl_use_shortest_caching=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_site = new Incapsula.Site(\"example-site\", new()\n    {\n        Domain = \"examplesite.com\",\n        AccountId = 123,\n        RefId = \"123\",\n        SendSiteSetupEmails = \"false\",\n        SiteIp = \"2.2.2.2\",\n        ForceSsl = \"false\",\n        LogsAccountId = \"456\",\n        DataStorageRegion = \"US\",\n        HashingEnabled = true,\n        HashSalt = \"foobar\",\n        LogLevel = \"full\",\n        PerfClientComplyNoCache = true,\n        PerfClientEnableClientSideCaching = true,\n        PerfClientSendAgeHeader = true,\n        PerfKeyComplyVary = true,\n        PerfKeyUniteNakedFullCache = true,\n        PerfModeHttps = \"include_all_resources\",\n        PerfModeLevel = \"standard\",\n        PerfModeTime = 1000,\n        PerfResponseCache300x = true,\n        PerfResponseCache404Enabled = true,\n        PerfResponseCache404Time = 60,\n        PerfResponseCacheEmptyResponses = true,\n        PerfResponseCacheHttp10Responses = true,\n        PerfResponseCacheResponseHeaderMode = \"custom\",\n        PerfResponseCacheResponseHeaders = new[]\n        {\n            \"Access-Control-Allow-Origin\",\n            \"Foo-Bar-Header\",\n        },\n        PerfResponseCacheShield = true,\n        PerfResponseStaleContentMode = \"custom\",\n        PerfResponseStaleContentTime = 1000,\n        PerfResponseTagResponseHeader = \"Example-Tag-Value-Header\",\n        PerfTtlPreferLastModified = true,\n        PerfTtlUseShortestCaching = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSite(ctx, \"example-site\", \u0026incapsula.SiteArgs{\n\t\t\tDomain:                              pulumi.String(\"examplesite.com\"),\n\t\t\tAccountId:                           pulumi.Float64(123),\n\t\t\tRefId:                               pulumi.String(\"123\"),\n\t\t\tSendSiteSetupEmails:                 pulumi.String(\"false\"),\n\t\t\tSiteIp:                              pulumi.String(\"2.2.2.2\"),\n\t\t\tForceSsl:                            pulumi.String(\"false\"),\n\t\t\tLogsAccountId:                       pulumi.String(\"456\"),\n\t\t\tDataStorageRegion:                   pulumi.String(\"US\"),\n\t\t\tHashingEnabled:                      pulumi.Bool(true),\n\t\t\tHashSalt:                            pulumi.String(\"foobar\"),\n\t\t\tLogLevel:                            pulumi.String(\"full\"),\n\t\t\tPerfClientComplyNoCache:             pulumi.Bool(true),\n\t\t\tPerfClientEnableClientSideCaching:   pulumi.Bool(true),\n\t\t\tPerfClientSendAgeHeader:             pulumi.Bool(true),\n\t\t\tPerfKeyComplyVary:                   pulumi.Bool(true),\n\t\t\tPerfKeyUniteNakedFullCache:          pulumi.Bool(true),\n\t\t\tPerfModeHttps:                       pulumi.String(\"include_all_resources\"),\n\t\t\tPerfModeLevel:                       pulumi.String(\"standard\"),\n\t\t\tPerfModeTime:                        pulumi.Float64(1000),\n\t\t\tPerfResponseCache300x:               pulumi.Bool(true),\n\t\t\tPerfResponseCache404Enabled:         pulumi.Bool(true),\n\t\t\tPerfResponseCache404Time:            pulumi.Float64(60),\n\t\t\tPerfResponseCacheEmptyResponses:     pulumi.Bool(true),\n\t\t\tPerfResponseCacheHttp10Responses:    pulumi.Bool(true),\n\t\t\tPerfResponseCacheResponseHeaderMode: pulumi.String(\"custom\"),\n\t\t\tPerfResponseCacheResponseHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Access-Control-Allow-Origin\"),\n\t\t\t\tpulumi.String(\"Foo-Bar-Header\"),\n\t\t\t},\n\t\t\tPerfResponseCacheShield:       pulumi.Bool(true),\n\t\t\tPerfResponseStaleContentMode:  pulumi.String(\"custom\"),\n\t\t\tPerfResponseStaleContentTime:  pulumi.Float64(1000),\n\t\t\tPerfResponseTagResponseHeader: pulumi.String(\"Example-Tag-Value-Header\"),\n\t\t\tPerfTtlPreferLastModified:     pulumi.Bool(true),\n\t\t\tPerfTtlUseShortestCaching:     pulumi.Bool(true),\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.incapsula.Site;\nimport com.pulumi.incapsula.SiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_site = new Site(\"example-site\", SiteArgs.builder()\n            .domain(\"examplesite.com\")\n            .accountId(123.0)\n            .refId(\"123\")\n            .sendSiteSetupEmails(\"false\")\n            .siteIp(\"2.2.2.2\")\n            .forceSsl(\"false\")\n            .logsAccountId(\"456\")\n            .dataStorageRegion(\"US\")\n            .hashingEnabled(true)\n            .hashSalt(\"foobar\")\n            .logLevel(\"full\")\n            .perfClientComplyNoCache(true)\n            .perfClientEnableClientSideCaching(true)\n            .perfClientSendAgeHeader(true)\n            .perfKeyComplyVary(true)\n            .perfKeyUniteNakedFullCache(true)\n            .perfModeHttps(\"include_all_resources\")\n            .perfModeLevel(\"standard\")\n            .perfModeTime(1000.0)\n            .perfResponseCache300x(true)\n            .perfResponseCache404Enabled(true)\n            .perfResponseCache404Time(60.0)\n            .perfResponseCacheEmptyResponses(true)\n            .perfResponseCacheHttp10Responses(true)\n            .perfResponseCacheResponseHeaderMode(\"custom\")\n            .perfResponseCacheResponseHeaders(            \n                \"Access-Control-Allow-Origin\",\n                \"Foo-Bar-Header\")\n            .perfResponseCacheShield(true)\n            .perfResponseStaleContentMode(\"custom\")\n            .perfResponseStaleContentTime(1000.0)\n            .perfResponseTagResponseHeader(\"Example-Tag-Value-Header\")\n            .perfTtlPreferLastModified(true)\n            .perfTtlUseShortestCaching(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-site:\n    type: incapsula:Site\n    properties:\n      domain: examplesite.com\n      accountId: 123\n      refId: '123'\n      sendSiteSetupEmails: 'false'\n      siteIp: 2.2.2.2\n      forceSsl: 'false'\n      logsAccountId: '456'\n      dataStorageRegion: US\n      hashingEnabled: true\n      hashSalt: foobar\n      logLevel: full\n      perfClientComplyNoCache: true\n      perfClientEnableClientSideCaching: true\n      perfClientSendAgeHeader: true\n      perfKeyComplyVary: true\n      perfKeyUniteNakedFullCache: true\n      perfModeHttps: include_all_resources\n      perfModeLevel: standard\n      perfModeTime: 1000\n      perfResponseCache300x: true\n      perfResponseCache404Enabled: true\n      perfResponseCache404Time: 60\n      perfResponseCacheEmptyResponses: true\n      perfResponseCacheHttp10Responses: true\n      perfResponseCacheResponseHeaderMode: custom\n      perfResponseCacheResponseHeaders:\n        - Access-Control-Allow-Origin\n        - Foo-Bar-Header\n      perfResponseCacheShield: true\n      perfResponseStaleContentMode: custom\n      perfResponseStaleContentTime: 1000\n      perfResponseTagResponseHeader: Example-Tag-Value-Header\n      perfTtlPreferLastModified: true\n      perfTtlUseShortestCaching: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSite can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/site:Site demo 1234\n```\n","properties":{"accelerationLevel":{"type":"string","description":"Sets the acceleration level of the site. Options are \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`aggressive`\" pulumi-lang-dotnet=\"`Aggressive`\" pulumi-lang-go=\"`aggressive`\" pulumi-lang-python=\"`aggressive`\" pulumi-lang-yaml=\"`aggressive`\" pulumi-lang-java=\"`aggressive`\"\u003e`aggressive`\u003c/span\u003e.\n"},"accountId":{"type":"number","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"active":{"type":"string","description":"Whether the site is active or bypassed by the Imperva network. Options are \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`bypass`\" pulumi-lang-dotnet=\"`Bypass`\" pulumi-lang-go=\"`bypass`\" pulumi-lang-python=\"`bypass`\" pulumi-lang-yaml=\"`bypass`\" pulumi-lang-java=\"`bypass`\"\u003e`bypass`\u003c/span\u003e.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`restrictedCnameReuse`\" pulumi-lang-dotnet=\"`RestrictedCnameReuse`\" pulumi-lang-go=\"`restrictedCnameReuse`\" pulumi-lang-python=\"`restricted_cname_reuse`\" pulumi-lang-yaml=\"`restrictedCnameReuse`\" pulumi-lang-java=\"`restrictedCnameReuse`\"\u003e`restricted_cname_reuse`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"approver":{"type":"string","description":"Sets the approver e-mail address that will be used to perform SSL domain validation.\n"},"dataStorageRegion":{"type":"string","description":"The data region to use. Options are `APAC`, `AU`, `EU`, and `US`.\n"},"deprecated":{"type":"boolean","description":"Once set to true, this setting is irreversible. Use true to deprecate the resource, preventing any further changes from taking effect. Deleting the resource will not remove the site. Default: false."},"dnsARecordName":{"type":"string","description":"The A record name.\n"},"dnsARecordValues":{"type":"array","items":{"type":"string"},"description":"The A record value.\n"},"dnsCnameRecordName":{"type":"string","description":"The CNAME record name.\n"},"dnsCnameRecordValue":{"type":"string","description":"The CNAME record value.\n"},"dnsRecordName":{"type":"string","description":"the DNS Record type TXT that should be created and set to the \u003cspan pulumi-lang-nodejs=\"`domainVerification`\" pulumi-lang-dotnet=\"`DomainVerification`\" pulumi-lang-go=\"`domainVerification`\" pulumi-lang-python=\"`domain_verification`\" pulumi-lang-yaml=\"`domainVerification`\" pulumi-lang-java=\"`domainVerification`\"\u003e`domain_verification`\u003c/span\u003e output value.\n"},"domain":{"type":"string","description":"The fully qualified domain name of the site. For example: www.example.com, hello.example.com.\n"},"domainRedirectToFull":{"type":"string","description":"Sets the redirect naked to full flag. Pass \"true\" or empty string in the value parameter.\n"},"domainValidation":{"type":"string","description":"Sets the domain validation method that will be used to generate an SSL certificate. Options are \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cname`\" pulumi-lang-dotnet=\"`Cname`\" pulumi-lang-go=\"`cname`\" pulumi-lang-python=\"`cname`\" pulumi-lang-yaml=\"`cname`\" pulumi-lang-java=\"`cname`\"\u003e`cname`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`dns`\" pulumi-lang-dotnet=\"`Dns`\" pulumi-lang-go=\"`dns`\" pulumi-lang-python=\"`dns`\" pulumi-lang-yaml=\"`dns`\" pulumi-lang-java=\"`dns`\"\u003e`dns`\u003c/span\u003e.\n"},"domainVerification":{"type":"string","description":"The domain verification (e.g. GlobalSign verification, HTML meta tag).\n"},"forceSsl":{"type":"string","description":"Force SSL. This option is only available for sites with manually configured IP/CNAME and for specific accounts.\n"},"hashSalt":{"type":"string","description":"Specify the hash salt (masking setting), required if hashing is enabled. Maximum length of 64 characters.\n"},"hashingEnabled":{"type":"boolean","description":"Specify if hashing (masking setting) should be enabled.\n"},"ignoreSsl":{"type":"string","description":"Sets the ignore SSL flag (if the site is in pending-select-approver state). Pass \"true\" or empty string in the value parameter.\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"logsAccountId":{"type":"string","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"nakedDomainSan":{"type":"boolean","description":"Use \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to add the naked domain SAN to a www site’s SSL certificate. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"originalDataCenterId":{"type":"number","description":"Numeric representation of the data center created with the site. This parameter is\ndeprecated. Please, use\u003cspan pulumi-lang-nodejs=\" dataSourceDataCenter \" pulumi-lang-dotnet=\" DataSourceDataCenter \" pulumi-lang-go=\" dataSourceDataCenter \" pulumi-lang-python=\" data_source_data_center \" pulumi-lang-yaml=\" dataSourceDataCenter \" pulumi-lang-java=\" dataSourceDataCenter \"\u003e data_source_data_center \u003c/span\u003einstead.\n","deprecationMessage":"Deprecated"},"perfClientComplyNoCache":{"type":"boolean","description":"Comply with No-Cache and Max-Age directives in client requests. By default, these cache directives are ignored. Resources are dynamically profiled and re-configured to optimize performance.\n"},"perfClientEnableClientSideCaching":{"type":"boolean","description":"Cache content on client browsers or applications. When not enabled, content is cached only on the Imperva proxies.\n"},"perfClientSendAgeHeader":{"type":"boolean","description":"Send Cache-Control: max-age and Age headers.\n"},"perfKeyComplyVary":{"type":"boolean","description":"Comply with Vary. Cache resources in accordance with the Vary response header.\n"},"perfKeyUniteNakedFullCache":{"type":"boolean","description":"Use the Same Cache for Full and Naked Domains. For example, use the same cached resource for www.example.com/a and example.com/a.\n"},"perfModeHttps":{"type":"string","description":"The resources that are cached over HTTPS, the general level applies. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dontIncludeHtml`\" pulumi-lang-dotnet=\"`DontIncludeHtml`\" pulumi-lang-go=\"`dontIncludeHtml`\" pulumi-lang-python=\"`dont_include_html`\" pulumi-lang-yaml=\"`dontIncludeHtml`\" pulumi-lang-java=\"`dontIncludeHtml`\"\u003e`dont_include_html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e.\n"},"perfModeLevel":{"type":"string","description":"Caching level. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customCacheRulesOnly`\" pulumi-lang-dotnet=\"`CustomCacheRulesOnly`\" pulumi-lang-go=\"`customCacheRulesOnly`\" pulumi-lang-python=\"`custom_cache_rules_only`\" pulumi-lang-yaml=\"`customCacheRulesOnly`\" pulumi-lang-java=\"`customCacheRulesOnly`\"\u003e`custom_cache_rules_only`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`smart`\" pulumi-lang-dotnet=\"`Smart`\" pulumi-lang-go=\"`smart`\" pulumi-lang-python=\"`smart`\" pulumi-lang-yaml=\"`smart`\" pulumi-lang-java=\"`smart`\"\u003e`smart`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`allResources`\" pulumi-lang-dotnet=\"`AllResources`\" pulumi-lang-go=\"`allResources`\" pulumi-lang-python=\"`all_resources`\" pulumi-lang-yaml=\"`allResources`\" pulumi-lang-java=\"`allResources`\"\u003e`all_resources`\u003c/span\u003e.\n"},"perfModeTime":{"type":"number","description":"The time, in seconds, that you set for this option determines how often the cache is refreshed. Relevant for the \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e levels only.\n"},"perfResponseCache300x":{"type":"boolean","description":"When this option is checked Imperva will cache 301, 302, 303, 307, and 308 redirect response headers containing the target URI.\n"},"perfResponseCache404Enabled":{"type":"boolean","description":"Whether or not to cache 404 responses.\n"},"perfResponseCache404Time":{"type":"number","description":"The time in seconds to cache 404 responses. Value should be divisible by\n60.\n"},"perfResponseCacheEmptyResponses":{"type":"boolean","description":"Cache responses that don’t have a message body.\n"},"perfResponseCacheHttp10Responses":{"type":"boolean","description":"Cache HTTP 1.0 type responses that don’t include the Content-Length header or chunking.\n"},"perfResponseCacheResponseHeaderMode":{"type":"string","description":"The working mode for caching response headers. Options are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"perfResponseCacheResponseHeaders":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the response headers to be cached when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e mode. If empty, no response headers are cached.\nFor example: `[\"Access-Control-Allow-Origin\",\"Access-Control-Allow-Methods\"]`.\n"},"perfResponseCacheShield":{"type":"boolean","description":"Adds an intermediate cache between other Imperva PoPs and your origin servers to protect your servers from redundant requests.\n"},"perfResponseStaleContentMode":{"type":"string","description":"The working mode for serving stale content. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`adaptive`\" pulumi-lang-dotnet=\"`Adaptive`\" pulumi-lang-go=\"`adaptive`\" pulumi-lang-python=\"`adaptive`\" pulumi-lang-yaml=\"`adaptive`\" pulumi-lang-java=\"`adaptive`\"\u003e`adaptive`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"perfResponseStaleContentTime":{"type":"number","description":"The time, in seconds, to serve stale content for when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e work mode.\n"},"perfResponseTagResponseHeader":{"type":"string","description":"Tag the response according to the value of this header. Specify which origin response header contains the cache tags in your resources.\n"},"perfTtlPreferLastModified":{"type":"boolean","description":"Prefer 'Last Modified' over eTag. When this option is checked, Imperva prefers using Last Modified values (if available) over eTag values (recommended on multi-server setups).\n"},"perfTtlUseShortestCaching":{"type":"boolean","description":"Use shortest caching duration in case of conflicts. By default, the longest duration is used in case of conflict between caching rules or modes. When this option is checked, Imperva uses the shortest duration in case of conflict.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation."},"removeSsl":{"type":"string","description":"Sets the remove SSL from site flag. Pass \"true\" or empty string in the value parameter.\n"},"restrictedCnameReuse":{"type":"string","description":"Use this option to allow Imperva to detect and add domains that are using the Imperva-provided CNAME (not recommended). One of: true | false.\n"},"sealLocation":{"type":"string","description":"Sets the seal location. Options are `api.seal_location.none`, `api.seal_location.bottom_left`, `api.seal_location.right_bottom`, `api.seal_location.left`, and `api.seal_location.right`.\n"},"sendSiteSetupEmails":{"type":"string","description":"If this value is false, end users will not get emails about the add site process such as DNS instructions and SSL setup.\n"},"siteCreationDate":{"type":"number","description":"Numeric representation of the site creation date.\n"},"siteId":{"type":"string","description":"Unique identifier in the API for the site.\n"},"siteIp":{"type":"string","description":"The web server IP/CNAME. This field should be specified when creating a site and the domain does not yet exist or the domain already points to Imperva Cloud. When specified, its value will be used for adding site only. After site is already created this field will be ignored. To modify site ip, please use resource\u003cspan pulumi-lang-nodejs=\" incapsula.DataCentersConfiguration \" pulumi-lang-dotnet=\" incapsula.DataCentersConfiguration \" pulumi-lang-go=\" DataCentersConfiguration \" pulumi-lang-python=\" DataCentersConfiguration \" pulumi-lang-yaml=\" incapsula.DataCentersConfiguration \" pulumi-lang-java=\" incapsula.DataCentersConfiguration \"\u003e incapsula.DataCentersConfiguration \u003c/span\u003einstead.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FSiteTimeouts:SiteTimeouts"},"wildcardSan":{"type":"boolean","description":"Use \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to add the wildcard SAN or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to add the full domain SAN to the site’s SSL certificate. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object","required":["accelerationLevel","accountId","active","dataStorageRegion","dnsARecordName","dnsARecordValues","dnsCnameRecordName","dnsCnameRecordValue","dnsRecordName","domain","domainVerification","hashSalt","hashingEnabled","logLevel","originalDataCenterId","perfClientComplyNoCache","perfClientEnableClientSideCaching","perfClientSendAgeHeader","perfKeyComplyVary","perfKeyUniteNakedFullCache","perfModeHttps","perfModeLevel","perfModeTime","perfResponseCache300x","perfResponseCache404Enabled","perfResponseCache404Time","perfResponseCacheEmptyResponses","perfResponseCacheHttp10Responses","perfResponseCacheResponseHeaderMode","perfResponseCacheResponseHeaders","perfResponseCacheShield","perfResponseStaleContentMode","perfResponseStaleContentTime","perfResponseTagResponseHeader","perfTtlPreferLastModified","perfTtlUseShortestCaching","restrictedCnameReuse","sealLocation","siteCreationDate","siteId","siteIp"],"inputProperties":{"accelerationLevel":{"type":"string","description":"Sets the acceleration level of the site. Options are \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`aggressive`\" pulumi-lang-dotnet=\"`Aggressive`\" pulumi-lang-go=\"`aggressive`\" pulumi-lang-python=\"`aggressive`\" pulumi-lang-yaml=\"`aggressive`\" pulumi-lang-java=\"`aggressive`\"\u003e`aggressive`\u003c/span\u003e.\n"},"accountId":{"type":"number","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"active":{"type":"string","description":"Whether the site is active or bypassed by the Imperva network. Options are \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`bypass`\" pulumi-lang-dotnet=\"`Bypass`\" pulumi-lang-go=\"`bypass`\" pulumi-lang-python=\"`bypass`\" pulumi-lang-yaml=\"`bypass`\" pulumi-lang-java=\"`bypass`\"\u003e`bypass`\u003c/span\u003e.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`restrictedCnameReuse`\" pulumi-lang-dotnet=\"`RestrictedCnameReuse`\" pulumi-lang-go=\"`restrictedCnameReuse`\" pulumi-lang-python=\"`restricted_cname_reuse`\" pulumi-lang-yaml=\"`restrictedCnameReuse`\" pulumi-lang-java=\"`restrictedCnameReuse`\"\u003e`restricted_cname_reuse`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"approver":{"type":"string","description":"Sets the approver e-mail address that will be used to perform SSL domain validation.\n"},"dataStorageRegion":{"type":"string","description":"The data region to use. Options are `APAC`, `AU`, `EU`, and `US`.\n"},"deprecated":{"type":"boolean","description":"Once set to true, this setting is irreversible. Use true to deprecate the resource, preventing any further changes from taking effect. Deleting the resource will not remove the site. Default: false."},"domain":{"type":"string","description":"The fully qualified domain name of the site. For example: www.example.com, hello.example.com.\n"},"domainRedirectToFull":{"type":"string","description":"Sets the redirect naked to full flag. Pass \"true\" or empty string in the value parameter.\n"},"domainValidation":{"type":"string","description":"Sets the domain validation method that will be used to generate an SSL certificate. Options are \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cname`\" pulumi-lang-dotnet=\"`Cname`\" pulumi-lang-go=\"`cname`\" pulumi-lang-python=\"`cname`\" pulumi-lang-yaml=\"`cname`\" pulumi-lang-java=\"`cname`\"\u003e`cname`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`dns`\" pulumi-lang-dotnet=\"`Dns`\" pulumi-lang-go=\"`dns`\" pulumi-lang-python=\"`dns`\" pulumi-lang-yaml=\"`dns`\" pulumi-lang-java=\"`dns`\"\u003e`dns`\u003c/span\u003e.\n"},"forceSsl":{"type":"string","description":"Force SSL. This option is only available for sites with manually configured IP/CNAME and for specific accounts.\n"},"hashSalt":{"type":"string","description":"Specify the hash salt (masking setting), required if hashing is enabled. Maximum length of 64 characters.\n"},"hashingEnabled":{"type":"boolean","description":"Specify if hashing (masking setting) should be enabled.\n"},"ignoreSsl":{"type":"string","description":"Sets the ignore SSL flag (if the site is in pending-select-approver state). Pass \"true\" or empty string in the value parameter.\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"logsAccountId":{"type":"string","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"nakedDomainSan":{"type":"boolean","description":"Use \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to add the naked domain SAN to a www site’s SSL certificate. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"perfClientComplyNoCache":{"type":"boolean","description":"Comply with No-Cache and Max-Age directives in client requests. By default, these cache directives are ignored. Resources are dynamically profiled and re-configured to optimize performance.\n"},"perfClientEnableClientSideCaching":{"type":"boolean","description":"Cache content on client browsers or applications. When not enabled, content is cached only on the Imperva proxies.\n"},"perfClientSendAgeHeader":{"type":"boolean","description":"Send Cache-Control: max-age and Age headers.\n"},"perfKeyComplyVary":{"type":"boolean","description":"Comply with Vary. Cache resources in accordance with the Vary response header.\n"},"perfKeyUniteNakedFullCache":{"type":"boolean","description":"Use the Same Cache for Full and Naked Domains. For example, use the same cached resource for www.example.com/a and example.com/a.\n"},"perfModeHttps":{"type":"string","description":"The resources that are cached over HTTPS, the general level applies. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dontIncludeHtml`\" pulumi-lang-dotnet=\"`DontIncludeHtml`\" pulumi-lang-go=\"`dontIncludeHtml`\" pulumi-lang-python=\"`dont_include_html`\" pulumi-lang-yaml=\"`dontIncludeHtml`\" pulumi-lang-java=\"`dontIncludeHtml`\"\u003e`dont_include_html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e.\n"},"perfModeLevel":{"type":"string","description":"Caching level. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customCacheRulesOnly`\" pulumi-lang-dotnet=\"`CustomCacheRulesOnly`\" pulumi-lang-go=\"`customCacheRulesOnly`\" pulumi-lang-python=\"`custom_cache_rules_only`\" pulumi-lang-yaml=\"`customCacheRulesOnly`\" pulumi-lang-java=\"`customCacheRulesOnly`\"\u003e`custom_cache_rules_only`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`smart`\" pulumi-lang-dotnet=\"`Smart`\" pulumi-lang-go=\"`smart`\" pulumi-lang-python=\"`smart`\" pulumi-lang-yaml=\"`smart`\" pulumi-lang-java=\"`smart`\"\u003e`smart`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`allResources`\" pulumi-lang-dotnet=\"`AllResources`\" pulumi-lang-go=\"`allResources`\" pulumi-lang-python=\"`all_resources`\" pulumi-lang-yaml=\"`allResources`\" pulumi-lang-java=\"`allResources`\"\u003e`all_resources`\u003c/span\u003e.\n"},"perfModeTime":{"type":"number","description":"The time, in seconds, that you set for this option determines how often the cache is refreshed. Relevant for the \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e levels only.\n"},"perfResponseCache300x":{"type":"boolean","description":"When this option is checked Imperva will cache 301, 302, 303, 307, and 308 redirect response headers containing the target URI.\n"},"perfResponseCache404Enabled":{"type":"boolean","description":"Whether or not to cache 404 responses.\n"},"perfResponseCache404Time":{"type":"number","description":"The time in seconds to cache 404 responses. Value should be divisible by\n60.\n"},"perfResponseCacheEmptyResponses":{"type":"boolean","description":"Cache responses that don’t have a message body.\n"},"perfResponseCacheHttp10Responses":{"type":"boolean","description":"Cache HTTP 1.0 type responses that don’t include the Content-Length header or chunking.\n"},"perfResponseCacheResponseHeaderMode":{"type":"string","description":"The working mode for caching response headers. Options are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"perfResponseCacheResponseHeaders":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the response headers to be cached when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e mode. If empty, no response headers are cached.\nFor example: `[\"Access-Control-Allow-Origin\",\"Access-Control-Allow-Methods\"]`.\n"},"perfResponseCacheShield":{"type":"boolean","description":"Adds an intermediate cache between other Imperva PoPs and your origin servers to protect your servers from redundant requests.\n"},"perfResponseStaleContentMode":{"type":"string","description":"The working mode for serving stale content. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`adaptive`\" pulumi-lang-dotnet=\"`Adaptive`\" pulumi-lang-go=\"`adaptive`\" pulumi-lang-python=\"`adaptive`\" pulumi-lang-yaml=\"`adaptive`\" pulumi-lang-java=\"`adaptive`\"\u003e`adaptive`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"perfResponseStaleContentTime":{"type":"number","description":"The time, in seconds, to serve stale content for when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e work mode.\n"},"perfResponseTagResponseHeader":{"type":"string","description":"Tag the response according to the value of this header. Specify which origin response header contains the cache tags in your resources.\n"},"perfTtlPreferLastModified":{"type":"boolean","description":"Prefer 'Last Modified' over eTag. When this option is checked, Imperva prefers using Last Modified values (if available) over eTag values (recommended on multi-server setups).\n"},"perfTtlUseShortestCaching":{"type":"boolean","description":"Use shortest caching duration in case of conflicts. By default, the longest duration is used in case of conflict between caching rules or modes. When this option is checked, Imperva uses the shortest duration in case of conflict.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation."},"removeSsl":{"type":"string","description":"Sets the remove SSL from site flag. Pass \"true\" or empty string in the value parameter.\n"},"restrictedCnameReuse":{"type":"string","description":"Use this option to allow Imperva to detect and add domains that are using the Imperva-provided CNAME (not recommended). One of: true | false.\n"},"sealLocation":{"type":"string","description":"Sets the seal location. Options are `api.seal_location.none`, `api.seal_location.bottom_left`, `api.seal_location.right_bottom`, `api.seal_location.left`, and `api.seal_location.right`.\n"},"sendSiteSetupEmails":{"type":"string","description":"If this value is false, end users will not get emails about the add site process such as DNS instructions and SSL setup.\n"},"siteId":{"type":"string","description":"Unique identifier in the API for the site.\n"},"siteIp":{"type":"string","description":"The web server IP/CNAME. This field should be specified when creating a site and the domain does not yet exist or the domain already points to Imperva Cloud. When specified, its value will be used for adding site only. After site is already created this field will be ignored. To modify site ip, please use resource\u003cspan pulumi-lang-nodejs=\" incapsula.DataCentersConfiguration \" pulumi-lang-dotnet=\" incapsula.DataCentersConfiguration \" pulumi-lang-go=\" DataCentersConfiguration \" pulumi-lang-python=\" DataCentersConfiguration \" pulumi-lang-yaml=\" incapsula.DataCentersConfiguration \" pulumi-lang-java=\" incapsula.DataCentersConfiguration \"\u003e incapsula.DataCentersConfiguration \u003c/span\u003einstead.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FSiteTimeouts:SiteTimeouts"},"wildcardSan":{"type":"boolean","description":"Use \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to add the wildcard SAN or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to add the full domain SAN to the site’s SSL certificate. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["domain"],"stateInputs":{"description":"Input properties used for looking up and filtering Site resources.\n","properties":{"accelerationLevel":{"type":"string","description":"Sets the acceleration level of the site. Options are \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`aggressive`\" pulumi-lang-dotnet=\"`Aggressive`\" pulumi-lang-go=\"`aggressive`\" pulumi-lang-python=\"`aggressive`\" pulumi-lang-yaml=\"`aggressive`\" pulumi-lang-java=\"`aggressive`\"\u003e`aggressive`\u003c/span\u003e.\n"},"accountId":{"type":"number","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"active":{"type":"string","description":"Whether the site is active or bypassed by the Imperva network. Options are \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`bypass`\" pulumi-lang-dotnet=\"`Bypass`\" pulumi-lang-go=\"`bypass`\" pulumi-lang-python=\"`bypass`\" pulumi-lang-yaml=\"`bypass`\" pulumi-lang-java=\"`bypass`\"\u003e`bypass`\u003c/span\u003e.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`restrictedCnameReuse`\" pulumi-lang-dotnet=\"`RestrictedCnameReuse`\" pulumi-lang-go=\"`restrictedCnameReuse`\" pulumi-lang-python=\"`restricted_cname_reuse`\" pulumi-lang-yaml=\"`restrictedCnameReuse`\" pulumi-lang-java=\"`restrictedCnameReuse`\"\u003e`restricted_cname_reuse`\u003c/span\u003e parameter is currently not supported. Please do not use/change value.\n"},"approver":{"type":"string","description":"Sets the approver e-mail address that will be used to perform SSL domain validation.\n"},"dataStorageRegion":{"type":"string","description":"The data region to use. Options are `APAC`, `AU`, `EU`, and `US`.\n"},"deprecated":{"type":"boolean","description":"Once set to true, this setting is irreversible. Use true to deprecate the resource, preventing any further changes from taking effect. Deleting the resource will not remove the site. Default: false."},"dnsARecordName":{"type":"string","description":"The A record name.\n"},"dnsARecordValues":{"type":"array","items":{"type":"string"},"description":"The A record value.\n"},"dnsCnameRecordName":{"type":"string","description":"The CNAME record name.\n"},"dnsCnameRecordValue":{"type":"string","description":"The CNAME record value.\n"},"dnsRecordName":{"type":"string","description":"the DNS Record type TXT that should be created and set to the \u003cspan pulumi-lang-nodejs=\"`domainVerification`\" pulumi-lang-dotnet=\"`DomainVerification`\" pulumi-lang-go=\"`domainVerification`\" pulumi-lang-python=\"`domain_verification`\" pulumi-lang-yaml=\"`domainVerification`\" pulumi-lang-java=\"`domainVerification`\"\u003e`domain_verification`\u003c/span\u003e output value.\n"},"domain":{"type":"string","description":"The fully qualified domain name of the site. For example: www.example.com, hello.example.com.\n"},"domainRedirectToFull":{"type":"string","description":"Sets the redirect naked to full flag. Pass \"true\" or empty string in the value parameter.\n"},"domainValidation":{"type":"string","description":"Sets the domain validation method that will be used to generate an SSL certificate. Options are \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cname`\" pulumi-lang-dotnet=\"`Cname`\" pulumi-lang-go=\"`cname`\" pulumi-lang-python=\"`cname`\" pulumi-lang-yaml=\"`cname`\" pulumi-lang-java=\"`cname`\"\u003e`cname`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`dns`\" pulumi-lang-dotnet=\"`Dns`\" pulumi-lang-go=\"`dns`\" pulumi-lang-python=\"`dns`\" pulumi-lang-yaml=\"`dns`\" pulumi-lang-java=\"`dns`\"\u003e`dns`\u003c/span\u003e.\n"},"domainVerification":{"type":"string","description":"The domain verification (e.g. GlobalSign verification, HTML meta tag).\n"},"forceSsl":{"type":"string","description":"Force SSL. This option is only available for sites with manually configured IP/CNAME and for specific accounts.\n"},"hashSalt":{"type":"string","description":"Specify the hash salt (masking setting), required if hashing is enabled. Maximum length of 64 characters.\n"},"hashingEnabled":{"type":"boolean","description":"Specify if hashing (masking setting) should be enabled.\n"},"ignoreSsl":{"type":"string","description":"Sets the ignore SSL flag (if the site is in pending-select-approver state). Pass \"true\" or empty string in the value parameter.\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"logsAccountId":{"type":"string","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"nakedDomainSan":{"type":"boolean","description":"Use \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to add the naked domain SAN to a www site’s SSL certificate. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"originalDataCenterId":{"type":"number","description":"Numeric representation of the data center created with the site. This parameter is\ndeprecated. Please, use\u003cspan pulumi-lang-nodejs=\" dataSourceDataCenter \" pulumi-lang-dotnet=\" DataSourceDataCenter \" pulumi-lang-go=\" dataSourceDataCenter \" pulumi-lang-python=\" data_source_data_center \" pulumi-lang-yaml=\" dataSourceDataCenter \" pulumi-lang-java=\" dataSourceDataCenter \"\u003e data_source_data_center \u003c/span\u003einstead.\n","deprecationMessage":"Deprecated"},"perfClientComplyNoCache":{"type":"boolean","description":"Comply with No-Cache and Max-Age directives in client requests. By default, these cache directives are ignored. Resources are dynamically profiled and re-configured to optimize performance.\n"},"perfClientEnableClientSideCaching":{"type":"boolean","description":"Cache content on client browsers or applications. When not enabled, content is cached only on the Imperva proxies.\n"},"perfClientSendAgeHeader":{"type":"boolean","description":"Send Cache-Control: max-age and Age headers.\n"},"perfKeyComplyVary":{"type":"boolean","description":"Comply with Vary. Cache resources in accordance with the Vary response header.\n"},"perfKeyUniteNakedFullCache":{"type":"boolean","description":"Use the Same Cache for Full and Naked Domains. For example, use the same cached resource for www.example.com/a and example.com/a.\n"},"perfModeHttps":{"type":"string","description":"The resources that are cached over HTTPS, the general level applies. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dontIncludeHtml`\" pulumi-lang-dotnet=\"`DontIncludeHtml`\" pulumi-lang-go=\"`dontIncludeHtml`\" pulumi-lang-python=\"`dont_include_html`\" pulumi-lang-yaml=\"`dontIncludeHtml`\" pulumi-lang-java=\"`dontIncludeHtml`\"\u003e`dont_include_html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e.\n"},"perfModeLevel":{"type":"string","description":"Caching level. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customCacheRulesOnly`\" pulumi-lang-dotnet=\"`CustomCacheRulesOnly`\" pulumi-lang-go=\"`customCacheRulesOnly`\" pulumi-lang-python=\"`custom_cache_rules_only`\" pulumi-lang-yaml=\"`customCacheRulesOnly`\" pulumi-lang-java=\"`customCacheRulesOnly`\"\u003e`custom_cache_rules_only`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`smart`\" pulumi-lang-dotnet=\"`Smart`\" pulumi-lang-go=\"`smart`\" pulumi-lang-python=\"`smart`\" pulumi-lang-yaml=\"`smart`\" pulumi-lang-java=\"`smart`\"\u003e`smart`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`allResources`\" pulumi-lang-dotnet=\"`AllResources`\" pulumi-lang-go=\"`allResources`\" pulumi-lang-python=\"`all_resources`\" pulumi-lang-yaml=\"`allResources`\" pulumi-lang-java=\"`allResources`\"\u003e`all_resources`\u003c/span\u003e.\n"},"perfModeTime":{"type":"number","description":"The time, in seconds, that you set for this option determines how often the cache is refreshed. Relevant for the \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e levels only.\n"},"perfResponseCache300x":{"type":"boolean","description":"When this option is checked Imperva will cache 301, 302, 303, 307, and 308 redirect response headers containing the target URI.\n"},"perfResponseCache404Enabled":{"type":"boolean","description":"Whether or not to cache 404 responses.\n"},"perfResponseCache404Time":{"type":"number","description":"The time in seconds to cache 404 responses. Value should be divisible by\n60.\n"},"perfResponseCacheEmptyResponses":{"type":"boolean","description":"Cache responses that don’t have a message body.\n"},"perfResponseCacheHttp10Responses":{"type":"boolean","description":"Cache HTTP 1.0 type responses that don’t include the Content-Length header or chunking.\n"},"perfResponseCacheResponseHeaderMode":{"type":"string","description":"The working mode for caching response headers. Options are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"perfResponseCacheResponseHeaders":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the response headers to be cached when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e mode. If empty, no response headers are cached.\nFor example: `[\"Access-Control-Allow-Origin\",\"Access-Control-Allow-Methods\"]`.\n"},"perfResponseCacheShield":{"type":"boolean","description":"Adds an intermediate cache between other Imperva PoPs and your origin servers to protect your servers from redundant requests.\n"},"perfResponseStaleContentMode":{"type":"string","description":"The working mode for serving stale content. Options are \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`adaptive`\" pulumi-lang-dotnet=\"`Adaptive`\" pulumi-lang-go=\"`adaptive`\" pulumi-lang-python=\"`adaptive`\" pulumi-lang-yaml=\"`adaptive`\" pulumi-lang-java=\"`adaptive`\"\u003e`adaptive`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"perfResponseStaleContentTime":{"type":"number","description":"The time, in seconds, to serve stale content for when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e work mode.\n"},"perfResponseTagResponseHeader":{"type":"string","description":"Tag the response according to the value of this header. Specify which origin response header contains the cache tags in your resources.\n"},"perfTtlPreferLastModified":{"type":"boolean","description":"Prefer 'Last Modified' over eTag. When this option is checked, Imperva prefers using Last Modified values (if available) over eTag values (recommended on multi-server setups).\n"},"perfTtlUseShortestCaching":{"type":"boolean","description":"Use shortest caching duration in case of conflicts. By default, the longest duration is used in case of conflict between caching rules or modes. When this option is checked, Imperva uses the shortest duration in case of conflict.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation."},"removeSsl":{"type":"string","description":"Sets the remove SSL from site flag. Pass \"true\" or empty string in the value parameter.\n"},"restrictedCnameReuse":{"type":"string","description":"Use this option to allow Imperva to detect and add domains that are using the Imperva-provided CNAME (not recommended). One of: true | false.\n"},"sealLocation":{"type":"string","description":"Sets the seal location. Options are `api.seal_location.none`, `api.seal_location.bottom_left`, `api.seal_location.right_bottom`, `api.seal_location.left`, and `api.seal_location.right`.\n"},"sendSiteSetupEmails":{"type":"string","description":"If this value is false, end users will not get emails about the add site process such as DNS instructions and SSL setup.\n"},"siteCreationDate":{"type":"number","description":"Numeric representation of the site creation date.\n"},"siteId":{"type":"string","description":"Unique identifier in the API for the site.\n"},"siteIp":{"type":"string","description":"The web server IP/CNAME. This field should be specified when creating a site and the domain does not yet exist or the domain already points to Imperva Cloud. When specified, its value will be used for adding site only. After site is already created this field will be ignored. To modify site ip, please use resource\u003cspan pulumi-lang-nodejs=\" incapsula.DataCentersConfiguration \" pulumi-lang-dotnet=\" incapsula.DataCentersConfiguration \" pulumi-lang-go=\" DataCentersConfiguration \" pulumi-lang-python=\" DataCentersConfiguration \" pulumi-lang-yaml=\" incapsula.DataCentersConfiguration \" pulumi-lang-java=\" incapsula.DataCentersConfiguration \"\u003e incapsula.DataCentersConfiguration \u003c/span\u003einstead.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FSiteTimeouts:SiteTimeouts"},"wildcardSan":{"type":"boolean","description":"Use \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to add the wildcard SAN or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to add the full domain SAN to the site’s SSL certificate. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"incapsula:index/siteCacheConfiguration:SiteCacheConfiguration":{"description":"Configure content caching for your website.\n\nNote: This resource applies only to sites managed by the\u003cspan pulumi-lang-nodejs=\" incapsula.SiteV3 \" pulumi-lang-dotnet=\" incapsula.SiteV3 \" pulumi-lang-go=\" SiteV3 \" pulumi-lang-python=\" SiteV3 \" pulumi-lang-yaml=\" incapsula.SiteV3 \" pulumi-lang-java=\" incapsula.SiteV3 \"\u003e incapsula.SiteV3 \u003c/span\u003eresource. For sites managed by the\u003cspan pulumi-lang-nodejs=\" incapsula.Site \" pulumi-lang-dotnet=\" incapsula.Site \" pulumi-lang-go=\" Site \" pulumi-lang-python=\" Site \" pulumi-lang-yaml=\" incapsula.Site \" pulumi-lang-java=\" incapsula.Site \"\u003e incapsula.Site \u003c/span\u003eresource, please use the relevant fields from the\u003cspan pulumi-lang-nodejs=\" incapsula.Site \" pulumi-lang-dotnet=\" incapsula.Site \" pulumi-lang-go=\" Site \" pulumi-lang-python=\" Site \" pulumi-lang-yaml=\" incapsula.Site \" pulumi-lang-java=\" incapsula.Site \"\u003e incapsula.Site \u003c/span\u003eresource instead.\n\n## Example Usage\n\n### Basic Usage - Site Cache Configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiteCacheConfiguration = new incapsula.SiteCacheConfiguration(\"example_site_cache_configuration\", {\n    siteId: example_site_v3.id,\n    clientComplyNoCache: true,\n    clientEnableClientSideCaching: true,\n    clientSendAgeHeader: true,\n    keyComplyVary: true,\n    keyUniteNakedFullCache: true,\n    modeHttps: \"include_all_resources\",\n    modeLevel: \"standard\",\n    modeTime: 1000,\n    responseCache300x: true,\n    responseCache404Enabled: true,\n    responseCache404Time: 60,\n    responseCacheEmptyResponses: true,\n    responseCacheHttp10Responses: true,\n    responseCacheResponseHeaderMode: \"custom\",\n    responseCacheResponseHeaders: [\n        \"Access-Control-Allow-Origin\",\n        \"Foo-Bar-Header\",\n    ],\n    responseCacheShield: true,\n    responseStaleContentMode: \"custom\",\n    responseStaleContentTime: 1000,\n    responseTagResponseHeader: \"Example-Tag-Value-Header\",\n    ttlPreferLastModified: true,\n    ttlUseShortestCaching: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_site_cache_configuration = incapsula.SiteCacheConfiguration(\"example_site_cache_configuration\",\n    site_id=example_site_v3[\"id\"],\n    client_comply_no_cache=True,\n    client_enable_client_side_caching=True,\n    client_send_age_header=True,\n    key_comply_vary=True,\n    key_unite_naked_full_cache=True,\n    mode_https=\"include_all_resources\",\n    mode_level=\"standard\",\n    mode_time=1000,\n    response_cache300x=True,\n    response_cache404_enabled=True,\n    response_cache404_time=60,\n    response_cache_empty_responses=True,\n    response_cache_http10_responses=True,\n    response_cache_response_header_mode=\"custom\",\n    response_cache_response_headers=[\n        \"Access-Control-Allow-Origin\",\n        \"Foo-Bar-Header\",\n    ],\n    response_cache_shield=True,\n    response_stale_content_mode=\"custom\",\n    response_stale_content_time=1000,\n    response_tag_response_header=\"Example-Tag-Value-Header\",\n    ttl_prefer_last_modified=True,\n    ttl_use_shortest_caching=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiteCacheConfiguration = new Incapsula.SiteCacheConfiguration(\"example_site_cache_configuration\", new()\n    {\n        SiteId = example_site_v3.Id,\n        ClientComplyNoCache = true,\n        ClientEnableClientSideCaching = true,\n        ClientSendAgeHeader = true,\n        KeyComplyVary = true,\n        KeyUniteNakedFullCache = true,\n        ModeHttps = \"include_all_resources\",\n        ModeLevel = \"standard\",\n        ModeTime = 1000,\n        ResponseCache300x = true,\n        ResponseCache404Enabled = true,\n        ResponseCache404Time = 60,\n        ResponseCacheEmptyResponses = true,\n        ResponseCacheHttp10Responses = true,\n        ResponseCacheResponseHeaderMode = \"custom\",\n        ResponseCacheResponseHeaders = new[]\n        {\n            \"Access-Control-Allow-Origin\",\n            \"Foo-Bar-Header\",\n        },\n        ResponseCacheShield = true,\n        ResponseStaleContentMode = \"custom\",\n        ResponseStaleContentTime = 1000,\n        ResponseTagResponseHeader = \"Example-Tag-Value-Header\",\n        TtlPreferLastModified = true,\n        TtlUseShortestCaching = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiteCacheConfiguration(ctx, \"example_site_cache_configuration\", \u0026incapsula.SiteCacheConfigurationArgs{\n\t\t\tSiteId:                          pulumi.Any(example_site_v3.Id),\n\t\t\tClientComplyNoCache:             pulumi.Bool(true),\n\t\t\tClientEnableClientSideCaching:   pulumi.Bool(true),\n\t\t\tClientSendAgeHeader:             pulumi.Bool(true),\n\t\t\tKeyComplyVary:                   pulumi.Bool(true),\n\t\t\tKeyUniteNakedFullCache:          pulumi.Bool(true),\n\t\t\tModeHttps:                       pulumi.String(\"include_all_resources\"),\n\t\t\tModeLevel:                       pulumi.String(\"standard\"),\n\t\t\tModeTime:                        pulumi.Float64(1000),\n\t\t\tResponseCache300x:               pulumi.Bool(true),\n\t\t\tResponseCache404Enabled:         pulumi.Bool(true),\n\t\t\tResponseCache404Time:            pulumi.Float64(60),\n\t\t\tResponseCacheEmptyResponses:     pulumi.Bool(true),\n\t\t\tResponseCacheHttp10Responses:    pulumi.Bool(true),\n\t\t\tResponseCacheResponseHeaderMode: pulumi.String(\"custom\"),\n\t\t\tResponseCacheResponseHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Access-Control-Allow-Origin\"),\n\t\t\t\tpulumi.String(\"Foo-Bar-Header\"),\n\t\t\t},\n\t\t\tResponseCacheShield:       pulumi.Bool(true),\n\t\t\tResponseStaleContentMode:  pulumi.String(\"custom\"),\n\t\t\tResponseStaleContentTime:  pulumi.Float64(1000),\n\t\t\tResponseTagResponseHeader: pulumi.String(\"Example-Tag-Value-Header\"),\n\t\t\tTtlPreferLastModified:     pulumi.Bool(true),\n\t\t\tTtlUseShortestCaching:     pulumi.Bool(true),\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.incapsula.SiteCacheConfiguration;\nimport com.pulumi.incapsula.SiteCacheConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiteCacheConfiguration = new SiteCacheConfiguration(\"exampleSiteCacheConfiguration\", SiteCacheConfigurationArgs.builder()\n            .siteId(example_site_v3.id())\n            .clientComplyNoCache(true)\n            .clientEnableClientSideCaching(true)\n            .clientSendAgeHeader(true)\n            .keyComplyVary(true)\n            .keyUniteNakedFullCache(true)\n            .modeHttps(\"include_all_resources\")\n            .modeLevel(\"standard\")\n            .modeTime(1000.0)\n            .responseCache300x(true)\n            .responseCache404Enabled(true)\n            .responseCache404Time(60.0)\n            .responseCacheEmptyResponses(true)\n            .responseCacheHttp10Responses(true)\n            .responseCacheResponseHeaderMode(\"custom\")\n            .responseCacheResponseHeaders(            \n                \"Access-Control-Allow-Origin\",\n                \"Foo-Bar-Header\")\n            .responseCacheShield(true)\n            .responseStaleContentMode(\"custom\")\n            .responseStaleContentTime(1000.0)\n            .responseTagResponseHeader(\"Example-Tag-Value-Header\")\n            .ttlPreferLastModified(true)\n            .ttlUseShortestCaching(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiteCacheConfiguration:\n    type: incapsula:SiteCacheConfiguration\n    name: example_site_cache_configuration\n    properties:\n      siteId: ${[\"example-site-v3\"].id}\n      clientComplyNoCache: true\n      clientEnableClientSideCaching: true\n      clientSendAgeHeader: true\n      keyComplyVary: true\n      keyUniteNakedFullCache: true\n      modeHttps: include_all_resources\n      modeLevel: standard\n      modeTime: 1000\n      responseCache300x: true\n      responseCache404Enabled: true\n      responseCache404Time: 60\n      responseCacheEmptyResponses: true\n      responseCacheHttp10Responses: true\n      responseCacheResponseHeaderMode: custom\n      responseCacheResponseHeaders:\n        - Access-Control-Allow-Origin\n        - Foo-Bar-Header\n      responseCacheShield: true\n      responseStaleContentMode: custom\n      responseStaleContentTime: 1000\n      responseTagResponseHeader: Example-Tag-Value-Header\n      ttlPreferLastModified: true\n      ttlUseShortestCaching: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSite Cache Configuration can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/siteCacheConfiguration:SiteCacheConfiguration example_site_cache_configuration 1234\n```\n","properties":{"clientComplyNoCache":{"type":"boolean","description":"Comply with No-Cache and Max-Age directives in client requests. By default, these cache directives are ignored. Resources are dynamically profiled and re-configured to optimize performance. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"clientEnableClientSideCaching":{"type":"boolean","description":"Cache content on client browsers or applications. When not enabled, content is cached only on the Imperva proxies. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"clientSendAgeHeader":{"type":"boolean","description":"Send Cache-Control: max-age and Age headers. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"keyComplyVary":{"type":"boolean","description":"Comply with Vary. Cache resources in accordance with the Vary response header. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"keyUniteNakedFullCache":{"type":"boolean","description":"Use the Same Cache for Full and Naked Domains. For example, use the same cached resource for _www.example.com/a_ and _example.com/a_. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"modeHttps":{"type":"string","description":"The resources that are cached over HTTPS, the general level applies. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled** - No resources are cached over HTTPS.\n* **dont_include_html** - Only images, css files, js files, and resources defined with the 'Cache-Control: public' header may be cached over HTTPS.\n* **include_html** - Same as dont_include_html, also HTML files may be cached over HTTPS.\n* **include_all_resources** - All resources may be cached over HTTPS.\n"},"modeLevel":{"type":"string","description":"Caching level. **Default:** \u003cspan pulumi-lang-nodejs=\"`smart`\" pulumi-lang-dotnet=\"`Smart`\" pulumi-lang-go=\"`smart`\" pulumi-lang-python=\"`smart`\" pulumi-lang-yaml=\"`smart`\" pulumi-lang-java=\"`smart`\"\u003e`smart`\u003c/span\u003e \nPossible values:\n* **disabled** - Turn off site caching entirely, including user-defined custom cache rules. **Note:** Since all other attributes require caching, it is recommended to clear all resource attributes from configuration when disabling the cache.\n* **custom_cache_rules_only** - Disable caching, unless specified otherwise by a custom cache rule.\n* **standard** - Cache according to standard HTTP headers.\n* **smart** - Cache according to standard HTTP headers as well as profile dynamic pages to identify and cache static content that was not marked as static. In addition to content that was marked by the site's developer / web server as static using standard HTTP headers, Imperva also profiles other resources to identify and cache static content that was not marked as such.\n* **all_resources** - Cache every resource on the web server for the specified amount of time. All site content is cached.\n"},"modeTime":{"type":"number","description":"The time, in seconds, that you set for this option determines how often the cache is refreshed. Relevant for the \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e levels only.\n"},"responseCache300x":{"type":"boolean","description":"When this option is checked Imperva will cache 301, 302, 303, 307, and 308 redirect response headers containing the target URI. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCache404Enabled":{"type":"boolean","description":"Whether or not to cache 404 responses. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCache404Time":{"type":"number","description":"The time in seconds to cache 404 responses. Value should be divisible by 60.\n"},"responseCacheEmptyResponses":{"type":"boolean","description":"Cache responses that don’t have a message body. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCacheHttp10Responses":{"type":"boolean","description":"Cache HTTP 1.0 type responses that don’t include the Content-Length header or chunking. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCacheResponseHeaderMode":{"type":"string","description":"The working mode for caching response headers. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled**\n* **all** - Cache all headers in responses.\n* **custom** - Specify which response headers should be cached along with the resource.\n"},"responseCacheResponseHeaders":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the response headers to be cached when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e mode. If empty, no response headers are cached.\nFor example: `[\"Access-Control-Allow-Origin\",\"Access-Control-Allow-Methods\"]`.\n"},"responseCacheShield":{"type":"boolean","description":"Adds an intermediate cache between other Imperva PoPs and your origin servers to protect your servers from redundant requests. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseStaleContentMode":{"type":"string","description":"The working mode for serving stale content. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled** - Disable serving of stale content.\n* **adaptive** - Stale content is served for a duration of 2 to 24 hours based on the time passed since the resource was last updated.\n* **custom** - Serve stale content for the specified amount of time.\n"},"responseStaleContentTime":{"type":"number","description":"The time, in seconds, to serve stale content for when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e work mode.\n"},"responseTagResponseHeader":{"type":"string","description":"Tag the response according to the value of this header. Specify which origin response header contains the cache tags in your resources.\n"},"siteCacheConfigurationId":{"type":"string","description":"Unique identifier in the API for the Site Cache configuration. The id is identical to Site id.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."},"ttlPreferLastModified":{"type":"boolean","description":"Prefer 'Last Modified' over eTag. When this option is checked, Imperva prefers using Last Modified values (if available) over eTag values (recommended on multi-server setups). **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"ttlUseShortestCaching":{"type":"boolean","description":"Use shortest caching duration in case of conflicts. By default, the longest duration is used in case of conflict between caching rules or modes. When this option is checked, Imperva uses the shortest duration in case of conflict. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"type":"object","required":["siteCacheConfigurationId","siteId"],"inputProperties":{"clientComplyNoCache":{"type":"boolean","description":"Comply with No-Cache and Max-Age directives in client requests. By default, these cache directives are ignored. Resources are dynamically profiled and re-configured to optimize performance. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"clientEnableClientSideCaching":{"type":"boolean","description":"Cache content on client browsers or applications. When not enabled, content is cached only on the Imperva proxies. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"clientSendAgeHeader":{"type":"boolean","description":"Send Cache-Control: max-age and Age headers. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"keyComplyVary":{"type":"boolean","description":"Comply with Vary. Cache resources in accordance with the Vary response header. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"keyUniteNakedFullCache":{"type":"boolean","description":"Use the Same Cache for Full and Naked Domains. For example, use the same cached resource for _www.example.com/a_ and _example.com/a_. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"modeHttps":{"type":"string","description":"The resources that are cached over HTTPS, the general level applies. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled** - No resources are cached over HTTPS.\n* **dont_include_html** - Only images, css files, js files, and resources defined with the 'Cache-Control: public' header may be cached over HTTPS.\n* **include_html** - Same as dont_include_html, also HTML files may be cached over HTTPS.\n* **include_all_resources** - All resources may be cached over HTTPS.\n"},"modeLevel":{"type":"string","description":"Caching level. **Default:** \u003cspan pulumi-lang-nodejs=\"`smart`\" pulumi-lang-dotnet=\"`Smart`\" pulumi-lang-go=\"`smart`\" pulumi-lang-python=\"`smart`\" pulumi-lang-yaml=\"`smart`\" pulumi-lang-java=\"`smart`\"\u003e`smart`\u003c/span\u003e \nPossible values:\n* **disabled** - Turn off site caching entirely, including user-defined custom cache rules. **Note:** Since all other attributes require caching, it is recommended to clear all resource attributes from configuration when disabling the cache.\n* **custom_cache_rules_only** - Disable caching, unless specified otherwise by a custom cache rule.\n* **standard** - Cache according to standard HTTP headers.\n* **smart** - Cache according to standard HTTP headers as well as profile dynamic pages to identify and cache static content that was not marked as static. In addition to content that was marked by the site's developer / web server as static using standard HTTP headers, Imperva also profiles other resources to identify and cache static content that was not marked as such.\n* **all_resources** - Cache every resource on the web server for the specified amount of time. All site content is cached.\n"},"modeTime":{"type":"number","description":"The time, in seconds, that you set for this option determines how often the cache is refreshed. Relevant for the \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e levels only.\n"},"responseCache300x":{"type":"boolean","description":"When this option is checked Imperva will cache 301, 302, 303, 307, and 308 redirect response headers containing the target URI. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCache404Enabled":{"type":"boolean","description":"Whether or not to cache 404 responses. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCache404Time":{"type":"number","description":"The time in seconds to cache 404 responses. Value should be divisible by 60.\n"},"responseCacheEmptyResponses":{"type":"boolean","description":"Cache responses that don’t have a message body. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCacheHttp10Responses":{"type":"boolean","description":"Cache HTTP 1.0 type responses that don’t include the Content-Length header or chunking. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCacheResponseHeaderMode":{"type":"string","description":"The working mode for caching response headers. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled**\n* **all** - Cache all headers in responses.\n* **custom** - Specify which response headers should be cached along with the resource.\n"},"responseCacheResponseHeaders":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the response headers to be cached when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e mode. If empty, no response headers are cached.\nFor example: `[\"Access-Control-Allow-Origin\",\"Access-Control-Allow-Methods\"]`.\n"},"responseCacheShield":{"type":"boolean","description":"Adds an intermediate cache between other Imperva PoPs and your origin servers to protect your servers from redundant requests. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseStaleContentMode":{"type":"string","description":"The working mode for serving stale content. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled** - Disable serving of stale content.\n* **adaptive** - Stale content is served for a duration of 2 to 24 hours based on the time passed since the resource was last updated.\n* **custom** - Serve stale content for the specified amount of time.\n"},"responseStaleContentTime":{"type":"number","description":"The time, in seconds, to serve stale content for when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e work mode.\n"},"responseTagResponseHeader":{"type":"string","description":"Tag the response according to the value of this header. Specify which origin response header contains the cache tags in your resources.\n"},"siteCacheConfigurationId":{"type":"string","description":"Unique identifier in the API for the Site Cache configuration. The id is identical to Site id.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."},"ttlPreferLastModified":{"type":"boolean","description":"Prefer 'Last Modified' over eTag. When this option is checked, Imperva prefers using Last Modified values (if available) over eTag values (recommended on multi-server setups). **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"ttlUseShortestCaching":{"type":"boolean","description":"Use shortest caching duration in case of conflicts. By default, the longest duration is used in case of conflict between caching rules or modes. When this option is checked, Imperva uses the shortest duration in case of conflict. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteCacheConfiguration resources.\n","properties":{"clientComplyNoCache":{"type":"boolean","description":"Comply with No-Cache and Max-Age directives in client requests. By default, these cache directives are ignored. Resources are dynamically profiled and re-configured to optimize performance. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"clientEnableClientSideCaching":{"type":"boolean","description":"Cache content on client browsers or applications. When not enabled, content is cached only on the Imperva proxies. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"clientSendAgeHeader":{"type":"boolean","description":"Send Cache-Control: max-age and Age headers. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"keyComplyVary":{"type":"boolean","description":"Comply with Vary. Cache resources in accordance with the Vary response header. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"keyUniteNakedFullCache":{"type":"boolean","description":"Use the Same Cache for Full and Naked Domains. For example, use the same cached resource for _www.example.com/a_ and _example.com/a_. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"modeHttps":{"type":"string","description":"The resources that are cached over HTTPS, the general level applies. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled** - No resources are cached over HTTPS.\n* **dont_include_html** - Only images, css files, js files, and resources defined with the 'Cache-Control: public' header may be cached over HTTPS.\n* **include_html** - Same as dont_include_html, also HTML files may be cached over HTTPS.\n* **include_all_resources** - All resources may be cached over HTTPS.\n"},"modeLevel":{"type":"string","description":"Caching level. **Default:** \u003cspan pulumi-lang-nodejs=\"`smart`\" pulumi-lang-dotnet=\"`Smart`\" pulumi-lang-go=\"`smart`\" pulumi-lang-python=\"`smart`\" pulumi-lang-yaml=\"`smart`\" pulumi-lang-java=\"`smart`\"\u003e`smart`\u003c/span\u003e \nPossible values:\n* **disabled** - Turn off site caching entirely, including user-defined custom cache rules. **Note:** Since all other attributes require caching, it is recommended to clear all resource attributes from configuration when disabling the cache.\n* **custom_cache_rules_only** - Disable caching, unless specified otherwise by a custom cache rule.\n* **standard** - Cache according to standard HTTP headers.\n* **smart** - Cache according to standard HTTP headers as well as profile dynamic pages to identify and cache static content that was not marked as static. In addition to content that was marked by the site's developer / web server as static using standard HTTP headers, Imperva also profiles other resources to identify and cache static content that was not marked as such.\n* **all_resources** - Cache every resource on the web server for the specified amount of time. All site content is cached.\n"},"modeTime":{"type":"number","description":"The time, in seconds, that you set for this option determines how often the cache is refreshed. Relevant for the \u003cspan pulumi-lang-nodejs=\"`includeHtml`\" pulumi-lang-dotnet=\"`IncludeHtml`\" pulumi-lang-go=\"`includeHtml`\" pulumi-lang-python=\"`include_html`\" pulumi-lang-yaml=\"`includeHtml`\" pulumi-lang-java=\"`includeHtml`\"\u003e`include_html`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`includeAllResources`\" pulumi-lang-dotnet=\"`IncludeAllResources`\" pulumi-lang-go=\"`includeAllResources`\" pulumi-lang-python=\"`include_all_resources`\" pulumi-lang-yaml=\"`includeAllResources`\" pulumi-lang-java=\"`includeAllResources`\"\u003e`include_all_resources`\u003c/span\u003e levels only.\n"},"responseCache300x":{"type":"boolean","description":"When this option is checked Imperva will cache 301, 302, 303, 307, and 308 redirect response headers containing the target URI. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCache404Enabled":{"type":"boolean","description":"Whether or not to cache 404 responses. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCache404Time":{"type":"number","description":"The time in seconds to cache 404 responses. Value should be divisible by 60.\n"},"responseCacheEmptyResponses":{"type":"boolean","description":"Cache responses that don’t have a message body. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCacheHttp10Responses":{"type":"boolean","description":"Cache HTTP 1.0 type responses that don’t include the Content-Length header or chunking. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseCacheResponseHeaderMode":{"type":"string","description":"The working mode for caching response headers. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled**\n* **all** - Cache all headers in responses.\n* **custom** - Specify which response headers should be cached along with the resource.\n"},"responseCacheResponseHeaders":{"type":"array","items":{"type":"string"},"description":"An array of strings representing the response headers to be cached when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e mode. If empty, no response headers are cached.\nFor example: `[\"Access-Control-Allow-Origin\",\"Access-Control-Allow-Methods\"]`.\n"},"responseCacheShield":{"type":"boolean","description":"Adds an intermediate cache between other Imperva PoPs and your origin servers to protect your servers from redundant requests. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"responseStaleContentMode":{"type":"string","description":"The working mode for serving stale content. **Default:** \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e\nPossible values:\n* **disabled** - Disable serving of stale content.\n* **adaptive** - Stale content is served for a duration of 2 to 24 hours based on the time passed since the resource was last updated.\n* **custom** - Serve stale content for the specified amount of time.\n"},"responseStaleContentTime":{"type":"number","description":"The time, in seconds, to serve stale content for when working in \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e work mode.\n"},"responseTagResponseHeader":{"type":"string","description":"Tag the response according to the value of this header. Specify which origin response header contains the cache tags in your resources.\n"},"siteCacheConfigurationId":{"type":"string","description":"Unique identifier in the API for the Site Cache configuration. The id is identical to Site id.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on."},"ttlPreferLastModified":{"type":"boolean","description":"Prefer 'Last Modified' over eTag. When this option is checked, Imperva prefers using Last Modified values (if available) over eTag values (recommended on multi-server setups). **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"ttlUseShortestCaching":{"type":"boolean","description":"Use shortest caching duration in case of conflicts. By default, the longest duration is used in case of conflict between caching rules or modes. When this option is checked, Imperva uses the shortest duration in case of conflict. **Default:** \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"type":"object"}},"incapsula:index/siteDomainConfiguration:SiteDomainConfiguration":{"description":"Provides an Incapsula Site Domain Configuration resource.\nThe provider will add/delete domains to/from an Imperva site, based on this resource.\n\nNote: The provider is using a single update request, hence domains that exists in the account, but\nare missing from the TF file will be deleted.\n\nThis resource is designed to work with sites represented by the \u003cspan pulumi-lang-nodejs=\"\"incapsula.Site\"\" pulumi-lang-dotnet=\"\"incapsula.Site\"\" pulumi-lang-go=\"\"Site\"\" pulumi-lang-python=\"\"Site\"\" pulumi-lang-yaml=\"\"incapsula.Site\"\" pulumi-lang-java=\"\"incapsula.Site\"\"\u003e\"incapsula.Site\"\u003c/span\u003e resource, and cannot be used together in the same configuration with the \u003cspan pulumi-lang-nodejs=\"\"incapsula.Domain\"\" pulumi-lang-dotnet=\"\"incapsula.Domain\"\" pulumi-lang-go=\"\"Domain\"\" pulumi-lang-python=\"\"Domain\"\" pulumi-lang-yaml=\"\"incapsula.Domain\"\" pulumi-lang-java=\"\"incapsula.Domain\"\"\u003e\"incapsula.Domain\"\u003c/span\u003e resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst site_domain_configuration = new incapsula.SiteDomainConfiguration(\"site-domain-configuration\", {\n    siteId: example_site.id,\n    domains: [\n        {\n            name: \"example-a.my-web-site.com\",\n        },\n        {\n            name: \"example-b.my-web-site.com\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nsite_domain_configuration = incapsula.SiteDomainConfiguration(\"site-domain-configuration\",\n    site_id=example_site[\"id\"],\n    domains=[\n        {\n            \"name\": \"example-a.my-web-site.com\",\n        },\n        {\n            \"name\": \"example-b.my-web-site.com\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var site_domain_configuration = new Incapsula.SiteDomainConfiguration(\"site-domain-configuration\", new()\n    {\n        SiteId = example_site.Id,\n        Domains = new[]\n        {\n            new Incapsula.Inputs.SiteDomainConfigurationDomainArgs\n            {\n                Name = \"example-a.my-web-site.com\",\n            },\n            new Incapsula.Inputs.SiteDomainConfigurationDomainArgs\n            {\n                Name = \"example-b.my-web-site.com\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiteDomainConfiguration(ctx, \"site-domain-configuration\", \u0026incapsula.SiteDomainConfigurationArgs{\n\t\t\tSiteId: pulumi.Any(example_site.Id),\n\t\t\tDomains: incapsula.SiteDomainConfigurationDomainArray{\n\t\t\t\t\u0026incapsula.SiteDomainConfigurationDomainArgs{\n\t\t\t\t\tName: pulumi.String(\"example-a.my-web-site.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.SiteDomainConfigurationDomainArgs{\n\t\t\t\t\tName: pulumi.String(\"example-b.my-web-site.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.SiteDomainConfiguration;\nimport com.pulumi.incapsula.SiteDomainConfigurationArgs;\nimport com.pulumi.incapsula.inputs.SiteDomainConfigurationDomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var site_domain_configuration = new SiteDomainConfiguration(\"site-domain-configuration\", SiteDomainConfigurationArgs.builder()\n            .siteId(example_site.id())\n            .domains(            \n                SiteDomainConfigurationDomainArgs.builder()\n                    .name(\"example-a.my-web-site.com\")\n                    .build(),\n                SiteDomainConfigurationDomainArgs.builder()\n                    .name(\"example-b.my-web-site.com\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  site-domain-configuration:\n    type: incapsula:SiteDomainConfiguration\n    properties:\n      siteId: ${[\"example-site\"].id}\n      domains:\n        - name: example-a.my-web-site.com\n        - name: example-b.my-web-site.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\n### Auto-discovered domains: \nThe provider ignores Auto-Discovered domains, hence it will not delete such domains, and it will\nnot manage them on the TF state.\n\n### Maximum domains per Imperva site: \nAs per the official Website Domain Management feature, the number of domains permitted for each website is\nup to 1,000.\u003cbr /\u003e\nNote: This includes auto-discovered domains.\u003cbr /\u003e\nThe official docs for Website Domain Management API are located here: https://docs.imperva.com/bundle/cloud-application-security/page/website-domain-api-definition.htm\n\n## Import\n\nSite domain configuration can be imported using the site_id, e.g.:\n\n```sh\n$ pulumi import incapsula:index/siteDomainConfiguration:SiteDomainConfiguration example_incapsula_site_domain_configuration site_id\n```\n","properties":{"cnameRedirectionRecord":{"type":"string","description":"CNAME validation code for traffic redirection.  Point your domain's DNS to this record in order to forward the traffic to Imperva\n"},"deprecated":{"type":"boolean","description":"Use 'true' to deprecate this resource, any change on the resource will not take effect. Deleting the resource will not delete the domains. Default value: false"},"domains":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteDomainConfigurationDomain:SiteDomainConfigurationDomain"},"description":"The fully qualified domain name of the site.\n"},"siteDomainConfigurationId":{"type":"string","description":"The id of the domain.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FSiteDomainConfigurationTimeouts:SiteDomainConfigurationTimeouts"}},"type":"object","required":["cnameRedirectionRecord","domains","siteDomainConfigurationId","siteId"],"inputProperties":{"deprecated":{"type":"boolean","description":"Use 'true' to deprecate this resource, any change on the resource will not take effect. Deleting the resource will not delete the domains. Default value: false"},"domains":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteDomainConfigurationDomain:SiteDomainConfigurationDomain"},"description":"The fully qualified domain name of the site.\n"},"siteDomainConfigurationId":{"type":"string","description":"The id of the domain.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FSiteDomainConfigurationTimeouts:SiteDomainConfigurationTimeouts"}},"requiredInputs":["domains","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteDomainConfiguration resources.\n","properties":{"cnameRedirectionRecord":{"type":"string","description":"CNAME validation code for traffic redirection.  Point your domain's DNS to this record in order to forward the traffic to Imperva\n"},"deprecated":{"type":"boolean","description":"Use 'true' to deprecate this resource, any change on the resource will not take effect. Deleting the resource will not delete the domains. Default value: false"},"domains":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteDomainConfigurationDomain:SiteDomainConfigurationDomain"},"description":"The fully qualified domain name of the site.\n"},"siteDomainConfigurationId":{"type":"string","description":"The id of the domain.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"timeouts":{"$ref":"#/types/incapsula:index%2FSiteDomainConfigurationTimeouts:SiteDomainConfigurationTimeouts"}},"type":"object"}},"incapsula:index/siteLogConfiguration:SiteLogConfiguration":{"description":"Provides an Incapsula Site Log Configuration resource.\n\nNote: This resource applies only to sites managed by the\u003cspan pulumi-lang-nodejs=\" incapsula.SiteV3 \" pulumi-lang-dotnet=\" incapsula.SiteV3 \" pulumi-lang-go=\" SiteV3 \" pulumi-lang-python=\" SiteV3 \" pulumi-lang-yaml=\" incapsula.SiteV3 \" pulumi-lang-java=\" incapsula.SiteV3 \"\u003e incapsula.SiteV3 \u003c/span\u003eresource. For sites managed by the\u003cspan pulumi-lang-nodejs=\" incapsula.Site \" pulumi-lang-dotnet=\" incapsula.Site \" pulumi-lang-go=\" Site \" pulumi-lang-python=\" Site \" pulumi-lang-yaml=\" incapsula.Site \" pulumi-lang-java=\" incapsula.Site \"\u003e incapsula.Site \u003c/span\u003eresource, please use the relevant fields from the\u003cspan pulumi-lang-nodejs=\" incapsula.Site \" pulumi-lang-dotnet=\" incapsula.Site \" pulumi-lang-go=\" Site \" pulumi-lang-python=\" Site \" pulumi-lang-yaml=\" incapsula.Site \" pulumi-lang-java=\" incapsula.Site \"\u003e incapsula.Site \u003c/span\u003eresource instead.\n\nIn this resource, you can configure:\n- Log Level: The log level for the site. Options include security logs only, both security and access logs, or no logging.\n- Logs Account ID: The account ID that collects the logs.\n- Data Storage Region: The region where the data is stored.\n\nNote: This resource is designed to work with sites represented by the \u003cspan pulumi-lang-nodejs=\"\"incapsula.SiteV3\"\" pulumi-lang-dotnet=\"\"incapsula.SiteV3\"\" pulumi-lang-go=\"\"SiteV3\"\" pulumi-lang-python=\"\"SiteV3\"\" pulumi-lang-yaml=\"\"incapsula.SiteV3\"\" pulumi-lang-java=\"\"incapsula.SiteV3\"\"\u003e\"incapsula.SiteV3\"\u003c/span\u003e resource only.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example = new incapsula.SiteLogConfiguration(\"example\", {\n    siteId: \"1234341\",\n    logsAccountId: \"67890\",\n    logLevel: \"full\",\n    dataStorageRegion: \"US\",\n    hashingEnabled: true,\n    hashSalt: \"EJKHRT48375N4TKE7956NG\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample = incapsula.SiteLogConfiguration(\"example\",\n    site_id=\"1234341\",\n    logs_account_id=\"67890\",\n    log_level=\"full\",\n    data_storage_region=\"US\",\n    hashing_enabled=True,\n    hash_salt=\"EJKHRT48375N4TKE7956NG\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Incapsula.SiteLogConfiguration(\"example\", new()\n    {\n        SiteId = \"1234341\",\n        LogsAccountId = \"67890\",\n        LogLevel = \"full\",\n        DataStorageRegion = \"US\",\n        HashingEnabled = true,\n        HashSalt = \"EJKHRT48375N4TKE7956NG\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiteLogConfiguration(ctx, \"example\", \u0026incapsula.SiteLogConfigurationArgs{\n\t\t\tSiteId:            pulumi.String(\"1234341\"),\n\t\t\tLogsAccountId:     pulumi.String(\"67890\"),\n\t\t\tLogLevel:          pulumi.String(\"full\"),\n\t\t\tDataStorageRegion: pulumi.String(\"US\"),\n\t\t\tHashingEnabled:    pulumi.Bool(true),\n\t\t\tHashSalt:          pulumi.String(\"EJKHRT48375N4TKE7956NG\"),\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.incapsula.SiteLogConfiguration;\nimport com.pulumi.incapsula.SiteLogConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new SiteLogConfiguration(\"example\", SiteLogConfigurationArgs.builder()\n            .siteId(\"1234341\")\n            .logsAccountId(\"67890\")\n            .logLevel(\"full\")\n            .dataStorageRegion(\"US\")\n            .hashingEnabled(true)\n            .hashSalt(\"EJKHRT48375N4TKE7956NG\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: incapsula:SiteLogConfiguration\n    properties:\n      siteId: '1234341'\n      logsAccountId: '67890'\n      logLevel: full\n      dataStorageRegion: US\n      hashingEnabled: true\n      hashSalt: EJKHRT48375N4TKE7956NG\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Dependencies\n\nThe\u003cspan pulumi-lang-nodejs=\" logLevel \" pulumi-lang-dotnet=\" LogLevel \" pulumi-lang-go=\" logLevel \" pulumi-lang-python=\" log_level \" pulumi-lang-yaml=\" logLevel \" pulumi-lang-java=\" logLevel \"\u003e log_level \u003c/span\u003eattribute is specific to logs for the Cloud WAF service.\n\nTo configure the log level, you need the \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-dotnet=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-go=\"`SiemLogConfiguration`\" pulumi-lang-python=\"`SiemLogConfiguration`\" pulumi-lang-yaml=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-java=\"`incapsula.SiemLogConfiguration`\"\u003e`incapsula.SiemLogConfiguration`\u003c/span\u003e resource with logs configured for the Cloud WAF service.\n\n## Import\n\nSite Log Configuration can be imported using the `site_id`:\n\n```sh\n$ pulumi import incapsula:index/siteLogConfiguration:SiteLogConfiguration demo 1234\n```\n","properties":{"dataStorageRegion":{"type":"string","description":"The data region to use. Options are `APAC`, `AU`, `EU`, and `US`.\n"},"hashSalt":{"type":"string","description":"Hashing salt to use for the hashing process. Required if hashing is enabled. Maximum length of 64 characters.\n"},"hashingEnabled":{"type":"boolean","description":"Use the hashing method for masking fields in your logs and in the Security Events page, instead of the default (XXX) data masking.\n"},"logLevel":{"type":"string","description":"The log level options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Full logging includes both security and access logs.\n"},"logsAccountId":{"type":"string","description":"Numeric identifier of the account that collects the logs.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"siteLogConfigurationId":{"type":"string","description":"Unique identifier in the API for the Site Log Configuration. The id is identical to Site id.\n"}},"type":"object","required":["dataStorageRegion","hashSalt","hashingEnabled","logLevel","logsAccountId","siteId","siteLogConfigurationId"],"inputProperties":{"dataStorageRegion":{"type":"string","description":"The data region to use. Options are `APAC`, `AU`, `EU`, and `US`.\n"},"hashSalt":{"type":"string","description":"Hashing salt to use for the hashing process. Required if hashing is enabled. Maximum length of 64 characters.\n"},"hashingEnabled":{"type":"boolean","description":"Use the hashing method for masking fields in your logs and in the Security Events page, instead of the default (XXX) data masking.\n"},"logLevel":{"type":"string","description":"The log level options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Full logging includes both security and access logs.\n"},"logsAccountId":{"type":"string","description":"Numeric identifier of the account that collects the logs.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"siteLogConfigurationId":{"type":"string","description":"Unique identifier in the API for the Site Log Configuration. The id is identical to Site id.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteLogConfiguration resources.\n","properties":{"dataStorageRegion":{"type":"string","description":"The data region to use. Options are `APAC`, `AU`, `EU`, and `US`.\n"},"hashSalt":{"type":"string","description":"Hashing salt to use for the hashing process. Required if hashing is enabled. Maximum length of 64 characters.\n"},"hashingEnabled":{"type":"boolean","description":"Use the hashing method for masking fields in your logs and in the Security Events page, instead of the default (XXX) data masking.\n"},"logLevel":{"type":"string","description":"The log level options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Full logging includes both security and access logs.\n"},"logsAccountId":{"type":"string","description":"Numeric identifier of the account that collects the logs.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"siteLogConfigurationId":{"type":"string","description":"Unique identifier in the API for the Site Log Configuration. The id is identical to Site id.\n"}},"type":"object"}},"incapsula:index/siteMonitoring:SiteMonitoring":{"description":"Configure settings to determine when origin servers should be considered \"up\" or \"down\" (active or inactive) by the Imperva Load Balancer. \nSelect which failure scenarios you want to produce alarm messages, and how to send them.\n\nNote that destroy action doesn't do any change in Imperva system. To return to default values,\ndelete all resource fields but \u003cspan pulumi-lang-nodejs=\"`siteId`\" pulumi-lang-dotnet=\"`SiteId`\" pulumi-lang-go=\"`siteId`\" pulumi-lang-python=\"`site_id`\" pulumi-lang-yaml=\"`siteId`\" pulumi-lang-java=\"`siteId`\"\u003e`site_id`\u003c/span\u003e and execute `pulumi up`\n\n## Example Usage\n\n### Basic Usage - Site Monitoring\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst exampleSiteMonitoring = new incapsula.SiteMonitoring(\"example_site_monitoring\", {\n    siteId: 1234,\n    failedRequestsPercentage: 30,\n    failedRequestsMinNumber: 2,\n    failedRequestsDuration: 1,\n    failedRequestsDurationUnits: \"MINUTES\",\n    httpRequestTimeout: 50,\n    httpRequestTimeoutUnits: \"SECONDS\",\n    httpResponseError: \"501-599\",\n    useVerificationForDown: false,\n    monitoringUrl: \"/users\",\n    expectedReceivedString: \"some string\",\n    upChecksInterval: 15,\n    upChecksIntervalUnits: \"SECONDS\",\n    upCheckRetries: 10,\n    alarmOnStandsByFailover: true,\n    alarmOnDcFailover: true,\n    alarmOnServerFailover: true,\n    requiredMonitors: \"ALL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_site_monitoring = incapsula.SiteMonitoring(\"example_site_monitoring\",\n    site_id=1234,\n    failed_requests_percentage=30,\n    failed_requests_min_number=2,\n    failed_requests_duration=1,\n    failed_requests_duration_units=\"MINUTES\",\n    http_request_timeout=50,\n    http_request_timeout_units=\"SECONDS\",\n    http_response_error=\"501-599\",\n    use_verification_for_down=False,\n    monitoring_url=\"/users\",\n    expected_received_string=\"some string\",\n    up_checks_interval=15,\n    up_checks_interval_units=\"SECONDS\",\n    up_check_retries=10,\n    alarm_on_stands_by_failover=True,\n    alarm_on_dc_failover=True,\n    alarm_on_server_failover=True,\n    required_monitors=\"ALL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSiteMonitoring = new Incapsula.SiteMonitoring(\"example_site_monitoring\", new()\n    {\n        SiteId = 1234,\n        FailedRequestsPercentage = 30,\n        FailedRequestsMinNumber = 2,\n        FailedRequestsDuration = 1,\n        FailedRequestsDurationUnits = \"MINUTES\",\n        HttpRequestTimeout = 50,\n        HttpRequestTimeoutUnits = \"SECONDS\",\n        HttpResponseError = \"501-599\",\n        UseVerificationForDown = false,\n        MonitoringUrl = \"/users\",\n        ExpectedReceivedString = \"some string\",\n        UpChecksInterval = 15,\n        UpChecksIntervalUnits = \"SECONDS\",\n        UpCheckRetries = 10,\n        AlarmOnStandsByFailover = true,\n        AlarmOnDcFailover = true,\n        AlarmOnServerFailover = true,\n        RequiredMonitors = \"ALL\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiteMonitoring(ctx, \"example_site_monitoring\", \u0026incapsula.SiteMonitoringArgs{\n\t\t\tSiteId:                      pulumi.Float64(1234),\n\t\t\tFailedRequestsPercentage:    pulumi.Float64(30),\n\t\t\tFailedRequestsMinNumber:     pulumi.Float64(2),\n\t\t\tFailedRequestsDuration:      pulumi.Float64(1),\n\t\t\tFailedRequestsDurationUnits: pulumi.String(\"MINUTES\"),\n\t\t\tHttpRequestTimeout:          pulumi.Float64(50),\n\t\t\tHttpRequestTimeoutUnits:     pulumi.String(\"SECONDS\"),\n\t\t\tHttpResponseError:           pulumi.String(\"501-599\"),\n\t\t\tUseVerificationForDown:      pulumi.Bool(false),\n\t\t\tMonitoringUrl:               pulumi.String(\"/users\"),\n\t\t\tExpectedReceivedString:      pulumi.String(\"some string\"),\n\t\t\tUpChecksInterval:            pulumi.Float64(15),\n\t\t\tUpChecksIntervalUnits:       pulumi.String(\"SECONDS\"),\n\t\t\tUpCheckRetries:              pulumi.Float64(10),\n\t\t\tAlarmOnStandsByFailover:     pulumi.Bool(true),\n\t\t\tAlarmOnDcFailover:           pulumi.Bool(true),\n\t\t\tAlarmOnServerFailover:       pulumi.Bool(true),\n\t\t\tRequiredMonitors:            pulumi.String(\"ALL\"),\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.incapsula.SiteMonitoring;\nimport com.pulumi.incapsula.SiteMonitoringArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSiteMonitoring = new SiteMonitoring(\"exampleSiteMonitoring\", SiteMonitoringArgs.builder()\n            .siteId(1234.0)\n            .failedRequestsPercentage(30.0)\n            .failedRequestsMinNumber(2.0)\n            .failedRequestsDuration(1.0)\n            .failedRequestsDurationUnits(\"MINUTES\")\n            .httpRequestTimeout(50.0)\n            .httpRequestTimeoutUnits(\"SECONDS\")\n            .httpResponseError(\"501-599\")\n            .useVerificationForDown(false)\n            .monitoringUrl(\"/users\")\n            .expectedReceivedString(\"some string\")\n            .upChecksInterval(15.0)\n            .upChecksIntervalUnits(\"SECONDS\")\n            .upCheckRetries(10.0)\n            .alarmOnStandsByFailover(true)\n            .alarmOnDcFailover(true)\n            .alarmOnServerFailover(true)\n            .requiredMonitors(\"ALL\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSiteMonitoring:\n    type: incapsula:SiteMonitoring\n    name: example_site_monitoring\n    properties:\n      siteId: 1234\n      failedRequestsPercentage: 30\n      failedRequestsMinNumber: 2\n      failedRequestsDuration: 1\n      failedRequestsDurationUnits: MINUTES\n      httpRequestTimeout: 50\n      httpRequestTimeoutUnits: SECONDS\n      httpResponseError: 501-599\n      useVerificationForDown: false\n      monitoringUrl: /users\n      expectedReceivedString: some string\n      upChecksInterval: 15\n      upChecksIntervalUnits: SECONDS\n      upCheckRetries: 10\n      alarmOnStandsByFailover: true\n      alarmOnDcFailover: true\n      alarmOnServerFailover: true\n      requiredMonitors: ALL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSite Monitoring configuration can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/siteMonitoring:SiteMonitoring example_site_monitoring 1234\n```\n","properties":{"alarmOnDcFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon data center failover. This parameter is relevant only for a multiple data center configuration. Default: true\n"},"alarmOnServerFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon server failover. Default: false\n"},"alarmOnStandsByFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon failover to a standby data center. This parameter is relevant only for a multiple data center configuration that includes a standby data center. Default: true\n"},"expectedReceivedString":{"type":"string","description":"The expected string. If left empty, any response, except for the codes defined in the HTTP response error codes to be treated as Down parameter, will be considered successful. If the value is non-empty, then the defined value must appear within the response string for the response to be considered successful.\n"},"failedRequestsDuration":{"type":"number","description":"The minimum duration of failures above the threshold to consider server as down. 20-180 SECONDS or 1-2 MINUTES. Default: 40.\n"},"failedRequestsDurationUnits":{"type":"string","description":"Time unit. Possible values: SECONDS, MINUTES. Default: SECONDS.\n"},"failedRequestsMinNumber":{"type":"number","description":"The minimum number of failed requests to be considered as failure. Default: 3\n"},"failedRequestsPercentage":{"type":"number","description":"The percentage of failed requests to the origin server. Default: 40\n"},"httpRequestTimeout":{"type":"number","description":"The maximum time to wait for an HTTP response. 1-200 SECONDS or 1-2 MINUTES. Default: 35\n"},"httpRequestTimeoutUnits":{"type":"string","description":"Time unit. Default: SECONDS.\n"},"httpResponseError":{"type":"string","description":"The HTTP response error codes or patterns that will be counted as request failures. Default: \"501-599\".\n"},"monitoringUrl":{"type":"string","description":"The URL to use for monitoring your website. Default: \"/\"\n"},"requiredMonitors":{"type":"string","description":"Monitors required to report server / data center as down. Default: \"MOST\"\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"siteMonitoringId":{"type":"string","description":"Unique identifier in the API for the Site Monitoring. The id is identical to Site id.\n"},"upCheckRetries":{"type":"number","description":"Every time an origin server is tested to see whether it’s back up, the test will be retried this number of times. Default: 3\n"},"upChecksInterval":{"type":"number","description":"After an origin server was identified as down, Imperva will periodically test it to see whether it has recovered, according to the frequency defined in this parameter. 10-120 SECONDS or 1-2 MINUTES. Default: 20\n"},"upChecksIntervalUnits":{"type":"string","description":"Time unit. Default: SECONDS.\n"},"useVerificationForDown":{"type":"boolean","description":"If Imperva determines that an origin server is down according to failed request criteria, it will initiate another request to verify that the origin server is down. Default: true\n"}},"type":"object","required":["siteId","siteMonitoringId"],"inputProperties":{"alarmOnDcFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon data center failover. This parameter is relevant only for a multiple data center configuration. Default: true\n"},"alarmOnServerFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon server failover. Default: false\n"},"alarmOnStandsByFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon failover to a standby data center. This parameter is relevant only for a multiple data center configuration that includes a standby data center. Default: true\n"},"expectedReceivedString":{"type":"string","description":"The expected string. If left empty, any response, except for the codes defined in the HTTP response error codes to be treated as Down parameter, will be considered successful. If the value is non-empty, then the defined value must appear within the response string for the response to be considered successful.\n"},"failedRequestsDuration":{"type":"number","description":"The minimum duration of failures above the threshold to consider server as down. 20-180 SECONDS or 1-2 MINUTES. Default: 40.\n"},"failedRequestsDurationUnits":{"type":"string","description":"Time unit. Possible values: SECONDS, MINUTES. Default: SECONDS.\n"},"failedRequestsMinNumber":{"type":"number","description":"The minimum number of failed requests to be considered as failure. Default: 3\n"},"failedRequestsPercentage":{"type":"number","description":"The percentage of failed requests to the origin server. Default: 40\n"},"httpRequestTimeout":{"type":"number","description":"The maximum time to wait for an HTTP response. 1-200 SECONDS or 1-2 MINUTES. Default: 35\n"},"httpRequestTimeoutUnits":{"type":"string","description":"Time unit. Default: SECONDS.\n"},"httpResponseError":{"type":"string","description":"The HTTP response error codes or patterns that will be counted as request failures. Default: \"501-599\".\n"},"monitoringUrl":{"type":"string","description":"The URL to use for monitoring your website. Default: \"/\"\n"},"requiredMonitors":{"type":"string","description":"Monitors required to report server / data center as down. Default: \"MOST\"\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"siteMonitoringId":{"type":"string","description":"Unique identifier in the API for the Site Monitoring. The id is identical to Site id.\n"},"upCheckRetries":{"type":"number","description":"Every time an origin server is tested to see whether it’s back up, the test will be retried this number of times. Default: 3\n"},"upChecksInterval":{"type":"number","description":"After an origin server was identified as down, Imperva will periodically test it to see whether it has recovered, according to the frequency defined in this parameter. 10-120 SECONDS or 1-2 MINUTES. Default: 20\n"},"upChecksIntervalUnits":{"type":"string","description":"Time unit. Default: SECONDS.\n"},"useVerificationForDown":{"type":"boolean","description":"If Imperva determines that an origin server is down according to failed request criteria, it will initiate another request to verify that the origin server is down. Default: true\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteMonitoring resources.\n","properties":{"alarmOnDcFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon data center failover. This parameter is relevant only for a multiple data center configuration. Default: true\n"},"alarmOnServerFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon server failover. Default: false\n"},"alarmOnStandsByFailover":{"type":"boolean","description":"Indicates whether or not an email will be sent upon failover to a standby data center. This parameter is relevant only for a multiple data center configuration that includes a standby data center. Default: true\n"},"expectedReceivedString":{"type":"string","description":"The expected string. If left empty, any response, except for the codes defined in the HTTP response error codes to be treated as Down parameter, will be considered successful. If the value is non-empty, then the defined value must appear within the response string for the response to be considered successful.\n"},"failedRequestsDuration":{"type":"number","description":"The minimum duration of failures above the threshold to consider server as down. 20-180 SECONDS or 1-2 MINUTES. Default: 40.\n"},"failedRequestsDurationUnits":{"type":"string","description":"Time unit. Possible values: SECONDS, MINUTES. Default: SECONDS.\n"},"failedRequestsMinNumber":{"type":"number","description":"The minimum number of failed requests to be considered as failure. Default: 3\n"},"failedRequestsPercentage":{"type":"number","description":"The percentage of failed requests to the origin server. Default: 40\n"},"httpRequestTimeout":{"type":"number","description":"The maximum time to wait for an HTTP response. 1-200 SECONDS or 1-2 MINUTES. Default: 35\n"},"httpRequestTimeoutUnits":{"type":"string","description":"Time unit. Default: SECONDS.\n"},"httpResponseError":{"type":"string","description":"The HTTP response error codes or patterns that will be counted as request failures. Default: \"501-599\".\n"},"monitoringUrl":{"type":"string","description":"The URL to use for monitoring your website. Default: \"/\"\n"},"requiredMonitors":{"type":"string","description":"Monitors required to report server / data center as down. Default: \"MOST\"\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"siteMonitoringId":{"type":"string","description":"Unique identifier in the API for the Site Monitoring. The id is identical to Site id.\n"},"upCheckRetries":{"type":"number","description":"Every time an origin server is tested to see whether it’s back up, the test will be retried this number of times. Default: 3\n"},"upChecksInterval":{"type":"number","description":"After an origin server was identified as down, Imperva will periodically test it to see whether it has recovered, according to the frequency defined in this parameter. 10-120 SECONDS or 1-2 MINUTES. Default: 20\n"},"upChecksIntervalUnits":{"type":"string","description":"Time unit. Default: SECONDS.\n"},"useVerificationForDown":{"type":"boolean","description":"If Imperva determines that an origin server is down according to failed request criteria, it will initiate another request to verify that the origin server is down. Default: true\n"}},"type":"object"}},"incapsula:index/siteSslSettings:SiteSslSettings":{"description":"Provides an Incapsula Site SSL Settings resource.\n\nIn this resource you can configure:\n- HSTS: A security mechanism enabling websites to announce themselves as accessible only via HTTPS. \nFor more information about HSTS, click [here](https://www.imperva.com/blog/hsts-strict-transport-security/).\n- TLS settings: Define the supported TLS version and cipher suites used for encryption of the TLS handshake between client and Imperva. \nFor more information about supported TLS versions and ciphers, click [here](https://docs.imperva.com/bundle/cloud-application-security/page/cipher-suites.htm).\n\nIf you run the SSL settings resource from a site for which SSL is not yet enabled and the SSL certificate is not approved, it will result in the following error response:\n- `status:` 406 \n- `message:` Site does not have SSL configured\n- To enable this feature for your site, you must first configure its SSL settings including a valid certificate.\n\n## Import\n\nSite SSL settings can be imported using the `siteId` or `siteId`/`accountId` for sub-accounts:\n\n```sh\n$ pulumi import incapsula:index/siteSslSettings:SiteSslSettings example 1234\n```\n\n```sh\n$ pulumi import incapsula:index/siteSslSettings:SiteSslSettings example 1234/4321\n```\n\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account in which the site is located.\n"},"disablePqcSupport":{"type":"boolean","description":": Disable Post-Quantum Cryptography support for SNI traffic.\n- Type: \u003cspan pulumi-lang-nodejs=\"`bool`\" pulumi-lang-dotnet=\"`Bool`\" pulumi-lang-go=\"`bool`\" pulumi-lang-python=\"`bool`\" pulumi-lang-yaml=\"`bool`\" pulumi-lang-java=\"`bool`\"\u003e`bool`\u003c/span\u003e\n- Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"hsts":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteSslSettingsHst:SiteSslSettingsHst"},"description":": HTTP Strict Transport Security (HSTS) configuration settings for the site.\n- Type: \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e of \u003cspan pulumi-lang-nodejs=\"`hstsConfig`\" pulumi-lang-dotnet=\"`HstsConfig`\" pulumi-lang-go=\"`hstsConfig`\" pulumi-lang-python=\"`hsts_config`\" pulumi-lang-yaml=\"`hstsConfig`\" pulumi-lang-java=\"`hstsConfig`\"\u003e`hsts_config`\u003c/span\u003e resource (defined below)\n"},"inboundTlsSettings":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteSslSettingsInboundTlsSetting:SiteSslSettingsInboundTlsSetting"},"description":": Transport Layer Security (TLS) configuration settings for the site.\n- Type: \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e of \u003cspan pulumi-lang-nodejs=\"`inboundTlsSettings`\" pulumi-lang-dotnet=\"`InboundTlsSettings`\" pulumi-lang-go=\"`inboundTlsSettings`\" pulumi-lang-python=\"`inbound_tls_settings`\" pulumi-lang-yaml=\"`inboundTlsSettings`\" pulumi-lang-java=\"`inboundTlsSettings`\"\u003e`inbound_tls_settings`\u003c/span\u003e resource (defined below)\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"siteSslSettingsId":{"type":"string","description":"Unique identifier in the API for the Site SSL settings. The id is identical to Site id.\n"}},"type":"object","required":["siteId","siteSslSettingsId"],"inputProperties":{"accountId":{"type":"number","description":"Numeric identifier of the account in which the site is located.\n"},"disablePqcSupport":{"type":"boolean","description":": Disable Post-Quantum Cryptography support for SNI traffic.\n- Type: \u003cspan pulumi-lang-nodejs=\"`bool`\" pulumi-lang-dotnet=\"`Bool`\" pulumi-lang-go=\"`bool`\" pulumi-lang-python=\"`bool`\" pulumi-lang-yaml=\"`bool`\" pulumi-lang-java=\"`bool`\"\u003e`bool`\u003c/span\u003e\n- Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"hsts":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteSslSettingsHst:SiteSslSettingsHst"},"description":": HTTP Strict Transport Security (HSTS) configuration settings for the site.\n- Type: \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e of \u003cspan pulumi-lang-nodejs=\"`hstsConfig`\" pulumi-lang-dotnet=\"`HstsConfig`\" pulumi-lang-go=\"`hstsConfig`\" pulumi-lang-python=\"`hsts_config`\" pulumi-lang-yaml=\"`hstsConfig`\" pulumi-lang-java=\"`hstsConfig`\"\u003e`hsts_config`\u003c/span\u003e resource (defined below)\n"},"inboundTlsSettings":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteSslSettingsInboundTlsSetting:SiteSslSettingsInboundTlsSetting"},"description":": Transport Layer Security (TLS) configuration settings for the site.\n- Type: \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e of \u003cspan pulumi-lang-nodejs=\"`inboundTlsSettings`\" pulumi-lang-dotnet=\"`InboundTlsSettings`\" pulumi-lang-go=\"`inboundTlsSettings`\" pulumi-lang-python=\"`inbound_tls_settings`\" pulumi-lang-yaml=\"`inboundTlsSettings`\" pulumi-lang-java=\"`inboundTlsSettings`\"\u003e`inbound_tls_settings`\u003c/span\u003e resource (defined below)\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"siteSslSettingsId":{"type":"string","description":"Unique identifier in the API for the Site SSL settings. The id is identical to Site id.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteSslSettings resources.\n","properties":{"accountId":{"type":"number","description":"Numeric identifier of the account in which the site is located.\n"},"disablePqcSupport":{"type":"boolean","description":": Disable Post-Quantum Cryptography support for SNI traffic.\n- Type: \u003cspan pulumi-lang-nodejs=\"`bool`\" pulumi-lang-dotnet=\"`Bool`\" pulumi-lang-go=\"`bool`\" pulumi-lang-python=\"`bool`\" pulumi-lang-yaml=\"`bool`\" pulumi-lang-java=\"`bool`\"\u003e`bool`\u003c/span\u003e\n- Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"hsts":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteSslSettingsHst:SiteSslSettingsHst"},"description":": HTTP Strict Transport Security (HSTS) configuration settings for the site.\n- Type: \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e of \u003cspan pulumi-lang-nodejs=\"`hstsConfig`\" pulumi-lang-dotnet=\"`HstsConfig`\" pulumi-lang-go=\"`hstsConfig`\" pulumi-lang-python=\"`hsts_config`\" pulumi-lang-yaml=\"`hstsConfig`\" pulumi-lang-java=\"`hstsConfig`\"\u003e`hsts_config`\u003c/span\u003e resource (defined below)\n"},"inboundTlsSettings":{"type":"array","items":{"$ref":"#/types/incapsula:index%2FSiteSslSettingsInboundTlsSetting:SiteSslSettingsInboundTlsSetting"},"description":": Transport Layer Security (TLS) configuration settings for the site.\n- Type: \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e of \u003cspan pulumi-lang-nodejs=\"`inboundTlsSettings`\" pulumi-lang-dotnet=\"`InboundTlsSettings`\" pulumi-lang-go=\"`inboundTlsSettings`\" pulumi-lang-python=\"`inbound_tls_settings`\" pulumi-lang-yaml=\"`inboundTlsSettings`\" pulumi-lang-java=\"`inboundTlsSettings`\"\u003e`inbound_tls_settings`\u003c/span\u003e resource (defined below)\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"siteSslSettingsId":{"type":"string","description":"Unique identifier in the API for the Site SSL settings. The id is identical to Site id.\n"}},"type":"object"}},"incapsula:index/siteV3:SiteV3":{"description":"Provides an Incapsula V3 site resource. A V3 site resource is the core resource that is required by all other resources.\u003cspan pulumi-lang-nodejs=\" incapsula.SiteV3 \" pulumi-lang-dotnet=\" incapsula.SiteV3 \" pulumi-lang-go=\" SiteV3 \" pulumi-lang-python=\" SiteV3 \" pulumi-lang-yaml=\" incapsula.SiteV3 \" pulumi-lang-java=\" incapsula.SiteV3 \"\u003e incapsula.SiteV3 \u003c/span\u003eis a newer version of incapsula_site. Site can be managed by\u003cspan pulumi-lang-nodejs=\" incapsula.SiteV3 \" pulumi-lang-dotnet=\" incapsula.SiteV3 \" pulumi-lang-go=\" SiteV3 \" pulumi-lang-python=\" SiteV3 \" pulumi-lang-yaml=\" incapsula.SiteV3 \" pulumi-lang-java=\" incapsula.SiteV3 \"\u003e incapsula.SiteV3 \u003c/span\u003eor incapsula_site, but not both simultaneously.\nFull site onboarding example with TF can be found here.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_site_v3 = new incapsula.SiteV3(\"example-site-v3\", {name: \"example.com\"});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_site_v3 = incapsula.SiteV3(\"example-site-v3\", name=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_site_v3 = new Incapsula.SiteV3(\"example-site-v3\", new()\n    {\n        Name = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSiteV3(ctx, \"example-site-v3\", \u0026incapsula.SiteV3Args{\n\t\t\tName: pulumi.String(\"example.com\"),\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.incapsula.SiteV3;\nimport com.pulumi.incapsula.SiteV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_site_v3 = new SiteV3(\"example-site-v3\", SiteV3Args.builder()\n            .name(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-site-v3:\n    type: incapsula:SiteV3\n    properties:\n      name: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSite can be imported using the `account Id`/`id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/siteV3:SiteV3 example 543/1234\n```\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"active":{"type":"boolean","description":"Whether the site is active or bypassed by the Imperva network.\n"},"cname":{"type":"string","description":"The CNAME provided by Imperva that is used for pointing your website traffic to the Imperva network.\n"},"creationTime":{"type":"number","description":"Creation time of the site.\n"},"name":{"type":"string","description":"The site name.\n"},"refId":{"type":"string","description":"Sets the Reference ID. A free-text field that enables you to add a unique identifier to correlate a website in our service with an object on the customer side.\n"},"siteV3Id":{"type":"string","description":"Unique identifier in the API for the site.\n"},"type":{"type":"string","description":"The website type. Indicates which kind of website is created. The allowed options is CLOUD_WAF for a website onboarded to Imperva Cloud WAF.\n"}},"type":"object","required":["accountId","cname","creationTime","name","siteV3Id"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"active":{"type":"boolean","description":"Whether the site is active or bypassed by the Imperva network.\n"},"name":{"type":"string","description":"The site name.\n"},"refId":{"type":"string","description":"Sets the Reference ID. A free-text field that enables you to add a unique identifier to correlate a website in our service with an object on the customer side.\n"},"siteV3Id":{"type":"string","description":"Unique identifier in the API for the site.\n"},"type":{"type":"string","description":"The website type. Indicates which kind of website is created. The allowed options is CLOUD_WAF for a website onboarded to Imperva Cloud WAF.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SiteV3 resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"active":{"type":"boolean","description":"Whether the site is active or bypassed by the Imperva network.\n"},"cname":{"type":"string","description":"The CNAME provided by Imperva that is used for pointing your website traffic to the Imperva network.\n"},"creationTime":{"type":"number","description":"Creation time of the site.\n"},"name":{"type":"string","description":"The site name.\n"},"refId":{"type":"string","description":"Sets the Reference ID. A free-text field that enables you to add a unique identifier to correlate a website in our service with an object on the customer side.\n"},"siteV3Id":{"type":"string","description":"Unique identifier in the API for the site.\n"},"type":{"type":"string","description":"The website type. Indicates which kind of website is created. The allowed options is CLOUD_WAF for a website onboarded to Imperva Cloud WAF.\n"}},"type":"object"}},"incapsula:index/sslValidation:SslValidation":{"properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on."},"domainIds":{"type":"array","items":{"type":"string"},"description":"List of\u003cspan pulumi-lang-nodejs=\" incapsula.Domain \" pulumi-lang-dotnet=\" incapsula.Domain \" pulumi-lang-go=\" Domain \" pulumi-lang-python=\" Domain \" pulumi-lang-yaml=\" incapsula.Domain \" pulumi-lang-java=\" incapsula.Domain \"\u003e incapsula.Domain \u003c/span\u003eids that .\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"sslValidationId":{"type":"string","description":"The id of the SSL validation resource.\n"}},"type":"object","required":["domainIds","siteId","sslValidationId"],"inputProperties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on."},"domainIds":{"type":"array","items":{"type":"string"},"description":"List of\u003cspan pulumi-lang-nodejs=\" incapsula.Domain \" pulumi-lang-dotnet=\" incapsula.Domain \" pulumi-lang-go=\" Domain \" pulumi-lang-python=\" Domain \" pulumi-lang-yaml=\" incapsula.Domain \" pulumi-lang-java=\" incapsula.Domain \"\u003e incapsula.Domain \u003c/span\u003eids that .\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"sslValidationId":{"type":"string","description":"The id of the SSL validation resource.\n"}},"requiredInputs":["domainIds","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SslValidation resources.\n","properties":{"accountId":{"type":"string","description":"Numeric identifier of the account to operate on."},"domainIds":{"type":"array","items":{"type":"string"},"description":"List of\u003cspan pulumi-lang-nodejs=\" incapsula.Domain \" pulumi-lang-dotnet=\" incapsula.Domain \" pulumi-lang-go=\" Domain \" pulumi-lang-python=\" Domain \" pulumi-lang-yaml=\" incapsula.Domain \" pulumi-lang-java=\" incapsula.Domain \"\u003e incapsula.Domain \u003c/span\u003eids that .\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"sslValidationId":{"type":"string","description":"The id of the SSL validation resource.\n"}},"type":"object"}},"incapsula:index/subaccount:Subaccount":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_subaccount = new incapsula.Subaccount(\"example-subaccount\", {\n    subAccountName: \"Example SubAccount\",\n    logsAccountId: 789,\n    logLevel: \"full\",\n    dataStorageRegion: \"US\",\n    enableHttp2ForNewSites: \"true\",\n    enableHttp2ToOriginForNewSites: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_subaccount = incapsula.Subaccount(\"example-subaccount\",\n    sub_account_name=\"Example SubAccount\",\n    logs_account_id=789,\n    log_level=\"full\",\n    data_storage_region=\"US\",\n    enable_http2_for_new_sites=\"true\",\n    enable_http2_to_origin_for_new_sites=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_subaccount = new Incapsula.Subaccount(\"example-subaccount\", new()\n    {\n        SubAccountName = \"Example SubAccount\",\n        LogsAccountId = 789,\n        LogLevel = \"full\",\n        DataStorageRegion = \"US\",\n        EnableHttp2ForNewSites = \"true\",\n        EnableHttp2ToOriginForNewSites = \"true\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewSubaccount(ctx, \"example-subaccount\", \u0026incapsula.SubaccountArgs{\n\t\t\tSubAccountName:                 pulumi.String(\"Example SubAccount\"),\n\t\t\tLogsAccountId:                  pulumi.Float64(789),\n\t\t\tLogLevel:                       pulumi.String(\"full\"),\n\t\t\tDataStorageRegion:              pulumi.String(\"US\"),\n\t\t\tEnableHttp2ForNewSites:         pulumi.String(\"true\"),\n\t\t\tEnableHttp2ToOriginForNewSites: pulumi.String(\"true\"),\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.incapsula.Subaccount;\nimport com.pulumi.incapsula.SubaccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_subaccount = new Subaccount(\"example-subaccount\", SubaccountArgs.builder()\n            .subAccountName(\"Example SubAccount\")\n            .logsAccountId(789.0)\n            .logLevel(\"full\")\n            .dataStorageRegion(\"US\")\n            .enableHttp2ForNewSites(\"true\")\n            .enableHttp2ToOriginForNewSites(\"true\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-subaccount:\n    type: incapsula:Subaccount\n    properties:\n      subAccountName: Example SubAccount\n      logsAccountId: '789'\n      logLevel: full\n      dataStorageRegion: US\n      enableHttp2ForNewSites: true\n      enableHttp2ToOriginForNewSites: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"dataStorageRegion":{"type":"string","description":"Default data region of the subaccount for newly created sites. Options are `APAC`, `EU`, `US` and `AU`. Defaults to `US`.\n"},"enableHttp2ForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between end-users (visitors) and Imperva for newly created SSL sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enableHttp2ToOriginForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between Imperva and your origin server for newly created SSL sites. This option can only be 'true' once 'enable_http2_for_new_sites' is enabled for newly created sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e.\n"},"logsAccountId":{"type":"number","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"parentId":{"type":"number","description":"The newly created subaccount's parent id. If not specified, the account identified by the authentication parameters will be assigned as the parent.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation.\n"},"subAccountName":{"type":"string","description":"SubAccount name.\n"},"subaccountId":{"type":"string","description":"Unique identifier in the API for the Sub Account ID.\n```\n$ terraform import incapsula_subaccount.demo 1234\n```\n"}},"type":"object","required":["parentId","subAccountName","subaccountId"],"inputProperties":{"dataStorageRegion":{"type":"string","description":"Default data region of the subaccount for newly created sites. Options are `APAC`, `EU`, `US` and `AU`. Defaults to `US`.\n"},"enableHttp2ForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between end-users (visitors) and Imperva for newly created SSL sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enableHttp2ToOriginForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between Imperva and your origin server for newly created SSL sites. This option can only be 'true' once 'enable_http2_for_new_sites' is enabled for newly created sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e.\n"},"logsAccountId":{"type":"number","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"parentId":{"type":"number","description":"The newly created subaccount's parent id. If not specified, the account identified by the authentication parameters will be assigned as the parent.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation.\n"},"subAccountName":{"type":"string","description":"SubAccount name.\n"},"subaccountId":{"type":"string","description":"Unique identifier in the API for the Sub Account ID.\n```\n$ terraform import incapsula_subaccount.demo 1234\n```\n"}},"requiredInputs":["subAccountName"],"stateInputs":{"description":"Input properties used for looking up and filtering Subaccount resources.\n","properties":{"dataStorageRegion":{"type":"string","description":"Default data region of the subaccount for newly created sites. Options are `APAC`, `EU`, `US` and `AU`. Defaults to `US`.\n"},"enableHttp2ForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between end-users (visitors) and Imperva for newly created SSL sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enableHttp2ToOriginForNewSites":{"type":"string","description":"Use this option to enable HTTP/2 support for traffic between Imperva and your origin server for newly created SSL sites. This option can only be 'true' once 'enable_http2_for_new_sites' is enabled for newly created sites. Options are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"logLevel":{"type":"string","description":"The log level. Options are \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`security`\" pulumi-lang-dotnet=\"`Security`\" pulumi-lang-go=\"`security`\" pulumi-lang-python=\"`security`\" pulumi-lang-yaml=\"`security`\" pulumi-lang-java=\"`security`\"\u003e`security`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e.\n"},"logsAccountId":{"type":"number","description":"Account where logs should be stored. Available only for Enterprise Plan customers that purchased the Logs Integration SKU. Numeric identifier of the account that purchased the logs integration SKU and which collects the logs. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"parentId":{"type":"number","description":"The newly created subaccount's parent id. If not specified, the account identified by the authentication parameters will be assigned as the parent.\n"},"refId":{"type":"string","description":"Customer specific identifier for this operation.\n"},"subAccountName":{"type":"string","description":"SubAccount name.\n"},"subaccountId":{"type":"string","description":"Unique identifier in the API for the Sub Account ID.\n```\n$ terraform import incapsula_subaccount.demo 1234\n```\n"}},"type":"object"}},"incapsula:index/txtRecord:TxtRecord":{"description":"Provides a TXT Record(s) association resource. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_site = new incapsula.Site(\"example-site\", {domain: \"www.example.com\"});\nconst test = new incapsula.TxtRecord(\"test\", {\n    siteId: example_site.siteId,\n    txtRecordValueOne: \"test1\",\n    txtRecordValueTwo: \"test2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_site = incapsula.Site(\"example-site\", domain=\"www.example.com\")\ntest = incapsula.TxtRecord(\"test\",\n    site_id=example_site.site_id,\n    txt_record_value_one=\"test1\",\n    txt_record_value_two=\"test2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_site = new Incapsula.Site(\"example-site\", new()\n    {\n        Domain = \"www.example.com\",\n    });\n\n    var test = new Incapsula.TxtRecord(\"test\", new()\n    {\n        SiteId = example_site.SiteId,\n        TxtRecordValueOne = \"test1\",\n        TxtRecordValueTwo = \"test2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_site, err := incapsula.NewSite(ctx, \"example-site\", \u0026incapsula.SiteArgs{\n\t\t\tDomain: pulumi.String(\"www.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewTxtRecord(ctx, \"test\", \u0026incapsula.TxtRecordArgs{\n\t\t\tSiteId:            example_site.SiteId,\n\t\t\tTxtRecordValueOne: pulumi.String(\"test1\"),\n\t\t\tTxtRecordValueTwo: pulumi.String(\"test2\"),\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.incapsula.Site;\nimport com.pulumi.incapsula.SiteArgs;\nimport com.pulumi.incapsula.TxtRecord;\nimport com.pulumi.incapsula.TxtRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_site = new Site(\"example-site\", SiteArgs.builder()\n            .domain(\"www.example.com\")\n            .build());\n\n        var test = new TxtRecord(\"test\", TxtRecordArgs.builder()\n            .siteId(example_site.siteId())\n            .txtRecordValueOne(\"test1\")\n            .txtRecordValueTwo(\"test2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-site:\n    type: incapsula:Site\n    properties:\n      domain: www.example.com\n  test:\n    type: incapsula:TxtRecord\n    properties:\n      siteId: ${[\"example-site\"].siteId}\n      txtRecordValueOne: test1\n      txtRecordValueTwo: test2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTXT Records can be imported using the `site_id`, e.g.:\n\n```sh\n$ pulumi import incapsula:index/txtRecord:TxtRecord demo 1234\n```\n","properties":{"siteId":{"type":"number","description":"Numeric identifier of the site.\n"},"txtRecordId":{"type":"string","description":"Unique identifier for the TXT Records association.\n"},"txtRecordValueFive":{"type":"string","description":"New value for txt record number five.\n"},"txtRecordValueFour":{"type":"string","description":"New value for txt record number four.\n"},"txtRecordValueOne":{"type":"string","description":"New value for txt record number one.\n"},"txtRecordValueThree":{"type":"string","description":"New value for txt record number three.\n"},"txtRecordValueTwo":{"type":"string","description":"New value for txt record number two.\n"}},"type":"object","required":["siteId","txtRecordId"],"inputProperties":{"siteId":{"type":"number","description":"Numeric identifier of the site.\n"},"txtRecordId":{"type":"string","description":"Unique identifier for the TXT Records association.\n"},"txtRecordValueFive":{"type":"string","description":"New value for txt record number five.\n"},"txtRecordValueFour":{"type":"string","description":"New value for txt record number four.\n"},"txtRecordValueOne":{"type":"string","description":"New value for txt record number one.\n"},"txtRecordValueThree":{"type":"string","description":"New value for txt record number three.\n"},"txtRecordValueTwo":{"type":"string","description":"New value for txt record number two.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering TxtRecord resources.\n","properties":{"siteId":{"type":"number","description":"Numeric identifier of the site.\n"},"txtRecordId":{"type":"string","description":"Unique identifier for the TXT Records association.\n"},"txtRecordValueFive":{"type":"string","description":"New value for txt record number five.\n"},"txtRecordValueFour":{"type":"string","description":"New value for txt record number four.\n"},"txtRecordValueOne":{"type":"string","description":"New value for txt record number one.\n"},"txtRecordValueThree":{"type":"string","description":"New value for txt record number three.\n"},"txtRecordValueTwo":{"type":"string","description":"New value for txt record number two.\n"}},"type":"object"}},"incapsula:index/wafLogSetup:WafLogSetup":{"description":"\u003e DEPRECATED:\u003cspan pulumi-lang-nodejs=\" incapsula.WafLogSetup\n\" pulumi-lang-dotnet=\" incapsula.WafLogSetup\n\" pulumi-lang-go=\" WafLogSetup\n\" pulumi-lang-python=\" WafLogSetup\n\" pulumi-lang-yaml=\" incapsula.WafLogSetup\n\" pulumi-lang-java=\" incapsula.WafLogSetup\n\"\u003e incapsula.WafLogSetup\n\u003c/span\u003e\nThis resource has been DEPRECATED. It will be removed in a future version.\nPlease use the current \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-dotnet=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-go=\"`SiemLogConfiguration`\" pulumi-lang-python=\"`SiemLogConfiguration`\" pulumi-lang-yaml=\"`incapsula.SiemLogConfiguration`\" pulumi-lang-java=\"`incapsula.SiemLogConfiguration`\"\u003e`incapsula.SiemLogConfiguration`\u003c/span\u003e for CWAF log configuration resource instead.\nFor SFTP Connection please use the current \u003cspan pulumi-lang-nodejs=\"`incapsula.SiemSftpConnection`\" pulumi-lang-dotnet=\"`incapsula.SiemSftpConnection`\" pulumi-lang-go=\"`SiemSftpConnection`\" pulumi-lang-python=\"`SiemSftpConnection`\" pulumi-lang-yaml=\"`incapsula.SiemSftpConnection`\" pulumi-lang-java=\"`incapsula.SiemSftpConnection`\"\u003e`incapsula.SiemSftpConnection`\u003c/span\u003e resource, and for S3 Connection please use the \u003cspan pulumi-lang-nodejs=\"`incapsulaSiemS3Connection`\" pulumi-lang-dotnet=\"`IncapsulaSiemS3Connection`\" pulumi-lang-go=\"`incapsulaSiemS3Connection`\" pulumi-lang-python=\"`incapsula_siem_s3_connection`\" pulumi-lang-yaml=\"`incapsulaSiemS3Connection`\" pulumi-lang-java=\"`incapsulaSiemS3Connection`\"\u003e`incapsula_siem_s3_connection`\u003c/span\u003e resource.\n\nProvides an Incapsula WAF Log Setup resource.\n\n## Example Usage\n\nExample #1: Setup Activated SFTP Connection\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst ex_sftp_wafLogSetup = new incapsula.WafLogSetup(\"ex-sftp-waf_log_setup\", {\n    accountId: 102030,\n    sftpHost: \"samplehost\",\n    sftpUserName: \"sampleuser\",\n    sftpPassword: \"**********\",\n    sftpDestinationFolder: \"/home/user_name/log_folder\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nex_sftp_waf_log_setup = incapsula.WafLogSetup(\"ex-sftp-waf_log_setup\",\n    account_id=102030,\n    sftp_host=\"samplehost\",\n    sftp_user_name=\"sampleuser\",\n    sftp_password=\"**********\",\n    sftp_destination_folder=\"/home/user_name/log_folder\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ex_sftp_wafLogSetup = new Incapsula.WafLogSetup(\"ex-sftp-waf_log_setup\", new()\n    {\n        AccountId = 102030,\n        SftpHost = \"samplehost\",\n        SftpUserName = \"sampleuser\",\n        SftpPassword = \"**********\",\n        SftpDestinationFolder = \"/home/user_name/log_folder\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewWafLogSetup(ctx, \"ex-sftp-waf_log_setup\", \u0026incapsula.WafLogSetupArgs{\n\t\t\tAccountId:             pulumi.Float64(102030),\n\t\t\tSftpHost:              pulumi.String(\"samplehost\"),\n\t\t\tSftpUserName:          pulumi.String(\"sampleuser\"),\n\t\t\tSftpPassword:          pulumi.String(\"**********\"),\n\t\t\tSftpDestinationFolder: pulumi.String(\"/home/user_name/log_folder\"),\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.incapsula.WafLogSetup;\nimport com.pulumi.incapsula.WafLogSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ex_sftp_wafLogSetup = new WafLogSetup(\"ex-sftp-wafLogSetup\", WafLogSetupArgs.builder()\n            .accountId(102030.0)\n            .sftpHost(\"samplehost\")\n            .sftpUserName(\"sampleuser\")\n            .sftpPassword(\"**********\")\n            .sftpDestinationFolder(\"/home/user_name/log_folder\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ex-sftp-wafLogSetup:\n    type: incapsula:WafLogSetup\n    name: ex-sftp-waf_log_setup\n    properties:\n      accountId: 102030\n      sftpHost: samplehost\n      sftpUserName: sampleuser\n      sftpPassword: '**********'\n      sftpDestinationFolder: /home/user_name/log_folder\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nExample #2: Setup Activated S3 Connection\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst ex_s3_wafLogSetup1 = new incapsula.WafLogSetup(\"ex-s3-waf_log_setup1\", {\n    accountId: 102030,\n    s3BucketName: \"bucket_name/log_folder\",\n    s3AccessKey: \"AKIAIOSFODNN7EXAMPLE\",\n    s3SecretKey: \"****************************************\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nex_s3_waf_log_setup1 = incapsula.WafLogSetup(\"ex-s3-waf_log_setup1\",\n    account_id=102030,\n    s3_bucket_name=\"bucket_name/log_folder\",\n    s3_access_key=\"AKIAIOSFODNN7EXAMPLE\",\n    s3_secret_key=\"****************************************\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ex_s3_wafLogSetup1 = new Incapsula.WafLogSetup(\"ex-s3-waf_log_setup1\", new()\n    {\n        AccountId = 102030,\n        S3BucketName = \"bucket_name/log_folder\",\n        S3AccessKey = \"AKIAIOSFODNN7EXAMPLE\",\n        S3SecretKey = \"****************************************\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewWafLogSetup(ctx, \"ex-s3-waf_log_setup1\", \u0026incapsula.WafLogSetupArgs{\n\t\t\tAccountId:    pulumi.Float64(102030),\n\t\t\tS3BucketName: pulumi.String(\"bucket_name/log_folder\"),\n\t\t\tS3AccessKey:  pulumi.String(\"AKIAIOSFODNN7EXAMPLE\"),\n\t\t\tS3SecretKey:  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.incapsula.WafLogSetup;\nimport com.pulumi.incapsula.WafLogSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ex_s3_wafLogSetup1 = new WafLogSetup(\"ex-s3-wafLogSetup1\", WafLogSetupArgs.builder()\n            .accountId(102030.0)\n            .s3BucketName(\"bucket_name/log_folder\")\n            .s3AccessKey(\"AKIAIOSFODNN7EXAMPLE\")\n            .s3SecretKey(\"****************************************\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ex-s3-wafLogSetup1:\n    type: incapsula:WafLogSetup\n    name: ex-s3-waf_log_setup1\n    properties:\n      accountId: 102030\n      s3BucketName: bucket_name/log_folder\n      s3AccessKey: AKIAIOSFODNN7EXAMPLE\n      s3SecretKey: '****************************************'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nExample #3: Setup Suspended S3 Connection\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst ex_s3_wafLogSetup2 = new incapsula.WafLogSetup(\"ex-s3-waf_log_setup2\", {\n    accountId: 102040,\n    enabled: false,\n    s3BucketName: \"bucket_name/log_folder\",\n    s3AccessKey: \"AKIAIOSFODNN7EXAMPLE\",\n    s3SecretKey: \"****************************************\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nex_s3_waf_log_setup2 = incapsula.WafLogSetup(\"ex-s3-waf_log_setup2\",\n    account_id=102040,\n    enabled=False,\n    s3_bucket_name=\"bucket_name/log_folder\",\n    s3_access_key=\"AKIAIOSFODNN7EXAMPLE\",\n    s3_secret_key=\"****************************************\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ex_s3_wafLogSetup2 = new Incapsula.WafLogSetup(\"ex-s3-waf_log_setup2\", new()\n    {\n        AccountId = 102040,\n        Enabled = false,\n        S3BucketName = \"bucket_name/log_folder\",\n        S3AccessKey = \"AKIAIOSFODNN7EXAMPLE\",\n        S3SecretKey = \"****************************************\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewWafLogSetup(ctx, \"ex-s3-waf_log_setup2\", \u0026incapsula.WafLogSetupArgs{\n\t\t\tAccountId:    pulumi.Float64(102040),\n\t\t\tEnabled:      pulumi.Bool(false),\n\t\t\tS3BucketName: pulumi.String(\"bucket_name/log_folder\"),\n\t\t\tS3AccessKey:  pulumi.String(\"AKIAIOSFODNN7EXAMPLE\"),\n\t\t\tS3SecretKey:  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.incapsula.WafLogSetup;\nimport com.pulumi.incapsula.WafLogSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ex_s3_wafLogSetup2 = new WafLogSetup(\"ex-s3-wafLogSetup2\", WafLogSetupArgs.builder()\n            .accountId(102040.0)\n            .enabled(false)\n            .s3BucketName(\"bucket_name/log_folder\")\n            .s3AccessKey(\"AKIAIOSFODNN7EXAMPLE\")\n            .s3SecretKey(\"****************************************\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ex-s3-wafLogSetup2:\n    type: incapsula:WafLogSetup\n    name: ex-s3-waf_log_setup2\n    properties:\n      accountId: 102040\n      enabled: false\n      s3BucketName: bucket_name/log_folder\n      s3AccessKey: AKIAIOSFODNN7EXAMPLE\n      s3SecretKey: '****************************************'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nExample #4: Setup Suspended Default (API) Connection\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst ex_s3_wafLogSetup3 = new incapsula.WafLogSetup(\"ex-s3-waf_log_setup3\", {\n    accountId: 102050,\n    enabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nex_s3_waf_log_setup3 = incapsula.WafLogSetup(\"ex-s3-waf_log_setup3\",\n    account_id=102050,\n    enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ex_s3_wafLogSetup3 = new Incapsula.WafLogSetup(\"ex-s3-waf_log_setup3\", new()\n    {\n        AccountId = 102050,\n        Enabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewWafLogSetup(ctx, \"ex-s3-waf_log_setup3\", \u0026incapsula.WafLogSetupArgs{\n\t\t\tAccountId: pulumi.Float64(102050),\n\t\t\tEnabled:   pulumi.Bool(false),\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.incapsula.WafLogSetup;\nimport com.pulumi.incapsula.WafLogSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ex_s3_wafLogSetup3 = new WafLogSetup(\"ex-s3-wafLogSetup3\", WafLogSetupArgs.builder()\n            .accountId(102050.0)\n            .enabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ex-s3-wafLogSetup3:\n    type: incapsula:WafLogSetup\n    name: ex-s3-waf_log_setup3\n    properties:\n      accountId: 102050\n      enabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"accountId":{"type":"number","description":"The Numeric identifier of the account to operate on.\n"},"enabled":{"type":"boolean","description":"A boolean flag to enable or disable WAF Logs. Default value is true.\n"},"s3AccessKey":{"type":"string","description":"S3 access key.\n"},"s3BucketName":{"type":"string","description":"S3 bucket name.\n"},"s3SecretKey":{"type":"string","description":"S3 secret key.\n\nPlease note, either sftp_* or s3_* arguments are required group. If neither groups specified default (API) will be set up\n\nImport is not supported yet\n","secret":true},"sftpDestinationFolder":{"type":"string","description":"The path to the directory on the SFTP server.\n"},"sftpHost":{"type":"string","description":"The IP address of your SFTP server.\n"},"sftpPassword":{"type":"string","description":"A corresponding password for the user account used to log in to the SFTP server.\n","secret":true},"sftpUserName":{"type":"string","description":"A username that will be used to log in to the SFTP server.\n"},"wafLogSetupId":{"type":"string"}},"type":"object","required":["accountId","wafLogSetupId"],"inputProperties":{"accountId":{"type":"number","description":"The Numeric identifier of the account to operate on.\n"},"enabled":{"type":"boolean","description":"A boolean flag to enable or disable WAF Logs. Default value is true.\n"},"s3AccessKey":{"type":"string","description":"S3 access key.\n"},"s3BucketName":{"type":"string","description":"S3 bucket name.\n"},"s3SecretKey":{"type":"string","description":"S3 secret key.\n\nPlease note, either sftp_* or s3_* arguments are required group. If neither groups specified default (API) will be set up\n\nImport is not supported yet\n","secret":true},"sftpDestinationFolder":{"type":"string","description":"The path to the directory on the SFTP server.\n"},"sftpHost":{"type":"string","description":"The IP address of your SFTP server.\n"},"sftpPassword":{"type":"string","description":"A corresponding password for the user account used to log in to the SFTP server.\n","secret":true},"sftpUserName":{"type":"string","description":"A username that will be used to log in to the SFTP server.\n"},"wafLogSetupId":{"type":"string"}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering WafLogSetup resources.\n","properties":{"accountId":{"type":"number","description":"The Numeric identifier of the account to operate on.\n"},"enabled":{"type":"boolean","description":"A boolean flag to enable or disable WAF Logs. Default value is true.\n"},"s3AccessKey":{"type":"string","description":"S3 access key.\n"},"s3BucketName":{"type":"string","description":"S3 bucket name.\n"},"s3SecretKey":{"type":"string","description":"S3 secret key.\n\nPlease note, either sftp_* or s3_* arguments are required group. If neither groups specified default (API) will be set up\n\nImport is not supported yet\n","secret":true},"sftpDestinationFolder":{"type":"string","description":"The path to the directory on the SFTP server.\n"},"sftpHost":{"type":"string","description":"The IP address of your SFTP server.\n"},"sftpPassword":{"type":"string","description":"A corresponding password for the user account used to log in to the SFTP server.\n","secret":true},"sftpUserName":{"type":"string","description":"A username that will be used to log in to the SFTP server.\n"},"wafLogSetupId":{"type":"string"}},"type":"object"}},"incapsula:index/wafSecurityRule:WafSecurityRule":{"description":"Provides a resource to create a subset of WAF security rules.  See, \u003cspan pulumi-lang-nodejs=\"`incapsula.Policy`\" pulumi-lang-dotnet=\"`incapsula.Policy`\" pulumi-lang-go=\"`Policy`\" pulumi-lang-python=\"`Policy`\" pulumi-lang-yaml=\"`incapsula.Policy`\" pulumi-lang-java=\"`incapsula.Policy`\"\u003e`incapsula.Policy`\u003c/span\u003e resource for additional WAF security rule types.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_waf_backdoor_rule = new incapsula.WafSecurityRule(\"example-waf-backdoor-rule\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.backdoor\",\n    securityRuleAction: \"api.threats.action.quarantine_url\",\n});\nconst example_waf_bot_access_control_rule = new incapsula.WafSecurityRule(\"example-waf-bot-access-control-rule\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.bot_access_control\",\n    blockBadBots: \"true\",\n    challengeSuspectedBots: \"true\",\n});\nconst example_waf_ddos_rule = new incapsula.WafSecurityRule(\"example-waf-ddos-rule\", {\n    siteId: example_site.id,\n    ruleId: \"api.threats.ddos\",\n    activationMode: \"api.threats.ddos.activation_mode.on\",\n    ddosTrafficThreshold: \"5000\",\n    unknownClientsChallenge: \"none\",\n    blockNonEssentialBots: \"false\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_waf_backdoor_rule = incapsula.WafSecurityRule(\"example-waf-backdoor-rule\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.backdoor\",\n    security_rule_action=\"api.threats.action.quarantine_url\")\nexample_waf_bot_access_control_rule = incapsula.WafSecurityRule(\"example-waf-bot-access-control-rule\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.bot_access_control\",\n    block_bad_bots=\"true\",\n    challenge_suspected_bots=\"true\")\nexample_waf_ddos_rule = incapsula.WafSecurityRule(\"example-waf-ddos-rule\",\n    site_id=example_site[\"id\"],\n    rule_id=\"api.threats.ddos\",\n    activation_mode=\"api.threats.ddos.activation_mode.on\",\n    ddos_traffic_threshold=\"5000\",\n    unknown_clients_challenge=\"none\",\n    block_non_essential_bots=\"false\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_waf_backdoor_rule = new Incapsula.WafSecurityRule(\"example-waf-backdoor-rule\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.backdoor\",\n        SecurityRuleAction = \"api.threats.action.quarantine_url\",\n    });\n\n    var example_waf_bot_access_control_rule = new Incapsula.WafSecurityRule(\"example-waf-bot-access-control-rule\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.bot_access_control\",\n        BlockBadBots = \"true\",\n        ChallengeSuspectedBots = \"true\",\n    });\n\n    var example_waf_ddos_rule = new Incapsula.WafSecurityRule(\"example-waf-ddos-rule\", new()\n    {\n        SiteId = example_site.Id,\n        RuleId = \"api.threats.ddos\",\n        ActivationMode = \"api.threats.ddos.activation_mode.on\",\n        DdosTrafficThreshold = \"5000\",\n        UnknownClientsChallenge = \"none\",\n        BlockNonEssentialBots = \"false\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.NewWafSecurityRule(ctx, \"example-waf-backdoor-rule\", \u0026incapsula.WafSecurityRuleArgs{\n\t\t\tSiteId:             pulumi.Any(example_site.Id),\n\t\t\tRuleId:             pulumi.String(\"api.threats.backdoor\"),\n\t\t\tSecurityRuleAction: pulumi.String(\"api.threats.action.quarantine_url\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewWafSecurityRule(ctx, \"example-waf-bot-access-control-rule\", \u0026incapsula.WafSecurityRuleArgs{\n\t\t\tSiteId:                 pulumi.Any(example_site.Id),\n\t\t\tRuleId:                 pulumi.String(\"api.threats.bot_access_control\"),\n\t\t\tBlockBadBots:           pulumi.String(\"true\"),\n\t\t\tChallengeSuspectedBots: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewWafSecurityRule(ctx, \"example-waf-ddos-rule\", \u0026incapsula.WafSecurityRuleArgs{\n\t\t\tSiteId:                  pulumi.Any(example_site.Id),\n\t\t\tRuleId:                  pulumi.String(\"api.threats.ddos\"),\n\t\t\tActivationMode:          pulumi.String(\"api.threats.ddos.activation_mode.on\"),\n\t\t\tDdosTrafficThreshold:    pulumi.String(\"5000\"),\n\t\t\tUnknownClientsChallenge: pulumi.String(\"none\"),\n\t\t\tBlockNonEssentialBots:   pulumi.String(\"false\"),\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.incapsula.WafSecurityRule;\nimport com.pulumi.incapsula.WafSecurityRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_waf_backdoor_rule = new WafSecurityRule(\"example-waf-backdoor-rule\", WafSecurityRuleArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.backdoor\")\n            .securityRuleAction(\"api.threats.action.quarantine_url\")\n            .build());\n\n        var example_waf_bot_access_control_rule = new WafSecurityRule(\"example-waf-bot-access-control-rule\", WafSecurityRuleArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.bot_access_control\")\n            .blockBadBots(\"true\")\n            .challengeSuspectedBots(\"true\")\n            .build());\n\n        var example_waf_ddos_rule = new WafSecurityRule(\"example-waf-ddos-rule\", WafSecurityRuleArgs.builder()\n            .siteId(example_site.id())\n            .ruleId(\"api.threats.ddos\")\n            .activationMode(\"api.threats.ddos.activation_mode.on\")\n            .ddosTrafficThreshold(\"5000\")\n            .unknownClientsChallenge(\"none\")\n            .blockNonEssentialBots(\"false\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-waf-backdoor-rule:\n    type: incapsula:WafSecurityRule\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.backdoor\n      securityRuleAction: api.threats.action.quarantine_url\n  example-waf-bot-access-control-rule:\n    type: incapsula:WafSecurityRule\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.bot_access_control\n      blockBadBots: 'true'\n      challengeSuspectedBots: 'true'\n  example-waf-ddos-rule:\n    type: incapsula:WafSecurityRule\n    properties:\n      siteId: ${[\"example-site\"].id}\n      ruleId: api.threats.ddos\n      activationMode: api.threats.ddos.activation_mode.on\n      ddosTrafficThreshold: '5000'\n      unknownClientsChallenge: none\n      blockNonEssentialBots: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSecurity Rule can be imported using the role `site_id` and `rule_id` separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/wafSecurityRule:WafSecurityRule demo site_id/rule_id\n```\n","properties":{"activationMode":{"type":"string","description":"The mode of activation for ddos on a site. Possible values: api.threats.ddos.activation_mode.off, api.threats.ddos.activation_mode.auto, api.threats.ddos.activation_mode.on, api.threats.ddos.activation_mode.adaptive.\n"},"blockBadBots":{"type":"string","description":"Whether or not to block bad bots. Possible values: true, false.\n"},"blockNonEssentialBots":{"type":"string","description":"If non-essential bots (bots determined to be legitimate by Imperva's client classification mechanism, such as site helpers and search engines) should be blocked or not. This argument is valid for the\u003cspan pulumi-lang-nodejs=\" ruleId \" pulumi-lang-dotnet=\" RuleId \" pulumi-lang-go=\" ruleId \" pulumi-lang-python=\" rule_id \" pulumi-lang-yaml=\" ruleId \" pulumi-lang-java=\" ruleId \"\u003e rule_id \u003c/span\u003eapi.threats.ddos argument value only. If this argument is not provided, then the value stays as it is in the system. Possible values: true, false\n"},"challengeSuspectedBots":{"type":"string","description":"Whether or not to send a challenge to clients that are suspected to be bad bots (CAPTCHA for example). Possible values: true, false.\n"},"ddosTrafficThreshold":{"type":"string","description":"Consider site to be under DDoS if the request rate is above this threshold. The valid values are 10, 20, 50, 100, 200, 500, 750, 1000, 2000, 3000, 4000, 5000.\n"},"ruleId":{"type":"string","description":"The identifier of the WAF rule, e.g api.threats.cross_site_scripting. Possible values: `api.threats.bot_access_control`, `api.threats.sql_injection`, `api.threats.cross_site_scripting`, `api.threats.backdoor`, `api.threats.ddos`, `api.threats.remote_file_inclusion`.\n"},"securityRuleAction":{"type":"string","description":"The action that should be taken when a threat is detected, for example: api.threats.action.block_ip. See above examples for \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e combinations.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"unknownClientsChallenge":{"type":"string","description":"Defines a method used for challenging suspicious bots. This argument is valid for the\u003cspan pulumi-lang-nodejs=\" ruleId \" pulumi-lang-dotnet=\" RuleId \" pulumi-lang-go=\" ruleId \" pulumi-lang-python=\" rule_id \" pulumi-lang-yaml=\" ruleId \" pulumi-lang-java=\" ruleId \"\u003e rule_id \u003c/span\u003eapi.threats.ddos argument value only. If this argument is not provided, then the value stays as it is in the system. Possible values: none, cookies, javascript, captcha\n"},"wafSecurityRuleId":{"type":"string","description":"Unique identifier in the API for the WAF Security Rule.\n"}},"type":"object","required":["blockNonEssentialBots","ruleId","siteId","unknownClientsChallenge","wafSecurityRuleId"],"inputProperties":{"activationMode":{"type":"string","description":"The mode of activation for ddos on a site. Possible values: api.threats.ddos.activation_mode.off, api.threats.ddos.activation_mode.auto, api.threats.ddos.activation_mode.on, api.threats.ddos.activation_mode.adaptive.\n"},"blockBadBots":{"type":"string","description":"Whether or not to block bad bots. Possible values: true, false.\n"},"blockNonEssentialBots":{"type":"string","description":"If non-essential bots (bots determined to be legitimate by Imperva's client classification mechanism, such as site helpers and search engines) should be blocked or not. This argument is valid for the\u003cspan pulumi-lang-nodejs=\" ruleId \" pulumi-lang-dotnet=\" RuleId \" pulumi-lang-go=\" ruleId \" pulumi-lang-python=\" rule_id \" pulumi-lang-yaml=\" ruleId \" pulumi-lang-java=\" ruleId \"\u003e rule_id \u003c/span\u003eapi.threats.ddos argument value only. If this argument is not provided, then the value stays as it is in the system. Possible values: true, false\n"},"challengeSuspectedBots":{"type":"string","description":"Whether or not to send a challenge to clients that are suspected to be bad bots (CAPTCHA for example). Possible values: true, false.\n"},"ddosTrafficThreshold":{"type":"string","description":"Consider site to be under DDoS if the request rate is above this threshold. The valid values are 10, 20, 50, 100, 200, 500, 750, 1000, 2000, 3000, 4000, 5000.\n"},"ruleId":{"type":"string","description":"The identifier of the WAF rule, e.g api.threats.cross_site_scripting. Possible values: `api.threats.bot_access_control`, `api.threats.sql_injection`, `api.threats.cross_site_scripting`, `api.threats.backdoor`, `api.threats.ddos`, `api.threats.remote_file_inclusion`.\n"},"securityRuleAction":{"type":"string","description":"The action that should be taken when a threat is detected, for example: api.threats.action.block_ip. See above examples for \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e combinations.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"unknownClientsChallenge":{"type":"string","description":"Defines a method used for challenging suspicious bots. This argument is valid for the\u003cspan pulumi-lang-nodejs=\" ruleId \" pulumi-lang-dotnet=\" RuleId \" pulumi-lang-go=\" ruleId \" pulumi-lang-python=\" rule_id \" pulumi-lang-yaml=\" ruleId \" pulumi-lang-java=\" ruleId \"\u003e rule_id \u003c/span\u003eapi.threats.ddos argument value only. If this argument is not provided, then the value stays as it is in the system. Possible values: none, cookies, javascript, captcha\n"},"wafSecurityRuleId":{"type":"string","description":"Unique identifier in the API for the WAF Security Rule.\n"}},"requiredInputs":["ruleId","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering WafSecurityRule resources.\n","properties":{"activationMode":{"type":"string","description":"The mode of activation for ddos on a site. Possible values: api.threats.ddos.activation_mode.off, api.threats.ddos.activation_mode.auto, api.threats.ddos.activation_mode.on, api.threats.ddos.activation_mode.adaptive.\n"},"blockBadBots":{"type":"string","description":"Whether or not to block bad bots. Possible values: true, false.\n"},"blockNonEssentialBots":{"type":"string","description":"If non-essential bots (bots determined to be legitimate by Imperva's client classification mechanism, such as site helpers and search engines) should be blocked or not. This argument is valid for the\u003cspan pulumi-lang-nodejs=\" ruleId \" pulumi-lang-dotnet=\" RuleId \" pulumi-lang-go=\" ruleId \" pulumi-lang-python=\" rule_id \" pulumi-lang-yaml=\" ruleId \" pulumi-lang-java=\" ruleId \"\u003e rule_id \u003c/span\u003eapi.threats.ddos argument value only. If this argument is not provided, then the value stays as it is in the system. Possible values: true, false\n"},"challengeSuspectedBots":{"type":"string","description":"Whether or not to send a challenge to clients that are suspected to be bad bots (CAPTCHA for example). Possible values: true, false.\n"},"ddosTrafficThreshold":{"type":"string","description":"Consider site to be under DDoS if the request rate is above this threshold. The valid values are 10, 20, 50, 100, 200, 500, 750, 1000, 2000, 3000, 4000, 5000.\n"},"ruleId":{"type":"string","description":"The identifier of the WAF rule, e.g api.threats.cross_site_scripting. Possible values: `api.threats.bot_access_control`, `api.threats.sql_injection`, `api.threats.cross_site_scripting`, `api.threats.backdoor`, `api.threats.ddos`, `api.threats.remote_file_inclusion`.\n"},"securityRuleAction":{"type":"string","description":"The action that should be taken when a threat is detected, for example: api.threats.action.block_ip. See above examples for \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e combinations.\n"},"siteId":{"type":"number","description":"Numeric identifier of the site to operate on.\n"},"unknownClientsChallenge":{"type":"string","description":"Defines a method used for challenging suspicious bots. This argument is valid for the\u003cspan pulumi-lang-nodejs=\" ruleId \" pulumi-lang-dotnet=\" RuleId \" pulumi-lang-go=\" ruleId \" pulumi-lang-python=\" rule_id \" pulumi-lang-yaml=\" ruleId \" pulumi-lang-java=\" ruleId \"\u003e rule_id \u003c/span\u003eapi.threats.ddos argument value only. If this argument is not provided, then the value stays as it is in the system. Possible values: none, cookies, javascript, captcha\n"},"wafSecurityRuleId":{"type":"string","description":"Unique identifier in the API for the WAF Security Rule.\n"}},"type":"object"}},"incapsula:index/waitingRoom:WaitingRoom":{"description":"Provides a waiting room resource.\nA waiting room controls the traffic to the website during peak periods when the origin server is unable to handle the load, and routes the website visitors to a virtual waiting room when their requests can't be handled immediately.\nFor full feature documentation, see [Set Up a Waiting Room](https://docs.imperva.com/bundle/cloud-application-security/page/waiting-room.htm).\n\n**Note:** At least one of the threshold strategies (entrance_rate_threshold / concurrent_sessions_threshold) must be configured.\n\n## Import\n\nWaiting rooms can be imported using the waiting room account_id, site_id and waiting_room_id separated by /, e.g.:\n\n```sh\n$ pulumi import incapsula:index/waitingRoom:WaitingRoom example-waiting-room account_id/site_id/waiting_room_id\n```\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"botsActionInQueuingMode":{"type":"string","description":"The waiting room bot handling action. Determines the waiting room behavior for legitimate bots trying to access your website during peak time. Applies only when the activation threshold has been passed and visitors are being sent to the queue. **Default:** `WAIT_IN_LINE`\nPossible values:\n* `WAIT_IN_LINE` - Wait in line alongside regular users.\n* `BYPASS` - Bypass the queue.\n* `BLOCK` - Block this request.\n"},"concurrentSessionsThreshold":{"type":"number","description":"The waiting room is activated when the number of active users reaches the specified value. Minimum value = 1.\n"},"createdAt":{"type":"string","description":"(timestamp) When the waiting room was created.\n"},"description":{"type":"string","description":"The waiting room description.\n"},"enabled":{"type":"boolean","description":"Indicates if this waiting room is enabled or not. **Default:** true.\n"},"entranceRateThreshold":{"type":"number","description":"The waiting room is activated when new users per minute exceed the specified value. Minimum of 60 users per minute.\n"},"filter":{"type":"string","description":"The conditions that determine on which sessions this waiting room applies. For example, you can create a condition to apply the waiting room to a subset of your website, instead of to the entire website, such as: **URL contains \"^/ShoppingCart\"**. You can also use conditions to create waiting rooms for different visitor groups, such as visitors from different countries. For example, **CountryCode == GB**. See [Rule Filter Parameters](https://docs.imperva.com/bundle/cloud-application-security/page/rules/rule-parameters.htm) for more filtering options. **Default:** No filter. The room applies to the entire website and all users.\n"},"hidePositionInLine":{"type":"boolean","description":"Enable to hide the user's position in waiting room queue. **Default:** false.\n"},"htmlTemplateBase64":{"type":"string","description":"The HTML template file path in Base64 format. A default template is used in case one isn't provided. The following placeholders can be used to insert dynamic information:\n* `$WAITING_ROOM_CONFIG$` - Calls a script that periodically updates the status of the user, and reloads the page when the user is allowed to enter the website from the waiting room. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_LOADER$` - Used to validate the loading of the page. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_WRAPPER$` - Used to validate the content of the template. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_POSITION_IN_LINE$` - Used to display the user's position in the waiting room queue.\n* `$WAITING_ROOM_LAST_STATUS_UPDATE$` - Used to display the time of the last status update.\n* `$ESTIMATED_TIME_TO_WAIT$` - Estimated time to wait.\n"},"inactivityTimeout":{"type":"number","description":"Inactivity timeout, from 1 to 30 minutes. If waiting room conditions that limit the scope of the waiting room to a subset of the website have been defined, the user is considered active only when navigating the pages in scope of the conditions. A user who is inactive for a longer period of time is considered as having left the site. On returning to the site, the user needs to wait in line again if the waiting room is active. **Tip:** When enabling the concurrent_sessions_threshold, the inactivity timeout is very important. Once the site is at full capacity (the threshold has been passed), no new user can access the site until another user leaves and frees up space. To optimize the user experience, we recommend setting a balanced inactivity timeout value — long enough so that the user's session is still open if they return quickly, but not so long that it unnecessarily prevents access to other waiting visitors. The default timeout of 5 minutes is the recommended minimum value. **Default:** 5 minutes.\n"},"lastModifiedAt":{"type":"string","description":"The last configuration change date in milliseconds."},"lastModifiedBy":{"type":"string","description":"(user email) Last user modifying the waiting room.\n"},"mode":{"type":"string","description":"(QUEUING or NOT_QUEUING) Waiting room current mode.\n"},"name":{"type":"string","description":"The waiting room name. Must be unique across all waiting rooms of the site.\n"},"queueInactivityTimeout":{"type":"number","description":"Queue inactivity timeout, from 1 to 10 minutes. A user in the waiting room who is inactive for a longer period of time is considered as having left the queue. On returning to the site, the user moves to the end of the queue and needs to wait in line again if the waiting room is active. **Default:** 1 minute.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"waitingRoomId":{"type":"string","description":"Unique identifier in the API for the waiting room.\n"}},"type":"object","required":["accountId","createdAt","lastModifiedAt","lastModifiedBy","mode","name","siteId","waitingRoomId"],"inputProperties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"botsActionInQueuingMode":{"type":"string","description":"The waiting room bot handling action. Determines the waiting room behavior for legitimate bots trying to access your website during peak time. Applies only when the activation threshold has been passed and visitors are being sent to the queue. **Default:** `WAIT_IN_LINE`\nPossible values:\n* `WAIT_IN_LINE` - Wait in line alongside regular users.\n* `BYPASS` - Bypass the queue.\n* `BLOCK` - Block this request.\n"},"concurrentSessionsThreshold":{"type":"number","description":"The waiting room is activated when the number of active users reaches the specified value. Minimum value = 1.\n"},"description":{"type":"string","description":"The waiting room description.\n"},"enabled":{"type":"boolean","description":"Indicates if this waiting room is enabled or not. **Default:** true.\n"},"entranceRateThreshold":{"type":"number","description":"The waiting room is activated when new users per minute exceed the specified value. Minimum of 60 users per minute.\n"},"filter":{"type":"string","description":"The conditions that determine on which sessions this waiting room applies. For example, you can create a condition to apply the waiting room to a subset of your website, instead of to the entire website, such as: **URL contains \"^/ShoppingCart\"**. You can also use conditions to create waiting rooms for different visitor groups, such as visitors from different countries. For example, **CountryCode == GB**. See [Rule Filter Parameters](https://docs.imperva.com/bundle/cloud-application-security/page/rules/rule-parameters.htm) for more filtering options. **Default:** No filter. The room applies to the entire website and all users.\n"},"hidePositionInLine":{"type":"boolean","description":"Enable to hide the user's position in waiting room queue. **Default:** false.\n"},"htmlTemplateBase64":{"type":"string","description":"The HTML template file path in Base64 format. A default template is used in case one isn't provided. The following placeholders can be used to insert dynamic information:\n* `$WAITING_ROOM_CONFIG$` - Calls a script that periodically updates the status of the user, and reloads the page when the user is allowed to enter the website from the waiting room. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_LOADER$` - Used to validate the loading of the page. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_WRAPPER$` - Used to validate the content of the template. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_POSITION_IN_LINE$` - Used to display the user's position in the waiting room queue.\n* `$WAITING_ROOM_LAST_STATUS_UPDATE$` - Used to display the time of the last status update.\n* `$ESTIMATED_TIME_TO_WAIT$` - Estimated time to wait.\n"},"inactivityTimeout":{"type":"number","description":"Inactivity timeout, from 1 to 30 minutes. If waiting room conditions that limit the scope of the waiting room to a subset of the website have been defined, the user is considered active only when navigating the pages in scope of the conditions. A user who is inactive for a longer period of time is considered as having left the site. On returning to the site, the user needs to wait in line again if the waiting room is active. **Tip:** When enabling the concurrent_sessions_threshold, the inactivity timeout is very important. Once the site is at full capacity (the threshold has been passed), no new user can access the site until another user leaves and frees up space. To optimize the user experience, we recommend setting a balanced inactivity timeout value — long enough so that the user's session is still open if they return quickly, but not so long that it unnecessarily prevents access to other waiting visitors. The default timeout of 5 minutes is the recommended minimum value. **Default:** 5 minutes.\n"},"name":{"type":"string","description":"The waiting room name. Must be unique across all waiting rooms of the site.\n"},"queueInactivityTimeout":{"type":"number","description":"Queue inactivity timeout, from 1 to 10 minutes. A user in the waiting room who is inactive for a longer period of time is considered as having left the queue. On returning to the site, the user moves to the end of the queue and needs to wait in line again if the waiting room is active. **Default:** 1 minute.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"waitingRoomId":{"type":"string","description":"Unique identifier in the API for the waiting room.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering WaitingRoom resources.\n","properties":{"accountId":{"type":"string","description":"The account to operate on. If not specified, operation will be performed on the account identified by the authentication parameters.\n"},"botsActionInQueuingMode":{"type":"string","description":"The waiting room bot handling action. Determines the waiting room behavior for legitimate bots trying to access your website during peak time. Applies only when the activation threshold has been passed and visitors are being sent to the queue. **Default:** `WAIT_IN_LINE`\nPossible values:\n* `WAIT_IN_LINE` - Wait in line alongside regular users.\n* `BYPASS` - Bypass the queue.\n* `BLOCK` - Block this request.\n"},"concurrentSessionsThreshold":{"type":"number","description":"The waiting room is activated when the number of active users reaches the specified value. Minimum value = 1.\n"},"createdAt":{"type":"string","description":"(timestamp) When the waiting room was created.\n"},"description":{"type":"string","description":"The waiting room description.\n"},"enabled":{"type":"boolean","description":"Indicates if this waiting room is enabled or not. **Default:** true.\n"},"entranceRateThreshold":{"type":"number","description":"The waiting room is activated when new users per minute exceed the specified value. Minimum of 60 users per minute.\n"},"filter":{"type":"string","description":"The conditions that determine on which sessions this waiting room applies. For example, you can create a condition to apply the waiting room to a subset of your website, instead of to the entire website, such as: **URL contains \"^/ShoppingCart\"**. You can also use conditions to create waiting rooms for different visitor groups, such as visitors from different countries. For example, **CountryCode == GB**. See [Rule Filter Parameters](https://docs.imperva.com/bundle/cloud-application-security/page/rules/rule-parameters.htm) for more filtering options. **Default:** No filter. The room applies to the entire website and all users.\n"},"hidePositionInLine":{"type":"boolean","description":"Enable to hide the user's position in waiting room queue. **Default:** false.\n"},"htmlTemplateBase64":{"type":"string","description":"The HTML template file path in Base64 format. A default template is used in case one isn't provided. The following placeholders can be used to insert dynamic information:\n* `$WAITING_ROOM_CONFIG$` - Calls a script that periodically updates the status of the user, and reloads the page when the user is allowed to enter the website from the waiting room. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_LOADER$` - Used to validate the loading of the page. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_WRAPPER$` - Used to validate the content of the template. This parameter is mandatory and should not be modified or deleted.\n* `$WAITING_ROOM_POSITION_IN_LINE$` - Used to display the user's position in the waiting room queue.\n* `$WAITING_ROOM_LAST_STATUS_UPDATE$` - Used to display the time of the last status update.\n* `$ESTIMATED_TIME_TO_WAIT$` - Estimated time to wait.\n"},"inactivityTimeout":{"type":"number","description":"Inactivity timeout, from 1 to 30 minutes. If waiting room conditions that limit the scope of the waiting room to a subset of the website have been defined, the user is considered active only when navigating the pages in scope of the conditions. A user who is inactive for a longer period of time is considered as having left the site. On returning to the site, the user needs to wait in line again if the waiting room is active. **Tip:** When enabling the concurrent_sessions_threshold, the inactivity timeout is very important. Once the site is at full capacity (the threshold has been passed), no new user can access the site until another user leaves and frees up space. To optimize the user experience, we recommend setting a balanced inactivity timeout value — long enough so that the user's session is still open if they return quickly, but not so long that it unnecessarily prevents access to other waiting visitors. The default timeout of 5 minutes is the recommended minimum value. **Default:** 5 minutes.\n"},"lastModifiedAt":{"type":"string","description":"The last configuration change date in milliseconds."},"lastModifiedBy":{"type":"string","description":"(user email) Last user modifying the waiting room.\n"},"mode":{"type":"string","description":"(QUEUING or NOT_QUEUING) Waiting room current mode.\n"},"name":{"type":"string","description":"The waiting room name. Must be unique across all waiting rooms of the site.\n"},"queueInactivityTimeout":{"type":"number","description":"Queue inactivity timeout, from 1 to 10 minutes. A user in the waiting room who is inactive for a longer period of time is considered as having left the queue. On returning to the site, the user moves to the end of the queue and needs to wait in line again if the waiting room is active. **Default:** 1 minute.\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"},"waitingRoomId":{"type":"string","description":"Unique identifier in the API for the waiting room.\n"}},"type":"object"}}},"functions":{"incapsula:index/getAccountData:getAccountData":{"description":"There are no filters needed for this data source\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst accountData = incapsula.getAccountData({});\nconst example_account_policy_association_parent = new incapsula.AccountPolicyAssociation(\"example-account-policy-association-parent\", {\n    accountId: accountData.then(accountData =\u003e accountData.currentAccount),\n    defaultNonMandatoryPolicyIds: [\"123456\"],\n    defaultWafPolicyId: \"789012\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\naccount_data = incapsula.get_account_data()\nexample_account_policy_association_parent = incapsula.AccountPolicyAssociation(\"example-account-policy-association-parent\",\n    account_id=account_data.current_account,\n    default_non_mandatory_policy_ids=[\"123456\"],\n    default_waf_policy_id=\"789012\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountData = Incapsula.GetAccountData.Invoke();\n\n    var example_account_policy_association_parent = new Incapsula.AccountPolicyAssociation(\"example-account-policy-association-parent\", new()\n    {\n        AccountId = accountData.Apply(getAccountDataResult =\u003e getAccountDataResult.CurrentAccount),\n        DefaultNonMandatoryPolicyIds = new[]\n        {\n            \"123456\",\n        },\n        DefaultWafPolicyId = \"789012\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccountData, err := incapsula.GetAccountData(ctx, \u0026incapsula.GetAccountDataArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountPolicyAssociation(ctx, \"example-account-policy-association-parent\", \u0026incapsula.AccountPolicyAssociationArgs{\n\t\t\tAccountId: pulumi.String(accountData.CurrentAccount),\n\t\t\tDefaultNonMandatoryPolicyIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"123456\"),\n\t\t\t},\n\t\t\tDefaultWafPolicyId: pulumi.String(\"789012\"),\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.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountDataArgs;\nimport com.pulumi.incapsula.AccountPolicyAssociation;\nimport com.pulumi.incapsula.AccountPolicyAssociationArgs;\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 accountData = IncapsulaFunctions.getAccountData(GetAccountDataArgs.builder()\n            .build());\n\n        var example_account_policy_association_parent = new AccountPolicyAssociation(\"example-account-policy-association-parent\", AccountPolicyAssociationArgs.builder()\n            .accountId(accountData.currentAccount())\n            .defaultNonMandatoryPolicyIds(\"123456\")\n            .defaultWafPolicyId(\"789012\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-account-policy-association-parent:\n    type: incapsula:AccountPolicyAssociation\n    properties:\n      accountId: ${accountData.currentAccount}\n      defaultNonMandatoryPolicyIds:\n        - '123456'\n      defaultWafPolicyId: '789012'\nvariables:\n  accountData:\n    fn::invoke:\n      function: incapsula:getAccountData\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccountData.\n","properties":{"id":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccountData.\n","properties":{"currentAccount":{"description":"Current account ID.\n","type":"string"},"id":{"type":"string"},"planName":{"description":"Plan name.\n","type":"string"}},"required":["currentAccount","id","planName"],"type":"object"}},"incapsula:index/getAccountPermissions:getAccountPermissions":{"description":"A mapping between permission identifiers and \"human-readable\" permission names.\nProvides the ability to use the permission display names when creating and modifying user roles.\u003cp\u003e\nTo get the current list of permission display names in the account,\nuse the \u003cb\u003e/v1/abilities/accounts/{accountId}\u003c/b\u003e API found in the \u003cb\u003ev1\u003c/b\u003e section of the\n[Role Management API Definition page.](https://docs.imperva.com/bundle/cloud-application-security/page/roles-api-definition.htm)\n\nTo access a subset of the permissions from the data source, use the optional filtering.\nThe \u003cspan pulumi-lang-nodejs=\"`filterByText`\" pulumi-lang-dotnet=\"`FilterByText`\" pulumi-lang-go=\"`filterByText`\" pulumi-lang-python=\"`filter_by_text`\" pulumi-lang-yaml=\"`filterByText`\" pulumi-lang-java=\"`filterByText`\"\u003e`filter_by_text`\u003c/span\u003e argument is case-insensitive. When used, it generates the \u003cspan pulumi-lang-nodejs=\"`keys`\" pulumi-lang-dotnet=\"`Keys`\" pulumi-lang-go=\"`keys`\" pulumi-lang-python=\"`keys`\" pulumi-lang-yaml=\"`keys`\" pulumi-lang-java=\"`keys`\"\u003e`keys`\u003c/span\u003e attribute.\n\nThe attribute \u003cspan pulumi-lang-nodejs=\"`map`\" pulumi-lang-dotnet=\"`Map`\" pulumi-lang-go=\"`map`\" pulumi-lang-python=\"`map`\" pulumi-lang-yaml=\"`map`\" pulumi-lang-java=\"`map`\"\u003e`map`\u003c/span\u003e is always generated and contains all the account permissions (permission DisplayName to permission Key map).\nUsing the \u003cspan pulumi-lang-nodejs=\"`map`\" pulumi-lang-dotnet=\"`Map`\" pulumi-lang-go=\"`map`\" pulumi-lang-python=\"`map`\" pulumi-lang-yaml=\"`map`\" pulumi-lang-java=\"`map`\"\u003e`map`\u003c/span\u003e attribute with an incorrect permission display name will cause the plan step to fail.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst accountPermissions = incapsula.getAccountPermissions({\n    accountId: accountData.currentAccount,\n});\nconst role1 = new incapsula.AccountRole(\"role_1\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 1\",\n    description: \"Sample Role Description 1\",\n    permissions: [\n        \"canAddSite\",\n        \"canEditSite\",\n        accountPermissions.then(accountPermissions =\u003e accountPermissions.map?.[\"View Infra Protect settings\"]),\n        accountPermissions.then(accountPermissions =\u003e accountPermissions.map?.[\"Delete exception from policy\"]),\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\naccount_permissions = incapsula.get_account_permissions(account_id=account_data[\"currentAccount\"])\nrole1 = incapsula.AccountRole(\"role_1\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 1\",\n    description=\"Sample Role Description 1\",\n    permissions=[\n        \"canAddSite\",\n        \"canEditSite\",\n        account_permissions.map[\"View Infra Protect settings\"],\n        account_permissions.map[\"Delete exception from policy\"],\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountPermissions = Incapsula.GetAccountPermissions.Invoke(new()\n    {\n        AccountId = accountData.CurrentAccount,\n    });\n\n    var role1 = new Incapsula.AccountRole(\"role_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 1\",\n        Description = \"Sample Role Description 1\",\n        Permissions = new[]\n        {\n            \"canAddSite\",\n            \"canEditSite\",\n            accountPermissions.Apply(getAccountPermissionsResult =\u003e getAccountPermissionsResult.Map?.View_Infra_Protect_settings),\n            accountPermissions.Apply(getAccountPermissionsResult =\u003e getAccountPermissionsResult.Map?.Delete_exception_from_policy),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\naccountPermissions, err := incapsula.GetAccountPermissions(ctx, \u0026incapsula.GetAccountPermissionsArgs{\nAccountId: accountData.CurrentAccount,\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = incapsula.NewAccountRole(ctx, \"role_1\", \u0026incapsula.AccountRoleArgs{\nAccountId: pulumi.Any(accountData.CurrentAccount),\nName: pulumi.String(\"Sample Role 1\"),\nDescription: pulumi.String(\"Sample Role Description 1\"),\nPermissions: pulumi.StringArray{\npulumi.String(\"canAddSite\"),\npulumi.String(\"canEditSite\"),\npulumi.String(accountPermissions.Map.View Infra Protect settings),\npulumi.String(accountPermissions.Map.Delete exception from policy),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountPermissionsArgs;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\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 accountPermissions = IncapsulaFunctions.getAccountPermissions(GetAccountPermissionsArgs.builder()\n            .accountId(accountData.currentAccount())\n            .build());\n\n        var role1 = new AccountRole(\"role1\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 1\")\n            .description(\"Sample Role Description 1\")\n            .permissions(            \n                \"canAddSite\",\n                \"canEditSite\",\n                accountPermissions.map().View Infra Protect settings(),\n                accountPermissions.map().Delete exception from policy())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role1:\n    type: incapsula:AccountRole\n    name: role_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 1\n      description: Sample Role Description 1\n      permissions:\n        - canAddSite\n        - canEditSite\n        - ${accountPermissions.map\"View Infra Protect settings\"[%!s(MISSING)]}\n        - ${accountPermissions.map\"Delete exception from policy\"[%!s(MISSING)]}\nvariables:\n  accountPermissions:\n    fn::invoke:\n      function: incapsula:getAccountPermissions\n      arguments:\n        accountId: ${accountData.currentAccount}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIn this example, we are using the generated \u003cspan pulumi-lang-nodejs=\"`keys`\" pulumi-lang-dotnet=\"`Keys`\" pulumi-lang-go=\"`keys`\" pulumi-lang-python=\"`keys`\" pulumi-lang-yaml=\"`keys`\" pulumi-lang-java=\"`keys`\"\u003e`keys`\u003c/span\u003e attribute filtered by \u003cspan pulumi-lang-nodejs=\"`filterByText`\" pulumi-lang-dotnet=\"`FilterByText`\" pulumi-lang-go=\"`filterByText`\" pulumi-lang-python=\"`filter_by_text`\" pulumi-lang-yaml=\"`filterByText`\" pulumi-lang-java=\"`filterByText`\"\u003e`filter_by_text`\u003c/span\u003e argument.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst accountPermissions = incapsula.getAccountPermissions({\n    accountId: accountData.currentAccount,\n    filterByText: \"site\",\n});\nconst role2 = new incapsula.AccountRole(\"role_2\", {\n    accountId: accountData.currentAccount,\n    name: \"Sample Role 2\",\n    description: \"Sample Role Description 2\",\n    permissions: accountPermissions.then(accountPermissions =\u003e accountPermissions.keys),\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\naccount_permissions = incapsula.get_account_permissions(account_id=account_data[\"currentAccount\"],\n    filter_by_text=\"site\")\nrole2 = incapsula.AccountRole(\"role_2\",\n    account_id=account_data[\"currentAccount\"],\n    name=\"Sample Role 2\",\n    description=\"Sample Role Description 2\",\n    permissions=account_permissions.keys)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountPermissions = Incapsula.GetAccountPermissions.Invoke(new()\n    {\n        AccountId = accountData.CurrentAccount,\n        FilterByText = \"site\",\n    });\n\n    var role2 = new Incapsula.AccountRole(\"role_2\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Name = \"Sample Role 2\",\n        Description = \"Sample Role Description 2\",\n        Permissions = accountPermissions.Apply(getAccountPermissionsResult =\u003e getAccountPermissionsResult.Keys),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccountPermissions, err := incapsula.GetAccountPermissions(ctx, \u0026incapsula.GetAccountPermissionsArgs{\n\t\t\tAccountId:    accountData.CurrentAccount,\n\t\t\tFilterByText: pulumi.StringRef(\"site\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountRole(ctx, \"role_2\", \u0026incapsula.AccountRoleArgs{\n\t\t\tAccountId:   pulumi.Any(accountData.CurrentAccount),\n\t\t\tName:        pulumi.String(\"Sample Role 2\"),\n\t\t\tDescription: pulumi.String(\"Sample Role Description 2\"),\n\t\t\tPermissions: interface{}(accountPermissions.Keys),\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.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountPermissionsArgs;\nimport com.pulumi.incapsula.AccountRole;\nimport com.pulumi.incapsula.AccountRoleArgs;\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 accountPermissions = IncapsulaFunctions.getAccountPermissions(GetAccountPermissionsArgs.builder()\n            .accountId(accountData.currentAccount())\n            .filterByText(\"site\")\n            .build());\n\n        var role2 = new AccountRole(\"role2\", AccountRoleArgs.builder()\n            .accountId(accountData.currentAccount())\n            .name(\"Sample Role 2\")\n            .description(\"Sample Role Description 2\")\n            .permissions(accountPermissions.keys())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role2:\n    type: incapsula:AccountRole\n    name: role_2\n    properties:\n      accountId: ${accountData.currentAccount}\n      name: Sample Role 2\n      description: Sample Role Description 2\n      permissions: ${accountPermissions.keys}\nvariables:\n  accountPermissions:\n    fn::invoke:\n      function: incapsula:getAccountPermissions\n      arguments:\n        accountId: ${accountData.currentAccount}\n        filterByText: site\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccountPermissions.\n","properties":{"accountId":{"type":"number"},"filterByText":{"type":"string","description":"string value - Filter by account permission display names.\n"},"id":{"type":"string"}},"type":"object","required":["accountId"]},"outputs":{"description":"A collection of values returned by getAccountPermissions.\n","properties":{"accountId":{"type":"number"},"filterByText":{"type":"string"},"id":{"type":"string"},"keys":{"description":"List of account permission keys filtered by \u003cspan pulumi-lang-nodejs=\"`filterByText`\" pulumi-lang-dotnet=\"`FilterByText`\" pulumi-lang-go=\"`filterByText`\" pulumi-lang-python=\"`filter_by_text`\" pulumi-lang-yaml=\"`filterByText`\" pulumi-lang-java=\"`filterByText`\"\u003e`filter_by_text`\u003c/span\u003e argument.\n","items":{"type":"string"},"type":"array"},"map":{"additionalProperties":{"type":"string"},"description":"Map of all the account permissions where the key is the permission display name and the value is the permission key.\n","type":"object"}},"required":["accountId","id","keys","map"],"type":"object"}},"incapsula:index/getAccountRoles:getAccountRoles":{"description":"Provides the account roles configured in every account. Roles are used to grant a fixed set of permissions to a user.\u003cp\u003e\nThere are no filters needed for this data source.\n\nThe attribute \u003cspan pulumi-lang-nodejs=\"`map`\" pulumi-lang-dotnet=\"`Map`\" pulumi-lang-go=\"`map`\" pulumi-lang-python=\"`map`\" pulumi-lang-yaml=\"`map`\" pulumi-lang-java=\"`map`\"\u003e`map`\u003c/span\u003e is generated and contains all the account roles, providing a Role Name to Id map.\nThe mapping should be used for managing users in a subaccount (when the API_KEY and API_ID are associated with a subaccount).\nFor managing users at the account level (where the API_KEY and API_ID are associated with the parent account), it is recommended to reference the specific role resource instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst roles = incapsula.getAccountRoles({\n    accountId: accountData.currentAccount,\n});\nconst user1 = new incapsula.AccountUser(\"user_1\", {\n    accountId: accountData.currentAccount,\n    email: \"example@terraform.com\",\n    firstName: \"First\",\n    lastName: \"Last\",\n    roleIds: [\n        roles.then(roles =\u003e roles.adminRoleId),\n        roles.then(roles =\u003e roles.readerRoleId),\n        role1.id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nroles = incapsula.get_account_roles(account_id=account_data[\"currentAccount\"])\nuser1 = incapsula.AccountUser(\"user_1\",\n    account_id=account_data[\"currentAccount\"],\n    email=\"example@terraform.com\",\n    first_name=\"First\",\n    last_name=\"Last\",\n    role_ids=[\n        roles.admin_role_id,\n        roles.reader_role_id,\n        role1[\"id\"],\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var roles = Incapsula.GetAccountRoles.Invoke(new()\n    {\n        AccountId = accountData.CurrentAccount,\n    });\n\n    var user1 = new Incapsula.AccountUser(\"user_1\", new()\n    {\n        AccountId = accountData.CurrentAccount,\n        Email = \"example@terraform.com\",\n        FirstName = \"First\",\n        LastName = \"Last\",\n        RoleIds = new[]\n        {\n            roles.Apply(getAccountRolesResult =\u003e getAccountRolesResult.AdminRoleId),\n            roles.Apply(getAccountRolesResult =\u003e getAccountRolesResult.ReaderRoleId),\n            role1.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\troles, err := incapsula.GetAccountRoles(ctx, \u0026incapsula.GetAccountRolesArgs{\n\t\t\tAccountId: accountData.CurrentAccount,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = incapsula.NewAccountUser(ctx, \"user_1\", \u0026incapsula.AccountUserArgs{\n\t\t\tAccountId: pulumi.Any(accountData.CurrentAccount),\n\t\t\tEmail:     pulumi.String(\"example@terraform.com\"),\n\t\t\tFirstName: pulumi.String(\"First\"),\n\t\t\tLastName:  pulumi.String(\"Last\"),\n\t\t\tRoleIds: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(roles.AdminRoleId),\n\t\t\t\tpulumi.Float64(roles.ReaderRoleId),\n\t\t\t\trole1.Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetAccountRolesArgs;\nimport com.pulumi.incapsula.AccountUser;\nimport com.pulumi.incapsula.AccountUserArgs;\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 roles = IncapsulaFunctions.getAccountRoles(GetAccountRolesArgs.builder()\n            .accountId(accountData.currentAccount())\n            .build());\n\n        var user1 = new AccountUser(\"user1\", AccountUserArgs.builder()\n            .accountId(accountData.currentAccount())\n            .email(\"example@terraform.com\")\n            .firstName(\"First\")\n            .lastName(\"Last\")\n            .roleIds(            \n                roles.adminRoleId(),\n                roles.readerRoleId(),\n                role1.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user1:\n    type: incapsula:AccountUser\n    name: user_1\n    properties:\n      accountId: ${accountData.currentAccount}\n      email: example@terraform.com\n      firstName: First\n      lastName: Last\n      roleIds:\n        - ${roles.adminRoleId}\n        - ${roles.readerRoleId}\n        - ${role1.id}\nvariables:\n  roles:\n    fn::invoke:\n      function: incapsula:getAccountRoles\n      arguments:\n        accountId: ${accountData.currentAccount}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccountRoles.\n","properties":{"accountId":{"type":"number"},"id":{"type":"string"}},"type":"object","required":["accountId"]},"outputs":{"description":"A collection of values returned by getAccountRoles.\n","properties":{"accountId":{"type":"number"},"adminRoleId":{"description":"Default Administrator Role Id.\n","type":"number"},"id":{"type":"string"},"map":{"additionalProperties":{"type":"number"},"description":"Map of all the Account Roles where the key is the Role Name and value is the Role Id.\n","type":"object"},"readerRoleId":{"description":"Default Reader Role Id.\n","type":"number"}},"required":["accountId","adminRoleId","id","map","readerRoleId"],"type":"object"}},"incapsula:index/getClientAppsData:getClientAppsData":{"inputs":{"description":"A collection of arguments for invoking getClientAppsData.\n","properties":{"filters":{"type":"array","items":{"type":"string"}},"id":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClientAppsData.\n","properties":{"filters":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"ids":{"items":{"type":"number"},"type":"array"},"map":{"additionalProperties":{"type":"number"},"type":"object"}},"required":["id","ids","map"],"type":"object"}},"incapsula:index/getDataCenter:getDataCenter":{"description":"Provides filtering of a single Data Center in specific site. \nThen its id can be referenced by other resources such as incapsula_incap_rule.\n\nFiltering by site id is mandatory. All other filters are optional. A logical AND is applied on all specified filters.\n\nExactly one Data Center must be qualified or an error will be raised.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example_two_data_centers_configuration = new incapsula.DataCentersConfiguration(\"example-two-data-centers-configuration\", {\n    siteId: example_site.id,\n    siteTopology: \"MULTIPLE_DC\",\n    dataCenters: [\n        {\n            name: \"AD Forward Rules DC\",\n            isContent: true,\n            originServers: [{\n                address: \"55.66.77.123\",\n            }],\n        },\n        {\n            name: \"Main DC\",\n            originServers: [{\n                address: \"54.74.193.120\",\n            }],\n        },\n    ],\n});\nconst contentDc = incapsula.getDataCenterOutput({\n    siteId: example_two_data_centers_configuration.dataCentersConfigurationId,\n    filterByIsContent: true,\n});\n// Incap Rule: Forward to Data Center (ADR)\nconst example_incap_rule_fwd_to_data_center = new incapsula.IncapRule(\"example-incap-rule-fwd-to-data-center\", {\n    name: \"Example incap rule forward to data center\",\n    siteId: example_site.id,\n    action: \"RULE_ACTION_FORWARD_TO_DC\",\n    filter: \"Full-URL == \\\"/someurl\\\"\",\n    dcId: contentDc.apply(contentDc =\u003e contentDc.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample_two_data_centers_configuration = incapsula.DataCentersConfiguration(\"example-two-data-centers-configuration\",\n    site_id=example_site[\"id\"],\n    site_topology=\"MULTIPLE_DC\",\n    data_centers=[\n        {\n            \"name\": \"AD Forward Rules DC\",\n            \"is_content\": True,\n            \"origin_servers\": [{\n                \"address\": \"55.66.77.123\",\n            }],\n        },\n        {\n            \"name\": \"Main DC\",\n            \"origin_servers\": [{\n                \"address\": \"54.74.193.120\",\n            }],\n        },\n    ])\ncontent_dc = incapsula.get_data_center_output(site_id=example_two_data_centers_configuration.data_centers_configuration_id,\n    filter_by_is_content=True)\n# Incap Rule: Forward to Data Center (ADR)\nexample_incap_rule_fwd_to_data_center = incapsula.IncapRule(\"example-incap-rule-fwd-to-data-center\",\n    name=\"Example incap rule forward to data center\",\n    site_id=example_site[\"id\"],\n    action=\"RULE_ACTION_FORWARD_TO_DC\",\n    filter=\"Full-URL == \\\"/someurl\\\"\",\n    dc_id=content_dc.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_two_data_centers_configuration = new Incapsula.DataCentersConfiguration(\"example-two-data-centers-configuration\", new()\n    {\n        SiteId = example_site.Id,\n        SiteTopology = \"MULTIPLE_DC\",\n        DataCenters = new[]\n        {\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"AD Forward Rules DC\",\n                IsContent = true,\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"55.66.77.123\",\n                    },\n                },\n            },\n            new Incapsula.Inputs.DataCentersConfigurationDataCenterArgs\n            {\n                Name = \"Main DC\",\n                OriginServers = new[]\n                {\n                    new Incapsula.Inputs.DataCentersConfigurationDataCenterOriginServerArgs\n                    {\n                        Address = \"54.74.193.120\",\n                    },\n                },\n            },\n        },\n    });\n\n    var contentDc = Incapsula.GetDataCenter.Invoke(new()\n    {\n        SiteId = example_two_data_centers_configuration.DataCentersConfigurationId,\n        FilterByIsContent = true,\n    });\n\n    // Incap Rule: Forward to Data Center (ADR)\n    var example_incap_rule_fwd_to_data_center = new Incapsula.IncapRule(\"example-incap-rule-fwd-to-data-center\", new()\n    {\n        Name = \"Example incap rule forward to data center\",\n        SiteId = example_site.Id,\n        Action = \"RULE_ACTION_FORWARD_TO_DC\",\n        Filter = \"Full-URL == \\\"/someurl\\\"\",\n        DcId = contentDc.Apply(getDataCenterResult =\u003e getDataCenterResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_two_data_centers_configuration, err := incapsula.NewDataCentersConfiguration(ctx, \"example-two-data-centers-configuration\", \u0026incapsula.DataCentersConfigurationArgs{\n\t\t\tSiteId:       pulumi.Any(example_site.Id),\n\t\t\tSiteTopology: pulumi.String(\"MULTIPLE_DC\"),\n\t\t\tDataCenters: incapsula.DataCentersConfigurationDataCenterArray{\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName:      pulumi.String(\"AD Forward Rules DC\"),\n\t\t\t\t\tIsContent: pulumi.Bool(true),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress: pulumi.String(\"55.66.77.123\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterArgs{\n\t\t\t\t\tName: pulumi.String(\"Main DC\"),\n\t\t\t\t\tOriginServers: incapsula.DataCentersConfigurationDataCenterOriginServerArray{\n\t\t\t\t\t\t\u0026incapsula.DataCentersConfigurationDataCenterOriginServerArgs{\n\t\t\t\t\t\t\tAddress: pulumi.String(\"54.74.193.120\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontentDc := incapsula.LookupDataCenterOutput(ctx, incapsula.GetDataCenterOutputArgs{\n\t\t\tSiteId:            example_two_data_centers_configuration.DataCentersConfigurationId,\n\t\t\tFilterByIsContent: pulumi.Bool(true),\n\t\t}, nil)\n\t\t// Incap Rule: Forward to Data Center (ADR)\n\t\t_, err = incapsula.NewIncapRule(ctx, \"example-incap-rule-fwd-to-data-center\", \u0026incapsula.IncapRuleArgs{\n\t\t\tName:   pulumi.String(\"Example incap rule forward to data center\"),\n\t\t\tSiteId: pulumi.Any(example_site.Id),\n\t\t\tAction: pulumi.String(\"RULE_ACTION_FORWARD_TO_DC\"),\n\t\t\tFilter: pulumi.String(\"Full-URL == \\\"/someurl\\\"\"),\n\t\t\tDcId: pulumi.Float64(contentDc.ApplyT(func(contentDc incapsula.GetDataCenterResult) (*string, error) {\n\t\t\t\treturn \u0026contentDc.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\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.incapsula.DataCentersConfiguration;\nimport com.pulumi.incapsula.DataCentersConfigurationArgs;\nimport com.pulumi.incapsula.inputs.DataCentersConfigurationDataCenterArgs;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetDataCenterArgs;\nimport com.pulumi.incapsula.IncapRule;\nimport com.pulumi.incapsula.IncapRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_two_data_centers_configuration = new DataCentersConfiguration(\"example-two-data-centers-configuration\", DataCentersConfigurationArgs.builder()\n            .siteId(example_site.id())\n            .siteTopology(\"MULTIPLE_DC\")\n            .dataCenters(            \n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"AD Forward Rules DC\")\n                    .isContent(true)\n                    .originServers(DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"55.66.77.123\")\n                        .build())\n                    .build(),\n                DataCentersConfigurationDataCenterArgs.builder()\n                    .name(\"Main DC\")\n                    .originServers(DataCentersConfigurationDataCenterOriginServerArgs.builder()\n                        .address(\"54.74.193.120\")\n                        .build())\n                    .build())\n            .build());\n\n        final var contentDc = IncapsulaFunctions.getDataCenter(GetDataCenterArgs.builder()\n            .siteId(example_two_data_centers_configuration.dataCentersConfigurationId())\n            .filterByIsContent(true)\n            .build());\n\n        // Incap Rule: Forward to Data Center (ADR)\n        var example_incap_rule_fwd_to_data_center = new IncapRule(\"example-incap-rule-fwd-to-data-center\", IncapRuleArgs.builder()\n            .name(\"Example incap rule forward to data center\")\n            .siteId(example_site.id())\n            .action(\"RULE_ACTION_FORWARD_TO_DC\")\n            .filter(\"Full-URL == \\\"/someurl\\\"\")\n            .dcId(contentDc.applyValue(_contentDc -\u003e _contentDc.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-two-data-centers-configuration:\n    type: incapsula:DataCentersConfiguration\n    properties:\n      siteId: ${[\"example-site\"].id}\n      siteTopology: MULTIPLE_DC\n      dataCenters:\n        - name: AD Forward Rules DC\n          isContent: true\n          originServers:\n            - address: 55.66.77.123\n        - name: Main DC\n          originServers:\n            - address: 54.74.193.120\n  # Incap Rule: Forward to Data Center (ADR)\n  example-incap-rule-fwd-to-data-center:\n    type: incapsula:IncapRule\n    properties:\n      name: Example incap rule forward to data center\n      siteId: ${[\"example-site\"].id}\n      action: RULE_ACTION_FORWARD_TO_DC\n      filter: Full-URL == \"/someurl\"\n      dcId: ${contentDc.id}\nvariables:\n  contentDc:\n    fn::invoke:\n      function: incapsula:getDataCenter\n      arguments:\n        siteId: ${[\"example-two-data-centers-configuration\"].dataCentersConfigurationId}\n        filterByIsContent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIf more than one content Data Center is defined for the site, you may add filters. E.g.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst contentDc = incapsula.getDataCenter({\n    siteId: example_two_data_centers_configuration.id,\n    filterByIsContent: true,\n    filterByName: \"AD Forward Rules DC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\ncontent_dc = incapsula.get_data_center(site_id=example_two_data_centers_configuration[\"id\"],\n    filter_by_is_content=True,\n    filter_by_name=\"AD Forward Rules DC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var contentDc = Incapsula.GetDataCenter.Invoke(new()\n    {\n        SiteId = example_two_data_centers_configuration.Id,\n        FilterByIsContent = true,\n        FilterByName = \"AD Forward Rules DC\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\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 := incapsula.LookupDataCenter(ctx, \u0026incapsula.LookupDataCenterArgs{\n\t\t\tSiteId:            example_two_data_centers_configuration.Id,\n\t\t\tFilterByIsContent: pulumi.BoolRef(true),\n\t\t\tFilterByName:      pulumi.StringRef(\"AD Forward Rules DC\"),\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.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetDataCenterArgs;\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 contentDc = IncapsulaFunctions.getDataCenter(GetDataCenterArgs.builder()\n            .siteId(example_two_data_centers_configuration.id())\n            .filterByIsContent(true)\n            .filterByName(\"AD Forward Rules DC\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  contentDc:\n    fn::invoke:\n      function: incapsula:getDataCenter\n      arguments:\n        siteId: ${[\"example-two-data-centers-configuration\"].id}\n        filterByIsContent: true\n        filterByName: AD Forward Rules DC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDataCenter.\n","properties":{"filterByGeoLocation":{"type":"string","description":"string value - One of: EUROPE, AUSTRALIA, US_EAST, US_WEST, AFRICA, ASIA, SOUTH_AMERICA, NORTH_AMERICA. If no DC is assigned to handle traffic from the specified region, then qualify the the single rest-of-the-world DC, \n\nThe five boolean filters accept true value only.\nTo get the standby Data Center: use \u003cspan pulumi-lang-nodejs=\"`filterByIsStandby \" pulumi-lang-dotnet=\"`FilterByIsStandby \" pulumi-lang-go=\"`filterByIsStandby \" pulumi-lang-python=\"`filter_by_is_standby \" pulumi-lang-yaml=\"`filterByIsStandby \" pulumi-lang-java=\"`filterByIsStandby \"\u003e`filter_by_is_standby \u003c/span\u003e= true` (instead of \u003cspan pulumi-lang-nodejs=\"`filterByIsActive \" pulumi-lang-dotnet=\"`FilterByIsActive \" pulumi-lang-go=\"`filterByIsActive \" pulumi-lang-python=\"`filter_by_is_active \" pulumi-lang-yaml=\"`filterByIsActive \" pulumi-lang-java=\"`filterByIsActive \"\u003e`filter_by_is_active \u003c/span\u003e= false` which will be ignored).\n"},"filterById":{"type":"number","description":"Filters by the numeric unique internal Data Center id.\n"},"filterByIsActive":{"type":"boolean","description":"boolean value - Filters by\u003cspan pulumi-lang-nodejs=\" isActive \" pulumi-lang-dotnet=\" IsActive \" pulumi-lang-go=\" isActive \" pulumi-lang-python=\" is_active \" pulumi-lang-yaml=\" isActive \" pulumi-lang-java=\" isActive \"\u003e is_active \u003c/span\u003e== true.\n"},"filterByIsContent":{"type":"boolean","description":"boolean value - Filters by is_content. True value will provide the single content DC (handles only traffic routed by AD forward-to-dc rule).\n"},"filterByIsEnabled":{"type":"boolean","description":"boolean value - Filters by is_enabled.\n"},"filterByIsRestOfTheWorld":{"type":"boolean","description":"boolean value - Filters by is_rest_of_the_world. True value will provide the single rest-of-the-world DC.\n"},"filterByIsStandby":{"type":"boolean","description":"boolean value - Filters by\u003cspan pulumi-lang-nodejs=\" isActive \" pulumi-lang-dotnet=\" IsActive \" pulumi-lang-go=\" isActive \" pulumi-lang-python=\" is_active \" pulumi-lang-yaml=\" isActive \" pulumi-lang-java=\" isActive \"\u003e is_active \u003c/span\u003e== false.\n"},"filterByName":{"type":"string","description":"string value - Filters by Data Center name. DC Name is unique per Site.\n"},"id":{"type":"string","description":"Unique identifier in the API for the qualified data center.\n"},"siteId":{"type":"string","description":"Reference to resource incapsula_data_centers_configuration.*resource_name*.id\n"}},"type":"object","required":["siteId"]},"outputs":{"description":"A collection of values returned by getDataCenter.\n","properties":{"filterByGeoLocation":{"type":"string"},"filterById":{"type":"number"},"filterByIsActive":{"type":"boolean"},"filterByIsContent":{"type":"boolean"},"filterByIsEnabled":{"type":"boolean"},"filterByIsRestOfTheWorld":{"type":"boolean"},"filterByIsStandby":{"type":"boolean"},"filterByName":{"type":"string"},"geoLocations":{"description":"Comma separated list of geo regions that this data center will serve. Populated only when Site's LB algorithm is GEO_PREFERRED or GEO_REQUIRED. E.g. \"ASIA,AFRICA\". Allowed regions: EUROPE, AUSTRALIA, US_EAST, US_WEST, AFRICA, ASIA, SOUTH_AMERICA, NORTH_AMERICA.\n","type":"string"},"id":{"description":"Unique identifier in the API for the qualified data center.\n","type":"string"},"ipMode":{"description":"One of: SINGLE_IP, MULTIPLE_IP.\n","type":"string"},"isActive":{"description":"When true, this Data Center is active. When false, this Data center will Standby.\n","type":"boolean"},"isContent":{"description":"When true, this Data Center will only serve requests that were routed using AD Forward rules.\n","type":"boolean"},"isEnabled":{"description":"When true, this Data Center is enabled. I.e. can serve requests.\n","type":"boolean"},"isRestOfTheWorld":{"description":"When true and Site's LB algorithm = GEO_PREFERRED or GEO_REQUIRED, this data center will handle traffic from any region that is not assigned to a specific data center.\n","type":"boolean"},"lbAlgorithm":{"description":"How to load balance between the servers of this data center. One of: LB_LEAST_PENDING_REQUESTS, LB_LEAST_OPEN_CONNECTIONS, LB_SOURCE_IP_HASH, RANDOM, WEIGHTED.\n","type":"string"},"name":{"description":"Data Center Name.\n","type":"string"},"originPop":{"description":"(Optional) The ID of the PoP that serves as an access point between Imperva and the customer’s origin server. E.g. \"lax\", for Los Angeles. When not specified, all Imperva PoPs can send traffic to this data center. The list of available PoPs is documented at: \u003chttps://docs.imperva.com/bundle/cloud-application-security/page/more/pops.htm\u003e.\n","type":"string"},"siteId":{"type":"string"},"weight":{"description":"The weight in percentage of this Data Center. Populated only when Site's LB algorithm is WEIGHTED_LB.\n","type":"number"}},"required":["geoLocations","id","ipMode","isActive","isContent","isEnabled","isRestOfTheWorld","lbAlgorithm","name","originPop","siteId","weight"],"type":"object"}},"incapsula:index/getRoleAbilities:getRoleAbilities":{"inputs":{"description":"A collection of arguments for invoking getRoleAbilities.\n","properties":{"id":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRoleAbilities.\n","properties":{"canAddDomain":{"type":"string"},"canAddPolicy":{"type":"string"},"canAddPolicyException":{"type":"string"},"canAddSite":{"type":"string"},"canAddUser":{"type":"string"},"canApplyPolicyToAssets":{"type":"string"},"canAssignClientCertificates":{"type":"string"},"canDeletePolicy":{"type":"string"},"canDeletePolicyException":{"type":"string"},"canEditAccount":{"type":"string"},"canEditClientCertificates":{"type":"string"},"canEditDomain":{"type":"string"},"canEditPolicy":{"type":"string"},"canEditPolicyException":{"type":"string"},"canEditRoles":{"type":"string"},"canEditSingleIp":{"type":"string"},"canEditSite":{"type":"string"},"canManageAccountSubAccounts":{"type":"string"},"canManageApiKey":{"type":"string"},"canPurgeCache":{"type":"string"},"canRunConnectivityReports":{"type":"string"},"canViewAuditTrail":{"type":"string"},"canViewClientCertificates":{"type":"string"},"canViewInfraProtectSetting":{"type":"string"},"canViewPolicy":{"type":"string"},"id":{"type":"string"}},"required":["canAddDomain","canAddPolicy","canAddPolicyException","canAddSite","canAddUser","canApplyPolicyToAssets","canAssignClientCertificates","canDeletePolicy","canDeletePolicyException","canEditAccount","canEditClientCertificates","canEditDomain","canEditPolicy","canEditPolicyException","canEditRoles","canEditSingleIp","canEditSite","canManageAccountSubAccounts","canManageApiKey","canPurgeCache","canRunConnectivityReports","canViewAuditTrail","canViewClientCertificates","canViewInfraProtectSetting","canViewPolicy","id"],"type":"object"}},"incapsula:index/getSslInstructions:getSslInstructions":{"description":"Provides an Incapsula Site SSL instruction resource.\n\nThis data resource enables you to retrieve instructions for configuring your DNS and SSL for completing the domain validation process.\nIt supports domains with CNAME validation method only.\nWhen multiple domains share the same instructions, only one will receive the instructions.\n**Note: This resource is designed to work with sites represented by the \u003cspan pulumi-lang-nodejs=\"\"incapsula.SiteV3\"\" pulumi-lang-dotnet=\"\"incapsula.SiteV3\"\" pulumi-lang-go=\"\"SiteV3\"\" pulumi-lang-python=\"\"SiteV3\"\" pulumi-lang-yaml=\"\"incapsula.SiteV3\"\" pulumi-lang-java=\"\"incapsula.SiteV3\"\"\u003e\"incapsula.SiteV3\"\u003c/span\u003e resource only.**\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as incapsula from \"@pulumi/incapsula\";\n\nconst example = incapsula.getSslInstructions({\n    siteId: mysite.id,\n    domainIds: [\n        myDomain1.id,\n        myDomain2.id,\n    ],\n    managedCertificateSettingsId: myManagedCertificateSettings.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_incapsula as incapsula\n\nexample = incapsula.get_ssl_instructions(site_id=mysite[\"id\"],\n    domain_ids=[\n        my_domain1[\"id\"],\n        my_domain2[\"id\"],\n    ],\n    managed_certificate_settings_id=my_managed_certificate_settings[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Incapsula = Pulumi.Incapsula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Incapsula.GetSslInstructions.Invoke(new()\n    {\n        SiteId = mysite.Id,\n        DomainIds = new[]\n        {\n            myDomain1.Id,\n            myDomain2.Id,\n        },\n        ManagedCertificateSettingsId = myManagedCertificateSettings.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := incapsula.GetSslInstructions(ctx, \u0026incapsula.GetSslInstructionsArgs{\nSiteId: mysite.Id,\nDomainIds: interface{}{\nmyDomain1.Id,\nmyDomain2.Id,\n},\nManagedCertificateSettingsId: myManagedCertificateSettings.Id,\n}, nil);\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.incapsula.IncapsulaFunctions;\nimport com.pulumi.incapsula.inputs.GetSslInstructionsArgs;\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 = IncapsulaFunctions.getSslInstructions(GetSslInstructionsArgs.builder()\n            .siteId(mysite.id())\n            .domainIds(            \n                myDomain1.id(),\n                myDomain2.id())\n            .managedCertificateSettingsId(myManagedCertificateSettings.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: incapsula:getSslInstructions\n      arguments:\n        siteId: ${mysite.id}\n        domainIds:\n          - ${myDomain1.id}\n          - ${myDomain2.id}\n        managedCertificateSettingsId: ${myManagedCertificateSettings.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSslInstructions.\n","properties":{"domainIds":{"type":"array","items":{"type":"string"},"description":"Numeric identifiers of the domains of the site to which the settings will be applied.\n- Type: \u003cspan pulumi-lang-nodejs=\"`list`\" pulumi-lang-dotnet=\"`List`\" pulumi-lang-go=\"`list`\" pulumi-lang-python=\"`list`\" pulumi-lang-yaml=\"`list`\" pulumi-lang-java=\"`list`\"\u003e`list`\u003c/span\u003e of \u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e\n"},"id":{"type":"string","description":"Unique identifier in the API for the Site SSL settings. The id is identical to Site id.\n"},"managedCertificateSettingsId":{"type":"string","description":": Numeric identifier of the managed certificate settings related to the domains.\n- Type: \u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e\n"},"siteId":{"type":"string","description":"Numeric identifier of the site to operate on.\n"}},"type":"object","required":["domainIds","managedCertificateSettingsId","siteId"]},"outputs":{"description":"A collection of values returned by getSslInstructions.\n","properties":{"domainIds":{"items":{"type":"string"},"type":"array"},"id":{"description":"Unique identifier in the API for the Site SSL settings. The id is identical to Site id.\n","type":"string"},"instructions":{"description":"The SSL settings instructions for the domain. It will return a set of instructions for the domains. Each instruction will contain the following fields:\n","items":{"$ref":"#/types/incapsula:index%2FgetSslInstructionsInstruction:getSslInstructionsInstruction"},"type":"array"},"managedCertificateSettingsId":{"type":"string"},"siteId":{"type":"string"}},"required":["domainIds","id","instructions","managedCertificateSettingsId","siteId"],"type":"object"}},"pulumi:providers:incapsula/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:incapsula"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2ltcGVydmEvaW5jYXBzdWxhIiwidmVyc2lvbiI6IjMuMzcuMSJ9fQ=="}}