{
    "name": "cloudngfwaws",
    "displayName": "Palo Alto Networks Cloud NGFW for AWS",
    "description": "A Pulumi package for creating and managing Cloud NGFW for AWS resources.",
    "keywords": [
        "pulumi",
        "cloudngfwaws",
        "Palo Alto Networks",
        "ngfw",
        "category/network"
    ],
    "homepage": "https://pulumi.com",
    "license": "Apache-2.0",
    "attribution": "This Pulumi package is based on the [`cloudngfwaws` Terraform Provider](https://github.com/terraform-providers/terraform-provider-cloudngfwaws).",
    "repository": "https://github.com/pulumi/pulumi-cloudngfwaws",
    "logoUrl": "https://avatars.githubusercontent.com/u/4855743?s=200\u0026v=4",
    "pluginDownloadURL": "github://api.github.com/pulumi/pulumi-cloudngfwaws",
    "meta": {
        "moduleFormat": "(.*)(?:/[^/]*)"
    },
    "language": {
        "csharp": {
            "packageReferences": {
                "Pulumi": "3.*"
            },
            "namespaces": {
                "cloudngfwaws": "CloudNgfwAws"
            },
            "compatibility": "tfbridge20",
            "rootNamespace": "Pulumi",
            "respectSchemaVersion": true
        },
        "go": {
            "importBasePath": "github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws",
            "generateResourceContainerTypes": true,
            "generateExtraInputTypes": true,
            "respectSchemaVersion": true
        },
        "nodejs": {
            "packageName": "@pulumi/cloudngfwaws",
            "packageDescription": "A Pulumi package for creating and managing Cloud NGFW for AWS resources.",
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-cloudngfwaws)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-cloudngfwaws` repo](https://github.com/pulumi/pulumi-cloudngfwaws/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-cloudngfwaws` repo](https://github.com/terraform-providers/terraform-provider-cloudngfwaws/issues).",
            "devDependencies": {
                "@types/mime": "^2.0.0",
                "@types/node": "^10.0.0"
            },
            "compatibility": "tfbridge20",
            "disableUnionOutputTypes": true,
            "respectSchemaVersion": true
        },
        "python": {
            "packageName": "pulumi_cloudngfwaws",
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-cloudngfwaws)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-cloudngfwaws` repo](https://github.com/pulumi/pulumi-cloudngfwaws/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-cloudngfwaws` repo](https://github.com/terraform-providers/terraform-provider-cloudngfwaws/issues).",
            "compatibility": "tfbridge20",
            "respectSchemaVersion": true,
            "pyproject": {
                "enabled": true
            }
        }
    },
    "config": {
        "variables": {
            "accessKey": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS access key. Environment variable: `CLOUDNGFWAWS_ACCESS_KEY`. JSON conf file variable: `access-key`."
            },
            "accountAdminArn": {
                "type": "string",
                "description": "The ARN allowing account admin permissions. Environment variable: `CLOUDNGFWAWS_ACCT_ADMIN_ARN`. JSON conf file variable: `account-admin-arn`."
            },
            "arn": {
                "type": "string",
                "description": "The ARN allowing firewall, rulestack, and global rulestack admin permissions. Global rulestack admin permissions can be enabled only if the AWS account is onboarded by AWS Firewall Manager. Use 'lfa_arn' and 'lra_arn' if you want to enable only firewall and rulestack admin permissions. Environment variable: `CLOUDNGFWAWS_ARN`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e."
            },
            "graArn": {
                "type": "string",
                "description": "The ARN allowing global rulestack admin permissions. Global rulestack admin permissions can be enabled only if the AWS account is onboarded by AWS Firewall Manager. 'gra_arn' is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_GRA_ARN`. JSON conf file variable: `gra-arn`."
            },
            "headers": {
                "type": "object",
                "additionalProperties": {
                    "type": "string"
                },
                "description": "Additional HTTP headers to send with API calls. Environment variable: `CLOUDNGFWAWS_HEADERS`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`headers`\" pulumi-lang-dotnet=\"`Headers`\" pulumi-lang-go=\"`headers`\" pulumi-lang-python=\"`headers`\" pulumi-lang-yaml=\"`headers`\" pulumi-lang-java=\"`headers`\"\u003e`headers`\u003c/span\u003e."
            },
            "host": {
                "type": "string",
                "description": "The hostname of the API (default: `api.us-east-1.aws.cloudngfw.paloaltonetworks.com`). Environment variable: `CLOUDNGFWAWS_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`host`\" pulumi-lang-dotnet=\"`Host`\" pulumi-lang-go=\"`host`\" pulumi-lang-python=\"`host`\" pulumi-lang-yaml=\"`host`\" pulumi-lang-java=\"`host`\"\u003e`host`\u003c/span\u003e."
            },
            "jsonConfigFile": {
                "type": "string",
                "description": "Retrieve provider configuration from this JSON file."
            },
            "lfaArn": {
                "type": "string",
                "description": "The ARN allowing firewall admin permissions. This is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_LFA_ARN`. JSON conf file variable: `lfa-arn`."
            },
            "loggings": {
                "type": "array",
                "items": {
                    "type": "string"
                },
                "description": "The logging options for the provider. Environment variable: `CLOUDNGFWAWS_LOGGING`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e."
            },
            "lraArn": {
                "type": "string",
                "description": "The ARN allowing rulestack admin permissions. This is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_LRA_ARN`. JSON conf file variable: `lra-arn`."
            },
            "mpRegion": {
                "type": "string",
                "description": "AWS management plane region. Environment variable: `CLOUDNGFWAWS_MP_REGION`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`mpRegion`\" pulumi-lang-dotnet=\"`MpRegion`\" pulumi-lang-go=\"`mpRegion`\" pulumi-lang-python=\"`mp_region`\" pulumi-lang-yaml=\"`mpRegion`\" pulumi-lang-java=\"`mpRegion`\"\u003e`mpRegion`\u003c/span\u003e."
            },
            "mpRegionHost": {
                "type": "string",
                "description": "AWS management plane MP region host Environment variable: `CLOUDNGFWAWS_MP_REGION_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`mpRegionHost`\" pulumi-lang-dotnet=\"`MpRegionHost`\" pulumi-lang-go=\"`mpRegionHost`\" pulumi-lang-python=\"`mp_region_host`\" pulumi-lang-yaml=\"`mpRegionHost`\" pulumi-lang-java=\"`mpRegionHost`\"\u003e`mpRegionHost`\u003c/span\u003e."
            },
            "profile": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS PROFILE. Environment variable: `CLOUDNGFWAWS_PROFILE`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e."
            },
            "protocol": {
                "type": "string",
                "description": "The protocol (defaults to \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e). Environment variable: `CLOUDNGFWAWS_PROTOCOL`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e. Valid values are \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e."
            },
            "region": {
                "type": "string",
                "description": "AWS region. Environment variable: `CLOUDNGFWAWS_REGION`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e."
            },
            "secretKey": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS secret key. Environment variable: `CLOUDNGFWAWS_SECRET_KEY`. JSON conf file variable: `secret-key`."
            },
            "skipVerifyCertificate": {
                "type": "boolean",
                "description": "Skip verifying the SSL certificate. Environment variable: `CLOUDNGFWAWS_SKIP_VERIFY_CERTIFICATE`. JSON conf file variable: `skip-verify-certificate`."
            },
            "syncMode": {
                "type": "boolean",
                "description": "Enable synchronous mode while creating resources Environment variable: `CLOUDNGFWAWS_SYNC_MODE`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`syncMode`\u003c/span\u003e."
            },
            "timeout": {
                "type": "integer",
                "description": "The timeout for any single API call (default: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e). Environment variable: `CLOUDNGFWAWS_TIMEOUT`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`timeout`\" pulumi-lang-dotnet=\"`Timeout`\" pulumi-lang-go=\"`timeout`\" pulumi-lang-python=\"`timeout`\" pulumi-lang-yaml=\"`timeout`\" pulumi-lang-java=\"`timeout`\"\u003e`timeout`\u003c/span\u003e."
            },
            "v2Host": {
                "type": "string",
                "description": "The hostname of the V2 API (default: `api.us-east-1.aws.cloudngfw.paloaltonetworks.com`). Environment variable: `CLOUDNGFWAWS_V2_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`v2Host`\" pulumi-lang-dotnet=\"`V2Host`\" pulumi-lang-go=\"`v2Host`\" pulumi-lang-python=\"`v2_host`\" pulumi-lang-yaml=\"`v2Host`\" pulumi-lang-java=\"`v2Host`\"\u003e`v2Host`\u003c/span\u003e."
            }
        }
    },
    "types": {
        "cloudngfwaws:index/NgfwEgressNat:NgfwEgressNat": {
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "Enable egress NAT\n"
                },
                "settings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwEgressNatSetting:NgfwEgressNatSetting"
                    }
                }
            },
            "type": "object",
            "required": [
                "enabled"
            ]
        },
        "cloudngfwaws:index/NgfwEgressNatSetting:NgfwEgressNatSetting": {
            "properties": {
                "ipPoolType": {
                    "type": "string",
                    "description": "Set ip pool type from the following options. Valid values are `AWSService` or `BYOIP`.\n"
                },
                "ipamPoolId": {
                    "type": "string",
                    "description": "The IP pool ID\n"
                }
            },
            "type": "object"
        },
        "cloudngfwaws:index/NgfwEndpoint:NgfwEndpoint": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account id.\n"
                },
                "egressNatEnabled": {
                    "type": "boolean",
                    "description": "Enable egress NAT\n"
                },
                "endpointId": {
                    "type": "string",
                    "description": "Endpoint ID of the security zone\n"
                },
                "mode": {
                    "type": "string",
                    "description": "The endpoint mode. Valid values are `ServiceManaged` or `CustomerManaged`.\n"
                },
                "prefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwEndpointPrefix:NgfwEndpointPrefix"
                    }
                },
                "rejectedReason": {
                    "type": "string",
                    "description": "The rejected reason.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The attachment status.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id.\n"
                },
                "vpcId": {
                    "type": "string",
                    "description": "The vpc id.\n"
                },
                "zoneId": {
                    "type": "string",
                    "description": "The AZ id.\n"
                }
            },
            "type": "object",
            "required": [
                "mode"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "egressNatEnabled",
                        "endpointId",
                        "mode",
                        "prefixes",
                        "rejectedReason",
                        "status",
                        "zoneId"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwEndpointPrefix:NgfwEndpointPrefix": {
            "properties": {
                "privatePrefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwEndpointPrefixPrivatePrefix:NgfwEndpointPrefixPrivatePrefix"
                    }
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "privatePrefixes"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwEndpointPrefixPrivatePrefix:NgfwEndpointPrefixPrivatePrefix": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "cidrs"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwLogProfileLogConfig:NgfwLogProfileLogConfig": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "Type of Role for log configuration\n"
                },
                "logDestination": {
                    "type": "string",
                    "description": "The log destination details.\n"
                },
                "logDestinationType": {
                    "type": "string",
                    "description": "The log destination type. Valid values are `S3`, `CloudWatchLogs`, or `KinesisDataFirehose`.\n"
                },
                "logTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of different log types that are wanted\n"
                },
                "roleType": {
                    "type": "string",
                    "description": "Type of Role for log configuration\n"
                }
            },
            "type": "object",
            "required": [
                "logDestination",
                "logDestinationType",
                "logTypes"
            ]
        },
        "cloudngfwaws:index/NgfwLogProfileLogDestination:NgfwLogProfileLogDestination": {
            "properties": {
                "destination": {
                    "type": "string",
                    "description": "The log destination details.\n"
                },
                "destinationType": {
                    "type": "string",
                    "description": "The log destination type. Valid values are `S3`, `CloudWatchLogs`, or `KinesisDataFirehose`.\n"
                },
                "logType": {
                    "type": "string",
                    "description": "The type of logs. Valid values are `TRAFFIC`, `THREAT`, or `DECRYPTION`.\n"
                }
            },
            "type": "object"
        },
        "cloudngfwaws:index/NgfwPrivateAccess:NgfwPrivateAccess": {
            "properties": {
                "resourceId": {
                    "type": "string",
                    "description": "AWS ResourceID\n"
                },
                "type": {
                    "type": "string",
                    "description": "Type of Private Access\n"
                }
            },
            "type": "object",
            "required": [
                "resourceId",
                "type"
            ]
        },
        "cloudngfwaws:index/NgfwSecurityZone:NgfwSecurityZone": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account id.\n"
                },
                "egressNatEnabled": {
                    "type": "boolean",
                    "description": "Enable egress NAT\n"
                },
                "endpointId": {
                    "type": "string",
                    "description": "Endpoint ID of the security zone\n"
                },
                "mode": {
                    "type": "string",
                    "description": "The endpoint mode. Valid values are `ServiceManaged` or `CustomerManaged`.\n"
                },
                "prefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwSecurityZonePrefix:NgfwSecurityZonePrefix"
                    }
                },
                "rejectedReason": {
                    "type": "string",
                    "description": "The rejected reason.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The attachment status.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id.\n"
                },
                "vpcId": {
                    "type": "string",
                    "description": "The vpc id.\n"
                },
                "zoneId": {
                    "type": "string",
                    "description": "The AZ id.\n"
                }
            },
            "type": "object",
            "required": [
                "endpointId"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "egressNatEnabled",
                        "endpointId",
                        "prefixes",
                        "rejectedReason",
                        "status",
                        "zoneId"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwSecurityZonePrefix:NgfwSecurityZonePrefix": {
            "properties": {
                "privatePrefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwSecurityZonePrefixPrivatePrefix:NgfwSecurityZonePrefixPrivatePrefix"
                    }
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "privatePrefixes"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwSecurityZonePrefixPrivatePrefix:NgfwSecurityZonePrefixPrivatePrefix": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "cidrs"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwStatus:NgfwStatus": {
            "properties": {
                "attachments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwStatusAttachment:NgfwStatusAttachment"
                    },
                    "description": "The firewall attachments.\n"
                },
                "deviceRulestackCommitStatus": {
                    "type": "string",
                    "description": "The device rulestack commit status.\n"
                },
                "failureReason": {
                    "type": "string",
                    "description": "The firewall failure reason.\n"
                },
                "firewallStatus": {
                    "type": "string",
                    "description": "The firewall status.\n"
                },
                "rulestackStatus": {
                    "type": "string",
                    "description": "The rulestack status.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "attachments",
                        "deviceRulestackCommitStatus",
                        "failureReason",
                        "firewallStatus",
                        "rulestackStatus"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwStatusAttachment:NgfwStatusAttachment": {
            "properties": {
                "endpointId": {
                    "type": "string",
                    "description": "The endpoint id.\n"
                },
                "rejectedReason": {
                    "type": "string",
                    "description": "The reject reason.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The attachment status.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "endpointId",
                        "rejectedReason",
                        "status",
                        "subnetId"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwSubnetMapping:NgfwSubnetMapping": {
            "properties": {
                "availabilityZone": {
                    "type": "string",
                    "description": "The availability zone, for when the endpoint mode is customer managed.\n"
                },
                "availabilityZoneId": {
                    "type": "string",
                    "description": "The availability zone ID, for when the endpoint mode is customer managed.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id, for when the endpoint mode is service managed.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "availabilityZone",
                        "availabilityZoneId"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwUserId:NgfwUserId": {
            "properties": {
                "agentName": {
                    "type": "string",
                    "description": "Agent Name for UserID\n"
                },
                "collectorName": {
                    "type": "string",
                    "description": "The Collector Name\n"
                },
                "customIncludeExcludeNetworks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwUserIdCustomIncludeExcludeNetwork:NgfwUserIdCustomIncludeExcludeNetwork"
                    },
                    "description": "List of Custom Include Exclude Networks\n"
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Enable UserID Config\n"
                },
                "port": {
                    "type": "integer",
                    "description": "The Port\n"
                },
                "secretKeyArn": {
                    "type": "string",
                    "description": "AWS Secret Key ARN\n"
                },
                "userIdStatus": {
                    "type": "string",
                    "description": "Status and State of UserID Configuration\n"
                }
            },
            "type": "object",
            "required": [
                "enabled",
                "port"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "enabled",
                        "port",
                        "userIdStatus"
                    ]
                }
            }
        },
        "cloudngfwaws:index/NgfwUserIdCustomIncludeExcludeNetwork:NgfwUserIdCustomIncludeExcludeNetwork": {
            "properties": {
                "discoveryInclude": {
                    "type": "boolean",
                    "description": "Include or exclude this subnet from user-id configuration\n"
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Enable this specific custom include/exclude network\n"
                },
                "name": {
                    "type": "string",
                    "description": "Name of subnet filter\n"
                },
                "networkAddress": {
                    "type": "string",
                    "description": "Network IP address of the subnet filter\n"
                }
            },
            "type": "object",
            "required": [
                "discoveryInclude",
                "enabled",
                "name",
                "networkAddress"
            ]
        },
        "cloudngfwaws:index/RulestackProfileConfig:RulestackProfileConfig": {
            "properties": {
                "antiSpyware": {
                    "type": "string",
                    "description": "Anti-spyware profile setting. Defaults to `BestPractice`.\n"
                },
                "antiVirus": {
                    "type": "string",
                    "description": "Anti-virus profile setting. Defaults to `BestPractice`.\n"
                },
                "fileBlocking": {
                    "type": "string",
                    "description": "File blocking profile setting. Defaults to `BestPractice`.\n"
                },
                "outboundTrustCertificate": {
                    "type": "string",
                    "description": "Outbound trust certificate.\n"
                },
                "outboundUntrustCertificate": {
                    "type": "string",
                    "description": "Outbound untrust certificate.\n"
                },
                "urlFiltering": {
                    "type": "string",
                    "description": "URL filtering profile setting. Defaults to `None`.\n"
                },
                "vulnerability": {
                    "type": "string",
                    "description": "Vulnerability profile setting. Defaults to `BestPractice`.\n"
                }
            },
            "type": "object"
        },
        "cloudngfwaws:index/SecurityRuleCategory:SecurityRuleCategory": {
            "properties": {
                "feeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of feeds.\n"
                },
                "urlCategoryNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of URL category names.\n"
                }
            },
            "type": "object"
        },
        "cloudngfwaws:index/SecurityRuleDestination:SecurityRuleDestination": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of CIDRs.\n"
                },
                "countries": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of countries.\n"
                },
                "feeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of feeds.\n"
                },
                "fqdnLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of FQDN lists.\n"
                },
                "prefixLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of prefix list.\n"
                }
            },
            "type": "object"
        },
        "cloudngfwaws:index/SecurityRuleSource:SecurityRuleSource": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of CIDRs.\n"
                },
                "countries": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of countries.\n"
                },
                "feeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of feeds.\n"
                },
                "prefixLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of prefix list.\n"
                }
            },
            "type": "object"
        },
        "cloudngfwaws:index/getAccountsAccountDetail:getAccountsAccountDetail": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account id.\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "External Id of the onboarded account\n"
                },
                "onboardingStatus": {
                    "type": "string",
                    "description": "Onboarding status of the account.\n"
                }
            },
            "type": "object",
            "required": [
                "accountId",
                "externalId",
                "onboardingStatus"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwEgressNat:getNgfwEgressNat": {
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "Enable egress NAT\n"
                },
                "settings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/getNgfwEgressNatSetting:getNgfwEgressNatSetting"
                    }
                }
            },
            "type": "object",
            "required": [
                "enabled",
                "settings"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwEgressNatSetting:getNgfwEgressNatSetting": {
            "properties": {
                "ipPoolType": {
                    "type": "string",
                    "description": "Set ip pool type from the following options. Valid values are `AWSService` or `BYOIP`.\n"
                },
                "ipamPoolId": {
                    "type": "string",
                    "description": "The IP pool ID\n"
                }
            },
            "type": "object",
            "required": [
                "ipPoolType",
                "ipamPoolId"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwEndpoint:getNgfwEndpoint": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account id.\n"
                },
                "egressNatEnabled": {
                    "type": "boolean",
                    "description": "Enable egress NAT\n"
                },
                "endpointId": {
                    "type": "string",
                    "description": "Endpoint ID of the security zone\n"
                },
                "mode": {
                    "type": "string",
                    "description": "The endpoint mode. Valid values are `ServiceManaged` or `CustomerManaged`.\n"
                },
                "prefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/getNgfwEndpointPrefix:getNgfwEndpointPrefix"
                    }
                },
                "rejectedReason": {
                    "type": "string",
                    "description": "The rejected reason.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The attachment status.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id.\n"
                },
                "vpcId": {
                    "type": "string",
                    "description": "The vpc id.\n"
                },
                "zoneId": {
                    "type": "string",
                    "description": "The AZ id.\n"
                }
            },
            "type": "object",
            "required": [
                "accountId",
                "egressNatEnabled",
                "endpointId",
                "mode",
                "prefixes",
                "rejectedReason",
                "status",
                "subnetId",
                "vpcId",
                "zoneId"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwEndpointPrefix:getNgfwEndpointPrefix": {
            "properties": {
                "privatePrefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/getNgfwEndpointPrefixPrivatePrefix:getNgfwEndpointPrefixPrivatePrefix"
                    }
                }
            },
            "type": "object",
            "required": [
                "privatePrefixes"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwEndpointPrefixPrivatePrefix:getNgfwEndpointPrefixPrivatePrefix": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "type": "object",
            "required": [
                "cidrs"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwLogProfileLogConfig:getNgfwLogProfileLogConfig": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "Type of Role for log configuration\n"
                },
                "logDestination": {
                    "type": "string",
                    "description": "The log destination details.\n"
                },
                "logDestinationType": {
                    "type": "string",
                    "description": "The log destination type. Valid values are `S3`, `CloudWatchLogs`, or `KinesisDataFirehose`.\n"
                },
                "logTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of different log types that are wanted\n"
                },
                "roleType": {
                    "type": "string",
                    "description": "Type of Role for log configuration\n"
                }
            },
            "type": "object",
            "required": [
                "accountId",
                "logDestination",
                "logDestinationType",
                "logTypes",
                "roleType"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwLogProfileLogDestination:getNgfwLogProfileLogDestination": {
            "properties": {
                "destination": {
                    "type": "string",
                    "description": "The log destination details.\n"
                },
                "destinationType": {
                    "type": "string",
                    "description": "The log destination type. Valid values are `S3`, `CloudWatchLogs`, or `KinesisDataFirehose`.\n"
                },
                "logType": {
                    "type": "string",
                    "description": "The type of logs. Valid values are `TRAFFIC`, `THREAT`, or `DECRYPTION`.\n"
                }
            },
            "type": "object",
            "required": [
                "destination",
                "destinationType",
                "logType"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwPrivateAccess:getNgfwPrivateAccess": {
            "properties": {
                "resourceId": {
                    "type": "string",
                    "description": "AWS ResourceID\n"
                },
                "type": {
                    "type": "string",
                    "description": "Type of Private Access\n"
                }
            },
            "type": "object",
            "required": [
                "resourceId",
                "type"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwSecurityZone:getNgfwSecurityZone": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account id.\n"
                },
                "egressNatEnabled": {
                    "type": "boolean",
                    "description": "Enable egress NAT\n"
                },
                "endpointId": {
                    "type": "string",
                    "description": "Endpoint ID of the security zone\n"
                },
                "mode": {
                    "type": "string",
                    "description": "The endpoint mode. Valid values are `ServiceManaged` or `CustomerManaged`.\n"
                },
                "prefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/getNgfwSecurityZonePrefix:getNgfwSecurityZonePrefix"
                    }
                },
                "rejectedReason": {
                    "type": "string",
                    "description": "The rejected reason.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The attachment status.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id.\n"
                },
                "vpcId": {
                    "type": "string",
                    "description": "The vpc id.\n"
                },
                "zoneId": {
                    "type": "string",
                    "description": "The AZ id.\n"
                }
            },
            "type": "object",
            "required": [
                "accountId",
                "egressNatEnabled",
                "endpointId",
                "mode",
                "prefixes",
                "rejectedReason",
                "status",
                "subnetId",
                "vpcId",
                "zoneId"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwSecurityZonePrefix:getNgfwSecurityZonePrefix": {
            "properties": {
                "privatePrefixes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/getNgfwSecurityZonePrefixPrivatePrefix:getNgfwSecurityZonePrefixPrivatePrefix"
                    }
                }
            },
            "type": "object",
            "required": [
                "privatePrefixes"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwSecurityZonePrefixPrivatePrefix:getNgfwSecurityZonePrefixPrivatePrefix": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "type": "object",
            "required": [
                "cidrs"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwStatus:getNgfwStatus": {
            "properties": {
                "attachments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/getNgfwStatusAttachment:getNgfwStatusAttachment"
                    },
                    "description": "The firewall attachments.\n"
                },
                "deviceRulestackCommitStatus": {
                    "type": "string",
                    "description": "The device rulestack commit status.\n"
                },
                "failureReason": {
                    "type": "string",
                    "description": "The firewall failure reason.\n"
                },
                "firewallStatus": {
                    "type": "string",
                    "description": "The firewall status.\n"
                },
                "rulestackStatus": {
                    "type": "string",
                    "description": "The rulestack status.\n"
                }
            },
            "type": "object",
            "required": [
                "attachments",
                "deviceRulestackCommitStatus",
                "failureReason",
                "firewallStatus",
                "rulestackStatus"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwStatusAttachment:getNgfwStatusAttachment": {
            "properties": {
                "endpointId": {
                    "type": "string",
                    "description": "The endpoint id.\n"
                },
                "rejectedReason": {
                    "type": "string",
                    "description": "The reject reason.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The attachment status.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id.\n"
                }
            },
            "type": "object",
            "required": [
                "endpointId",
                "rejectedReason",
                "status",
                "subnetId"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwSubnetMapping:getNgfwSubnetMapping": {
            "properties": {
                "availabilityZone": {
                    "type": "string",
                    "description": "The availability zone, for when the endpoint mode is customer managed.\n"
                },
                "availabilityZoneId": {
                    "type": "string",
                    "description": "The availability zone ID, for when the endpoint mode is customer managed.\n"
                },
                "subnetId": {
                    "type": "string",
                    "description": "The subnet id, for when the endpoint mode is service managed.\n"
                }
            },
            "type": "object",
            "required": [
                "availabilityZone",
                "availabilityZoneId",
                "subnetId"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwUserId:getNgfwUserId": {
            "properties": {
                "agentName": {
                    "type": "string",
                    "description": "Agent Name for UserID\n"
                },
                "collectorName": {
                    "type": "string",
                    "description": "The Collector Name\n"
                },
                "customIncludeExcludeNetworks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/getNgfwUserIdCustomIncludeExcludeNetwork:getNgfwUserIdCustomIncludeExcludeNetwork"
                    },
                    "description": "List of Custom Include Exclude Networks\n"
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Enable UserID Config\n"
                },
                "port": {
                    "type": "integer",
                    "description": "The Port\n"
                },
                "secretKeyArn": {
                    "type": "string",
                    "description": "AWS Secret Key ARN\n"
                },
                "userIdStatus": {
                    "type": "string",
                    "description": "Status and State of UserID Configuration\n"
                }
            },
            "type": "object",
            "required": [
                "agentName",
                "collectorName",
                "customIncludeExcludeNetworks",
                "enabled",
                "port",
                "secretKeyArn",
                "userIdStatus"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwUserIdCustomIncludeExcludeNetwork:getNgfwUserIdCustomIncludeExcludeNetwork": {
            "properties": {
                "discoveryInclude": {
                    "type": "boolean",
                    "description": "Include or exclude this subnet from user-id configuration\n"
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Enable this specific custom include/exclude network\n"
                },
                "name": {
                    "type": "string",
                    "description": "Name of subnet filter\n"
                },
                "networkAddress": {
                    "type": "string",
                    "description": "Network IP address of the subnet filter\n"
                }
            },
            "type": "object",
            "required": [
                "discoveryInclude",
                "enabled",
                "name",
                "networkAddress"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getNgfwsInstance:getNgfwsInstance": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account id.\n"
                },
                "firewallId": {
                    "type": "string",
                    "description": "The NGFW ID.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The NGFW name.\n"
                },
                "region": {
                    "type": "string",
                    "description": "The region the NGFW is in.\n"
                }
            },
            "type": "object",
            "required": [
                "accountId",
                "firewallId",
                "name",
                "region"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getRulestackProfileConfig:getRulestackProfileConfig": {
            "properties": {
                "antiSpyware": {
                    "type": "string",
                    "description": "Anti-spyware profile setting.\n"
                },
                "antiVirus": {
                    "type": "string",
                    "description": "Anti-virus profile setting.\n"
                },
                "fileBlocking": {
                    "type": "string",
                    "description": "File blocking profile setting.\n"
                },
                "outboundTrustCertificate": {
                    "type": "string",
                    "description": "Outbound trust certificate.\n"
                },
                "outboundUntrustCertificate": {
                    "type": "string",
                    "description": "Outbound untrust certificate.\n"
                },
                "urlFiltering": {
                    "type": "string",
                    "description": "URL filtering profile setting.\n"
                },
                "vulnerability": {
                    "type": "string",
                    "description": "Vulnerability profile setting.\n"
                }
            },
            "type": "object",
            "required": [
                "antiSpyware",
                "antiVirus",
                "fileBlocking",
                "outboundTrustCertificate",
                "outboundUntrustCertificate",
                "urlFiltering",
                "vulnerability"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getSecurityRuleCategory:getSecurityRuleCategory": {
            "properties": {
                "feeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of feeds.\n"
                },
                "urlCategoryNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of URL category names.\n"
                }
            },
            "type": "object",
            "required": [
                "feeds",
                "urlCategoryNames"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getSecurityRuleDestination:getSecurityRuleDestination": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of CIDRs.\n"
                },
                "countries": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of countries.\n"
                },
                "feeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of feeds.\n"
                },
                "fqdnLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of FQDN lists.\n"
                },
                "prefixLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of prefix list.\n"
                }
            },
            "type": "object",
            "required": [
                "cidrs",
                "countries",
                "feeds",
                "fqdnLists",
                "prefixLists"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "cloudngfwaws:index/getSecurityRuleSource:getSecurityRuleSource": {
            "properties": {
                "cidrs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of CIDRs.\n"
                },
                "countries": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of countries.\n"
                },
                "feeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of feeds.\n"
                },
                "prefixLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of prefix list.\n"
                }
            },
            "type": "object",
            "required": [
                "cidrs",
                "countries",
                "feeds",
                "prefixLists"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        }
    },
    "provider": {
        "description": "The provider type for the cloudngfwaws 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": {
            "accessKey": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS access key. Environment variable: `CLOUDNGFWAWS_ACCESS_KEY`. JSON conf file variable: `access-key`."
            },
            "accountAdminArn": {
                "type": "string",
                "description": "The ARN allowing account admin permissions. Environment variable: `CLOUDNGFWAWS_ACCT_ADMIN_ARN`. JSON conf file variable: `account-admin-arn`."
            },
            "arn": {
                "type": "string",
                "description": "The ARN allowing firewall, rulestack, and global rulestack admin permissions. Global rulestack admin permissions can be enabled only if the AWS account is onboarded by AWS Firewall Manager. Use 'lfa_arn' and 'lra_arn' if you want to enable only firewall and rulestack admin permissions. Environment variable: `CLOUDNGFWAWS_ARN`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e."
            },
            "graArn": {
                "type": "string",
                "description": "The ARN allowing global rulestack admin permissions. Global rulestack admin permissions can be enabled only if the AWS account is onboarded by AWS Firewall Manager. 'gra_arn' is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_GRA_ARN`. JSON conf file variable: `gra-arn`."
            },
            "headers": {
                "type": "object",
                "additionalProperties": {
                    "type": "string"
                },
                "description": "Additional HTTP headers to send with API calls. Environment variable: `CLOUDNGFWAWS_HEADERS`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`headers`\" pulumi-lang-dotnet=\"`Headers`\" pulumi-lang-go=\"`headers`\" pulumi-lang-python=\"`headers`\" pulumi-lang-yaml=\"`headers`\" pulumi-lang-java=\"`headers`\"\u003e`headers`\u003c/span\u003e."
            },
            "host": {
                "type": "string",
                "description": "The hostname of the API (default: `api.us-east-1.aws.cloudngfw.paloaltonetworks.com`). Environment variable: `CLOUDNGFWAWS_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`host`\" pulumi-lang-dotnet=\"`Host`\" pulumi-lang-go=\"`host`\" pulumi-lang-python=\"`host`\" pulumi-lang-yaml=\"`host`\" pulumi-lang-java=\"`host`\"\u003e`host`\u003c/span\u003e."
            },
            "jsonConfigFile": {
                "type": "string",
                "description": "Retrieve provider configuration from this JSON file."
            },
            "lfaArn": {
                "type": "string",
                "description": "The ARN allowing firewall admin permissions. This is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_LFA_ARN`. JSON conf file variable: `lfa-arn`."
            },
            "loggings": {
                "type": "array",
                "items": {
                    "type": "string"
                },
                "description": "The logging options for the provider. Environment variable: `CLOUDNGFWAWS_LOGGING`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e."
            },
            "lraArn": {
                "type": "string",
                "description": "The ARN allowing rulestack admin permissions. This is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_LRA_ARN`. JSON conf file variable: `lra-arn`."
            },
            "mpRegion": {
                "type": "string",
                "description": "AWS management plane region. Environment variable: `CLOUDNGFWAWS_MP_REGION`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`mpRegion`\" pulumi-lang-dotnet=\"`MpRegion`\" pulumi-lang-go=\"`mpRegion`\" pulumi-lang-python=\"`mp_region`\" pulumi-lang-yaml=\"`mpRegion`\" pulumi-lang-java=\"`mpRegion`\"\u003e`mpRegion`\u003c/span\u003e."
            },
            "mpRegionHost": {
                "type": "string",
                "description": "AWS management plane MP region host Environment variable: `CLOUDNGFWAWS_MP_REGION_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`mpRegionHost`\" pulumi-lang-dotnet=\"`MpRegionHost`\" pulumi-lang-go=\"`mpRegionHost`\" pulumi-lang-python=\"`mp_region_host`\" pulumi-lang-yaml=\"`mpRegionHost`\" pulumi-lang-java=\"`mpRegionHost`\"\u003e`mpRegionHost`\u003c/span\u003e."
            },
            "profile": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS PROFILE. Environment variable: `CLOUDNGFWAWS_PROFILE`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e."
            },
            "protocol": {
                "type": "string",
                "description": "The protocol (defaults to \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e). Environment variable: `CLOUDNGFWAWS_PROTOCOL`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e. Valid values are \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e."
            },
            "region": {
                "type": "string",
                "description": "AWS region. Environment variable: `CLOUDNGFWAWS_REGION`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e."
            },
            "secretKey": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS secret key. Environment variable: `CLOUDNGFWAWS_SECRET_KEY`. JSON conf file variable: `secret-key`."
            },
            "skipVerifyCertificate": {
                "type": "boolean",
                "description": "Skip verifying the SSL certificate. Environment variable: `CLOUDNGFWAWS_SKIP_VERIFY_CERTIFICATE`. JSON conf file variable: `skip-verify-certificate`."
            },
            "syncMode": {
                "type": "boolean",
                "description": "Enable synchronous mode while creating resources Environment variable: `CLOUDNGFWAWS_SYNC_MODE`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`syncMode`\u003c/span\u003e."
            },
            "timeout": {
                "type": "integer",
                "description": "The timeout for any single API call (default: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e). Environment variable: `CLOUDNGFWAWS_TIMEOUT`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`timeout`\" pulumi-lang-dotnet=\"`Timeout`\" pulumi-lang-go=\"`timeout`\" pulumi-lang-python=\"`timeout`\" pulumi-lang-yaml=\"`timeout`\" pulumi-lang-java=\"`timeout`\"\u003e`timeout`\u003c/span\u003e."
            },
            "v2Host": {
                "type": "string",
                "description": "The hostname of the V2 API (default: `api.us-east-1.aws.cloudngfw.paloaltonetworks.com`). Environment variable: `CLOUDNGFWAWS_V2_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`v2Host`\" pulumi-lang-dotnet=\"`V2Host`\" pulumi-lang-go=\"`v2Host`\" pulumi-lang-python=\"`v2_host`\" pulumi-lang-yaml=\"`v2Host`\" pulumi-lang-java=\"`v2Host`\"\u003e`v2Host`\u003c/span\u003e."
            }
        },
        "inputProperties": {
            "accessKey": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS access key. Environment variable: `CLOUDNGFWAWS_ACCESS_KEY`. JSON conf file variable: `access-key`."
            },
            "accountAdminArn": {
                "type": "string",
                "description": "The ARN allowing account admin permissions. Environment variable: `CLOUDNGFWAWS_ACCT_ADMIN_ARN`. JSON conf file variable: `account-admin-arn`."
            },
            "arn": {
                "type": "string",
                "description": "The ARN allowing firewall, rulestack, and global rulestack admin permissions. Global rulestack admin permissions can be enabled only if the AWS account is onboarded by AWS Firewall Manager. Use 'lfa_arn' and 'lra_arn' if you want to enable only firewall and rulestack admin permissions. Environment variable: `CLOUDNGFWAWS_ARN`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e."
            },
            "graArn": {
                "type": "string",
                "description": "The ARN allowing global rulestack admin permissions. Global rulestack admin permissions can be enabled only if the AWS account is onboarded by AWS Firewall Manager. 'gra_arn' is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_GRA_ARN`. JSON conf file variable: `gra-arn`."
            },
            "headers": {
                "type": "object",
                "additionalProperties": {
                    "type": "string"
                },
                "description": "Additional HTTP headers to send with API calls. Environment variable: `CLOUDNGFWAWS_HEADERS`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`headers`\" pulumi-lang-dotnet=\"`Headers`\" pulumi-lang-go=\"`headers`\" pulumi-lang-python=\"`headers`\" pulumi-lang-yaml=\"`headers`\" pulumi-lang-java=\"`headers`\"\u003e`headers`\u003c/span\u003e."
            },
            "host": {
                "type": "string",
                "description": "The hostname of the API (default: `api.us-east-1.aws.cloudngfw.paloaltonetworks.com`). Environment variable: `CLOUDNGFWAWS_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`host`\" pulumi-lang-dotnet=\"`Host`\" pulumi-lang-go=\"`host`\" pulumi-lang-python=\"`host`\" pulumi-lang-yaml=\"`host`\" pulumi-lang-java=\"`host`\"\u003e`host`\u003c/span\u003e."
            },
            "jsonConfigFile": {
                "type": "string",
                "description": "Retrieve provider configuration from this JSON file."
            },
            "lfaArn": {
                "type": "string",
                "description": "The ARN allowing firewall admin permissions. This is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_LFA_ARN`. JSON conf file variable: `lfa-arn`."
            },
            "loggings": {
                "type": "array",
                "items": {
                    "type": "string"
                },
                "description": "The logging options for the provider. Environment variable: `CLOUDNGFWAWS_LOGGING`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e."
            },
            "lraArn": {
                "type": "string",
                "description": "The ARN allowing rulestack admin permissions. This is preferentially used over the \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e param if both are specified. Environment variable: `CLOUDNGFWAWS_LRA_ARN`. JSON conf file variable: `lra-arn`."
            },
            "mpRegion": {
                "type": "string",
                "description": "AWS management plane region. Environment variable: `CLOUDNGFWAWS_MP_REGION`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`mpRegion`\" pulumi-lang-dotnet=\"`MpRegion`\" pulumi-lang-go=\"`mpRegion`\" pulumi-lang-python=\"`mp_region`\" pulumi-lang-yaml=\"`mpRegion`\" pulumi-lang-java=\"`mpRegion`\"\u003e`mpRegion`\u003c/span\u003e."
            },
            "mpRegionHost": {
                "type": "string",
                "description": "AWS management plane MP region host Environment variable: `CLOUDNGFWAWS_MP_REGION_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`mpRegionHost`\" pulumi-lang-dotnet=\"`MpRegionHost`\" pulumi-lang-go=\"`mpRegionHost`\" pulumi-lang-python=\"`mp_region_host`\" pulumi-lang-yaml=\"`mpRegionHost`\" pulumi-lang-java=\"`mpRegionHost`\"\u003e`mpRegionHost`\u003c/span\u003e."
            },
            "profile": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS PROFILE. Environment variable: `CLOUDNGFWAWS_PROFILE`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e."
            },
            "protocol": {
                "type": "string",
                "description": "The protocol (defaults to \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e). Environment variable: `CLOUDNGFWAWS_PROTOCOL`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e. Valid values are \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e."
            },
            "region": {
                "type": "string",
                "description": "AWS region. Environment variable: `CLOUDNGFWAWS_REGION`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e."
            },
            "secretKey": {
                "type": "string",
                "description": "(Used for the initial `sts assume role`) AWS secret key. Environment variable: `CLOUDNGFWAWS_SECRET_KEY`. JSON conf file variable: `secret-key`."
            },
            "skipVerifyCertificate": {
                "type": "boolean",
                "description": "Skip verifying the SSL certificate. Environment variable: `CLOUDNGFWAWS_SKIP_VERIFY_CERTIFICATE`. JSON conf file variable: `skip-verify-certificate`."
            },
            "syncMode": {
                "type": "boolean",
                "description": "Enable synchronous mode while creating resources Environment variable: `CLOUDNGFWAWS_SYNC_MODE`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`syncMode`\" pulumi-lang-dotnet=\"`SyncMode`\" pulumi-lang-go=\"`syncMode`\" pulumi-lang-python=\"`sync_mode`\" pulumi-lang-yaml=\"`syncMode`\" pulumi-lang-java=\"`syncMode`\"\u003e`syncMode`\u003c/span\u003e."
            },
            "timeout": {
                "type": "integer",
                "description": "The timeout for any single API call (default: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e). Environment variable: `CLOUDNGFWAWS_TIMEOUT`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`timeout`\" pulumi-lang-dotnet=\"`Timeout`\" pulumi-lang-go=\"`timeout`\" pulumi-lang-python=\"`timeout`\" pulumi-lang-yaml=\"`timeout`\" pulumi-lang-java=\"`timeout`\"\u003e`timeout`\u003c/span\u003e."
            },
            "v2Host": {
                "type": "string",
                "description": "The hostname of the V2 API (default: `api.us-east-1.aws.cloudngfw.paloaltonetworks.com`). Environment variable: `CLOUDNGFWAWS_V2_HOST`. JSON conf file variable: \u003cspan pulumi-lang-nodejs=\"`v2Host`\" pulumi-lang-dotnet=\"`V2Host`\" pulumi-lang-go=\"`v2Host`\" pulumi-lang-python=\"`v2_host`\" pulumi-lang-yaml=\"`v2Host`\" pulumi-lang-java=\"`v2Host`\"\u003e`v2Host`\u003c/span\u003e."
            }
        },
        "methods": {
            "terraformConfig": "pulumi:providers:cloudngfwaws/terraformConfig"
        }
    },
    "resources": {
        "cloudngfwaws:index/account:Account": {
            "description": "Resource for Account manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n",
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account ID\n"
                },
                "cftUrl": {
                    "type": "string",
                    "description": "The CFT URL.\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "The external ID of the account\n"
                },
                "onboardingStatus": {
                    "type": "string",
                    "description": "The Account onboarding status\n"
                },
                "origin": {
                    "type": "string",
                    "description": "Origin of account onboarding\n"
                },
                "serviceAccountId": {
                    "type": "string",
                    "description": "The account ID of cloud NGFW service\n"
                },
                "snsTopicArn": {
                    "type": "string",
                    "description": "The SNS topic ARN\n"
                },
                "trustedAccount": {
                    "type": "string",
                    "description": "The trusted account ID\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                }
            },
            "required": [
                "cftUrl",
                "externalId",
                "onboardingStatus",
                "origin",
                "serviceAccountId",
                "snsTopicArn",
                "trustedAccount",
                "updateToken"
            ],
            "inputProperties": {
                "accountId": {
                    "type": "string",
                    "description": "The account ID\n",
                    "willReplaceOnChanges": true
                },
                "cftUrl": {
                    "type": "string",
                    "description": "The CFT URL.\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "The external ID of the account\n"
                },
                "onboardingStatus": {
                    "type": "string",
                    "description": "The Account onboarding status\n"
                },
                "origin": {
                    "type": "string",
                    "description": "Origin of account onboarding\n"
                },
                "serviceAccountId": {
                    "type": "string",
                    "description": "The account ID of cloud NGFW service\n"
                },
                "snsTopicArn": {
                    "type": "string",
                    "description": "The SNS topic ARN\n"
                },
                "trustedAccount": {
                    "type": "string",
                    "description": "The trusted account ID\n"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Account resources.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The account ID\n",
                        "willReplaceOnChanges": true
                    },
                    "cftUrl": {
                        "type": "string",
                        "description": "The CFT URL.\n"
                    },
                    "externalId": {
                        "type": "string",
                        "description": "The external ID of the account\n"
                    },
                    "onboardingStatus": {
                        "type": "string",
                        "description": "The Account onboarding status\n"
                    },
                    "origin": {
                        "type": "string",
                        "description": "Origin of account onboarding\n"
                    },
                    "serviceAccountId": {
                        "type": "string",
                        "description": "The account ID of cloud NGFW service\n"
                    },
                    "snsTopicArn": {
                        "type": "string",
                        "description": "The SNS topic ARN\n"
                    },
                    "trustedAccount": {
                        "type": "string",
                        "description": "The trusted account ID\n"
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/accountOnboarding:AccountOnboarding": {
            "description": "Resource for Account Onboarding.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n",
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account IDs\n"
                },
                "onboardingStatus": {
                    "type": "string",
                    "description": "Onboarding status of the account\n"
                }
            },
            "required": [
                "accountId",
                "onboardingStatus"
            ],
            "inputProperties": {
                "accountId": {
                    "type": "string",
                    "description": "The account IDs\n",
                    "willReplaceOnChanges": true
                },
                "onboardingStatus": {
                    "type": "string",
                    "description": "Onboarding status of the account\n"
                }
            },
            "requiredInputs": [
                "accountId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering AccountOnboarding resources.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The account IDs\n",
                        "willReplaceOnChanges": true
                    },
                    "onboardingStatus": {
                        "type": "string",
                        "description": "Onboarding status of the account\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/accountOnboardingStack:AccountOnboardingStack": {
            "description": "Resource for Account Onboarding.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n",
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The account IDs\n"
                },
                "auditlogGroup": {
                    "type": "string",
                    "description": "Audit Log Group Name\n"
                },
                "cftRoleName": {
                    "type": "string",
                    "description": "Role name to run the account onboarding CFT in each account to be onboarded.\n"
                },
                "cloudwatchLogGroup": {
                    "type": "string",
                    "description": "Cloudwatch Log Group\n"
                },
                "cloudwatchNamespace": {
                    "type": "string",
                    "description": "Cloudwatch Namespace\n"
                },
                "decryptionCert": {
                    "type": "string",
                    "description": "The CloudNGFW can decrypt inbound and outbound traffic by providing a\n\t\t\t\t\t  certificate stored in secret Manager.\n\t\t \t\t\t  The role allows the service to access a certificate configured in the rulestack.\n\t\t \t\t\t  Only certificated tagged with PaloAltoCloudNGFW can be accessed\n"
                },
                "endpointMode": {
                    "type": "string",
                    "description": "Controls whether cloud NGFW will create firewall endpoints automatitically in customer subnets\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "External Id of the onboarded account\n"
                },
                "kinesisFirehose": {
                    "type": "string",
                    "description": "Kinesis Firehose for logging\n"
                },
                "onboardingCft": {
                    "type": "string",
                    "description": "Role name to run the account onboarding CFT in each account to be onboarded.\n"
                },
                "s3Bucket": {
                    "type": "string",
                    "description": "S3 Bucket Name for Logging. Logging roles provide access to create log contents in this bucket.\n"
                },
                "snsTopicArn": {
                    "type": "string",
                    "description": "SNS topic ARN to publish the role ARNs\n"
                },
                "stackId": {
                    "type": "string",
                    "description": "ID of the account onboarding CFT stack\n"
                },
                "stackStatus": {
                    "type": "string",
                    "description": "Status of the account onboarding CFT stack.\n"
                },
                "trustedAccount": {
                    "type": "string",
                    "description": "PANW Cloud NGFW trusted account Id\n"
                }
            },
            "required": [
                "accountId",
                "cftRoleName",
                "externalId",
                "onboardingCft",
                "snsTopicArn",
                "stackId",
                "stackStatus",
                "trustedAccount"
            ],
            "inputProperties": {
                "accountId": {
                    "type": "string",
                    "description": "The account IDs\n",
                    "willReplaceOnChanges": true
                },
                "auditlogGroup": {
                    "type": "string",
                    "description": "Audit Log Group Name\n",
                    "willReplaceOnChanges": true
                },
                "cftRoleName": {
                    "type": "string",
                    "description": "Role name to run the account onboarding CFT in each account to be onboarded.\n",
                    "willReplaceOnChanges": true
                },
                "cloudwatchLogGroup": {
                    "type": "string",
                    "description": "Cloudwatch Log Group\n",
                    "willReplaceOnChanges": true
                },
                "cloudwatchNamespace": {
                    "type": "string",
                    "description": "Cloudwatch Namespace\n",
                    "willReplaceOnChanges": true
                },
                "decryptionCert": {
                    "type": "string",
                    "description": "The CloudNGFW can decrypt inbound and outbound traffic by providing a\n\t\t\t\t\t  certificate stored in secret Manager.\n\t\t \t\t\t  The role allows the service to access a certificate configured in the rulestack.\n\t\t \t\t\t  Only certificated tagged with PaloAltoCloudNGFW can be accessed\n",
                    "willReplaceOnChanges": true
                },
                "endpointMode": {
                    "type": "string",
                    "description": "Controls whether cloud NGFW will create firewall endpoints automatitically in customer subnets\n",
                    "willReplaceOnChanges": true
                },
                "externalId": {
                    "type": "string",
                    "description": "External Id of the onboarded account\n",
                    "willReplaceOnChanges": true
                },
                "kinesisFirehose": {
                    "type": "string",
                    "description": "Kinesis Firehose for logging\n",
                    "willReplaceOnChanges": true
                },
                "onboardingCft": {
                    "type": "string",
                    "description": "Role name to run the account onboarding CFT in each account to be onboarded.\n",
                    "willReplaceOnChanges": true
                },
                "s3Bucket": {
                    "type": "string",
                    "description": "S3 Bucket Name for Logging. Logging roles provide access to create log contents in this bucket.\n",
                    "willReplaceOnChanges": true
                },
                "snsTopicArn": {
                    "type": "string",
                    "description": "SNS topic ARN to publish the role ARNs\n",
                    "willReplaceOnChanges": true
                },
                "stackId": {
                    "type": "string",
                    "description": "ID of the account onboarding CFT stack\n"
                },
                "stackStatus": {
                    "type": "string",
                    "description": "Status of the account onboarding CFT stack.\n"
                },
                "trustedAccount": {
                    "type": "string",
                    "description": "PANW Cloud NGFW trusted account Id\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "accountId",
                "cftRoleName",
                "externalId",
                "onboardingCft",
                "snsTopicArn",
                "trustedAccount"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering AccountOnboardingStack resources.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The account IDs\n",
                        "willReplaceOnChanges": true
                    },
                    "auditlogGroup": {
                        "type": "string",
                        "description": "Audit Log Group Name\n",
                        "willReplaceOnChanges": true
                    },
                    "cftRoleName": {
                        "type": "string",
                        "description": "Role name to run the account onboarding CFT in each account to be onboarded.\n",
                        "willReplaceOnChanges": true
                    },
                    "cloudwatchLogGroup": {
                        "type": "string",
                        "description": "Cloudwatch Log Group\n",
                        "willReplaceOnChanges": true
                    },
                    "cloudwatchNamespace": {
                        "type": "string",
                        "description": "Cloudwatch Namespace\n",
                        "willReplaceOnChanges": true
                    },
                    "decryptionCert": {
                        "type": "string",
                        "description": "The CloudNGFW can decrypt inbound and outbound traffic by providing a\n\t\t\t\t\t  certificate stored in secret Manager.\n\t\t \t\t\t  The role allows the service to access a certificate configured in the rulestack.\n\t\t \t\t\t  Only certificated tagged with PaloAltoCloudNGFW can be accessed\n",
                        "willReplaceOnChanges": true
                    },
                    "endpointMode": {
                        "type": "string",
                        "description": "Controls whether cloud NGFW will create firewall endpoints automatitically in customer subnets\n",
                        "willReplaceOnChanges": true
                    },
                    "externalId": {
                        "type": "string",
                        "description": "External Id of the onboarded account\n",
                        "willReplaceOnChanges": true
                    },
                    "kinesisFirehose": {
                        "type": "string",
                        "description": "Kinesis Firehose for logging\n",
                        "willReplaceOnChanges": true
                    },
                    "onboardingCft": {
                        "type": "string",
                        "description": "Role name to run the account onboarding CFT in each account to be onboarded.\n",
                        "willReplaceOnChanges": true
                    },
                    "s3Bucket": {
                        "type": "string",
                        "description": "S3 Bucket Name for Logging. Logging roles provide access to create log contents in this bucket.\n",
                        "willReplaceOnChanges": true
                    },
                    "snsTopicArn": {
                        "type": "string",
                        "description": "SNS topic ARN to publish the role ARNs\n",
                        "willReplaceOnChanges": true
                    },
                    "stackId": {
                        "type": "string",
                        "description": "ID of the account onboarding CFT stack\n"
                    },
                    "stackStatus": {
                        "type": "string",
                        "description": "Status of the account onboarding CFT stack.\n"
                    },
                    "trustedAccount": {
                        "type": "string",
                        "description": "PANW Cloud NGFW trusted account Id\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/certificate:Certificate": {
            "description": "Resource for certificate manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = new cloudngfwaws.Certificate(\"example\", {\n    rulestack: r.name,\n    name: \"tf-cert\",\n    description: \"Also configured by Terraform\",\n    selfSigned: true,\n    auditComment: \"initial config\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.Certificate(\"example\",\n    rulestack=r.name,\n    name=\"tf-cert\",\n    description=\"Also configured by Terraform\",\n    self_signed=True,\n    audit_comment=\"initial config\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = new CloudNgfwAws.Index.Certificate(\"example\", new()\n    {\n        Rulestack = r.Name,\n        Name = \"tf-cert\",\n        Description = \"Also configured by Terraform\",\n        SelfSigned = true,\n        AuditComment = \"initial config\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewCertificate(ctx, \"example\", \u0026cloudngfwaws.CertificateArgs{\n\t\t\tRulestack:    r.Name,\n\t\t\tName:         pulumi.String(\"tf-cert\"),\n\t\t\tDescription:  pulumi.String(\"Also configured by Terraform\"),\n\t\t\tSelfSigned:   pulumi.Bool(true),\n\t\t\tAuditComment: pulumi.String(\"initial config\"),\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.Certificate;\nimport com.pulumi.cloudngfwaws.CertificateArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        var example = new Certificate(\"example\", CertificateArgs.builder()\n            .rulestack(r.name())\n            .name(\"tf-cert\")\n            .description(\"Also configured by Terraform\")\n            .selfSigned(true)\n            .auditComment(\"initial config\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Certificate\n    properties:\n      rulestack: ${r.name}\n      name: tf-cert\n      description: Also configured by Terraform\n      selfSigned: true\n      auditComment: initial config\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003cscope\u003e:\u003crulestack\u003e:\u003ccertificate_name\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/certificate:Certificate example Local:terraform-rulestack:tf-cert\n```\n\n",
            "properties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "selfSigned": {
                    "type": "boolean",
                    "description": "Set to true if certificate is self-signed.\n"
                },
                "signerArn": {
                    "type": "string",
                    "description": "The certificate signer ARN.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                }
            },
            "required": [
                "name",
                "rulestack",
                "updateToken"
            ],
            "inputProperties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n",
                    "willReplaceOnChanges": true
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                },
                "selfSigned": {
                    "type": "boolean",
                    "description": "Set to true if certificate is self-signed.\n"
                },
                "signerArn": {
                    "type": "string",
                    "description": "The certificate signer ARN.\n"
                }
            },
            "requiredInputs": [
                "rulestack"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Certificate resources.\n",
                "properties": {
                    "auditComment": {
                        "type": "string",
                        "description": "The audit comment.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "selfSigned": {
                        "type": "boolean",
                        "description": "Set to true if certificate is self-signed.\n"
                    },
                    "signerArn": {
                        "type": "string",
                        "description": "The certificate signer ARN.\n"
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/commitRulestack:CommitRulestack": {
            "description": "Resource for committing the rulestack config.\n\n!\u003e **NOTE:** This resource should be placed in a separate plan as the plan that configures the rulestack and its contents.  If you do not, you will have perpetual configuration drift and will need to run your plan twice so the commit is performed.  Placing instances of this resource with instances of NGFW resources (such as \u003cspan pulumi-lang-nodejs=\"`cloudngfwaws.Ngfw`\" pulumi-lang-dotnet=\"`cloudngfwaws.Ngfw`\" pulumi-lang-go=\"`Ngfw`\" pulumi-lang-python=\"`Ngfw`\" pulumi-lang-yaml=\"`cloudngfwaws.Ngfw`\" pulumi-lang-java=\"`cloudngfwaws.Ngfw`\"\u003e`cloudngfwaws.Ngfw`\u003c/span\u003e) is fine.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.CommitRulestack(\"example\", {rulestack: \"my-rulestack\"});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.CommitRulestack(\"example\", rulestack=\"my-rulestack\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.CommitRulestack(\"example\", new()\n    {\n        Rulestack = \"my-rulestack\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewCommitRulestack(ctx, \"example\", \u0026cloudngfwaws.CommitRulestackArgs{\n\t\t\tRulestack: pulumi.String(\"my-rulestack\"),\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.cloudngfwaws.CommitRulestack;\nimport com.pulumi.cloudngfwaws.CommitRulestackArgs;\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 CommitRulestack(\"example\", CommitRulestackArgs.builder()\n            .rulestack(\"my-rulestack\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:CommitRulestack\n    properties:\n      rulestack: my-rulestack\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "commitErrors": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Commit error messages.\n"
                },
                "commitStatus": {
                    "type": "string",
                    "description": "The commit status.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "state": {
                    "type": "string",
                    "description": "The rulestack state. This can only be the default value. Defaults to `Running`.\n"
                },
                "validationErrors": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Validation error messages.\n"
                },
                "validationStatus": {
                    "type": "string",
                    "description": "The validation status.\n"
                }
            },
            "required": [
                "commitErrors",
                "commitStatus",
                "rulestack",
                "validationErrors",
                "validationStatus"
            ],
            "inputProperties": {
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                },
                "state": {
                    "type": "string",
                    "description": "The rulestack state. This can only be the default value. Defaults to `Running`.\n"
                }
            },
            "requiredInputs": [
                "rulestack"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering CommitRulestack resources.\n",
                "properties": {
                    "commitErrors": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Commit error messages.\n"
                    },
                    "commitStatus": {
                        "type": "string",
                        "description": "The commit status.\n"
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "state": {
                        "type": "string",
                        "description": "The rulestack state. This can only be the default value. Defaults to `Running`.\n"
                    },
                    "validationErrors": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Validation error messages.\n"
                    },
                    "validationStatus": {
                        "type": "string",
                        "description": "The validation status.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/customUrlCategory:CustomUrlCategory": {
            "description": "Resource for custom url category manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = new cloudngfwaws.CustomUrlCategory(\"example\", {\n    rulestack: r.name,\n    name: \"tf-custom-category\",\n    description: \"Also configured by Terraform\",\n    urlLists: [\n        \"example.com\",\n        \"paloaltonetworks.com\",\n        \"foobar.org\",\n    ],\n    action: \"alert\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.CustomUrlCategory(\"example\",\n    rulestack=r.name,\n    name=\"tf-custom-category\",\n    description=\"Also configured by Terraform\",\n    url_lists=[\n        \"example.com\",\n        \"paloaltonetworks.com\",\n        \"foobar.org\",\n    ],\n    action=\"alert\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = new CloudNgfwAws.Index.CustomUrlCategory(\"example\", new()\n    {\n        Rulestack = r.Name,\n        Name = \"tf-custom-category\",\n        Description = \"Also configured by Terraform\",\n        UrlLists = new[]\n        {\n            \"example.com\",\n            \"paloaltonetworks.com\",\n            \"foobar.org\",\n        },\n        Action = \"alert\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewCustomUrlCategory(ctx, \"example\", \u0026cloudngfwaws.CustomUrlCategoryArgs{\n\t\t\tRulestack:   r.Name,\n\t\t\tName:        pulumi.String(\"tf-custom-category\"),\n\t\t\tDescription: pulumi.String(\"Also configured by Terraform\"),\n\t\t\tUrlLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t\tpulumi.String(\"paloaltonetworks.com\"),\n\t\t\t\tpulumi.String(\"foobar.org\"),\n\t\t\t},\n\t\t\tAction: pulumi.String(\"alert\"),\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.CustomUrlCategory;\nimport com.pulumi.cloudngfwaws.CustomUrlCategoryArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        var example = new CustomUrlCategory(\"example\", CustomUrlCategoryArgs.builder()\n            .rulestack(r.name())\n            .name(\"tf-custom-category\")\n            .description(\"Also configured by Terraform\")\n            .urlLists(            \n                \"example.com\",\n                \"paloaltonetworks.com\",\n                \"foobar.org\")\n            .action(\"alert\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:CustomUrlCategory\n    properties:\n      rulestack: ${r.name}\n      name: tf-custom-category\n      description: Also configured by Terraform\n      urlLists:\n        - example.com\n        - paloaltonetworks.com\n        - foobar.org\n      action: alert\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003cscope\u003e:\u003crulestack\u003e:\u003ccategory_name\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/customUrlCategory:CustomUrlCategory example Local:terraform-rulestack:tf-custom-category\n```\n\n",
            "properties": {
                "action": {
                    "type": "string",
                    "description": "The action to take. Valid values 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=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`continue`\" pulumi-lang-dotnet=\"`Continue`\" pulumi-lang-go=\"`continue`\" pulumi-lang-python=\"`continue`\" pulumi-lang-yaml=\"`continue`\" pulumi-lang-java=\"`continue`\"\u003e`continue`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`override`\" pulumi-lang-dotnet=\"`Override`\" pulumi-lang-go=\"`override`\" pulumi-lang-python=\"`override`\" pulumi-lang-yaml=\"`override`\" pulumi-lang-java=\"`override`\"\u003e`override`\u003c/span\u003e. Defaults to \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"
                },
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                },
                "urlLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The URL list for this custom URL category.\n"
                }
            },
            "required": [
                "name",
                "rulestack",
                "updateToken",
                "urlLists"
            ],
            "inputProperties": {
                "action": {
                    "type": "string",
                    "description": "The action to take. Valid values 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=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`continue`\" pulumi-lang-dotnet=\"`Continue`\" pulumi-lang-go=\"`continue`\" pulumi-lang-python=\"`continue`\" pulumi-lang-yaml=\"`continue`\" pulumi-lang-java=\"`continue`\"\u003e`continue`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`override`\" pulumi-lang-dotnet=\"`Override`\" pulumi-lang-go=\"`override`\" pulumi-lang-python=\"`override`\" pulumi-lang-yaml=\"`override`\" pulumi-lang-java=\"`override`\"\u003e`override`\u003c/span\u003e. Defaults to \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"
                },
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n",
                    "willReplaceOnChanges": true
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                },
                "urlLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The URL list for this custom URL category.\n"
                }
            },
            "requiredInputs": [
                "rulestack",
                "urlLists"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering CustomUrlCategory resources.\n",
                "properties": {
                    "action": {
                        "type": "string",
                        "description": "The action to take. Valid values 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=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`continue`\" pulumi-lang-dotnet=\"`Continue`\" pulumi-lang-go=\"`continue`\" pulumi-lang-python=\"`continue`\" pulumi-lang-yaml=\"`continue`\" pulumi-lang-java=\"`continue`\"\u003e`continue`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`override`\" pulumi-lang-dotnet=\"`Override`\" pulumi-lang-go=\"`override`\" pulumi-lang-python=\"`override`\" pulumi-lang-yaml=\"`override`\" pulumi-lang-java=\"`override`\"\u003e`override`\u003c/span\u003e. Defaults to \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"
                    },
                    "auditComment": {
                        "type": "string",
                        "description": "The audit comment.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    },
                    "urlLists": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The URL list for this custom URL category.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/fqdnList:FqdnList": {
            "description": "Resource for fqdn list manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = new cloudngfwaws.FqdnList(\"example\", {\n    rulestack: r.name,\n    name: \"tf-fqdn-list\",\n    description: \"Also configured by Terraform\",\n    fqdnLists: [\n        \"example.com\",\n        \"foobar.org\",\n    ],\n    auditComment: \"initial config\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.FqdnList(\"example\",\n    rulestack=r.name,\n    name=\"tf-fqdn-list\",\n    description=\"Also configured by Terraform\",\n    fqdn_lists=[\n        \"example.com\",\n        \"foobar.org\",\n    ],\n    audit_comment=\"initial config\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = new CloudNgfwAws.Index.FqdnList(\"example\", new()\n    {\n        Rulestack = r.Name,\n        Name = \"tf-fqdn-list\",\n        Description = \"Also configured by Terraform\",\n        FqdnLists = new[]\n        {\n            \"example.com\",\n            \"foobar.org\",\n        },\n        AuditComment = \"initial config\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewFqdnList(ctx, \"example\", \u0026cloudngfwaws.FqdnListArgs{\n\t\t\tRulestack:   r.Name,\n\t\t\tName:        pulumi.String(\"tf-fqdn-list\"),\n\t\t\tDescription: pulumi.String(\"Also configured by Terraform\"),\n\t\t\tFqdnLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t\tpulumi.String(\"foobar.org\"),\n\t\t\t},\n\t\t\tAuditComment: pulumi.String(\"initial config\"),\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.FqdnList;\nimport com.pulumi.cloudngfwaws.FqdnListArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        var example = new FqdnList(\"example\", FqdnListArgs.builder()\n            .rulestack(r.name())\n            .name(\"tf-fqdn-list\")\n            .description(\"Also configured by Terraform\")\n            .fqdnLists(            \n                \"example.com\",\n                \"foobar.org\")\n            .auditComment(\"initial config\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:FqdnList\n    properties:\n      rulestack: ${r.name}\n      name: tf-fqdn-list\n      description: Also configured by Terraform\n      fqdnLists:\n        - example.com\n        - foobar.org\n      auditComment: initial config\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003cscope\u003e:\u003crulestack\u003e:\u003cfqdn_list_name\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/fqdnList:FqdnList example Local:terraform-rulestack:tf-fqdn-list\n```\n\n",
            "properties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "fqdnLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The fqdn list.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                }
            },
            "required": [
                "fqdnLists",
                "name",
                "rulestack",
                "updateToken"
            ],
            "inputProperties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "fqdnLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The fqdn list.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n",
                    "willReplaceOnChanges": true
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "fqdnLists",
                "rulestack"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering FqdnList resources.\n",
                "properties": {
                    "auditComment": {
                        "type": "string",
                        "description": "The audit comment.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description.\n"
                    },
                    "fqdnLists": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The fqdn list.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/intelligentFeed:IntelligentFeed": {
            "description": "Resource for intelligent feed manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\n// Retrieve the feed information every day at midnight.\nconst example = new cloudngfwaws.IntelligentFeed(\"example\", {\n    rulestack: r.name,\n    name: \"tf-feed\",\n    description: \"Also configured by Terraform\",\n    url: \"https://foobar.net\",\n    type: \"URL_LIST\",\n    frequency: \"DAILY\",\n    time: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\n# Retrieve the feed information every day at midnight.\nexample = cloudngfwaws.IntelligentFeed(\"example\",\n    rulestack=r.name,\n    name=\"tf-feed\",\n    description=\"Also configured by Terraform\",\n    url=\"https://foobar.net\",\n    type=\"URL_LIST\",\n    frequency=\"DAILY\",\n    time=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    // Retrieve the feed information every day at midnight.\n    var example = new CloudNgfwAws.Index.IntelligentFeed(\"example\", new()\n    {\n        Rulestack = r.Name,\n        Name = \"tf-feed\",\n        Description = \"Also configured by Terraform\",\n        Url = \"https://foobar.net\",\n        Type = \"URL_LIST\",\n        Frequency = \"DAILY\",\n        Time = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Retrieve the feed information every day at midnight.\n\t\t_, err = cloudngfwaws.NewIntelligentFeed(ctx, \"example\", \u0026cloudngfwaws.IntelligentFeedArgs{\n\t\t\tRulestack:   r.Name,\n\t\t\tName:        pulumi.String(\"tf-feed\"),\n\t\t\tDescription: pulumi.String(\"Also configured by Terraform\"),\n\t\t\tUrl:         pulumi.String(\"https://foobar.net\"),\n\t\t\tType:        pulumi.String(\"URL_LIST\"),\n\t\t\tFrequency:   pulumi.String(\"DAILY\"),\n\t\t\tTime:        pulumi.Int(0),\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.IntelligentFeed;\nimport com.pulumi.cloudngfwaws.IntelligentFeedArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        // Retrieve the feed information every day at midnight.\n        var example = new IntelligentFeed(\"example\", IntelligentFeedArgs.builder()\n            .rulestack(r.name())\n            .name(\"tf-feed\")\n            .description(\"Also configured by Terraform\")\n            .url(\"https://foobar.net\")\n            .type(\"URL_LIST\")\n            .frequency(\"DAILY\")\n            .time(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Retrieve the feed information every day at midnight.\n  example:\n    type: cloudngfwaws:IntelligentFeed\n    properties:\n      rulestack: ${r.name}\n      name: tf-feed\n      description: Also configured by Terraform\n      url: https://foobar.net\n      type: URL_LIST\n      frequency: DAILY\n      time: 0\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003cscope\u003e:\u003crulestack\u003e:\u003cintelligent_feed_name\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/intelligentFeed:IntelligentFeed example Local:terraform-rulestack:tf-feed\n```\n\n",
            "properties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "certificate": {
                    "type": "string",
                    "description": "The certificate profile.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "frequency": {
                    "type": "string",
                    "description": "Update frequency. Valid values are `HOURLY` or `DAILY`. Defaults to `HOURLY`.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "time": {
                    "type": "integer",
                    "description": "The time to poll for updates if frequency is daily. The number must be between [0, 23] incluside.\n"
                },
                "type": {
                    "type": "string",
                    "description": "The intelligent feed type. Valid values are `IP_LIST` or `URL_LIST`. Defaults to `IP_LIST`.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                },
                "url": {
                    "type": "string",
                    "description": "The intelligent feed source.\n"
                }
            },
            "required": [
                "name",
                "rulestack",
                "updateToken",
                "url"
            ],
            "inputProperties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "certificate": {
                    "type": "string",
                    "description": "The certificate profile.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "frequency": {
                    "type": "string",
                    "description": "Update frequency. Valid values are `HOURLY` or `DAILY`. Defaults to `HOURLY`.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n",
                    "willReplaceOnChanges": true
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                },
                "time": {
                    "type": "integer",
                    "description": "The time to poll for updates if frequency is daily. The number must be between [0, 23] incluside.\n"
                },
                "type": {
                    "type": "string",
                    "description": "The intelligent feed type. Valid values are `IP_LIST` or `URL_LIST`. Defaults to `IP_LIST`.\n"
                },
                "url": {
                    "type": "string",
                    "description": "The intelligent feed source.\n"
                }
            },
            "requiredInputs": [
                "rulestack",
                "url"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering IntelligentFeed resources.\n",
                "properties": {
                    "auditComment": {
                        "type": "string",
                        "description": "The audit comment.\n"
                    },
                    "certificate": {
                        "type": "string",
                        "description": "The certificate profile.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description.\n"
                    },
                    "frequency": {
                        "type": "string",
                        "description": "Update frequency. Valid values are `HOURLY` or `DAILY`. Defaults to `HOURLY`.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "time": {
                        "type": "integer",
                        "description": "The time to poll for updates if frequency is daily. The number must be between [0, 23] incluside.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "The intelligent feed type. Valid values are `IP_LIST` or `URL_LIST`. Defaults to `IP_LIST`.\n"
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    },
                    "url": {
                        "type": "string",
                        "description": "The intelligent feed source.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/ngfw:Ngfw": {
            "description": "Resource for NGFW manipulation.\n\n\u003e **NOTE:** Having the \u003cspan pulumi-lang-nodejs=\"`rulestack`\" pulumi-lang-dotnet=\"`Rulestack`\" pulumi-lang-go=\"`rulestack`\" pulumi-lang-python=\"`rulestack`\" pulumi-lang-yaml=\"`rulestack`\" pulumi-lang-java=\"`rulestack`\"\u003e`rulestack`\u003c/span\u003e param reference the rulestack name from \u003cspan pulumi-lang-nodejs=\"`cloudngfwaws.CommitRulestack`\" pulumi-lang-dotnet=\"`cloudngfwaws.CommitRulestack`\" pulumi-lang-go=\"`CommitRulestack`\" pulumi-lang-python=\"`CommitRulestack`\" pulumi-lang-yaml=\"`cloudngfwaws.CommitRulestack`\" pulumi-lang-java=\"`cloudngfwaws.CommitRulestack`\"\u003e`cloudngfwaws.CommitRulestack`\u003c/span\u003e ensures that Terraform will only try to spin up a NGFW instance if the commit is successful.\n\n## Admin Permission Type\n\n* `Firewall`\n\n## Configuration Guide\n\n---\n\n### V1 Schema — Existing Deployments Only\n\n\u003e **Important:** V1 schema is for existing customers who already have firewalls deployed with Terraform.\n\u003e New firewalls must be created using the V2 schema.\n\n---\n\n#### 1. Managing an Existing Firewall (no configuration changes)\n\nUse the V1 schema as-is. No steps required beyond ensuring your existing state is in sync.\n\n**Steps:**\n\n1. Verify there is no unintended drift:\n   2. If the plan is clean, no action needed. If drift is detected, review and apply:\n   \n**Full example — existing V1 firewall:**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst rs = new cloudngfwaws.CommitRulestack(\"rs\", {rulestack: \"my-rulestack\"});\nconst example = new cloudngfwaws.Ngfw(\"example\", {\n    name: \"example-instance\",\n    vpcId: exampleAwsVpc.id,\n    accountId: \"111111111111\",\n    description: \"Example description\",\n    endpointMode: \"ServiceManaged\",\n    subnetMappings: [\n        {\n            subnetId: subnet1.id,\n        },\n        {\n            subnetId: subnet2.id,\n        },\n    ],\n    rulestack: rs.rulestack,\n    tags: {\n        Foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nrs = cloudngfwaws.CommitRulestack(\"rs\", rulestack=\"my-rulestack\")\nexample = cloudngfwaws.Ngfw(\"example\",\n    name=\"example-instance\",\n    vpc_id=example_aws_vpc[\"id\"],\n    account_id=\"111111111111\",\n    description=\"Example description\",\n    endpoint_mode=\"ServiceManaged\",\n    subnet_mappings=[\n        {\n            \"subnet_id\": subnet1[\"id\"],\n        },\n        {\n            \"subnet_id\": subnet2[\"id\"],\n        },\n    ],\n    rulestack=rs.rulestack,\n    tags={\n        \"Foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rs = new CloudNgfwAws.Index.CommitRulestack(\"rs\", new()\n    {\n        Rulestack = \"my-rulestack\",\n    });\n\n    var example = new CloudNgfwAws.Index.Ngfw(\"example\", new()\n    {\n        Name = \"example-instance\",\n        VpcId = exampleAwsVpc.Id,\n        AccountId = \"111111111111\",\n        Description = \"Example description\",\n        EndpointMode = \"ServiceManaged\",\n        SubnetMappings = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                SubnetId = subnet1.Id,\n            },\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                SubnetId = subnet2.Id,\n            },\n        },\n        Rulestack = rs.Rulestack,\n        Tags = \n        {\n            { \"Foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trs, err := cloudngfwaws.NewCommitRulestack(ctx, \"rs\", \u0026cloudngfwaws.CommitRulestackArgs{\n\t\t\tRulestack: pulumi.String(\"my-rulestack\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewNgfw(ctx, \"example\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:         pulumi.String(\"example-instance\"),\n\t\t\tVpcId:        pulumi.Any(exampleAwsVpc.Id),\n\t\t\tAccountId:    pulumi.String(\"111111111111\"),\n\t\t\tDescription:  pulumi.String(\"Example description\"),\n\t\t\tEndpointMode: pulumi.String(\"ServiceManaged\"),\n\t\t\tSubnetMappings: cloudngfwaws.NgfwSubnetMappingArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(subnet1.Id),\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(subnet2.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRulestack: rs.Rulestack,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Foo\": pulumi.String(\"bar\"),\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.cloudngfwaws.CommitRulestack;\nimport com.pulumi.cloudngfwaws.CommitRulestackArgs;\nimport com.pulumi.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwSubnetMappingArgs;\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 rs = new CommitRulestack(\"rs\", CommitRulestackArgs.builder()\n            .rulestack(\"my-rulestack\")\n            .build());\n\n        var example = new Ngfw(\"example\", NgfwArgs.builder()\n            .name(\"example-instance\")\n            .vpcId(exampleAwsVpc.id())\n            .accountId(\"111111111111\")\n            .description(\"Example description\")\n            .endpointMode(\"ServiceManaged\")\n            .subnetMappings(            \n                NgfwSubnetMappingArgs.builder()\n                    .subnetId(subnet1.id())\n                    .build(),\n                NgfwSubnetMappingArgs.builder()\n                    .subnetId(subnet2.id())\n                    .build())\n            .rulestack(rs.rulestack())\n            .tags(Map.of(\"Foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: example-instance\n      vpcId: ${exampleAwsVpc.id}\n      accountId: '111111111111'\n      description: Example description\n      endpointMode: ServiceManaged\n      subnetMappings:\n        - subnetId: ${subnet1.id}\n        - subnetId: ${subnet2.id}\n      rulestack: ${rs.rulestack}\n      tags:\n        Foo: bar\n  rs:\n    type: cloudngfwaws:CommitRulestack\n    properties:\n      rulestack: my-rulestack\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n---\n\n#### 2. Configuring Egress NAT on an Existing Firewall (V1)\n\nEgress NAT can be added to an existing V1 firewall without recreating the resource.\n\n\u003e \u003cspan pulumi-lang-nodejs=\"`ipPoolType`\" pulumi-lang-dotnet=\"`IpPoolType`\" pulumi-lang-go=\"`ipPoolType`\" pulumi-lang-python=\"`ip_pool_type`\" pulumi-lang-yaml=\"`ipPoolType`\" pulumi-lang-java=\"`ipPoolType`\"\u003e`ipPoolType`\u003c/span\u003e accepts `AWSService` or `BYOIP`. Use `BYOIP` together with \u003cspan pulumi-lang-nodejs=\"`ipamPoolId`\" pulumi-lang-dotnet=\"`IpamPoolId`\" pulumi-lang-go=\"`ipamPoolId`\" pulumi-lang-python=\"`ipam_pool_id`\" pulumi-lang-yaml=\"`ipamPoolId`\" pulumi-lang-java=\"`ipamPoolId`\"\u003e`ipamPoolId`\u003c/span\u003e\n\u003e if bringing your own IP pool.\n\n**Steps:**\n\n1. Add the \u003cspan pulumi-lang-nodejs=\"`egressNat`\" pulumi-lang-dotnet=\"`EgressNat`\" pulumi-lang-go=\"`egressNat`\" pulumi-lang-python=\"`egress_nat`\" pulumi-lang-yaml=\"`egressNat`\" pulumi-lang-java=\"`egressNat`\"\u003e`egressNat`\u003c/span\u003e block to your existing resource.\n\n**Full example — existing V1 firewall with Egress NAT enabled:**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.Ngfw(\"example\", {\n    name: \"example-instance\",\n    vpcId: \"vpc-0a1b2c3d4e5f00001\",\n    accountId: \"111111111111\",\n    description: \"Example description\",\n    endpointMode: \"CustomerManaged\",\n    subnetMappings: [\n        {\n            availabilityZone: \"us-east-1a\",\n        },\n        {\n            availabilityZone: \"us-east-1c\",\n        },\n    ],\n    rulestack: \"my-rulestack\",\n    egressNats: [{\n        enabled: true,\n        settings: [{\n            ipPoolType: \"AWSService\",\n        }],\n    }],\n    tags: {\n        Foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.Ngfw(\"example\",\n    name=\"example-instance\",\n    vpc_id=\"vpc-0a1b2c3d4e5f00001\",\n    account_id=\"111111111111\",\n    description=\"Example description\",\n    endpoint_mode=\"CustomerManaged\",\n    subnet_mappings=[\n        {\n            \"availability_zone\": \"us-east-1a\",\n        },\n        {\n            \"availability_zone\": \"us-east-1c\",\n        },\n    ],\n    rulestack=\"my-rulestack\",\n    egress_nats=[{\n        \"enabled\": True,\n        \"settings\": [{\n            \"ip_pool_type\": \"AWSService\",\n        }],\n    }],\n    tags={\n        \"Foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.Ngfw(\"example\", new()\n    {\n        Name = \"example-instance\",\n        VpcId = \"vpc-0a1b2c3d4e5f00001\",\n        AccountId = \"111111111111\",\n        Description = \"Example description\",\n        EndpointMode = \"CustomerManaged\",\n        SubnetMappings = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                AvailabilityZone = \"us-east-1a\",\n            },\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                AvailabilityZone = \"us-east-1c\",\n            },\n        },\n        Rulestack = \"my-rulestack\",\n        EgressNats = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwEgressNatArgs\n            {\n                Enabled = true,\n                Settings = new[]\n                {\n                    new CloudNgfwAws.Inputs.NgfwEgressNatSettingArgs\n                    {\n                        IpPoolType = \"AWSService\",\n                    },\n                },\n            },\n        },\n        Tags = \n        {\n            { \"Foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewNgfw(ctx, \"example\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:         pulumi.String(\"example-instance\"),\n\t\t\tVpcId:        pulumi.String(\"vpc-0a1b2c3d4e5f00001\"),\n\t\t\tAccountId:    pulumi.String(\"111111111111\"),\n\t\t\tDescription:  pulumi.String(\"Example description\"),\n\t\t\tEndpointMode: pulumi.String(\"CustomerManaged\"),\n\t\t\tSubnetMappings: cloudngfwaws.NgfwSubnetMappingArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tAvailabilityZone: pulumi.String(\"us-east-1c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRulestack: pulumi.String(\"my-rulestack\"),\n\t\t\tEgressNats: cloudngfwaws.NgfwEgressNatArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tSettings: cloudngfwaws.NgfwEgressNatSettingArray{\n\t\t\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatSettingArgs{\n\t\t\t\t\t\t\tIpPoolType: pulumi.String(\"AWSService\"),\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\tTags: pulumi.StringMap{\n\t\t\t\t\"Foo\": pulumi.String(\"bar\"),\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.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwSubnetMappingArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwEgressNatArgs;\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 Ngfw(\"example\", NgfwArgs.builder()\n            .name(\"example-instance\")\n            .vpcId(\"vpc-0a1b2c3d4e5f00001\")\n            .accountId(\"111111111111\")\n            .description(\"Example description\")\n            .endpointMode(\"CustomerManaged\")\n            .subnetMappings(            \n                NgfwSubnetMappingArgs.builder()\n                    .availabilityZone(\"us-east-1a\")\n                    .build(),\n                NgfwSubnetMappingArgs.builder()\n                    .availabilityZone(\"us-east-1c\")\n                    .build())\n            .rulestack(\"my-rulestack\")\n            .egressNats(NgfwEgressNatArgs.builder()\n                .enabled(true)\n                .settings(NgfwEgressNatSettingArgs.builder()\n                    .ipPoolType(\"AWSService\")\n                    .build())\n                .build())\n            .tags(Map.of(\"Foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: example-instance\n      vpcId: vpc-0a1b2c3d4e5f00001\n      accountId: '111111111111'\n      description: Example description\n      endpointMode: CustomerManaged\n      subnetMappings:\n        - availabilityZone: us-east-1a\n        - availabilityZone: us-east-1c\n      rulestack: my-rulestack\n      egressNats:\n        - enabled: true\n          settings:\n            - ipPoolType: AWSService\n      tags:\n        Foo: bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**To disable Egress NAT:** set `enabled = false` and re-apply.\n\n---\n\n#### 3. Configuring Security Zones on an Existing Firewall (V1)\n\nSecurity zones let you enable or disable Egress NAT per endpoint and add or remove private CIDR prefixes.\n\n\u003e **Prerequisite:** Endpoints must be successfully created and in `ACCEPTED` state before\n\u003e security zones can be configured. Check `status.attachment[*].status` in Terraform state\n\u003e or the AWS console before proceeding.\n\n**Steps:**\n\n1. Confirm endpoint status is `ACCEPTED`:\n   ```shell\n   terraform show | grep -A 10 \"attachment\"\n```\n2. Copy the \u003cspan pulumi-lang-nodejs=\"`endpointId`\" pulumi-lang-dotnet=\"`EndpointId`\" pulumi-lang-go=\"`endpointId`\" pulumi-lang-python=\"`endpoint_id`\" pulumi-lang-yaml=\"`endpointId`\" pulumi-lang-java=\"`endpointId`\"\u003e`endpointId`\u003c/span\u003e value from the `status.attachment` output.\n3. Add the \u003cspan pulumi-lang-nodejs=\"`securityZones`\" pulumi-lang-dotnet=\"`SecurityZones`\" pulumi-lang-go=\"`securityZones`\" pulumi-lang-python=\"`security_zones`\" pulumi-lang-yaml=\"`securityZones`\" pulumi-lang-java=\"`securityZones`\"\u003e`securityZones`\u003c/span\u003e block to your existing resource referencing that endpoint ID.\n\n**Full example — existing V1 firewall with Egress NAT and security zones:**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.Ngfw(\"example\", {\n    name: \"example-instance\",\n    vpcId: \"vpc-0a1b2c3d4e5f00001\",\n    accountId: \"111111111111\",\n    description: \"Example description\",\n    endpointMode: \"CustomerManaged\",\n    subnetMappings: [\n        {\n            availabilityZone: \"us-east-1a\",\n        },\n        {\n            availabilityZone: \"us-east-1c\",\n        },\n    ],\n    rulestack: \"my-rulestack\",\n    egressNats: [{\n        enabled: true,\n        settings: [{\n            ipPoolType: \"AWSService\",\n        }],\n    }],\n    securityZones: [{\n        endpointId: \"vpce-0a1b2c3d4e5f00001\",\n        egressNatEnabled: true,\n        prefixes: [{\n            privatePrefixes: [{\n                cidrs: [\n                    \"10.0.0.0/8\",\n                    \"172.16.0.0/12\",\n                    \"192.168.0.0/16\",\n                    \"100.64.0.0/10\",\n                ],\n            }],\n        }],\n    }],\n    tags: {\n        Foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.Ngfw(\"example\",\n    name=\"example-instance\",\n    vpc_id=\"vpc-0a1b2c3d4e5f00001\",\n    account_id=\"111111111111\",\n    description=\"Example description\",\n    endpoint_mode=\"CustomerManaged\",\n    subnet_mappings=[\n        {\n            \"availability_zone\": \"us-east-1a\",\n        },\n        {\n            \"availability_zone\": \"us-east-1c\",\n        },\n    ],\n    rulestack=\"my-rulestack\",\n    egress_nats=[{\n        \"enabled\": True,\n        \"settings\": [{\n            \"ip_pool_type\": \"AWSService\",\n        }],\n    }],\n    security_zones=[{\n        \"endpoint_id\": \"vpce-0a1b2c3d4e5f00001\",\n        \"egress_nat_enabled\": True,\n        \"prefixes\": [{\n            \"private_prefixes\": [{\n                \"cidrs\": [\n                    \"10.0.0.0/8\",\n                    \"172.16.0.0/12\",\n                    \"192.168.0.0/16\",\n                    \"100.64.0.0/10\",\n                ],\n            }],\n        }],\n    }],\n    tags={\n        \"Foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.Ngfw(\"example\", new()\n    {\n        Name = \"example-instance\",\n        VpcId = \"vpc-0a1b2c3d4e5f00001\",\n        AccountId = \"111111111111\",\n        Description = \"Example description\",\n        EndpointMode = \"CustomerManaged\",\n        SubnetMappings = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                AvailabilityZone = \"us-east-1a\",\n            },\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                AvailabilityZone = \"us-east-1c\",\n            },\n        },\n        Rulestack = \"my-rulestack\",\n        EgressNats = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwEgressNatArgs\n            {\n                Enabled = true,\n                Settings = new[]\n                {\n                    new CloudNgfwAws.Inputs.NgfwEgressNatSettingArgs\n                    {\n                        IpPoolType = \"AWSService\",\n                    },\n                },\n            },\n        },\n        SecurityZones = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwSecurityZoneArgs\n            {\n                EndpointId = \"vpce-0a1b2c3d4e5f00001\",\n                EgressNatEnabled = true,\n                Prefixes = new[]\n                {\n                    new CloudNgfwAws.Inputs.NgfwSecurityZonePrefixArgs\n                    {\n                        PrivatePrefixes = new[]\n                        {\n                            new CloudNgfwAws.Inputs.NgfwSecurityZonePrefixPrivatePrefixArgs\n                            {\n                                Cidrs = new[]\n                                {\n                                    \"10.0.0.0/8\",\n                                    \"172.16.0.0/12\",\n                                    \"192.168.0.0/16\",\n                                    \"100.64.0.0/10\",\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        Tags = \n        {\n            { \"Foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewNgfw(ctx, \"example\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:         pulumi.String(\"example-instance\"),\n\t\t\tVpcId:        pulumi.String(\"vpc-0a1b2c3d4e5f00001\"),\n\t\t\tAccountId:    pulumi.String(\"111111111111\"),\n\t\t\tDescription:  pulumi.String(\"Example description\"),\n\t\t\tEndpointMode: pulumi.String(\"CustomerManaged\"),\n\t\t\tSubnetMappings: cloudngfwaws.NgfwSubnetMappingArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tAvailabilityZone: pulumi.String(\"us-east-1c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRulestack: pulumi.String(\"my-rulestack\"),\n\t\t\tEgressNats: cloudngfwaws.NgfwEgressNatArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tSettings: cloudngfwaws.NgfwEgressNatSettingArray{\n\t\t\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatSettingArgs{\n\t\t\t\t\t\t\tIpPoolType: pulumi.String(\"AWSService\"),\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\tSecurityZones: cloudngfwaws.NgfwSecurityZoneArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwSecurityZoneArgs{\n\t\t\t\t\tEndpointId:       pulumi.String(\"vpce-0a1b2c3d4e5f00001\"),\n\t\t\t\t\tEgressNatEnabled: pulumi.Bool(true),\n\t\t\t\t\tPrefixes: cloudngfwaws.NgfwSecurityZonePrefixArray{\n\t\t\t\t\t\t\u0026cloudngfwaws.NgfwSecurityZonePrefixArgs{\n\t\t\t\t\t\t\tPrivatePrefixes: cloudngfwaws.NgfwSecurityZonePrefixPrivatePrefixArray{\n\t\t\t\t\t\t\t\t\u0026cloudngfwaws.NgfwSecurityZonePrefixPrivatePrefixArgs{\n\t\t\t\t\t\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"10.0.0.0/8\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"172.16.0.0/12\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"100.64.0.0/10\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\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\tTags: pulumi.StringMap{\n\t\t\t\t\"Foo\": pulumi.String(\"bar\"),\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.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwSubnetMappingArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwEgressNatArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwSecurityZoneArgs;\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 Ngfw(\"example\", NgfwArgs.builder()\n            .name(\"example-instance\")\n            .vpcId(\"vpc-0a1b2c3d4e5f00001\")\n            .accountId(\"111111111111\")\n            .description(\"Example description\")\n            .endpointMode(\"CustomerManaged\")\n            .subnetMappings(            \n                NgfwSubnetMappingArgs.builder()\n                    .availabilityZone(\"us-east-1a\")\n                    .build(),\n                NgfwSubnetMappingArgs.builder()\n                    .availabilityZone(\"us-east-1c\")\n                    .build())\n            .rulestack(\"my-rulestack\")\n            .egressNats(NgfwEgressNatArgs.builder()\n                .enabled(true)\n                .settings(NgfwEgressNatSettingArgs.builder()\n                    .ipPoolType(\"AWSService\")\n                    .build())\n                .build())\n            .securityZones(NgfwSecurityZoneArgs.builder()\n                .endpointId(\"vpce-0a1b2c3d4e5f00001\")\n                .egressNatEnabled(true)\n                .prefixes(NgfwSecurityZonePrefixArgs.builder()\n                    .privatePrefixes(NgfwSecurityZonePrefixPrivatePrefixArgs.builder()\n                        .cidrs(                        \n                            \"10.0.0.0/8\",\n                            \"172.16.0.0/12\",\n                            \"192.168.0.0/16\",\n                            \"100.64.0.0/10\")\n                        .build())\n                    .build())\n                .build())\n            .tags(Map.of(\"Foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: example-instance\n      vpcId: vpc-0a1b2c3d4e5f00001\n      accountId: '111111111111'\n      description: Example description\n      endpointMode: CustomerManaged\n      subnetMappings:\n        - availabilityZone: us-east-1a\n        - availabilityZone: us-east-1c\n      rulestack: my-rulestack\n      egressNats:\n        - enabled: true\n          settings:\n            - ipPoolType: AWSService\n      securityZones:\n        - endpointId: vpce-0a1b2c3d4e5f00001\n          egressNatEnabled: true\n          prefixes:\n            - privatePrefixes:\n                - cidrs:\n                    - 10.0.0.0/8\n                    - 172.16.0.0/12\n                    - 192.168.0.0/16\n                    - 100.64.0.0/10\n      tags:\n        Foo: bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**To remove private prefixes:** remove the CIDR entries from \u003cspan pulumi-lang-nodejs=\"`cidrs`\" pulumi-lang-dotnet=\"`Cidrs`\" pulumi-lang-go=\"`cidrs`\" pulumi-lang-python=\"`cidrs`\" pulumi-lang-yaml=\"`cidrs`\" pulumi-lang-java=\"`cidrs`\"\u003e`cidrs`\u003c/span\u003e and re-apply.\n**To disable Egress NAT for a specific zone:** set \u003cspan pulumi-lang-nodejs=\"`egressNatEnabled \" pulumi-lang-dotnet=\"`EgressNatEnabled \" pulumi-lang-go=\"`egressNatEnabled \" pulumi-lang-python=\"`egress_nat_enabled \" pulumi-lang-yaml=\"`egressNatEnabled \" pulumi-lang-java=\"`egressNatEnabled \"\u003e`egressNatEnabled \u003c/span\u003e= false` and re-apply.\n\n---\n\n### V2 Schema — New Firewalls\n\n\u003e **Important:** New firewalls can only be created using the V2 schema. Use \u003cspan pulumi-lang-nodejs=\"`azList`\" pulumi-lang-dotnet=\"`AzList`\" pulumi-lang-go=\"`azList`\" pulumi-lang-python=\"`az_list`\" pulumi-lang-yaml=\"`azList`\" pulumi-lang-java=\"`azList`\"\u003e`azList`\u003c/span\u003e\n\u003e instead of \u003cspan pulumi-lang-nodejs=\"`subnetMapping`\" pulumi-lang-dotnet=\"`SubnetMapping`\" pulumi-lang-go=\"`subnetMapping`\" pulumi-lang-python=\"`subnet_mapping`\" pulumi-lang-yaml=\"`subnetMapping`\" pulumi-lang-java=\"`subnetMapping`\"\u003e`subnetMapping`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e instead of \u003cspan pulumi-lang-nodejs=\"`endpointMode`\" pulumi-lang-dotnet=\"`EndpointMode`\" pulumi-lang-go=\"`endpointMode`\" pulumi-lang-python=\"`endpoint_mode`\" pulumi-lang-yaml=\"`endpointMode`\" pulumi-lang-java=\"`endpointMode`\"\u003e`endpointMode`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`subnetMapping`\" pulumi-lang-dotnet=\"`SubnetMapping`\" pulumi-lang-go=\"`subnetMapping`\" pulumi-lang-python=\"`subnet_mapping`\" pulumi-lang-yaml=\"`subnetMapping`\" pulumi-lang-java=\"`subnetMapping`\"\u003e`subnetMapping`\u003c/span\u003e.\n\n---\n\n#### 1. Creating a New Firewall (V2)\n\nFirewall creation uses \u003cspan pulumi-lang-nodejs=\"`azList`\" pulumi-lang-dotnet=\"`AzList`\" pulumi-lang-go=\"`azList`\" pulumi-lang-python=\"`az_list`\" pulumi-lang-yaml=\"`azList`\" pulumi-lang-java=\"`azList`\"\u003e`azList`\u003c/span\u003e to specify availability zones.\n**Do not include \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e during creation** — they must be added in a separate update after the firewall is running.\n\n**Steps:**\n\n1. Define the resource with \u003cspan pulumi-lang-nodejs=\"`azList`\" pulumi-lang-dotnet=\"`AzList`\" pulumi-lang-go=\"`azList`\" pulumi-lang-python=\"`az_list`\" pulumi-lang-yaml=\"`azList`\" pulumi-lang-java=\"`azList`\"\u003e`azList`\u003c/span\u003e and no \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e block.\n4. Proceed to **Step 2** once the firewall reaches `RUNNING` state.\n\n**Full example — new V2 firewall (creation only):**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.Ngfw(\"example\", {\n    name: \"my-firewall\",\n    description: \"My new firewall\",\n    azLists: [\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlistAccounts: [\"111111111111\"],\n    tags: {\n        Owner: \"my-team\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.Ngfw(\"example\",\n    name=\"my-firewall\",\n    description=\"My new firewall\",\n    az_lists=[\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlist_accounts=[\"111111111111\"],\n    tags={\n        \"Owner\": \"my-team\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.Ngfw(\"example\", new()\n    {\n        Name = \"my-firewall\",\n        Description = \"My new firewall\",\n        AzLists = new[]\n        {\n            \"use1-az1\",\n            \"use1-az4\",\n        },\n        AllowlistAccounts = new[]\n        {\n            \"111111111111\",\n        },\n        Tags = \n        {\n            { \"Owner\", \"my-team\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewNgfw(ctx, \"example\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:        pulumi.String(\"my-firewall\"),\n\t\t\tDescription: pulumi.String(\"My new firewall\"),\n\t\t\tAzLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"use1-az1\"),\n\t\t\t\tpulumi.String(\"use1-az4\"),\n\t\t\t},\n\t\t\tAllowlistAccounts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"111111111111\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Owner\": pulumi.String(\"my-team\"),\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.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\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 Ngfw(\"example\", NgfwArgs.builder()\n            .name(\"my-firewall\")\n            .description(\"My new firewall\")\n            .azLists(            \n                \"use1-az1\",\n                \"use1-az4\")\n            .allowlistAccounts(\"111111111111\")\n            .tags(Map.of(\"Owner\", \"my-team\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: my-firewall\n      description: My new firewall\n      azLists:\n        - use1-az1\n        - use1-az4\n      allowlistAccounts:\n        - '111111111111'\n      tags:\n        Owner: my-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n---\n\n#### 2. Adding Endpoints to a V2 Firewall\n\nEndpoints connect the firewall to customer VPCs. They must be added in a separate\na separate update after the firewall is running.\n\n**Steps:**\n\n1. Confirm the firewall status is `RUNNING`:\n   ```shell\n   terraform show | grep firewall_status\n```\n2. Add one or more \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e blocks to the existing resource.\n5. Wait for each endpoint's \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e to reach `ACCEPTED` before proceeding to configure\n   Egress NAT or private prefixes:\n   ```shell\n   terraform show | grep -A 10 \"endpoints\"\n```\n\n**Full example — V2 firewall with endpoints added:**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.Ngfw(\"example\", {\n    name: \"my-firewall\",\n    description: \"My new firewall\",\n    azLists: [\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlistAccounts: [\"111111111111\"],\n    endpoints: [\n        {\n            accountId: \"111111111111\",\n            vpcId: \"vpc-0a1b2c3d4e5f00002\",\n            subnetId: \"subnet-0a1b2c3d4e5f00001\",\n            mode: \"ServiceManaged\",\n        },\n        {\n            accountId: \"111111111111\",\n            vpcId: \"vpc-0a1b2c3d4e5f00003\",\n            subnetId: \"subnet-0a1b2c3d4e5f00002\",\n            mode: \"ServiceManaged\",\n        },\n    ],\n    tags: {\n        Owner: \"my-team\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.Ngfw(\"example\",\n    name=\"my-firewall\",\n    description=\"My new firewall\",\n    az_lists=[\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlist_accounts=[\"111111111111\"],\n    endpoints=[\n        {\n            \"account_id\": \"111111111111\",\n            \"vpc_id\": \"vpc-0a1b2c3d4e5f00002\",\n            \"subnet_id\": \"subnet-0a1b2c3d4e5f00001\",\n            \"mode\": \"ServiceManaged\",\n        },\n        {\n            \"account_id\": \"111111111111\",\n            \"vpc_id\": \"vpc-0a1b2c3d4e5f00003\",\n            \"subnet_id\": \"subnet-0a1b2c3d4e5f00002\",\n            \"mode\": \"ServiceManaged\",\n        },\n    ],\n    tags={\n        \"Owner\": \"my-team\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.Ngfw(\"example\", new()\n    {\n        Name = \"my-firewall\",\n        Description = \"My new firewall\",\n        AzLists = new[]\n        {\n            \"use1-az1\",\n            \"use1-az4\",\n        },\n        AllowlistAccounts = new[]\n        {\n            \"111111111111\",\n        },\n        Endpoints = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwEndpointArgs\n            {\n                AccountId = \"111111111111\",\n                VpcId = \"vpc-0a1b2c3d4e5f00002\",\n                SubnetId = \"subnet-0a1b2c3d4e5f00001\",\n                Mode = \"ServiceManaged\",\n            },\n            new CloudNgfwAws.Inputs.NgfwEndpointArgs\n            {\n                AccountId = \"111111111111\",\n                VpcId = \"vpc-0a1b2c3d4e5f00003\",\n                SubnetId = \"subnet-0a1b2c3d4e5f00002\",\n                Mode = \"ServiceManaged\",\n            },\n        },\n        Tags = \n        {\n            { \"Owner\", \"my-team\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewNgfw(ctx, \"example\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:        pulumi.String(\"my-firewall\"),\n\t\t\tDescription: pulumi.String(\"My new firewall\"),\n\t\t\tAzLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"use1-az1\"),\n\t\t\t\tpulumi.String(\"use1-az4\"),\n\t\t\t},\n\t\t\tAllowlistAccounts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"111111111111\"),\n\t\t\t},\n\t\t\tEndpoints: cloudngfwaws.NgfwEndpointArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwEndpointArgs{\n\t\t\t\t\tAccountId: pulumi.String(\"111111111111\"),\n\t\t\t\t\tVpcId:     pulumi.String(\"vpc-0a1b2c3d4e5f00002\"),\n\t\t\t\t\tSubnetId:  pulumi.String(\"subnet-0a1b2c3d4e5f00001\"),\n\t\t\t\t\tMode:      pulumi.String(\"ServiceManaged\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwEndpointArgs{\n\t\t\t\t\tAccountId: pulumi.String(\"111111111111\"),\n\t\t\t\t\tVpcId:     pulumi.String(\"vpc-0a1b2c3d4e5f00003\"),\n\t\t\t\t\tSubnetId:  pulumi.String(\"subnet-0a1b2c3d4e5f00002\"),\n\t\t\t\t\tMode:      pulumi.String(\"ServiceManaged\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Owner\": pulumi.String(\"my-team\"),\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.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwEndpointArgs;\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 Ngfw(\"example\", NgfwArgs.builder()\n            .name(\"my-firewall\")\n            .description(\"My new firewall\")\n            .azLists(            \n                \"use1-az1\",\n                \"use1-az4\")\n            .allowlistAccounts(\"111111111111\")\n            .endpoints(            \n                NgfwEndpointArgs.builder()\n                    .accountId(\"111111111111\")\n                    .vpcId(\"vpc-0a1b2c3d4e5f00002\")\n                    .subnetId(\"subnet-0a1b2c3d4e5f00001\")\n                    .mode(\"ServiceManaged\")\n                    .build(),\n                NgfwEndpointArgs.builder()\n                    .accountId(\"111111111111\")\n                    .vpcId(\"vpc-0a1b2c3d4e5f00003\")\n                    .subnetId(\"subnet-0a1b2c3d4e5f00002\")\n                    .mode(\"ServiceManaged\")\n                    .build())\n            .tags(Map.of(\"Owner\", \"my-team\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: my-firewall\n      description: My new firewall\n      azLists:\n        - use1-az1\n        - use1-az4\n      allowlistAccounts:\n        - '111111111111'\n      endpoints:\n        - accountId: '111111111111'\n          vpcId: vpc-0a1b2c3d4e5f00002\n          subnetId: subnet-0a1b2c3d4e5f00001\n          mode: ServiceManaged\n        - accountId: '111111111111'\n          vpcId: vpc-0a1b2c3d4e5f00003\n          subnetId: subnet-0a1b2c3d4e5f00002\n          mode: ServiceManaged\n      tags:\n        Owner: my-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n---\n\n#### 3. Configuring Egress NAT on a V2 Firewall\n\nEgress NAT can be enabled at the firewall level once at least one endpoint is accepted.\n\n\u003e **Prerequisite:** At least one endpoint must be in `ACCEPTED` state.\n\n**Steps:**\n\n1. Add the \u003cspan pulumi-lang-nodejs=\"`egressNat`\" pulumi-lang-dotnet=\"`EgressNat`\" pulumi-lang-go=\"`egressNat`\" pulumi-lang-python=\"`egress_nat`\" pulumi-lang-yaml=\"`egressNat`\" pulumi-lang-java=\"`egressNat`\"\u003e`egressNat`\u003c/span\u003e block to the resource.\n\n**Full example — V2 firewall with Egress NAT enabled:**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.Ngfw(\"example\", {\n    name: \"my-firewall\",\n    description: \"My new firewall\",\n    azLists: [\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlistAccounts: [\"111111111111\"],\n    endpoints: [\n        {\n            accountId: \"111111111111\",\n            vpcId: \"vpc-0a1b2c3d4e5f00002\",\n            subnetId: \"subnet-0a1b2c3d4e5f00001\",\n            mode: \"ServiceManaged\",\n        },\n        {\n            accountId: \"111111111111\",\n            vpcId: \"vpc-0a1b2c3d4e5f00003\",\n            subnetId: \"subnet-0a1b2c3d4e5f00002\",\n            mode: \"ServiceManaged\",\n        },\n    ],\n    egressNats: [{\n        enabled: true,\n        settings: [{\n            ipPoolType: \"AWSService\",\n        }],\n    }],\n    tags: {\n        Owner: \"my-team\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.Ngfw(\"example\",\n    name=\"my-firewall\",\n    description=\"My new firewall\",\n    az_lists=[\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlist_accounts=[\"111111111111\"],\n    endpoints=[\n        {\n            \"account_id\": \"111111111111\",\n            \"vpc_id\": \"vpc-0a1b2c3d4e5f00002\",\n            \"subnet_id\": \"subnet-0a1b2c3d4e5f00001\",\n            \"mode\": \"ServiceManaged\",\n        },\n        {\n            \"account_id\": \"111111111111\",\n            \"vpc_id\": \"vpc-0a1b2c3d4e5f00003\",\n            \"subnet_id\": \"subnet-0a1b2c3d4e5f00002\",\n            \"mode\": \"ServiceManaged\",\n        },\n    ],\n    egress_nats=[{\n        \"enabled\": True,\n        \"settings\": [{\n            \"ip_pool_type\": \"AWSService\",\n        }],\n    }],\n    tags={\n        \"Owner\": \"my-team\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.Ngfw(\"example\", new()\n    {\n        Name = \"my-firewall\",\n        Description = \"My new firewall\",\n        AzLists = new[]\n        {\n            \"use1-az1\",\n            \"use1-az4\",\n        },\n        AllowlistAccounts = new[]\n        {\n            \"111111111111\",\n        },\n        Endpoints = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwEndpointArgs\n            {\n                AccountId = \"111111111111\",\n                VpcId = \"vpc-0a1b2c3d4e5f00002\",\n                SubnetId = \"subnet-0a1b2c3d4e5f00001\",\n                Mode = \"ServiceManaged\",\n            },\n            new CloudNgfwAws.Inputs.NgfwEndpointArgs\n            {\n                AccountId = \"111111111111\",\n                VpcId = \"vpc-0a1b2c3d4e5f00003\",\n                SubnetId = \"subnet-0a1b2c3d4e5f00002\",\n                Mode = \"ServiceManaged\",\n            },\n        },\n        EgressNats = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwEgressNatArgs\n            {\n                Enabled = true,\n                Settings = new[]\n                {\n                    new CloudNgfwAws.Inputs.NgfwEgressNatSettingArgs\n                    {\n                        IpPoolType = \"AWSService\",\n                    },\n                },\n            },\n        },\n        Tags = \n        {\n            { \"Owner\", \"my-team\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewNgfw(ctx, \"example\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:        pulumi.String(\"my-firewall\"),\n\t\t\tDescription: pulumi.String(\"My new firewall\"),\n\t\t\tAzLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"use1-az1\"),\n\t\t\t\tpulumi.String(\"use1-az4\"),\n\t\t\t},\n\t\t\tAllowlistAccounts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"111111111111\"),\n\t\t\t},\n\t\t\tEndpoints: cloudngfwaws.NgfwEndpointArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwEndpointArgs{\n\t\t\t\t\tAccountId: pulumi.String(\"111111111111\"),\n\t\t\t\t\tVpcId:     pulumi.String(\"vpc-0a1b2c3d4e5f00002\"),\n\t\t\t\t\tSubnetId:  pulumi.String(\"subnet-0a1b2c3d4e5f00001\"),\n\t\t\t\t\tMode:      pulumi.String(\"ServiceManaged\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwEndpointArgs{\n\t\t\t\t\tAccountId: pulumi.String(\"111111111111\"),\n\t\t\t\t\tVpcId:     pulumi.String(\"vpc-0a1b2c3d4e5f00003\"),\n\t\t\t\t\tSubnetId:  pulumi.String(\"subnet-0a1b2c3d4e5f00002\"),\n\t\t\t\t\tMode:      pulumi.String(\"ServiceManaged\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEgressNats: cloudngfwaws.NgfwEgressNatArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tSettings: cloudngfwaws.NgfwEgressNatSettingArray{\n\t\t\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatSettingArgs{\n\t\t\t\t\t\t\tIpPoolType: pulumi.String(\"AWSService\"),\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\tTags: pulumi.StringMap{\n\t\t\t\t\"Owner\": pulumi.String(\"my-team\"),\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.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwEndpointArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwEgressNatArgs;\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 Ngfw(\"example\", NgfwArgs.builder()\n            .name(\"my-firewall\")\n            .description(\"My new firewall\")\n            .azLists(            \n                \"use1-az1\",\n                \"use1-az4\")\n            .allowlistAccounts(\"111111111111\")\n            .endpoints(            \n                NgfwEndpointArgs.builder()\n                    .accountId(\"111111111111\")\n                    .vpcId(\"vpc-0a1b2c3d4e5f00002\")\n                    .subnetId(\"subnet-0a1b2c3d4e5f00001\")\n                    .mode(\"ServiceManaged\")\n                    .build(),\n                NgfwEndpointArgs.builder()\n                    .accountId(\"111111111111\")\n                    .vpcId(\"vpc-0a1b2c3d4e5f00003\")\n                    .subnetId(\"subnet-0a1b2c3d4e5f00002\")\n                    .mode(\"ServiceManaged\")\n                    .build())\n            .egressNats(NgfwEgressNatArgs.builder()\n                .enabled(true)\n                .settings(NgfwEgressNatSettingArgs.builder()\n                    .ipPoolType(\"AWSService\")\n                    .build())\n                .build())\n            .tags(Map.of(\"Owner\", \"my-team\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: my-firewall\n      description: My new firewall\n      azLists:\n        - use1-az1\n        - use1-az4\n      allowlistAccounts:\n        - '111111111111'\n      endpoints:\n        - accountId: '111111111111'\n          vpcId: vpc-0a1b2c3d4e5f00002\n          subnetId: subnet-0a1b2c3d4e5f00001\n          mode: ServiceManaged\n        - accountId: '111111111111'\n          vpcId: vpc-0a1b2c3d4e5f00003\n          subnetId: subnet-0a1b2c3d4e5f00002\n          mode: ServiceManaged\n      egressNats:\n        - enabled: true\n          settings:\n            - ipPoolType: AWSService\n      tags:\n        Owner: my-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**To disable Egress NAT:** set `enabled = false` and re-apply.\n\n---\n\n#### 4. Configuring Private Prefixes and Per-Endpoint Egress NAT (V2)\n\nOnce an endpoint is accepted, you can enable or disable Egress NAT and configure private\nCIDR prefixes on a per-endpoint basis within the \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e block.\n\n\u003e **Prerequisite:** The endpoint must be in `ACCEPTED` state. The \u003cspan pulumi-lang-nodejs=\"`endpointId`\" pulumi-lang-dotnet=\"`EndpointId`\" pulumi-lang-go=\"`endpointId`\" pulumi-lang-python=\"`endpoint_id`\" pulumi-lang-yaml=\"`endpointId`\" pulumi-lang-java=\"`endpointId`\"\u003e`endpointId`\u003c/span\u003e\n\u003e is a read-only computed value — retrieve it from Terraform state after apply:\n\u003e ```shell\n\u003e terraform show | grep -A 15 \"endpoints\"\n```\n\n**Steps:**\n\n1. Update the relevant \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e block with \u003cspan pulumi-lang-nodejs=\"`egressNatEnabled`\" pulumi-lang-dotnet=\"`EgressNatEnabled`\" pulumi-lang-go=\"`egressNatEnabled`\" pulumi-lang-python=\"`egress_nat_enabled`\" pulumi-lang-yaml=\"`egressNatEnabled`\" pulumi-lang-java=\"`egressNatEnabled`\"\u003e`egressNatEnabled`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`prefixes`\" pulumi-lang-dotnet=\"`Prefixes`\" pulumi-lang-go=\"`prefixes`\" pulumi-lang-python=\"`prefixes`\" pulumi-lang-yaml=\"`prefixes`\" pulumi-lang-java=\"`prefixes`\"\u003e`prefixes`\u003c/span\u003e.\n   The \u003cspan pulumi-lang-nodejs=\"`endpointId`\" pulumi-lang-dotnet=\"`EndpointId`\" pulumi-lang-go=\"`endpointId`\" pulumi-lang-python=\"`endpoint_id`\" pulumi-lang-yaml=\"`endpointId`\" pulumi-lang-java=\"`endpointId`\"\u003e`endpointId`\u003c/span\u003e field is read-only and is populated automatically by the provider\n   once the endpoint is accepted — do not set it manually.\n\n**Full example — V2 firewall with per-endpoint Egress NAT and private prefixes:**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.Ngfw(\"example\", {\n    name: \"my-firewall\",\n    description: \"My new firewall\",\n    azLists: [\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlistAccounts: [\"111111111111\"],\n    endpoints: [\n        {\n            accountId: \"111111111111\",\n            vpcId: \"vpc-0a1b2c3d4e5f00002\",\n            subnetId: \"subnet-0a1b2c3d4e5f00001\",\n            mode: \"ServiceManaged\",\n            egressNatEnabled: true,\n            prefixes: [{\n                privatePrefixes: [{\n                    cidrs: [\n                        \"10.0.0.0/8\",\n                        \"172.16.0.0/12\",\n                        \"192.168.0.0/16\",\n                        \"100.64.0.0/10\",\n                    ],\n                }],\n            }],\n        },\n        {\n            accountId: \"111111111111\",\n            vpcId: \"vpc-0a1b2c3d4e5f00003\",\n            subnetId: \"subnet-0a1b2c3d4e5f00002\",\n            mode: \"ServiceManaged\",\n            egressNatEnabled: false,\n        },\n    ],\n    egressNats: [{\n        enabled: true,\n        settings: [{\n            ipPoolType: \"AWSService\",\n        }],\n    }],\n    tags: {\n        Owner: \"my-team\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.Ngfw(\"example\",\n    name=\"my-firewall\",\n    description=\"My new firewall\",\n    az_lists=[\n        \"use1-az1\",\n        \"use1-az4\",\n    ],\n    allowlist_accounts=[\"111111111111\"],\n    endpoints=[\n        {\n            \"account_id\": \"111111111111\",\n            \"vpc_id\": \"vpc-0a1b2c3d4e5f00002\",\n            \"subnet_id\": \"subnet-0a1b2c3d4e5f00001\",\n            \"mode\": \"ServiceManaged\",\n            \"egress_nat_enabled\": True,\n            \"prefixes\": [{\n                \"private_prefixes\": [{\n                    \"cidrs\": [\n                        \"10.0.0.0/8\",\n                        \"172.16.0.0/12\",\n                        \"192.168.0.0/16\",\n                        \"100.64.0.0/10\",\n                    ],\n                }],\n            }],\n        },\n        {\n            \"account_id\": \"111111111111\",\n            \"vpc_id\": \"vpc-0a1b2c3d4e5f00003\",\n            \"subnet_id\": \"subnet-0a1b2c3d4e5f00002\",\n            \"mode\": \"ServiceManaged\",\n            \"egress_nat_enabled\": False,\n        },\n    ],\n    egress_nats=[{\n        \"enabled\": True,\n        \"settings\": [{\n            \"ip_pool_type\": \"AWSService\",\n        }],\n    }],\n    tags={\n        \"Owner\": \"my-team\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.Ngfw(\"example\", new()\n    {\n        Name = \"my-firewall\",\n        Description = \"My new firewall\",\n        AzLists = new[]\n        {\n            \"use1-az1\",\n            \"use1-az4\",\n        },\n        AllowlistAccounts = new[]\n        {\n            \"111111111111\",\n        },\n        Endpoints = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwEndpointArgs\n            {\n                AccountId = \"111111111111\",\n                VpcId = \"vpc-0a1b2c3d4e5f00002\",\n                SubnetId = \"subnet-0a1b2c3d4e5f00001\",\n                Mode = \"ServiceManaged\",\n                EgressNatEnabled = true,\n                Prefixes = new[]\n                {\n                    new CloudNgfwAws.Inputs.NgfwEndpointPrefixArgs\n                    {\n                        PrivatePrefixes = new[]\n                        {\n                            new CloudNgfwAws.Inputs.NgfwEndpointPrefixPrivatePrefixArgs\n                            {\n                                Cidrs = new[]\n                                {\n                                    \"10.0.0.0/8\",\n                                    \"172.16.0.0/12\",\n                                    \"192.168.0.0/16\",\n                                    \"100.64.0.0/10\",\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n            new CloudNgfwAws.Inputs.NgfwEndpointArgs\n            {\n                AccountId = \"111111111111\",\n                VpcId = \"vpc-0a1b2c3d4e5f00003\",\n                SubnetId = \"subnet-0a1b2c3d4e5f00002\",\n                Mode = \"ServiceManaged\",\n                EgressNatEnabled = false,\n            },\n        },\n        EgressNats = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwEgressNatArgs\n            {\n                Enabled = true,\n                Settings = new[]\n                {\n                    new CloudNgfwAws.Inputs.NgfwEgressNatSettingArgs\n                    {\n                        IpPoolType = \"AWSService\",\n                    },\n                },\n            },\n        },\n        Tags = \n        {\n            { \"Owner\", \"my-team\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewNgfw(ctx, \"example\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:        pulumi.String(\"my-firewall\"),\n\t\t\tDescription: pulumi.String(\"My new firewall\"),\n\t\t\tAzLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"use1-az1\"),\n\t\t\t\tpulumi.String(\"use1-az4\"),\n\t\t\t},\n\t\t\tAllowlistAccounts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"111111111111\"),\n\t\t\t},\n\t\t\tEndpoints: cloudngfwaws.NgfwEndpointArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwEndpointArgs{\n\t\t\t\t\tAccountId:        pulumi.String(\"111111111111\"),\n\t\t\t\t\tVpcId:            pulumi.String(\"vpc-0a1b2c3d4e5f00002\"),\n\t\t\t\t\tSubnetId:         pulumi.String(\"subnet-0a1b2c3d4e5f00001\"),\n\t\t\t\t\tMode:             pulumi.String(\"ServiceManaged\"),\n\t\t\t\t\tEgressNatEnabled: pulumi.Bool(true),\n\t\t\t\t\tPrefixes: cloudngfwaws.NgfwEndpointPrefixArray{\n\t\t\t\t\t\t\u0026cloudngfwaws.NgfwEndpointPrefixArgs{\n\t\t\t\t\t\t\tPrivatePrefixes: cloudngfwaws.NgfwEndpointPrefixPrivatePrefixArray{\n\t\t\t\t\t\t\t\t\u0026cloudngfwaws.NgfwEndpointPrefixPrivatePrefixArgs{\n\t\t\t\t\t\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"10.0.0.0/8\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"172.16.0.0/12\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"100.64.0.0/10\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwEndpointArgs{\n\t\t\t\t\tAccountId:        pulumi.String(\"111111111111\"),\n\t\t\t\t\tVpcId:            pulumi.String(\"vpc-0a1b2c3d4e5f00003\"),\n\t\t\t\t\tSubnetId:         pulumi.String(\"subnet-0a1b2c3d4e5f00002\"),\n\t\t\t\t\tMode:             pulumi.String(\"ServiceManaged\"),\n\t\t\t\t\tEgressNatEnabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEgressNats: cloudngfwaws.NgfwEgressNatArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tSettings: cloudngfwaws.NgfwEgressNatSettingArray{\n\t\t\t\t\t\t\u0026cloudngfwaws.NgfwEgressNatSettingArgs{\n\t\t\t\t\t\t\tIpPoolType: pulumi.String(\"AWSService\"),\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\tTags: pulumi.StringMap{\n\t\t\t\t\"Owner\": pulumi.String(\"my-team\"),\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.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwEndpointArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwEgressNatArgs;\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 Ngfw(\"example\", NgfwArgs.builder()\n            .name(\"my-firewall\")\n            .description(\"My new firewall\")\n            .azLists(            \n                \"use1-az1\",\n                \"use1-az4\")\n            .allowlistAccounts(\"111111111111\")\n            .endpoints(            \n                NgfwEndpointArgs.builder()\n                    .accountId(\"111111111111\")\n                    .vpcId(\"vpc-0a1b2c3d4e5f00002\")\n                    .subnetId(\"subnet-0a1b2c3d4e5f00001\")\n                    .mode(\"ServiceManaged\")\n                    .egressNatEnabled(true)\n                    .prefixes(NgfwEndpointPrefixArgs.builder()\n                        .privatePrefixes(NgfwEndpointPrefixPrivatePrefixArgs.builder()\n                            .cidrs(                            \n                                \"10.0.0.0/8\",\n                                \"172.16.0.0/12\",\n                                \"192.168.0.0/16\",\n                                \"100.64.0.0/10\")\n                            .build())\n                        .build())\n                    .build(),\n                NgfwEndpointArgs.builder()\n                    .accountId(\"111111111111\")\n                    .vpcId(\"vpc-0a1b2c3d4e5f00003\")\n                    .subnetId(\"subnet-0a1b2c3d4e5f00002\")\n                    .mode(\"ServiceManaged\")\n                    .egressNatEnabled(false)\n                    .build())\n            .egressNats(NgfwEgressNatArgs.builder()\n                .enabled(true)\n                .settings(NgfwEgressNatSettingArgs.builder()\n                    .ipPoolType(\"AWSService\")\n                    .build())\n                .build())\n            .tags(Map.of(\"Owner\", \"my-team\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: my-firewall\n      description: My new firewall\n      azLists:\n        - use1-az1\n        - use1-az4\n      allowlistAccounts:\n        - '111111111111'\n      endpoints:\n        - accountId: '111111111111'\n          vpcId: vpc-0a1b2c3d4e5f00002\n          subnetId: subnet-0a1b2c3d4e5f00001\n          mode: ServiceManaged\n          egressNatEnabled: true\n          prefixes:\n            - privatePrefixes:\n                - cidrs:\n                    - 10.0.0.0/8\n                    - 172.16.0.0/12\n                    - 192.168.0.0/16\n                    - 100.64.0.0/10\n        - accountId: '111111111111'\n          vpcId: vpc-0a1b2c3d4e5f00003\n          subnetId: subnet-0a1b2c3d4e5f00002\n          mode: ServiceManaged\n          egressNatEnabled: false\n      egressNats:\n        - enabled: true\n          settings:\n            - ipPoolType: AWSService\n      tags:\n        Owner: my-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**To remove private prefixes:** remove the CIDR entries from \u003cspan pulumi-lang-nodejs=\"`cidrs`\" pulumi-lang-dotnet=\"`Cidrs`\" pulumi-lang-go=\"`cidrs`\" pulumi-lang-python=\"`cidrs`\" pulumi-lang-yaml=\"`cidrs`\" pulumi-lang-java=\"`cidrs`\"\u003e`cidrs`\u003c/span\u003e and re-apply.\n**To disable per-endpoint Egress NAT:** set \u003cspan pulumi-lang-nodejs=\"`egressNatEnabled \" pulumi-lang-dotnet=\"`EgressNatEnabled \" pulumi-lang-go=\"`egressNatEnabled \" pulumi-lang-python=\"`egress_nat_enabled \" pulumi-lang-yaml=\"`egressNatEnabled \" pulumi-lang-java=\"`egressNatEnabled \"\u003e`egressNatEnabled \u003c/span\u003e= false` and re-apply.\n\n---\n\n## Import\n\nimport name is \u003caccount_id\u003e:\u003cname\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/ngfw:Ngfw example 12345678:example-instance\n```\n\n",
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The Account Id.\n"
                },
                "allowlistAccounts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of allowed accounts for this NGFW.\n"
                },
                "appIdVersion": {
                    "type": "string",
                    "description": "App-ID version number.\n"
                },
                "automaticUpgradeAppIdVersion": {
                    "type": "boolean",
                    "description": "Automatic App-ID upgrade version number. 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"
                },
                "azLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of availability zone IDs for this NGFW.\n"
                },
                "changeProtections": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Enables or disables change protection for the NGFW.\n"
                },
                "deploymentUpdateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The NGFW description.\n"
                },
                "egressNats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwEgressNat:NgfwEgressNat"
                    }
                },
                "endpointMode": {
                    "type": "string",
                    "description": "Set endpoint mode from the following options. Valid values are `ServiceManaged` or `CustomerManaged`.\n"
                },
                "endpointServiceName": {
                    "type": "string",
                    "description": "The endpoint service name.\n"
                },
                "endpoints": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwEndpoint:NgfwEndpoint"
                    }
                },
                "firewallId": {
                    "type": "string",
                    "description": "The Firewall ID.\n"
                },
                "globalRulestack": {
                    "type": "string",
                    "description": "The global rulestack for this NGFW.\n"
                },
                "linkId": {
                    "type": "string",
                    "description": "The link ID.\n"
                },
                "linkStatus": {
                    "type": "string",
                    "description": "The link status.\n"
                },
                "multiVpc": {
                    "type": "boolean",
                    "description": "Share NGFW with Multiple VPCs. This feature can be enabled only if the\u003cspan pulumi-lang-nodejs=\" endpointMode \" pulumi-lang-dotnet=\" EndpointMode \" pulumi-lang-go=\" endpointMode \" pulumi-lang-python=\" endpoint_mode \" pulumi-lang-yaml=\" endpointMode \" pulumi-lang-java=\" endpointMode \"\u003e endpointMode \u003c/span\u003eis CustomerManaged.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The NGFW name.\n"
                },
                "privateAccesses": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwPrivateAccess:NgfwPrivateAccess"
                    }
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack for this NGFW.\n"
                },
                "securityZones": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwSecurityZone:NgfwSecurityZone"
                    }
                },
                "statuses": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwStatus:NgfwStatus"
                    }
                },
                "subnetMappings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwSubnetMapping:NgfwSubnetMapping"
                    },
                    "description": "Subnet mappings.\n"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The tags.\n"
                },
                "tier": {
                    "type": "string",
                    "description": "Firewall Instance Tier. Allowed values are 'base', 'standard', or 'premium'.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                },
                "userIds": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwUserId:NgfwUserId"
                    }
                },
                "vpcId": {
                    "type": "string",
                    "description": "The VPC ID for the NGFW.\n"
                }
            },
            "required": [
                "appIdVersion",
                "changeProtections",
                "deploymentUpdateToken",
                "egressNats",
                "endpointServiceName",
                "firewallId",
                "linkId",
                "linkStatus",
                "multiVpc",
                "name",
                "privateAccesses",
                "statuses",
                "tags",
                "tier",
                "updateToken",
                "userIds"
            ],
            "inputProperties": {
                "accountId": {
                    "type": "string",
                    "description": "The Account Id.\n",
                    "willReplaceOnChanges": true
                },
                "allowlistAccounts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of allowed accounts for this NGFW.\n"
                },
                "appIdVersion": {
                    "type": "string",
                    "description": "App-ID version number.\n"
                },
                "automaticUpgradeAppIdVersion": {
                    "type": "boolean",
                    "description": "Automatic App-ID upgrade version number. 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"
                },
                "azLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of availability zone IDs for this NGFW.\n"
                },
                "changeProtections": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Enables or disables change protection for the NGFW.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The NGFW description.\n"
                },
                "egressNats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwEgressNat:NgfwEgressNat"
                    }
                },
                "endpointMode": {
                    "type": "string",
                    "description": "Set endpoint mode from the following options. Valid values are `ServiceManaged` or `CustomerManaged`.\n"
                },
                "endpoints": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwEndpoint:NgfwEndpoint"
                    }
                },
                "firewallId": {
                    "type": "string",
                    "description": "The Firewall ID.\n"
                },
                "globalRulestack": {
                    "type": "string",
                    "description": "The global rulestack for this NGFW.\n",
                    "willReplaceOnChanges": true
                },
                "linkId": {
                    "type": "string",
                    "description": "The link ID.\n"
                },
                "multiVpc": {
                    "type": "boolean",
                    "description": "Share NGFW with Multiple VPCs. This feature can be enabled only if the\u003cspan pulumi-lang-nodejs=\" endpointMode \" pulumi-lang-dotnet=\" EndpointMode \" pulumi-lang-go=\" endpointMode \" pulumi-lang-python=\" endpoint_mode \" pulumi-lang-yaml=\" endpointMode \" pulumi-lang-java=\" endpointMode \"\u003e endpointMode \u003c/span\u003eis CustomerManaged.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The NGFW name.\n",
                    "willReplaceOnChanges": true
                },
                "privateAccesses": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwPrivateAccess:NgfwPrivateAccess"
                    }
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack for this NGFW.\n"
                },
                "securityZones": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwSecurityZone:NgfwSecurityZone"
                    }
                },
                "subnetMappings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwSubnetMapping:NgfwSubnetMapping"
                    },
                    "description": "Subnet mappings.\n"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The tags.\n"
                },
                "tier": {
                    "type": "string",
                    "description": "Firewall Instance Tier. Allowed values are 'base', 'standard', or 'premium'.\n"
                },
                "userIds": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwUserId:NgfwUserId"
                    }
                },
                "vpcId": {
                    "type": "string",
                    "description": "The VPC ID for the NGFW.\n",
                    "willReplaceOnChanges": true
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Ngfw resources.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The Account Id.\n",
                        "willReplaceOnChanges": true
                    },
                    "allowlistAccounts": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The list of allowed accounts for this NGFW.\n"
                    },
                    "appIdVersion": {
                        "type": "string",
                        "description": "App-ID version number.\n"
                    },
                    "automaticUpgradeAppIdVersion": {
                        "type": "boolean",
                        "description": "Automatic App-ID upgrade version number. 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"
                    },
                    "azLists": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The list of availability zone IDs for this NGFW.\n"
                    },
                    "changeProtections": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Enables or disables change protection for the NGFW.\n"
                    },
                    "deploymentUpdateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The NGFW description.\n"
                    },
                    "egressNats": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwEgressNat:NgfwEgressNat"
                        }
                    },
                    "endpointMode": {
                        "type": "string",
                        "description": "Set endpoint mode from the following options. Valid values are `ServiceManaged` or `CustomerManaged`.\n"
                    },
                    "endpointServiceName": {
                        "type": "string",
                        "description": "The endpoint service name.\n"
                    },
                    "endpoints": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwEndpoint:NgfwEndpoint"
                        }
                    },
                    "firewallId": {
                        "type": "string",
                        "description": "The Firewall ID.\n"
                    },
                    "globalRulestack": {
                        "type": "string",
                        "description": "The global rulestack for this NGFW.\n",
                        "willReplaceOnChanges": true
                    },
                    "linkId": {
                        "type": "string",
                        "description": "The link ID.\n"
                    },
                    "linkStatus": {
                        "type": "string",
                        "description": "The link status.\n"
                    },
                    "multiVpc": {
                        "type": "boolean",
                        "description": "Share NGFW with Multiple VPCs. This feature can be enabled only if the\u003cspan pulumi-lang-nodejs=\" endpointMode \" pulumi-lang-dotnet=\" EndpointMode \" pulumi-lang-go=\" endpointMode \" pulumi-lang-python=\" endpoint_mode \" pulumi-lang-yaml=\" endpointMode \" pulumi-lang-java=\" endpointMode \"\u003e endpointMode \u003c/span\u003eis CustomerManaged.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The NGFW name.\n",
                        "willReplaceOnChanges": true
                    },
                    "privateAccesses": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwPrivateAccess:NgfwPrivateAccess"
                        }
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack for this NGFW.\n"
                    },
                    "securityZones": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwSecurityZone:NgfwSecurityZone"
                        }
                    },
                    "statuses": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwStatus:NgfwStatus"
                        }
                    },
                    "subnetMappings": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwSubnetMapping:NgfwSubnetMapping"
                        },
                        "description": "Subnet mappings.\n"
                    },
                    "tags": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The tags.\n"
                    },
                    "tier": {
                        "type": "string",
                        "description": "Firewall Instance Tier. Allowed values are 'base', 'standard', or 'premium'.\n"
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    },
                    "userIds": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwUserId:NgfwUserId"
                        }
                    },
                    "vpcId": {
                        "type": "string",
                        "description": "The VPC ID for the NGFW.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/ngfwLogProfile:NgfwLogProfile": {
            "description": "Resource for NGFW log profile manipulation.\n\n\n## Admin Permission Type\n\n* `Firewall`\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst exampleVpc = new aws.index.Vpc(\"example\", {\n    cidrBlock: \"172.16.0.0/16\",\n    tags: {\n        name: \"tf-example\",\n    },\n});\nconst subnet1 = new aws.index.Subnet(\"subnet1\", {\n    vpcId: myVpc.id,\n    cidrBlock: \"172.16.10.0/24\",\n    availabilityZone: \"us-west-2a\",\n    tags: {\n        name: \"tf-example\",\n    },\n});\nconst subnet2 = new aws.index.Subnet(\"subnet2\", {\n    vpcId: myVpc.id,\n    cidrBlock: \"172.16.20.0/24\",\n    availabilityZone: \"us-west-2b\",\n    tags: {\n        name: \"tf-example\",\n    },\n});\nconst x = new cloudngfwaws.Ngfw(\"x\", {\n    name: \"example-instance\",\n    vpcId: exampleVpc.id,\n    accountId: \"12345678\",\n    description: \"Example description\",\n    endpointMode: \"ServiceManaged\",\n    subnetMappings: [\n        {\n            subnetId: subnet1.id,\n        },\n        {\n            subnetId: subnet2.id,\n        },\n    ],\n    rulestack: \"example-rulestack\",\n    tags: {\n        Foo: \"bar\",\n    },\n});\nconst example = new cloudngfwaws.NgfwLogProfile(\"example\", {\n    ngfw: x.name,\n    accountId: x.accountId,\n    logDestinations: [\n        {\n            destinationType: \"S3\",\n            destination: \"my-s3-bucket\",\n            logType: \"TRAFFIC\",\n        },\n        {\n            destinationType: \"CloudWatchLogs\",\n            destination: \"panw-log-group\",\n            logType: \"THREAT\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample_vpc = aws.Vpc(\"example\",\n    cidr_block=172.16.0.0/16,\n    tags={\n        name: tf-example,\n    })\nsubnet1 = aws.Subnet(\"subnet1\",\n    vpc_id=my_vpc.id,\n    cidr_block=172.16.10.0/24,\n    availability_zone=us-west-2a,\n    tags={\n        name: tf-example,\n    })\nsubnet2 = aws.Subnet(\"subnet2\",\n    vpc_id=my_vpc.id,\n    cidr_block=172.16.20.0/24,\n    availability_zone=us-west-2b,\n    tags={\n        name: tf-example,\n    })\nx = cloudngfwaws.Ngfw(\"x\",\n    name=\"example-instance\",\n    vpc_id=example_vpc[\"id\"],\n    account_id=\"12345678\",\n    description=\"Example description\",\n    endpoint_mode=\"ServiceManaged\",\n    subnet_mappings=[\n        {\n            \"subnet_id\": subnet1[\"id\"],\n        },\n        {\n            \"subnet_id\": subnet2[\"id\"],\n        },\n    ],\n    rulestack=\"example-rulestack\",\n    tags={\n        \"Foo\": \"bar\",\n    })\nexample = cloudngfwaws.NgfwLogProfile(\"example\",\n    ngfw=x.name,\n    account_id=x.account_id,\n    log_destinations=[\n        {\n            \"destination_type\": \"S3\",\n            \"destination\": \"my-s3-bucket\",\n            \"log_type\": \"TRAFFIC\",\n        },\n        {\n            \"destination_type\": \"CloudWatchLogs\",\n            \"destination\": \"panw-log-group\",\n            \"log_type\": \"THREAT\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleVpc = new Aws.Index.Vpc(\"example\", new()\n    {\n        CidrBlock = \"172.16.0.0/16\",\n        Tags = \n        {\n            { \"name\", \"tf-example\" },\n        },\n    });\n\n    var subnet1 = new Aws.Index.Subnet(\"subnet1\", new()\n    {\n        VpcId = myVpc.Id,\n        CidrBlock = \"172.16.10.0/24\",\n        AvailabilityZone = \"us-west-2a\",\n        Tags = \n        {\n            { \"name\", \"tf-example\" },\n        },\n    });\n\n    var subnet2 = new Aws.Index.Subnet(\"subnet2\", new()\n    {\n        VpcId = myVpc.Id,\n        CidrBlock = \"172.16.20.0/24\",\n        AvailabilityZone = \"us-west-2b\",\n        Tags = \n        {\n            { \"name\", \"tf-example\" },\n        },\n    });\n\n    var x = new CloudNgfwAws.Index.Ngfw(\"x\", new()\n    {\n        Name = \"example-instance\",\n        VpcId = exampleVpc.Id,\n        AccountId = \"12345678\",\n        Description = \"Example description\",\n        EndpointMode = \"ServiceManaged\",\n        SubnetMappings = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                SubnetId = subnet1.Id,\n            },\n            new CloudNgfwAws.Inputs.NgfwSubnetMappingArgs\n            {\n                SubnetId = subnet2.Id,\n            },\n        },\n        Rulestack = \"example-rulestack\",\n        Tags = \n        {\n            { \"Foo\", \"bar\" },\n        },\n    });\n\n    var example = new CloudNgfwAws.Index.NgfwLogProfile(\"example\", new()\n    {\n        Ngfw = x.Name,\n        AccountId = x.AccountId,\n        LogDestinations = new[]\n        {\n            new CloudNgfwAws.Inputs.NgfwLogProfileLogDestinationArgs\n            {\n                DestinationType = \"S3\",\n                Destination = \"my-s3-bucket\",\n                LogType = \"TRAFFIC\",\n            },\n            new CloudNgfwAws.Inputs.NgfwLogProfileLogDestinationArgs\n            {\n                DestinationType = \"CloudWatchLogs\",\n                Destination = \"panw-log-group\",\n                LogType = \"THREAT\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := aws.NewVpc(ctx, \"example\", \u0026aws.VpcArgs{\n\t\t\tCidrBlock: \"172.16.0.0/16\",\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"name\": \"tf-example\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := aws.NewSubnet(ctx, \"subnet1\", \u0026aws.SubnetArgs{\n\t\t\tVpcId:            myVpc.Id,\n\t\t\tCidrBlock:        \"172.16.10.0/24\",\n\t\t\tAvailabilityZone: \"us-west-2a\",\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"name\": \"tf-example\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet2, err := aws.NewSubnet(ctx, \"subnet2\", \u0026aws.SubnetArgs{\n\t\t\tVpcId:            myVpc.Id,\n\t\t\tCidrBlock:        \"172.16.20.0/24\",\n\t\t\tAvailabilityZone: \"us-west-2b\",\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"name\": \"tf-example\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tx, err := cloudngfwaws.NewNgfw(ctx, \"x\", \u0026cloudngfwaws.NgfwArgs{\n\t\t\tName:         pulumi.String(\"example-instance\"),\n\t\t\tVpcId:        exampleVpc.Id,\n\t\t\tAccountId:    pulumi.String(\"12345678\"),\n\t\t\tDescription:  pulumi.String(\"Example description\"),\n\t\t\tEndpointMode: pulumi.String(\"ServiceManaged\"),\n\t\t\tSubnetMappings: cloudngfwaws.NgfwSubnetMappingArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tSubnetId: subnet1.Id,\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwSubnetMappingArgs{\n\t\t\t\t\tSubnetId: subnet2.Id,\n\t\t\t\t},\n\t\t\t},\n\t\t\tRulestack: pulumi.String(\"example-rulestack\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewNgfwLogProfile(ctx, \"example\", \u0026cloudngfwaws.NgfwLogProfileArgs{\n\t\t\tNgfw:      x.Name,\n\t\t\tAccountId: x.AccountId,\n\t\t\tLogDestinations: cloudngfwaws.NgfwLogProfileLogDestinationArray{\n\t\t\t\t\u0026cloudngfwaws.NgfwLogProfileLogDestinationArgs{\n\t\t\t\t\tDestinationType: pulumi.String(\"S3\"),\n\t\t\t\t\tDestination:     pulumi.String(\"my-s3-bucket\"),\n\t\t\t\t\tLogType:         pulumi.String(\"TRAFFIC\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudngfwaws.NgfwLogProfileLogDestinationArgs{\n\t\t\t\t\tDestinationType: pulumi.String(\"CloudWatchLogs\"),\n\t\t\t\t\tDestination:     pulumi.String(\"panw-log-group\"),\n\t\t\t\t\tLogType:         pulumi.String(\"THREAT\"),\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.aws.Vpc;\nimport com.pulumi.aws.VpcArgs;\nimport com.pulumi.aws.Subnet;\nimport com.pulumi.aws.SubnetArgs;\nimport com.pulumi.cloudngfwaws.Ngfw;\nimport com.pulumi.cloudngfwaws.NgfwArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwSubnetMappingArgs;\nimport com.pulumi.cloudngfwaws.NgfwLogProfile;\nimport com.pulumi.cloudngfwaws.NgfwLogProfileArgs;\nimport com.pulumi.cloudngfwaws.inputs.NgfwLogProfileLogDestinationArgs;\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 exampleVpc = new Vpc(\"exampleVpc\", VpcArgs.builder()\n            .cidrBlock(\"172.16.0.0/16\")\n            .tags(Map.of(\"name\", \"tf-example\"))\n            .build());\n\n        var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder()\n            .vpcId(myVpc.id())\n            .cidrBlock(\"172.16.10.0/24\")\n            .availabilityZone(\"us-west-2a\")\n            .tags(Map.of(\"name\", \"tf-example\"))\n            .build());\n\n        var subnet2 = new Subnet(\"subnet2\", SubnetArgs.builder()\n            .vpcId(myVpc.id())\n            .cidrBlock(\"172.16.20.0/24\")\n            .availabilityZone(\"us-west-2b\")\n            .tags(Map.of(\"name\", \"tf-example\"))\n            .build());\n\n        var x = new Ngfw(\"x\", NgfwArgs.builder()\n            .name(\"example-instance\")\n            .vpcId(exampleVpc.id())\n            .accountId(\"12345678\")\n            .description(\"Example description\")\n            .endpointMode(\"ServiceManaged\")\n            .subnetMappings(            \n                NgfwSubnetMappingArgs.builder()\n                    .subnetId(subnet1.id())\n                    .build(),\n                NgfwSubnetMappingArgs.builder()\n                    .subnetId(subnet2.id())\n                    .build())\n            .rulestack(\"example-rulestack\")\n            .tags(Map.of(\"Foo\", \"bar\"))\n            .build());\n\n        var example = new NgfwLogProfile(\"example\", NgfwLogProfileArgs.builder()\n            .ngfw(x.name())\n            .accountId(x.accountId())\n            .logDestinations(            \n                NgfwLogProfileLogDestinationArgs.builder()\n                    .destinationType(\"S3\")\n                    .destination(\"my-s3-bucket\")\n                    .logType(\"TRAFFIC\")\n                    .build(),\n                NgfwLogProfileLogDestinationArgs.builder()\n                    .destinationType(\"CloudWatchLogs\")\n                    .destination(\"panw-log-group\")\n                    .logType(\"THREAT\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:NgfwLogProfile\n    properties:\n      ngfw: ${x.name}\n      accountId: ${x.accountId}\n      logDestinations:\n        - destinationType: S3\n          destination: my-s3-bucket\n          logType: TRAFFIC\n        - destinationType: CloudWatchLogs\n          destination: panw-log-group\n          logType: THREAT\n  x:\n    type: cloudngfwaws:Ngfw\n    properties:\n      name: example-instance\n      vpcId: ${exampleVpc.id}\n      accountId: '12345678'\n      description: Example description\n      endpointMode: ServiceManaged\n      subnetMappings:\n        - subnetId: ${subnet1.id}\n        - subnetId: ${subnet2.id}\n      rulestack: example-rulestack\n      tags:\n        Foo: bar\n  exampleVpc:\n    type: aws:Vpc\n    name: example\n    properties:\n      cidrBlock: 172.16.0.0/16\n      tags:\n        name: tf-example\n  subnet1:\n    type: aws:Subnet\n    properties:\n      vpcId: ${myVpc.id}\n      cidrBlock: 172.16.10.0/24\n      availabilityZone: us-west-2a\n      tags:\n        name: tf-example\n  subnet2:\n    type: aws:Subnet\n    properties:\n      vpcId: ${myVpc.id}\n      cidrBlock: 172.16.20.0/24\n      availabilityZone: us-west-2b\n      tags:\n        name: tf-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003caccount_id\u003e:\u003cngfw\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/ngfwLogProfile:NgfwLogProfile example 12345678:example-instance\n```\n\n",
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "The unique ID of the account.\n"
                },
                "advancedThreatLog": {
                    "type": "boolean",
                    "description": "Enable advanced threat logging.\n"
                },
                "cloudWatchMetricNamespace": {
                    "type": "string",
                    "description": "The CloudWatch metric namespace.\n"
                },
                "cloudwatchMetricFields": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Cloudwatch metric fields.\n"
                },
                "firewallId": {
                    "type": "string",
                    "description": "The Firewall Id for the NGFW.\n"
                },
                "logConfig": {
                    "$ref": "#/types/cloudngfwaws:index/NgfwLogProfileLogConfig:NgfwLogProfileLogConfig",
                    "description": "Log configuration details.\n"
                },
                "logDestinations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwLogProfileLogDestination:NgfwLogProfileLogDestination"
                    },
                    "description": "List of log destinations.\n"
                },
                "ngfw": {
                    "type": "string",
                    "description": "The name of the NGFW.\n"
                },
                "region": {
                    "type": "string",
                    "description": "The region of the NGFW.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                }
            },
            "required": [
                "region",
                "updateToken"
            ],
            "inputProperties": {
                "accountId": {
                    "type": "string",
                    "description": "The unique ID of the account.\n"
                },
                "advancedThreatLog": {
                    "type": "boolean",
                    "description": "Enable advanced threat logging.\n"
                },
                "cloudWatchMetricNamespace": {
                    "type": "string",
                    "description": "The CloudWatch metric namespace.\n"
                },
                "cloudwatchMetricFields": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Cloudwatch metric fields.\n"
                },
                "firewallId": {
                    "type": "string",
                    "description": "The Firewall Id for the NGFW.\n"
                },
                "logConfig": {
                    "$ref": "#/types/cloudngfwaws:index/NgfwLogProfileLogConfig:NgfwLogProfileLogConfig",
                    "description": "Log configuration details.\n"
                },
                "logDestinations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwLogProfileLogDestination:NgfwLogProfileLogDestination"
                    },
                    "description": "List of log destinations.\n"
                },
                "ngfw": {
                    "type": "string",
                    "description": "The name of the NGFW.\n",
                    "willReplaceOnChanges": true
                },
                "region": {
                    "type": "string",
                    "description": "The region of the NGFW.\n"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering NgfwLogProfile resources.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The unique ID of the account.\n"
                    },
                    "advancedThreatLog": {
                        "type": "boolean",
                        "description": "Enable advanced threat logging.\n"
                    },
                    "cloudWatchMetricNamespace": {
                        "type": "string",
                        "description": "The CloudWatch metric namespace.\n"
                    },
                    "cloudwatchMetricFields": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Cloudwatch metric fields.\n"
                    },
                    "firewallId": {
                        "type": "string",
                        "description": "The Firewall Id for the NGFW.\n"
                    },
                    "logConfig": {
                        "$ref": "#/types/cloudngfwaws:index/NgfwLogProfileLogConfig:NgfwLogProfileLogConfig",
                        "description": "Log configuration details.\n"
                    },
                    "logDestinations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/NgfwLogProfileLogDestination:NgfwLogProfileLogDestination"
                        },
                        "description": "List of log destinations.\n"
                    },
                    "ngfw": {
                        "type": "string",
                        "description": "The name of the NGFW.\n",
                        "willReplaceOnChanges": true
                    },
                    "region": {
                        "type": "string",
                        "description": "The region of the NGFW.\n"
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/predefinedUrlCategoryOverride:PredefinedUrlCategoryOverride": {
            "description": "Resource for predefined URL category override management.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = new cloudngfwaws.PredefinedUrlCategoryOverride(\"example\", {\n    rulestack: r.name,\n    name: \"foobar\",\n    action: \"block\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.PredefinedUrlCategoryOverride(\"example\",\n    rulestack=r.name,\n    name=\"foobar\",\n    action=\"block\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = new CloudNgfwAws.Index.PredefinedUrlCategoryOverride(\"example\", new()\n    {\n        Rulestack = r.Name,\n        Name = \"foobar\",\n        Action = \"block\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewPredefinedUrlCategoryOverride(ctx, \"example\", \u0026cloudngfwaws.PredefinedUrlCategoryOverrideArgs{\n\t\t\tRulestack: r.Name,\n\t\t\tName:      pulumi.String(\"foobar\"),\n\t\t\tAction:    pulumi.String(\"block\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.PredefinedUrlCategoryOverride;\nimport com.pulumi.cloudngfwaws.PredefinedUrlCategoryOverrideArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        var example = new PredefinedUrlCategoryOverride(\"example\", PredefinedUrlCategoryOverrideArgs.builder()\n            .rulestack(r.name())\n            .name(\"foobar\")\n            .action(\"block\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:PredefinedUrlCategoryOverride\n    properties:\n      rulestack: ${r.name}\n      name: foobar\n      action: block\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003crulestack\u003e:\u003cpredefined_url_category_override_name\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/predefinedUrlCategoryOverride:PredefinedUrlCategoryOverride example terraform-rulestack:foobar\n```\n\n",
            "properties": {
                "action": {
                    "type": "string",
                    "description": "The action to take. Valid values 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=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e. Defaults to \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"
                },
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "Update token.\n"
                }
            },
            "required": [
                "name",
                "rulestack",
                "updateToken"
            ],
            "inputProperties": {
                "action": {
                    "type": "string",
                    "description": "The action to take. Valid values 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=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e. Defaults to \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"
                },
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "rulestack"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering PredefinedUrlCategoryOverride resources.\n",
                "properties": {
                    "action": {
                        "type": "string",
                        "description": "The action to take. Valid values 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=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e. Defaults to \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"
                    },
                    "auditComment": {
                        "type": "string",
                        "description": "The audit comment.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n"
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "Update token.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/prefixList:PrefixList": {
            "description": "Resource for prefix list manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = new cloudngfwaws.PrefixList(\"example\", {\n    rulestack: r.name,\n    name: \"tf-prefix-list\",\n    description: \"Also configured by Terraform\",\n    prefixLists: [\n        \"192.168.0.0\",\n        \"10.1.5.0\",\n    ],\n    auditComment: \"initial config\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.PrefixList(\"example\",\n    rulestack=r.name,\n    name=\"tf-prefix-list\",\n    description=\"Also configured by Terraform\",\n    prefix_lists=[\n        \"192.168.0.0\",\n        \"10.1.5.0\",\n    ],\n    audit_comment=\"initial config\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = new CloudNgfwAws.Index.PrefixList(\"example\", new()\n    {\n        Rulestack = r.Name,\n        Name = \"tf-prefix-list\",\n        Description = \"Also configured by Terraform\",\n        PrefixLists = new[]\n        {\n            \"192.168.0.0\",\n            \"10.1.5.0\",\n        },\n        AuditComment = \"initial config\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewPrefixList(ctx, \"example\", \u0026cloudngfwaws.PrefixListArgs{\n\t\t\tRulestack:   r.Name,\n\t\t\tName:        pulumi.String(\"tf-prefix-list\"),\n\t\t\tDescription: pulumi.String(\"Also configured by Terraform\"),\n\t\t\tPrefixLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.0.0\"),\n\t\t\t\tpulumi.String(\"10.1.5.0\"),\n\t\t\t},\n\t\t\tAuditComment: pulumi.String(\"initial config\"),\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.PrefixList;\nimport com.pulumi.cloudngfwaws.PrefixListArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        var example = new PrefixList(\"example\", PrefixListArgs.builder()\n            .rulestack(r.name())\n            .name(\"tf-prefix-list\")\n            .description(\"Also configured by Terraform\")\n            .prefixLists(            \n                \"192.168.0.0\",\n                \"10.1.5.0\")\n            .auditComment(\"initial config\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:PrefixList\n    properties:\n      rulestack: ${r.name}\n      name: tf-prefix-list\n      description: Also configured by Terraform\n      prefixLists:\n        - 192.168.0.0\n        - 10.1.5.0\n      auditComment: initial config\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003cscope\u003e:\u003crulestack\u003e:\u003cprefix_list_name\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/prefixList:PrefixList example Local:terraform-rulestack:tf-prefix-list\n```\n\n",
            "properties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "prefixLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The prefix list.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                }
            },
            "required": [
                "name",
                "prefixLists",
                "rulestack",
                "updateToken"
            ],
            "inputProperties": {
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n",
                    "willReplaceOnChanges": true
                },
                "prefixLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The prefix list.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "prefixLists",
                "rulestack"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering PrefixList resources.\n",
                "properties": {
                    "auditComment": {
                        "type": "string",
                        "description": "The audit comment.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "prefixLists": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The prefix list.\n"
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/rulestack:Rulestack": {
            "description": "Resource for rulestack manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = new cloudngfwaws.Rulestack(\"example\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.Rulestack(\"example\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new CloudNgfwAws.Index.Rulestack(\"example\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.NewRulestack(ctx, \"example\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\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 Rulestack(\"example\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003cscope\u003e:\u003crulestack\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/rulestack:Rulestack example Local:terraform-rulestack\n```\n\n",
            "properties": {
                "accountGroup": {
                    "type": "string",
                    "description": "Account group.\n"
                },
                "accountId": {
                    "type": "string",
                    "description": "The account ID.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "lookupXForwardedFor": {
                    "type": "string",
                    "description": "Lookup x forwarded for.\n"
                },
                "minimumAppIdVersion": {
                    "type": "string",
                    "description": "Minimum App-ID version number.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "profileConfig": {
                    "$ref": "#/types/cloudngfwaws:index/RulestackProfileConfig:RulestackProfileConfig"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "state": {
                    "type": "string",
                    "description": "The rulestack state.\n"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The tags.\n"
                }
            },
            "required": [
                "lookupXForwardedFor",
                "minimumAppIdVersion",
                "name",
                "profileConfig",
                "state"
            ],
            "inputProperties": {
                "accountGroup": {
                    "type": "string",
                    "description": "Account group.\n"
                },
                "accountId": {
                    "type": "string",
                    "description": "The account ID.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "lookupXForwardedFor": {
                    "type": "string",
                    "description": "Lookup x forwarded for.\n"
                },
                "minimumAppIdVersion": {
                    "type": "string",
                    "description": "Minimum App-ID version number.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n",
                    "willReplaceOnChanges": true
                },
                "profileConfig": {
                    "$ref": "#/types/cloudngfwaws:index/RulestackProfileConfig:RulestackProfileConfig"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The tags.\n"
                }
            },
            "requiredInputs": [
                "profileConfig"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Rulestack resources.\n",
                "properties": {
                    "accountGroup": {
                        "type": "string",
                        "description": "Account group.\n"
                    },
                    "accountId": {
                        "type": "string",
                        "description": "The account ID.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description.\n"
                    },
                    "lookupXForwardedFor": {
                        "type": "string",
                        "description": "Lookup x forwarded for.\n"
                    },
                    "minimumAppIdVersion": {
                        "type": "string",
                        "description": "Minimum App-ID version number.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "profileConfig": {
                        "$ref": "#/types/cloudngfwaws:index/RulestackProfileConfig:RulestackProfileConfig"
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "state": {
                        "type": "string",
                        "description": "The rulestack state.\n"
                    },
                    "tags": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The tags.\n"
                    }
                },
                "type": "object"
            }
        },
        "cloudngfwaws:index/securityRule:SecurityRule": {
            "description": "Resource for security rule manipulation.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"terraform-rulestack\",\n    scope: \"Local\",\n    accountId: \"123456789\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = new cloudngfwaws.SecurityRule(\"example\", {\n    rulestack: r.name,\n    ruleList: \"LocalRule\",\n    priority: 3,\n    name: \"tf-security-rule\",\n    description: \"Also configured by Terraform\",\n    source: {\n        cidrs: [\"any\"],\n    },\n    destination: {\n        cidrs: [\"192.168.0.0/16\"],\n    },\n    negateDestination: true,\n    applications: [\"any\"],\n    category: {},\n    action: \"Allow\",\n    logging: true,\n    auditComment: \"initial config\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"terraform-rulestack\",\n    scope=\"Local\",\n    account_id=\"123456789\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.SecurityRule(\"example\",\n    rulestack=r.name,\n    rule_list=\"LocalRule\",\n    priority=3,\n    name=\"tf-security-rule\",\n    description=\"Also configured by Terraform\",\n    source={\n        \"cidrs\": [\"any\"],\n    },\n    destination={\n        \"cidrs\": [\"192.168.0.0/16\"],\n    },\n    negate_destination=True,\n    applications=[\"any\"],\n    category={},\n    action=\"Allow\",\n    logging=True,\n    audit_comment=\"initial config\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"terraform-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"123456789\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = new CloudNgfwAws.Index.SecurityRule(\"example\", new()\n    {\n        Rulestack = r.Name,\n        RuleList = \"LocalRule\",\n        Priority = 3,\n        Name = \"tf-security-rule\",\n        Description = \"Also configured by Terraform\",\n        Source = new CloudNgfwAws.Inputs.SecurityRuleSourceArgs\n        {\n            Cidrs = new[]\n            {\n                \"any\",\n            },\n        },\n        Destination = new CloudNgfwAws.Inputs.SecurityRuleDestinationArgs\n        {\n            Cidrs = new[]\n            {\n                \"192.168.0.0/16\",\n            },\n        },\n        NegateDestination = true,\n        Applications = new[]\n        {\n            \"any\",\n        },\n        Category = null,\n        Action = \"Allow\",\n        Logging = true,\n        AuditComment = \"initial config\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"terraform-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"123456789\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudngfwaws.NewSecurityRule(ctx, \"example\", \u0026cloudngfwaws.SecurityRuleArgs{\n\t\t\tRulestack:   r.Name,\n\t\t\tRuleList:    pulumi.String(\"LocalRule\"),\n\t\t\tPriority:    pulumi.Int(3),\n\t\t\tName:        pulumi.String(\"tf-security-rule\"),\n\t\t\tDescription: pulumi.String(\"Also configured by Terraform\"),\n\t\t\tSource: \u0026cloudngfwaws.SecurityRuleSourceArgs{\n\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"any\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestination: \u0026cloudngfwaws.SecurityRuleDestinationArgs{\n\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNegateDestination: pulumi.Bool(true),\n\t\t\tApplications: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"any\"),\n\t\t\t},\n\t\t\tCategory:     \u0026cloudngfwaws.SecurityRuleCategoryArgs{},\n\t\t\tAction:       pulumi.String(\"Allow\"),\n\t\t\tLogging:      pulumi.Bool(true),\n\t\t\tAuditComment: pulumi.String(\"initial config\"),\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.SecurityRule;\nimport com.pulumi.cloudngfwaws.SecurityRuleArgs;\nimport com.pulumi.cloudngfwaws.inputs.SecurityRuleSourceArgs;\nimport com.pulumi.cloudngfwaws.inputs.SecurityRuleDestinationArgs;\nimport com.pulumi.cloudngfwaws.inputs.SecurityRuleCategoryArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"terraform-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"123456789\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        var example = new SecurityRule(\"example\", SecurityRuleArgs.builder()\n            .rulestack(r.name())\n            .ruleList(\"LocalRule\")\n            .priority(3)\n            .name(\"tf-security-rule\")\n            .description(\"Also configured by Terraform\")\n            .source(SecurityRuleSourceArgs.builder()\n                .cidrs(\"any\")\n                .build())\n            .destination(SecurityRuleDestinationArgs.builder()\n                .cidrs(\"192.168.0.0/16\")\n                .build())\n            .negateDestination(true)\n            .applications(\"any\")\n            .category(SecurityRuleCategoryArgs.builder()\n                .build())\n            .action(\"Allow\")\n            .logging(true)\n            .auditComment(\"initial config\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: cloudngfwaws:SecurityRule\n    properties:\n      rulestack: ${r.name}\n      ruleList: LocalRule\n      priority: 3\n      name: tf-security-rule\n      description: Also configured by Terraform\n      source:\n        cidrs:\n          - any\n      destination:\n        cidrs:\n          - 192.168.0.0/16\n      negateDestination: true\n      applications:\n        - any\n      category: {}\n      action: Allow\n      logging: true\n      auditComment: initial config\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: terraform-rulestack\n      scope: Local\n      accountId: '123456789'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport name is \u003cscope\u003e:\u003crulestack\u003e:\u003crule_list\u003e:\u003cpriority\u003e\n\n```sh\n$ pulumi import cloudngfwaws:index/securityRule:SecurityRule example Local:terraform-rulestack:LocalRule:3\n```\n\n",
            "properties": {
                "action": {
                    "type": "string",
                    "description": "The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.\n"
                },
                "applications": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of applications.\n"
                },
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "category": {
                    "$ref": "#/types/cloudngfwaws:index/SecurityRuleCategory:SecurityRuleCategory",
                    "description": "The category spec.\n"
                },
                "decryptionRuleType": {
                    "type": "string",
                    "description": "Decryption rule type. Valid values are `\u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003eSSLOutboundInspection`.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "destination": {
                    "$ref": "#/types/cloudngfwaws:index/SecurityRuleDestination:SecurityRuleDestination",
                    "description": "The destination spec.\n"
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Set to false to disable this rule. 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"
                },
                "logging": {
                    "type": "boolean",
                    "description": "Enable logging at end. 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"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "negateDestination": {
                    "type": "boolean",
                    "description": "Negate the destination definition.\n"
                },
                "negateSource": {
                    "type": "boolean",
                    "description": "Negate the source definition.\n"
                },
                "priority": {
                    "type": "integer",
                    "description": "The rule priority.\n"
                },
                "protPortLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Protocol port list.\n"
                },
                "protocol": {
                    "type": "string",
                    "description": "The protocol.\n"
                },
                "ruleList": {
                    "type": "string",
                    "description": "The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.\n"
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n"
                },
                "source": {
                    "$ref": "#/types/cloudngfwaws:index/SecurityRuleSource:SecurityRuleSource",
                    "description": "The source spec.\n"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The tags.\n"
                },
                "updateToken": {
                    "type": "string",
                    "description": "The update token.\n"
                }
            },
            "required": [
                "action",
                "applications",
                "category",
                "destination",
                "name",
                "priority",
                "rulestack",
                "source",
                "updateToken"
            ],
            "inputProperties": {
                "action": {
                    "type": "string",
                    "description": "The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.\n"
                },
                "applications": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The list of applications.\n"
                },
                "auditComment": {
                    "type": "string",
                    "description": "The audit comment.\n"
                },
                "category": {
                    "$ref": "#/types/cloudngfwaws:index/SecurityRuleCategory:SecurityRuleCategory",
                    "description": "The category spec.\n"
                },
                "decryptionRuleType": {
                    "type": "string",
                    "description": "Decryption rule type. Valid values are `\u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003eSSLOutboundInspection`.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The description.\n"
                },
                "destination": {
                    "$ref": "#/types/cloudngfwaws:index/SecurityRuleDestination:SecurityRuleDestination",
                    "description": "The destination spec.\n"
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Set to false to disable this rule. 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"
                },
                "logging": {
                    "type": "boolean",
                    "description": "Enable logging at end. 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"
                },
                "name": {
                    "type": "string",
                    "description": "The name.\n"
                },
                "negateDestination": {
                    "type": "boolean",
                    "description": "Negate the destination definition.\n"
                },
                "negateSource": {
                    "type": "boolean",
                    "description": "Negate the source definition.\n"
                },
                "priority": {
                    "type": "integer",
                    "description": "The rule priority.\n",
                    "willReplaceOnChanges": true
                },
                "protPortLists": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Protocol port list.\n"
                },
                "protocol": {
                    "type": "string",
                    "description": "The protocol.\n"
                },
                "ruleList": {
                    "type": "string",
                    "description": "The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.\n",
                    "willReplaceOnChanges": true
                },
                "rulestack": {
                    "type": "string",
                    "description": "The rulestack.\n",
                    "willReplaceOnChanges": true
                },
                "scope": {
                    "type": "string",
                    "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                    "willReplaceOnChanges": true
                },
                "source": {
                    "$ref": "#/types/cloudngfwaws:index/SecurityRuleSource:SecurityRuleSource",
                    "description": "The source spec.\n"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The tags.\n"
                }
            },
            "requiredInputs": [
                "action",
                "applications",
                "category",
                "destination",
                "priority",
                "rulestack",
                "source"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering SecurityRule resources.\n",
                "properties": {
                    "action": {
                        "type": "string",
                        "description": "The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.\n"
                    },
                    "applications": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The list of applications.\n"
                    },
                    "auditComment": {
                        "type": "string",
                        "description": "The audit comment.\n"
                    },
                    "category": {
                        "$ref": "#/types/cloudngfwaws:index/SecurityRuleCategory:SecurityRuleCategory",
                        "description": "The category spec.\n"
                    },
                    "decryptionRuleType": {
                        "type": "string",
                        "description": "Decryption rule type. Valid values are `\u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003eSSLOutboundInspection`.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The description.\n"
                    },
                    "destination": {
                        "$ref": "#/types/cloudngfwaws:index/SecurityRuleDestination:SecurityRuleDestination",
                        "description": "The destination spec.\n"
                    },
                    "enabled": {
                        "type": "boolean",
                        "description": "Set to false to disable this rule. 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"
                    },
                    "logging": {
                        "type": "boolean",
                        "description": "Enable logging at end. 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"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n"
                    },
                    "negateDestination": {
                        "type": "boolean",
                        "description": "Negate the destination definition.\n"
                    },
                    "negateSource": {
                        "type": "boolean",
                        "description": "Negate the source definition.\n"
                    },
                    "priority": {
                        "type": "integer",
                        "description": "The rule priority.\n",
                        "willReplaceOnChanges": true
                    },
                    "protPortLists": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Protocol port list.\n"
                    },
                    "protocol": {
                        "type": "string",
                        "description": "The protocol.\n"
                    },
                    "ruleList": {
                        "type": "string",
                        "description": "The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    },
                    "source": {
                        "$ref": "#/types/cloudngfwaws:index/SecurityRuleSource:SecurityRuleSource",
                        "description": "The source spec.\n"
                    },
                    "tags": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The tags.\n"
                    },
                    "updateToken": {
                        "type": "string",
                        "description": "The update token.\n"
                    }
                },
                "type": "object"
            }
        }
    },
    "functions": {
        "cloudngfwaws:index/getAccount:getAccount": {
            "description": "Data source for retrieving account information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAccount.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The account ID\n",
                        "willReplaceOnChanges": true
                    },
                    "cftUrl": {
                        "type": "string",
                        "description": "The CFT URL.\n"
                    },
                    "externalId": {
                        "type": "string",
                        "description": "The external ID of the account\n"
                    },
                    "onboardingStatus": {
                        "type": "string",
                        "description": "The Account onboarding status\n"
                    },
                    "origin": {
                        "type": "string",
                        "description": "Origin of account onboarding\n"
                    },
                    "serviceAccountId": {
                        "type": "string",
                        "description": "The account ID of cloud NGFW service\n"
                    },
                    "snsTopicArn": {
                        "type": "string",
                        "description": "The SNS topic ARN\n"
                    },
                    "trustedAccount": {
                        "type": "string",
                        "description": "The trusted account ID\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getAccount.\n",
                "properties": {
                    "accountId": {
                        "description": "The account ID\n",
                        "type": "string"
                    },
                    "cftUrl": {
                        "description": "The CFT URL.\n",
                        "type": "string"
                    },
                    "externalId": {
                        "description": "The external ID of the account\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "onboardingStatus": {
                        "description": "The Account onboarding status\n",
                        "type": "string"
                    },
                    "origin": {
                        "description": "Origin of account onboarding\n",
                        "type": "string"
                    },
                    "serviceAccountId": {
                        "description": "The account ID of cloud NGFW service\n",
                        "type": "string"
                    },
                    "snsTopicArn": {
                        "description": "The SNS topic ARN\n",
                        "type": "string"
                    },
                    "trustedAccount": {
                        "description": "The trusted account ID\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "cftUrl",
                    "externalId",
                    "onboardingStatus",
                    "origin",
                    "serviceAccountId",
                    "snsTopicArn",
                    "trustedAccount",
                    "updateToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getAccounts:getAccounts": {
            "description": "Data source get a list of Accounts.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAccounts.\n",
                "properties": {
                    "accountDetails": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getAccountsAccountDetail:getAccountsAccountDetail"
                        },
                        "description": "List of account details.\n"
                    },
                    "accountIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "List of account ids.\n"
                    },
                    "describe": {
                        "type": "boolean",
                        "description": "Flag to include account details while listing accounts. 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"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getAccounts.\n",
                "properties": {
                    "accountDetails": {
                        "description": "List of account details.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getAccountsAccountDetail:getAccountsAccountDetail"
                        },
                        "type": "array"
                    },
                    "accountIds": {
                        "description": "List of account ids.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "describe": {
                        "description": "Flag to include account details while listing accounts. 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",
                        "type": "boolean"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    }
                },
                "required": [
                    "accountDetails",
                    "accountIds",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getAppIdVersion:getAppIdVersion": {
            "description": "Data source to retrieve information on a given AppId version.\n\n\n## Admin Permission Type\n\n* `Rulestack`\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getAppIdVersion({\n    version: \"123-456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_app_id_version(version=\"123-456\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetAppIdVersion.Invoke(new()\n    {\n        Version = \"123-456\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetAppIdVersion(ctx, \u0026cloudngfwaws.GetAppIdVersionArgs{\n\t\t\tVersion: \"123-456\",\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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetAppIdVersionArgs;\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 = CloudngfwawsFunctions.getAppIdVersion(GetAppIdVersionArgs.builder()\n            .version(\"123-456\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getAppIdVersion\n      arguments:\n        version: 123-456\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAppIdVersion.\n",
                "properties": {
                    "maxResults": {
                        "type": "integer",
                        "description": "Max results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"
                    },
                    "token": {
                        "type": "string",
                        "description": "Pagination token.\n"
                    },
                    "version": {
                        "type": "string",
                        "description": "The AppId version.\n"
                    }
                },
                "type": "object",
                "required": [
                    "version"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getAppIdVersion.\n",
                "properties": {
                    "applications": {
                        "description": "List of applications.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "maxResults": {
                        "description": "Max results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n",
                        "type": "integer"
                    },
                    "nextToken": {
                        "description": "Token for the next page of results.\n",
                        "type": "string"
                    },
                    "token": {
                        "description": "Pagination token.\n",
                        "type": "string"
                    },
                    "version": {
                        "description": "The AppId version.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "applications",
                    "nextToken",
                    "version",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getAppIdVersions:getAppIdVersions": {
            "description": "Data source get a list of AppId versions.\n\n\n## Admin Permission Type\n\n* `Rulestack`\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getAppIdVersions({});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_app_id_versions()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetAppIdVersions.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetAppIdVersions(ctx, \u0026cloudngfwaws.GetAppIdVersionsArgs{}, 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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetAppIdVersionsArgs;\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 = CloudngfwawsFunctions.getAppIdVersions(GetAppIdVersionsArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getAppIdVersions\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAppIdVersions.\n",
                "properties": {
                    "maxResults": {
                        "type": "integer",
                        "description": "Max number of results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"
                    },
                    "token": {
                        "type": "string",
                        "description": "Pagination token.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getAppIdVersions.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "maxResults": {
                        "description": "Max number of results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n",
                        "type": "integer"
                    },
                    "nextToken": {
                        "description": "Token for the next page of results.\n",
                        "type": "string"
                    },
                    "token": {
                        "description": "Pagination token.\n",
                        "type": "string"
                    },
                    "versions": {
                        "description": "List of AppId versions.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "nextToken",
                    "versions",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getCertificate:getCertificate": {
            "description": "Data source for retrieving certificate information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"my-rulestack\",\n    scope: \"Local\",\n    accountId: \"12345\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = cloudngfwaws.getCertificateOutput({\n    rulestack: r.name,\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"my-rulestack\",\n    scope=\"Local\",\n    account_id=\"12345\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.get_certificate_output(rulestack=r.name,\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"my-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"12345\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = CloudNgfwAws.Index.GetCertificate.Invoke(new()\n    {\n        Rulestack = r.Name,\n        Name = \"foobar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"my-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"12345\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = cloudngfwaws.GetCertificateOutput(ctx, cloudngfwaws.GetCertificateOutputArgs{\n\t\t\tRulestack: r.Name,\n\t\t\tName:      pulumi.String(\"foobar\"),\n\t\t}, nil)\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetCertificateArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"my-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"12345\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        final var example = CloudngfwawsFunctions.getCertificate(GetCertificateArgs.builder()\n            .rulestack(r.name())\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: my-rulestack\n      scope: Local\n      accountId: '12345'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getCertificate\n      arguments:\n        rulestack: ${r.name}\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getCertificate.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getCertificate.\n",
                "properties": {
                    "auditComment": {
                        "description": "The audit comment.\n",
                        "type": "string"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The description.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "selfSigned": {
                        "description": "Set to true if certificate is self-signed.\n",
                        "type": "boolean"
                    },
                    "signerArn": {
                        "description": "The certificate signer ARN.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "auditComment",
                    "description",
                    "name",
                    "rulestack",
                    "selfSigned",
                    "signerArn",
                    "updateToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getCountry:getCountry": {
            "description": "Data source get a list of countries and their country codes.\n\n\n## Admin Permission Type\n\n* `Rulestack`\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getCountry({});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_country()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetCountry.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetCountry(ctx, \u0026cloudngfwaws.GetCountryArgs{}, 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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetCountryArgs;\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 = CloudngfwawsFunctions.getCountry(GetCountryArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getCountry\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getCountry.\n",
                "properties": {
                    "maxResults": {
                        "type": "integer",
                        "description": "Max number of results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"
                    },
                    "token": {
                        "type": "string",
                        "description": "Pagination token.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getCountry.\n",
                "properties": {
                    "codes": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The country code (as the key) and description (as the value).\n",
                        "type": "object"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "maxResults": {
                        "description": "Max number of results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n",
                        "type": "integer"
                    },
                    "nextToken": {
                        "description": "Token for the next page of results.\n",
                        "type": "string"
                    },
                    "token": {
                        "description": "Pagination token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "codes",
                    "nextToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getCustomUrlCategory:getCustomUrlCategory": {
            "description": "Data source for retrieving custom url category information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"my-rulestack\",\n    scope: \"Local\",\n    accountId: \"12345\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = cloudngfwaws.getCustomUrlCategoryOutput({\n    rulestack: r.name,\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"my-rulestack\",\n    scope=\"Local\",\n    account_id=\"12345\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.get_custom_url_category_output(rulestack=r.name,\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"my-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"12345\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = CloudNgfwAws.Index.GetCustomUrlCategory.Invoke(new()\n    {\n        Rulestack = r.Name,\n        Name = \"foobar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"my-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"12345\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = cloudngfwaws.GetCustomUrlCategoryOutput(ctx, cloudngfwaws.GetCustomUrlCategoryOutputArgs{\n\t\t\tRulestack: r.Name,\n\t\t\tName:      pulumi.String(\"foobar\"),\n\t\t}, nil)\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetCustomUrlCategoryArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"my-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"12345\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        final var example = CloudngfwawsFunctions.getCustomUrlCategory(GetCustomUrlCategoryArgs.builder()\n            .rulestack(r.name())\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: my-rulestack\n      scope: Local\n      accountId: '12345'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getCustomUrlCategory\n      arguments:\n        rulestack: ${r.name}\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getCustomUrlCategory.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getCustomUrlCategory.\n",
                "properties": {
                    "action": {
                        "description": "The action to take. Valid values 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=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`continue`\" pulumi-lang-dotnet=\"`Continue`\" pulumi-lang-go=\"`continue`\" pulumi-lang-python=\"`continue`\" pulumi-lang-yaml=\"`continue`\" pulumi-lang-java=\"`continue`\"\u003e`continue`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`override`\" pulumi-lang-dotnet=\"`Override`\" pulumi-lang-go=\"`override`\" pulumi-lang-python=\"`override`\" pulumi-lang-yaml=\"`override`\" pulumi-lang-java=\"`override`\"\u003e`override`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "auditComment": {
                        "description": "The audit comment.\n",
                        "type": "string"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The description.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    },
                    "urlLists": {
                        "description": "The URL list for this custom URL category.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "action",
                    "auditComment",
                    "description",
                    "name",
                    "rulestack",
                    "updateToken",
                    "urlLists",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getFqdnList:getFqdnList": {
            "description": "Data source for retrieving fqdn list information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"my-rulestack\",\n    scope: \"Local\",\n    accountId: \"12345\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = cloudngfwaws.getFqdnListOutput({\n    rulestack: r.name,\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"my-rulestack\",\n    scope=\"Local\",\n    account_id=\"12345\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.get_fqdn_list_output(rulestack=r.name,\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"my-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"12345\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = CloudNgfwAws.Index.GetFqdnList.Invoke(new()\n    {\n        Rulestack = r.Name,\n        Name = \"foobar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"my-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"12345\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = cloudngfwaws.GetFqdnListOutput(ctx, cloudngfwaws.GetFqdnListOutputArgs{\n\t\t\tRulestack: r.Name,\n\t\t\tName:      pulumi.String(\"foobar\"),\n\t\t}, nil)\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetFqdnListArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"my-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"12345\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        final var example = CloudngfwawsFunctions.getFqdnList(GetFqdnListArgs.builder()\n            .rulestack(r.name())\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: my-rulestack\n      scope: Local\n      accountId: '12345'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getFqdnList\n      arguments:\n        rulestack: ${r.name}\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getFqdnList.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getFqdnList.\n",
                "properties": {
                    "auditComment": {
                        "description": "The audit comment.\n",
                        "type": "string"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The description.\n",
                        "type": "string"
                    },
                    "fqdnLists": {
                        "description": "The fqdn list.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "auditComment",
                    "description",
                    "fqdnLists",
                    "name",
                    "rulestack",
                    "updateToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getIntelligentFeed:getIntelligentFeed": {
            "description": "Data source for retrieving intelligent feed information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"my-rulestack\",\n    scope: \"Local\",\n    accountId: \"12345\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = cloudngfwaws.getIntelligentFeedOutput({\n    rulestack: r.name,\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"my-rulestack\",\n    scope=\"Local\",\n    account_id=\"12345\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.get_intelligent_feed_output(rulestack=r.name,\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"my-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"12345\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = CloudNgfwAws.Index.GetIntelligentFeed.Invoke(new()\n    {\n        Rulestack = r.Name,\n        Name = \"foobar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"my-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"12345\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = cloudngfwaws.GetIntelligentFeedOutput(ctx, cloudngfwaws.GetIntelligentFeedOutputArgs{\n\t\t\tRulestack: r.Name,\n\t\t\tName:      pulumi.String(\"foobar\"),\n\t\t}, nil)\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetIntelligentFeedArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"my-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"12345\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        final var example = CloudngfwawsFunctions.getIntelligentFeed(GetIntelligentFeedArgs.builder()\n            .rulestack(r.name())\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: my-rulestack\n      scope: Local\n      accountId: '12345'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getIntelligentFeed\n      arguments:\n        rulestack: ${r.name}\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getIntelligentFeed.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getIntelligentFeed.\n",
                "properties": {
                    "auditComment": {
                        "description": "The audit comment.\n",
                        "type": "string"
                    },
                    "certificate": {
                        "description": "The certificate profile.\n",
                        "type": "string"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The description.\n",
                        "type": "string"
                    },
                    "frequency": {
                        "description": "Update frequency. Valid values are `HOURLY` or `DAILY`.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "time": {
                        "description": "The time to poll for updates if frequency is daily. The number must be between [0, 23] incluside.\n",
                        "type": "integer"
                    },
                    "type": {
                        "description": "The intelligent feed type. Valid values are `IP_LIST` or `URL_LIST`.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    },
                    "url": {
                        "description": "The intelligent feed source.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "auditComment",
                    "certificate",
                    "description",
                    "frequency",
                    "name",
                    "rulestack",
                    "time",
                    "type",
                    "updateToken",
                    "url",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getNgfw:getNgfw": {
            "description": "Data source for retrieving NGFW information.\n\n\n## Admin Permission Type\n\n* `Firewall`\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getNgfw({\n    name: \"example-instance\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_ngfw(name=\"example-instance\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetNgfw.Invoke(new()\n    {\n        Name = \"example-instance\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetNgfw(ctx, \u0026cloudngfwaws.LookupNgfwArgs{\n\t\t\tName: pulumi.StringRef(\"example-instance\"),\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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetNgfwArgs;\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 = CloudngfwawsFunctions.getNgfw(GetNgfwArgs.builder()\n            .name(\"example-instance\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getNgfw\n      arguments:\n        name: example-instance\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNgfw.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The Account Id.\n",
                        "willReplaceOnChanges": true
                    },
                    "firewallId": {
                        "type": "string",
                        "description": "The Firewall ID.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The NGFW name.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getNgfw.\n",
                "properties": {
                    "accountId": {
                        "description": "The Account Id.\n",
                        "type": "string"
                    },
                    "allowlistAccounts": {
                        "description": "The list of allowed accounts for this NGFW.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "appIdVersion": {
                        "description": "App-ID version number.\n",
                        "type": "string"
                    },
                    "automaticUpgradeAppIdVersion": {
                        "description": "Automatic App-ID upgrade version number.\n",
                        "type": "boolean"
                    },
                    "azLists": {
                        "description": "The list of availability zone IDs for this NGFW.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "changeProtections": {
                        "description": "Enables or disables change protection for the NGFW.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "deploymentUpdateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The NGFW description.\n",
                        "type": "string"
                    },
                    "egressNats": {
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwEgressNat:getNgfwEgressNat"
                        },
                        "type": "array"
                    },
                    "endpointMode": {
                        "description": "Set endpoint mode from the following options. Valid values are `ServiceManaged` or `CustomerManaged`.\n",
                        "type": "string"
                    },
                    "endpointServiceName": {
                        "description": "The endpoint service name.\n",
                        "type": "string"
                    },
                    "endpoints": {
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwEndpoint:getNgfwEndpoint"
                        },
                        "type": "array"
                    },
                    "firewallId": {
                        "description": "The Firewall ID.\n",
                        "type": "string"
                    },
                    "globalRulestack": {
                        "description": "The global rulestack for this NGFW.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "linkId": {
                        "description": "The link ID.\n",
                        "type": "string"
                    },
                    "linkStatus": {
                        "description": "The link status.\n",
                        "type": "string"
                    },
                    "multiVpc": {
                        "description": "Share NGFW with Multiple VPCs. This feature can be enabled only if the\u003cspan pulumi-lang-nodejs=\" endpointMode \" pulumi-lang-dotnet=\" EndpointMode \" pulumi-lang-go=\" endpointMode \" pulumi-lang-python=\" endpoint_mode \" pulumi-lang-yaml=\" endpointMode \" pulumi-lang-java=\" endpointMode \"\u003e endpointMode \u003c/span\u003eis CustomerManaged.\n",
                        "type": "boolean"
                    },
                    "name": {
                        "description": "The NGFW name.\n",
                        "type": "string"
                    },
                    "privateAccesses": {
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwPrivateAccess:getNgfwPrivateAccess"
                        },
                        "type": "array"
                    },
                    "rulestack": {
                        "description": "The rulestack for this NGFW.\n",
                        "type": "string"
                    },
                    "securityZones": {
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwSecurityZone:getNgfwSecurityZone"
                        },
                        "type": "array"
                    },
                    "statuses": {
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwStatus:getNgfwStatus"
                        },
                        "type": "array"
                    },
                    "subnetMappings": {
                        "description": "Subnet mappings.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwSubnetMapping:getNgfwSubnetMapping"
                        },
                        "type": "array"
                    },
                    "tags": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The tags.\n",
                        "type": "object"
                    },
                    "tier": {
                        "description": "Firewall Instance Tier. Allowed values are 'base', 'standard', or 'premium'.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    },
                    "userIds": {
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwUserId:getNgfwUserId"
                        },
                        "type": "array"
                    },
                    "vpcId": {
                        "description": "The VPC ID for the NGFW.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "allowlistAccounts",
                    "appIdVersion",
                    "automaticUpgradeAppIdVersion",
                    "azLists",
                    "changeProtections",
                    "deploymentUpdateToken",
                    "description",
                    "egressNats",
                    "endpointMode",
                    "endpointServiceName",
                    "endpoints",
                    "globalRulestack",
                    "linkId",
                    "linkStatus",
                    "multiVpc",
                    "privateAccesses",
                    "rulestack",
                    "securityZones",
                    "statuses",
                    "subnetMappings",
                    "tags",
                    "tier",
                    "updateToken",
                    "userIds",
                    "vpcId",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getNgfwLogProfile:getNgfwLogProfile": {
            "description": "Data source for retrieving log profile information.\n\n\n## Admin Permission Type\n\n* `Firewall`\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getNgfwLogProfile({\n    ngfw: \"example-instance\",\n    accountId: \"123456789\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_ngfw_log_profile(ngfw=\"example-instance\",\n    account_id=\"123456789\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetNgfwLogProfile.Invoke(new()\n    {\n        Ngfw = \"example-instance\",\n        AccountId = \"123456789\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetNgfwLogProfile(ctx, \u0026cloudngfwaws.LookupNgfwLogProfileArgs{\n\t\t\tNgfw:      pulumi.StringRef(\"example-instance\"),\n\t\t\tAccountId: pulumi.StringRef(\"123456789\"),\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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetNgfwLogProfileArgs;\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 = CloudngfwawsFunctions.getNgfwLogProfile(GetNgfwLogProfileArgs.builder()\n            .ngfw(\"example-instance\")\n            .accountId(\"123456789\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getNgfwLogProfile\n      arguments:\n        ngfw: example-instance\n        accountId: '123456789'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNgfwLogProfile.\n",
                "properties": {
                    "accountId": {
                        "type": "string",
                        "description": "The unique ID of the account.\n"
                    },
                    "firewallId": {
                        "type": "string",
                        "description": "The Firewall Id for the NGFW.\n"
                    },
                    "ngfw": {
                        "type": "string",
                        "description": "The name of the NGFW.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getNgfwLogProfile.\n",
                "properties": {
                    "accountId": {
                        "description": "The unique ID of the account.\n",
                        "type": "string"
                    },
                    "advancedThreatLog": {
                        "description": "Enable advanced threat logging.\n",
                        "type": "boolean"
                    },
                    "cloudWatchMetricNamespace": {
                        "description": "The CloudWatch metric namespace.\n",
                        "type": "string"
                    },
                    "cloudwatchMetricFields": {
                        "description": "Cloudwatch metric fields.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "firewallId": {
                        "description": "The Firewall Id for the NGFW.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "logConfigs": {
                        "description": "Log configuration details.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwLogProfileLogConfig:getNgfwLogProfileLogConfig"
                        },
                        "type": "array"
                    },
                    "logDestinations": {
                        "description": "List of log destinations.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwLogProfileLogDestination:getNgfwLogProfileLogDestination"
                        },
                        "type": "array"
                    },
                    "ngfw": {
                        "description": "The name of the NGFW.\n",
                        "type": "string"
                    },
                    "region": {
                        "description": "The region of the NGFW.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "advancedThreatLog",
                    "cloudWatchMetricNamespace",
                    "cloudwatchMetricFields",
                    "logConfigs",
                    "logDestinations",
                    "region",
                    "updateToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getNgfws:getNgfws": {
            "description": "Data source get a list of NGFWs.\n\n\n## Admin Permission Type\n\n* `Firewall`\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getNgfws({});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_ngfws()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetNgfws.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetNgfws(ctx, \u0026cloudngfwaws.GetNgfwsArgs{}, 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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetNgfwsArgs;\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 = CloudngfwawsFunctions.getNgfws(GetNgfwsArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getNgfws\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNgfws.\n",
                "properties": {
                    "region": {
                        "type": "string",
                        "description": "The region to filter on.\n"
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack to filter on.\n"
                    },
                    "vpcIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "List of vpc ids to filter on.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getNgfws.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "instances": {
                        "description": "List of NGFWs.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getNgfwsInstance:getNgfwsInstance"
                        },
                        "type": "array"
                    },
                    "region": {
                        "description": "The region to filter on.\n",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack to filter on.\n",
                        "type": "string"
                    },
                    "vpcIds": {
                        "description": "List of vpc ids to filter on.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "instances",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getPredefinedUrlCategories:getPredefinedUrlCategories": {
            "description": "Data source for retrieving the predefined URL categories.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getPredefinedUrlCategories({});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_predefined_url_categories()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetPredefinedUrlCategories.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetPredefinedUrlCategories(ctx, \u0026cloudngfwaws.GetPredefinedUrlCategoriesArgs{}, 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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetPredefinedUrlCategoriesArgs;\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 = CloudngfwawsFunctions.getPredefinedUrlCategories(GetPredefinedUrlCategoriesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getPredefinedUrlCategories\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getPredefinedUrlCategories.\n",
                "properties": {
                    "maxResults": {
                        "type": "integer",
                        "description": "Max results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"
                    },
                    "token": {
                        "type": "string",
                        "description": "Pagination token.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getPredefinedUrlCategories.\n",
                "properties": {
                    "categories": {
                        "description": "List of predefined URL categories.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "maxResults": {
                        "description": "Max results. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n",
                        "type": "integer"
                    },
                    "nextToken": {
                        "description": "Next pagination token.\n",
                        "type": "string"
                    },
                    "token": {
                        "description": "Pagination token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "categories",
                    "nextToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getPredefinedUrlCategoryOverride:getPredefinedUrlCategoryOverride": {
            "description": "Data source for retrieving a predefined URL category override.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"my-rulestack\",\n    scope: \"Local\",\n    accountId: \"12345\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = cloudngfwaws.getPredefinedUrlCategoryOverrideOutput({\n    rulestack: r.name,\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"my-rulestack\",\n    scope=\"Local\",\n    account_id=\"12345\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.get_predefined_url_category_override_output(rulestack=r.name,\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"my-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"12345\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = CloudNgfwAws.Index.GetPredefinedUrlCategoryOverride.Invoke(new()\n    {\n        Rulestack = r.Name,\n        Name = \"foobar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"my-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"12345\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = cloudngfwaws.GetPredefinedUrlCategoryOverrideOutput(ctx, cloudngfwaws.GetPredefinedUrlCategoryOverrideOutputArgs{\n\t\t\tRulestack: r.Name,\n\t\t\tName:      pulumi.String(\"foobar\"),\n\t\t}, nil)\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetPredefinedUrlCategoryOverrideArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"my-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"12345\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        final var example = CloudngfwawsFunctions.getPredefinedUrlCategoryOverride(GetPredefinedUrlCategoryOverrideArgs.builder()\n            .rulestack(r.name())\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: my-rulestack\n      scope: Local\n      accountId: '12345'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getPredefinedUrlCategoryOverride\n      arguments:\n        rulestack: ${r.name}\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getPredefinedUrlCategoryOverride.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n"
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getPredefinedUrlCategoryOverride.\n",
                "properties": {
                    "action": {
                        "description": "The action to take. Valid values 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=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alert`\" pulumi-lang-dotnet=\"`Alert`\" pulumi-lang-go=\"`alert`\" pulumi-lang-python=\"`alert`\" pulumi-lang-yaml=\"`alert`\" pulumi-lang-java=\"`alert`\"\u003e`alert`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "auditComment": {
                        "description": "The audit comment.\n",
                        "type": "string"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "Update token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "action",
                    "auditComment",
                    "name",
                    "rulestack",
                    "updateToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getPrefixList:getPrefixList": {
            "description": "Data source for retrieving prefix list information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst r = new cloudngfwaws.Rulestack(\"r\", {\n    name: \"my-rulestack\",\n    scope: \"Local\",\n    accountId: \"12345\",\n    description: \"Made by Pulumi\",\n    profileConfig: {\n        antiSpyware: \"BestPractice\",\n    },\n});\nconst example = cloudngfwaws.getPrefixListOutput({\n    rulestack: r.name,\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nr = cloudngfwaws.Rulestack(\"r\",\n    name=\"my-rulestack\",\n    scope=\"Local\",\n    account_id=\"12345\",\n    description=\"Made by Pulumi\",\n    profile_config={\n        \"anti_spyware\": \"BestPractice\",\n    })\nexample = cloudngfwaws.get_prefix_list_output(rulestack=r.name,\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var r = new CloudNgfwAws.Index.Rulestack(\"r\", new()\n    {\n        Name = \"my-rulestack\",\n        Scope = \"Local\",\n        AccountId = \"12345\",\n        Description = \"Made by Pulumi\",\n        ProfileConfig = new CloudNgfwAws.Inputs.RulestackProfileConfigArgs\n        {\n            AntiSpyware = \"BestPractice\",\n        },\n    });\n\n    var example = CloudNgfwAws.Index.GetPrefixList.Invoke(new()\n    {\n        Rulestack = r.Name,\n        Name = \"foobar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tr, err := cloudngfwaws.NewRulestack(ctx, \"r\", \u0026cloudngfwaws.RulestackArgs{\n\t\t\tName:        pulumi.String(\"my-rulestack\"),\n\t\t\tScope:       pulumi.String(\"Local\"),\n\t\t\tAccountId:   pulumi.String(\"12345\"),\n\t\t\tDescription: pulumi.String(\"Made by Pulumi\"),\n\t\t\tProfileConfig: \u0026cloudngfwaws.RulestackProfileConfigArgs{\n\t\t\t\tAntiSpyware: pulumi.String(\"BestPractice\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = cloudngfwaws.GetPrefixListOutput(ctx, cloudngfwaws.GetPrefixListOutputArgs{\n\t\t\tRulestack: r.Name,\n\t\t\tName:      pulumi.String(\"foobar\"),\n\t\t}, nil)\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.cloudngfwaws.Rulestack;\nimport com.pulumi.cloudngfwaws.RulestackArgs;\nimport com.pulumi.cloudngfwaws.inputs.RulestackProfileConfigArgs;\nimport com.pulumi.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetPrefixListArgs;\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 r = new Rulestack(\"r\", RulestackArgs.builder()\n            .name(\"my-rulestack\")\n            .scope(\"Local\")\n            .accountId(\"12345\")\n            .description(\"Made by Pulumi\")\n            .profileConfig(RulestackProfileConfigArgs.builder()\n                .antiSpyware(\"BestPractice\")\n                .build())\n            .build());\n\n        final var example = CloudngfwawsFunctions.getPrefixList(GetPrefixListArgs.builder()\n            .rulestack(r.name())\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: my-rulestack\n      scope: Local\n      accountId: '12345'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getPrefixList\n      arguments:\n        rulestack: ${r.name}\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getPrefixList.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getPrefixList.\n",
                "properties": {
                    "auditComment": {
                        "description": "The audit comment.\n",
                        "type": "string"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The description.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "prefixLists": {
                        "description": "The prefix list.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "auditComment",
                    "description",
                    "name",
                    "prefixLists",
                    "rulestack",
                    "updateToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getRulestack:getRulestack": {
            "description": "Data source for retrieving rulestack information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cloudngfwaws from \"@pulumi/cloudngfwaws\";\n\nconst example = cloudngfwaws.getRulestack({\n    name: \"my-rulestack-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_cloudngfwaws as cloudngfwaws\n\nexample = cloudngfwaws.get_rulestack(name=\"my-rulestack-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing CloudNgfwAws = Pulumi.CloudNgfwAws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = CloudNgfwAws.Index.GetRulestack.Invoke(new()\n    {\n        Name = \"my-rulestack-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-cloudngfwaws/sdk/v2/go/cloudngfwaws\"\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 := cloudngfwaws.GetRulestack(ctx, \u0026cloudngfwaws.LookupRulestackArgs{\n\t\t\tName: \"my-rulestack-name\",\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.cloudngfwaws.CloudngfwawsFunctions;\nimport com.pulumi.cloudngfwaws.inputs.GetRulestackArgs;\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 = CloudngfwawsFunctions.getRulestack(GetRulestackArgs.builder()\n            .name(\"my-rulestack-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getRulestack\n      arguments:\n        name: my-rulestack-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getRulestack.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getRulestack.\n",
                "properties": {
                    "accountGroup": {
                        "description": "Account group.\n",
                        "type": "string"
                    },
                    "accountId": {
                        "description": "The account ID.\n",
                        "type": "string"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The description.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "lookupXForwardedFor": {
                        "description": "Lookup x forwarded for.\n",
                        "type": "string"
                    },
                    "minimumAppIdVersion": {
                        "description": "Minimum App-ID version number.\n",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "profileConfigs": {
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getRulestackProfileConfig:getRulestackProfileConfig"
                        },
                        "type": "array"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "state": {
                        "description": "The rulestack state.\n",
                        "type": "string"
                    },
                    "tags": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The tags.\n",
                        "type": "object"
                    }
                },
                "required": [
                    "accountGroup",
                    "accountId",
                    "description",
                    "lookupXForwardedFor",
                    "minimumAppIdVersion",
                    "name",
                    "profileConfigs",
                    "state",
                    "tags",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getSecurityRule:getSecurityRule": {
            "description": "Data source for retrieving security rule information.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  r:\n    type: cloudngfwaws:Rulestack\n    properties:\n      name: my-rulestack\n      scope: Local\n      accountId: '12345'\n      description: Made by Pulumi\n      profileConfig:\n        antiSpyware: BestPractice\nvariables:\n  example:\n    fn::invoke:\n      function: cloudngfwaws:getSecurityRule\n      arguments:\n        rulestack: ${r.name}\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getSecurityRule.\n",
                "properties": {
                    "configType": {
                        "type": "string",
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n"
                    },
                    "priority": {
                        "type": "integer",
                        "description": "The rule priority.\n",
                        "willReplaceOnChanges": true
                    },
                    "ruleList": {
                        "type": "string",
                        "description": "The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "priority",
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getSecurityRule.\n",
                "properties": {
                    "action": {
                        "description": "The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.\n",
                        "type": "string"
                    },
                    "applications": {
                        "description": "The list of applications.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "auditComment": {
                        "description": "The audit comment.\n",
                        "type": "string"
                    },
                    "categories": {
                        "description": "The category spec.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getSecurityRuleCategory:getSecurityRuleCategory"
                        },
                        "type": "array"
                    },
                    "configType": {
                        "description": "Retrieve either the candidate or running config. Valid values are \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`candidate`\" pulumi-lang-dotnet=\"`Candidate`\" pulumi-lang-go=\"`candidate`\" pulumi-lang-python=\"`candidate`\" pulumi-lang-yaml=\"`candidate`\" pulumi-lang-java=\"`candidate`\"\u003e`candidate`\u003c/span\u003e.\n",
                        "type": "string"
                    },
                    "decryptionRuleType": {
                        "description": "Decryption rule type. Valid values are `\u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003eSSLOutboundInspection`.\n",
                        "type": "string"
                    },
                    "description": {
                        "description": "The description.\n",
                        "type": "string"
                    },
                    "destinations": {
                        "description": "The destination spec.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getSecurityRuleDestination:getSecurityRuleDestination"
                        },
                        "type": "array"
                    },
                    "enabled": {
                        "description": "Set to false to disable this rule.\n",
                        "type": "boolean"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "logging": {
                        "description": "Enable logging at end.\n",
                        "type": "boolean"
                    },
                    "name": {
                        "description": "The name.\n",
                        "type": "string"
                    },
                    "negateDestination": {
                        "description": "Negate the destination definition.\n",
                        "type": "boolean"
                    },
                    "negateSource": {
                        "description": "Negate the source definition.\n",
                        "type": "boolean"
                    },
                    "priority": {
                        "description": "The rule priority.\n",
                        "type": "integer"
                    },
                    "protPortLists": {
                        "description": "Protocol port list.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "protocol": {
                        "description": "The protocol.\n",
                        "type": "string"
                    },
                    "ruleList": {
                        "description": "The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.\n",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "sources": {
                        "description": "The source spec.\n",
                        "items": {
                            "$ref": "#/types/cloudngfwaws:index/getSecurityRuleSource:getSecurityRuleSource"
                        },
                        "type": "array"
                    },
                    "tags": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The tags.\n",
                        "type": "object"
                    },
                    "updateToken": {
                        "description": "The update token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "action",
                    "applications",
                    "auditComment",
                    "categories",
                    "decryptionRuleType",
                    "description",
                    "destinations",
                    "enabled",
                    "logging",
                    "name",
                    "negateDestination",
                    "negateSource",
                    "priority",
                    "protPortLists",
                    "protocol",
                    "rulestack",
                    "sources",
                    "tags",
                    "updateToken",
                    "id"
                ],
                "type": "object"
            }
        },
        "cloudngfwaws:index/getValidateRulestack:getValidateRulestack": {
            "description": "Data source to validate the rulestack config.\n\n\n## Admin Permission Type\n\n* `Rulestack` (for `scope=\"Local\"`)\n* `Global Rulestack` (for `scope=\"Global\"`)\n",
            "inputs": {
                "description": "A collection of arguments for invoking getValidateRulestack.\n",
                "properties": {
                    "rulestack": {
                        "type": "string",
                        "description": "The rulestack.\n",
                        "willReplaceOnChanges": true
                    },
                    "scope": {
                        "type": "string",
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object",
                "required": [
                    "rulestack"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getValidateRulestack.\n",
                "properties": {
                    "commitErrors": {
                        "description": "Commit error messages.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "commitStatus": {
                        "description": "The commit status.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "rulestack": {
                        "description": "The rulestack.\n",
                        "type": "string"
                    },
                    "scope": {
                        "description": "The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.\n",
                        "type": "string"
                    },
                    "state": {
                        "description": "The rulestack state.\n",
                        "type": "string"
                    },
                    "validationErrors": {
                        "description": "Validation error messages.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "validationStatus": {
                        "description": "The validation status.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "commitErrors",
                    "commitStatus",
                    "rulestack",
                    "state",
                    "validationErrors",
                    "validationStatus",
                    "id"
                ],
                "type": "object"
            }
        },
        "pulumi:providers:cloudngfwaws/terraformConfig": {
            "description": "This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.",
            "inputs": {
                "properties": {
                    "__self__": {
                        "type": "ref",
                        "$ref": "#/provider"
                    }
                },
                "type": "pulumi:providers:cloudngfwaws/terraformConfig",
                "required": [
                    "__self__"
                ]
            },
            "outputs": {
                "properties": {
                    "result": {
                        "additionalProperties": {
                            "$ref": "pulumi.json#/Any"
                        },
                        "type": "object"
                    }
                },
                "required": [
                    "result"
                ],
                "type": "object"
            }
        }
    }
}