{
  "name": "aviatrix",
  "displayName": "Aviatrix",
  "version": "0.0.11",
  "description": "A Pulumi package for creating and managing Aviatrix cloud resources.",
  "keywords": [
    "pulumi",
    "aviatrix",
    "category/cloud"
  ],
  "homepage": "https://www.aviatrix.com",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`aviatrix` Terraform Provider](https://github.com/AviatrixSystems/terraform-provider-aviatrix).",
  "repository": "https://github.com/astipkovits/pulumi-aviatrix",
  "logoUrl": "https://raw.githubusercontent.com/astipkovits/pulumi-aviatrix/main/aviatrix_logo.svg",
  "pluginDownloadURL": "github://api.github.com/astipkovits",
  "publisher": "Aviatrix",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "namespaces": null,
      "packageReferences": {
        "Pulumi": "3.*"
      }
    },
    "go": {
      "generateExtraInputTypes": true,
      "generateResourceContainerTypes": true,
      "importBasePath": "github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix"
    },
    "nodejs": {
      "compatibility": "tfbridge20",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "disableUnionOutputTypes": true,
      "packageDescription": "A Pulumi package for creating and managing Aviatrix cloud resources.. Based on terraform-provider-aviatrix: version v2.24.1",
      "packageName": "@astipkovits/aviatrix",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/AviatrixSystems/terraform-provider-aviatrix)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-aviatrix` repo](https://github.com/astipkovits/pulumi-aviatrix/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-aviatrix` repo](https://github.com/AviatrixSystems/terraform-provider-aviatrix/issues).",
      "typescriptVersion": ""
    },
    "python": {
      "compatibility": "tfbridge20",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/AviatrixSystems/terraform-provider-aviatrix)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-aviatrix` repo](https://github.com/astipkovits/pulumi-aviatrix/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-aviatrix` repo](https://github.com/AviatrixSystems/terraform-provider-aviatrix/issues).",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      }
    }
  },
  "config": {
    "variables": {
      "controllerIp": {
        "type": "string"
      },
      "ignoreTags": {
        "$ref": "#/types/aviatrix:config%2FignoreTags:ignoreTags",
        "description": "Configuration block with settings to ignore tags across all resources.\n"
      },
      "password": {
        "type": "string"
      },
      "pathToCaCertificate": {
        "type": "string"
      },
      "skipVersionValidation": {
        "type": "boolean"
      },
      "username": {
        "type": "string"
      },
      "verifySslCertificate": {
        "type": "boolean"
      }
    },
    "defaults": [
      "controllerIp",
      "password",
      "username"
    ]
  },
  "types": {
    "aviatrix:config/ignoreTags:ignoreTags": {
      "properties": {
        "keyPrefixes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "keys": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "aviatrix:index/AviatrixAppDomainSelector:AviatrixAppDomainSelector": {
      "properties": {
        "matchExpressions": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixAppDomainSelectorMatchExpression:AviatrixAppDomainSelectorMatchExpression"
          },
          "description": "List of match expressions. The App Domain will be a union of all resources matched by each `match_expressions`.`match_expressions` blocks cannot be empty.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "matchExpressions"
      ]
    },
    "aviatrix:index/AviatrixAppDomainSelectorMatchExpression:AviatrixAppDomainSelectorMatchExpression": {
      "properties": {
        "accountId": {
          "type": "string",
          "description": "- Account ID this expression matches.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "accountName": {
          "type": "string",
          "description": "- Account name this expression matches.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cidr": {
          "type": "string",
          "description": "- CIDR block or IP Address this expression matches. `cidr` cannot be used with any other filters in the same `match_expressions` block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "region": {
          "type": "string",
          "description": "- Region this expression matches.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resId": {
          "type": "string",
          "description": "- Resource ID this expression matches.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "- Map of tags this expression matches.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "- Type of resource this expression matches. Must be one of \"vm\", \"vpc\" or \"subnet\". `type` is required when `cidr` is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "- Zone this expression matches.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "aviatrix:index/AviatrixAwsTgwSecurityDomain:AviatrixAwsTgwSecurityDomain": {
      "properties": {
        "attachedVpcs": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixAwsTgwSecurityDomainAttachedVpc:AviatrixAwsTgwSecurityDomainAttachedVpc"
          },
          "description": "A list of VPCs attached to the domain (name: `security_domain_name`) together with its creation. This list needs to be null for \"Aviatrix_Edge_Domain\".\n",
          "deprecationMessage": "Please set `manage_vpc_attachment` to false, and use the standalone aviatrix_aws_tgw_vpc_attachment resource instead.",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "aviatrixFirewall": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as an Aviatrix Firewall Domain for the Aviatrix Firewall Network. Valid values: true, false. Default value: false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connectedDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of domains connected to the domain (name: `security_domain_name`) together with its creation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nativeEgress": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as a native egress domain (for non-Aviatrix Firewall Network-based central Internet bound traffic). Valid values: true, false. Default value: false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nativeFirewall": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as a native firewall domain (for non-Aviatrix Firewall Network-based firewall traffic inspection). Valid values: true, false. Default value: false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityDomainName": {
          "type": "string",
          "description": "Three default domains (\"Aviatrix_Edge_Domain\", \"Default_Domain\" and \"Shared_Service_Domain\") are required with AWS TGW's creation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "securityDomainName"
      ]
    },
    "aviatrix:index/AviatrixAwsTgwSecurityDomainAttachedVpc:AviatrixAwsTgwSecurityDomainAttachedVpc": {
      "properties": {
        "customizedRouteAdvertisement": {
          "type": "string",
          "description": "Advanced option. Customized route(s) to be advertised to other VPCs that are connected to the same TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customizedRoutes": {
          "type": "string",
          "description": "Advanced option. Customized Spoke VPC Routes. It allows the admin to enter non-RFC1918 routes in the VPC route table targeting the TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "disableLocalRoutePropagation": {
          "type": "boolean",
          "description": "Advanced option. If set to true, it disables automatic route propagation of this VPC to other VPCs within the same security domain. Valid values: true, false. Default value: false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "routeTables": {
          "type": "string",
          "description": "Advanced option. Route tables separated by ',' to participate in TGW Orchestrator, i.e., learned routes will be propagated to these route tables. Example: \"rtb-212ff547,rtb-045397874c170c745\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnets": {
          "type": "string",
          "description": "Advanced option. VPC subnets separated by ',' to attach to the VPC. If left blank, the Aviatrix Controller automatically selects a subnet representing each AZ for the VPC attachment. Example: \"subnet-214f5646,subnet-085e8c81a89d70846\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcAccountName": {
          "type": "string",
          "description": "Cloud account name of the VPC in the Aviatrix controller.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the VPC to be attached to the security domain\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcRegion": {
          "type": "string",
          "description": "Region of the VPC, needs to be consistent with AWS TGW's region.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "vpcAccountName",
        "vpcId",
        "vpcRegion"
      ]
    },
    "aviatrix:index/AviatrixAwsTgwVpnConnVpnTunnelData:AviatrixAwsTgwVpnConnVpnTunnelData": {
      "properties": {
        "lastStatusChangeTime": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "routeCount": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "status": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusMessage": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tgwAsn": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tunnelName": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpnInsideAddress": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpnOutsideAddress": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "lastStatusChangeTime",
            "routeCount",
            "status",
            "statusMessage",
            "tgwAsn",
            "tunnelName",
            "vpnInsideAddress",
            "vpnOutsideAddress"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixFirenetFirewallInstanceAssociation:AviatrixFirenetFirewallInstanceAssociation": {
      "properties": {
        "attached": {
          "type": "boolean",
          "description": "Switch to attach/detach firewall instance to/from FireNet. Valid values: true, false. Default value: false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "egressInterface": {
          "type": "string",
          "description": "Egress interface ID. **Required if it is a firewall instance.**\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "firenetGwName": {
          "type": "string",
          "description": "Name of the primary FireNet gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "firewallName": {
          "type": "string",
          "description": "Firewall instance name. **Required if it is a firewall instance.**\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "instanceId": {
          "type": "string",
          "description": "ID of Firewall instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lanInterface": {
          "type": "string",
          "description": "Lan interface ID. **Required if it is a firewall instance or FQDN gateway in Azure.**\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "managementInterface": {
          "type": "string",
          "description": "Management interface ID. **Required if it is a firewall instance.**\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vendorType": {
          "type": "string",
          "description": "Type of firewall. Valid values: \"Generic\", \"fqdn_gateway\". Default value: \"Generic\". Value \"fqdn_gateway\" is required for FQDN gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "firenetGwName",
        "instanceId"
      ]
    },
    "aviatrix:index/AviatrixFirewallPolicy:AviatrixFirewallPolicy": {
      "properties": {
        "action": {
          "type": "string",
          "description": "Valid values: \"allow\", \"deny\" and \"force-drop\" (in stateful firewall rule to allow immediate packet dropping on established sessions).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "type": "string",
          "description": "Description of the policy. Example: \"This is policy no.1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstIp": {
          "type": "string",
          "description": "Destination address, a valid IPv4 address or tag name such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logEnabled": {
          "type": "boolean",
          "description": "Valid values: true, false. Default value: false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "string",
          "description": "A single port or a range of port numbers. Example: \"25\", \"25:1024\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": ": Valid values: \"all\", \"tcp\", \"udp\", \"icmp\", \"sctp\", \"rdp\", \"dccp\". Default value: \"all\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcIp": {
          "type": "string",
          "description": "Source address, a valid IPv4 address or tag name such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "action",
        "dstIp",
        "port",
        "srcIp"
      ]
    },
    "aviatrix:index/AviatrixFirewallTagCidrList:AviatrixFirewallTagCidrList": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "CIDR address to filter. Example: \"10.88.88.88/32\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cidrTagName": {
          "type": "string",
          "description": "A name to identify the CIDR. Example: \"policy1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "cidrTagName"
      ]
    },
    "aviatrix:index/AviatrixFqdnDomainName:AviatrixFqdnDomainName": {
      "properties": {
        "action": {
          "type": "string",
          "description": "What action should happen to matching requests. Possible values are: 'Base Policy', 'Allow' or 'Deny'. Defaults to 'Base Policy' if no value provided.\n* For protocol \"all\", port must be set to \"all\".\n* For protocol “icmp”, port must be set to “ping”.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "FQDN. Example: \"facebook.com\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "string",
          "description": "Port. Example \"25\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "proto": {
          "type": "string",
          "description": "Protocol. Valid values: \"all\", \"tcp\", \"udp\", \"icmp\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn",
        "port",
        "proto"
      ]
    },
    "aviatrix:index/AviatrixFqdnGwFilterTagList:AviatrixFqdnGwFilterTagList": {
      "properties": {
        "gwName": {
          "type": "string",
          "description": "Name of the gateway to attach to the specific tag.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sourceIpLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of source IPs in the VPC qualified for a specific tag.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "gwName"
      ]
    },
    "aviatrix:index/AviatrixGatewayDnatConnectionPolicy:AviatrixGatewayDnatConnectionPolicy": {
      "properties": {
        "applyRouteEntry": {
          "type": "boolean",
          "description": "This is an option to program the route entry 'DST CIDR pointing to Aviatrix Gateway' into Cloud platform routing table. Type: Boolean. Default: True. Available as of provider version R2.19.2+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connection": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output connection where the rule applies. Default value: \"None\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dnatIps": {
          "type": "string",
          "description": "This is a rule field that specifies the translated destination IP address when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dnatPort": {
          "type": "string",
          "description": "This is a rule field that specifies the translated destination port when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeRtb": {
          "type": "string",
          "description": "This field specifies which VPC private route table will not be programmed with the default route entry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interface": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output interface where the rule applies. When not specified, this field is not used. Must be empty when `connection` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mark": {
          "type": "string",
          "description": "This is a rule field that specifies a tag or mark of a TCP session when all qualifier conditions meet. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port protocol where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source port that the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "applyRouteEntry",
            "connection",
            "dnatIps",
            "dnatPort",
            "dstCidr",
            "dstPort",
            "excludeRtb",
            "interface",
            "mark",
            "protocol",
            "srcCidr",
            "srcPort"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixGatewayDnatDnatPolicy:AviatrixGatewayDnatDnatPolicy": {
      "properties": {
        "applyRouteEntry": {
          "type": "boolean",
          "description": "This is an option to program the route entry 'DST CIDR pointing to Aviatrix Gateway' into Cloud platform routing table. Type: Boolean. Default: True. Available as of provider version R2.19.2+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connection": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output connection where the rule applies. Default value: \"None\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dnatIps": {
          "type": "string",
          "description": "This is a rule field that specifies the translated destination IP address when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dnatPort": {
          "type": "string",
          "description": "This is a rule field that specifies the translated destination port when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeRtb": {
          "type": "string",
          "description": "This field specifies which VPC private route table will not be programmed with the default route entry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interface": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output interface where the rule applies. When not specified, this field is not used. Must be empty when `connection` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mark": {
          "type": "string",
          "description": "This is a rule field that specifies a tag or mark of a TCP session when all qualifier conditions meet. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port protocol where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source port that the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "aviatrix:index/AviatrixGatewayDnatInterfacePolicy:AviatrixGatewayDnatInterfacePolicy": {
      "properties": {
        "applyRouteEntry": {
          "type": "boolean",
          "description": "This is an option to program the route entry 'DST CIDR pointing to Aviatrix Gateway' into Cloud platform routing table. Type: Boolean. Default: True. Available as of provider version R2.19.2+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connection": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output connection where the rule applies. Default value: \"None\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dnatIps": {
          "type": "string",
          "description": "This is a rule field that specifies the translated destination IP address when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dnatPort": {
          "type": "string",
          "description": "This is a rule field that specifies the translated destination port when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeRtb": {
          "type": "string",
          "description": "This field specifies which VPC private route table will not be programmed with the default route entry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interface": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output interface where the rule applies. When not specified, this field is not used. Must be empty when `connection` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mark": {
          "type": "string",
          "description": "This is a rule field that specifies a tag or mark of a TCP session when all qualifier conditions meet. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port protocol where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source port that the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "applyRouteEntry",
            "connection",
            "dnatIps",
            "dnatPort",
            "dstCidr",
            "dstPort",
            "excludeRtb",
            "interface",
            "mark",
            "protocol",
            "srcCidr",
            "srcPort"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixGatewaySnatConnectionPolicy:AviatrixGatewaySnatConnectionPolicy": {
      "properties": {
        "applyRouteEntry": {
          "type": "boolean",
          "description": "This is an option to program the route entry 'DST CIDR pointing to Aviatrix Gateway' into Cloud platform routing table. Type: Boolean. Default: True. Available as of provider version R2.21.0+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connection": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output connection where the rule applies. Default value: \"None\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeRtb": {
          "type": "string",
          "description": "This field specifies which VPC private route table will not be programmed with the default route entry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interface": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output interface where the rule applies. When not specified, this field is not used. Must be empty when `connection` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mark": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a tag or mark of a TCP session where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port protocol where the rule applies. Valid values: 'all', 'tcp', 'udp', 'icmp'. 'Default: 'all'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snatIps": {
          "type": "string",
          "description": "This is a rule field that specifies the changed source IP address when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule fields must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snatPort": {
          "type": "string",
          "description": "This is a rule field that specifies the changed source port when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule fields must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source port that the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "applyRouteEntry",
            "connection",
            "dstCidr",
            "dstPort",
            "excludeRtb",
            "interface",
            "mark",
            "protocol",
            "snatIps",
            "snatPort",
            "srcCidr",
            "srcPort"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixGatewaySnatInterfacePolicy:AviatrixGatewaySnatInterfacePolicy": {
      "properties": {
        "applyRouteEntry": {
          "type": "boolean",
          "description": "This is an option to program the route entry 'DST CIDR pointing to Aviatrix Gateway' into Cloud platform routing table. Type: Boolean. Default: True. Available as of provider version R2.21.0+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connection": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output connection where the rule applies. Default value: \"None\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeRtb": {
          "type": "string",
          "description": "This field specifies which VPC private route table will not be programmed with the default route entry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interface": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output interface where the rule applies. When not specified, this field is not used. Must be empty when `connection` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mark": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a tag or mark of a TCP session where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port protocol where the rule applies. Valid values: 'all', 'tcp', 'udp', 'icmp'. 'Default: 'all'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snatIps": {
          "type": "string",
          "description": "This is a rule field that specifies the changed source IP address when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule fields must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snatPort": {
          "type": "string",
          "description": "This is a rule field that specifies the changed source port when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule fields must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source port that the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "applyRouteEntry",
            "connection",
            "dstCidr",
            "dstPort",
            "excludeRtb",
            "interface",
            "mark",
            "protocol",
            "snatIps",
            "snatPort",
            "srcCidr",
            "srcPort"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixGatewaySnatSnatPolicy:AviatrixGatewaySnatSnatPolicy": {
      "properties": {
        "applyRouteEntry": {
          "type": "boolean",
          "description": "This is an option to program the route entry 'DST CIDR pointing to Aviatrix Gateway' into Cloud platform routing table. Type: Boolean. Default: True. Available as of provider version R2.21.0+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connection": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output connection where the rule applies. Default value: \"None\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeRtb": {
          "type": "string",
          "description": "This field specifies which VPC private route table will not be programmed with the default route entry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interface": {
          "type": "string",
          "description": "This is a qualifier condition that specifies output interface where the rule applies. When not specified, this field is not used. Must be empty when `connection` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mark": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a tag or mark of a TCP session where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a destination port protocol where the rule applies. Valid values: 'all', 'tcp', 'udp', 'icmp'. 'Default: 'all'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snatIps": {
          "type": "string",
          "description": "This is a rule field that specifies the changed source IP address when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule fields must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snatPort": {
          "type": "string",
          "description": "This is a rule field that specifies the changed source port when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule fields must be specified for this rule to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcCidr": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source IP address range where the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcPort": {
          "type": "string",
          "description": "This is a qualifier condition that specifies a source port that the rule applies. When not specified, this field is not used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "aviatrix:index/AviatrixMicrosegPolicyListPolicy:AviatrixMicrosegPolicyListPolicy": {
      "properties": {
        "action": {
          "type": "string",
          "description": "Action for the policy. Must be one of PERMIT or DENY.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstAppDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of App Domain UUIDs for the destination for the policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logging": {
          "type": "boolean",
          "description": "Whether to enable logging for packets that match the policy. Type: Boolean.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "portRanges": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixMicrosegPolicyListPolicyPortRange:AviatrixMicrosegPolicyListPolicyPortRange"
          },
          "description": "List of port ranges for the policy. Cannot be used when `protocol` is \"ICMP\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "priority": {
          "type": "integer",
          "description": "Priority for the policy. Default: 0. Type: Integer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "Protocol for the policy. Must be one of TCP, UDP, ICMP or ANY.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcAppDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of App Domain UUIDs for the source for the policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uuid": {
          "type": "string",
          "description": "UUID for the Policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "watch": {
          "type": "boolean",
          "description": "Whether to enforce the policy or only watch packets. If \"true\" packets are only watched. This allows you to observe if the traffic impacted by this rule causes any inadvertent issues (such as traffic being dropped). Type: Boolean.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "action",
        "dstAppDomains",
        "name",
        "protocol",
        "srcAppDomains"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "action",
            "dstAppDomains",
            "name",
            "protocol",
            "srcAppDomains",
            "uuid"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixMicrosegPolicyListPolicyPortRange:AviatrixMicrosegPolicyListPolicyPortRange": {
      "properties": {
        "hi": {
          "type": "integer",
          "description": "Upper bound for the range of ports. When not set, `lo` is the only port that matches the policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lo": {
          "type": "integer",
          "description": "Lower bound for the range of ports.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "lo"
      ]
    },
    "aviatrix:index/AviatrixPrivateModeLbProxy:AviatrixPrivateModeLbProxy": {
      "properties": {
        "instanceId": {
          "type": "string",
          "description": "Instance ID of the proxy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the proxy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "instanceId",
        "vpcId"
      ]
    },
    "aviatrix:index/AviatrixSite2CloudCaCertTagCaCertificate:AviatrixSite2CloudCaCertTagCaCertificate": {
      "properties": {
        "certContent": {
          "type": "string",
          "description": "Content of cert certificate to create only one cert. One CA cert only per file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "commonName": {
          "type": "string",
          "description": "Common name of created cert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "expirationTime": {
          "type": "string",
          "description": "Expiration time of created cert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Unique id of created cert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "issuerName": {
          "type": "string",
          "description": "Issuer name of created cert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uniqueSerial": {
          "type": "string",
          "description": "Unique serial of created cert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "certContent"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "certContent",
            "commonName",
            "expirationTime",
            "id",
            "issuerName",
            "uniqueSerial"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixTransitGatewayBgpLanInterface:AviatrixTransitGatewayBgpLanInterface": {
      "properties": {
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnet",
        "vpcId"
      ]
    },
    "aviatrix:index/AviatrixTransitGatewayHaBgpLanInterface:AviatrixTransitGatewayHaBgpLanInterface": {
      "properties": {
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnet",
        "vpcId"
      ]
    },
    "aviatrix:index/AviatrixVpcPrivateSubnet:AviatrixVpcPrivateSubnet": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "CIDR block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "ID of this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "cidr",
            "name",
            "subnetId"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixVpcPublicSubnet:AviatrixVpcPublicSubnet": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "CIDR block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "ID of this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "cidr",
            "name",
            "subnetId"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixVpcSubnet:AviatrixVpcSubnet": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "CIDR block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "Name of this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "willReplaceOnChanges": true
        },
        "region": {
          "type": "string",
          "description": "Region of this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "willReplaceOnChanges": true
        },
        "subnetId": {
          "type": "string",
          "description": "ID of this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "subnetId"
          ]
        }
      }
    },
    "aviatrix:index/AviatrixVpnProfilePolicy:AviatrixVpnProfilePolicy": {
      "properties": {
        "action": {
          "type": "string",
          "description": "Should be the opposite of the base rule for correct behavior. Valid values for action: \"allow\", \"deny\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "string",
          "description": "Port to be allowed or denied. Valid values for port: a single port or a range of port numbers e.g.: \"25\", \"25:1024\". For \"all\" and \"icmp\", port should only be \"0:65535\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "proto": {
          "type": "string",
          "description": "Protocol to allow or deny. Valid values for protocol: \"all\", \"tcp\", \"udp\", \"icmp\", \"sctp\", \"rdp\", \"dccp\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "target": {
          "type": "string",
          "description": "CIDR to be allowed or denied. Valid values for target: IPv4 CIDRs. Example: \"10.30.0.0/16\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "action",
        "port",
        "proto",
        "target"
      ]
    },
    "aviatrix:index/ProviderIgnoreTags:ProviderIgnoreTags": {
      "properties": {
        "keyPrefixes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "keys": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "aviatrix:index/getAviatrixDeviceInterfacesWanInterface:getAviatrixDeviceInterfacesWanInterface": {
      "properties": {
        "wanPrimaryInterface": {
          "type": "string",
          "description": "Name of the WAN primary interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "wanPrimaryInterfacePublicIp": {
          "type": "string",
          "description": "The WAN Primary interface public IP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "wanPrimaryInterface",
        "wanPrimaryInterfacePublicIp"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixFirenetFirewallInstanceAssociation:getAviatrixFirenetFirewallInstanceAssociation": {
      "properties": {
        "attached": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "egressInterface": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "firenetGwName": {
          "type": "string",
          "description": "Name of the primary FireNet gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "firewallName": {
          "type": "string",
          "description": "Firewall instance name.\n* `lan_interface`- Lan interface ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "instanceId": {
          "type": "string",
          "description": "ID of Firewall instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lanInterface": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "managementInterface": {
          "type": "string",
          "description": "Management interface ID.\n* `egress_interface`- Egress interface ID.\n* `attached`- Switch to attach/detach firewall instance to/from fireNet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vendorType": {
          "type": "string",
          "description": "Type of the firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "attached",
        "egressInterface",
        "firenetGwName",
        "firewallName",
        "instanceId",
        "lanInterface",
        "managementInterface",
        "vendorType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixFirewallInstanceImagesFirewallImage:getAviatrixFirewallInstanceImagesFirewallImage": {
      "properties": {
        "firewallImage": {
          "type": "string",
          "description": "Name of the firewall image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "firewallImageVersions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of firewall image versions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "firewallSizes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of firewall instance sizes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "firewallImage",
        "firewallImageVersions",
        "firewallSizes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixFirewallPolicy:getAviatrixFirewallPolicy": {
      "properties": {
        "action": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dstIp": {
          "type": "string",
          "description": "CIDRs separated by a comma or tag names such 'HR' or 'marketing' etc.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logEnabled": {
          "type": "boolean",
          "description": "Indicates whether logging is enabled or not.\n* `description`- Policy description.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "string",
          "description": "A single port or a range of port numbers.\n* `action`- `allow`, `deny` or `force-drop`(allow immediate packet dropping on established sessions).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "`all`, `tcp`, `udp`, `icmp`, `sctp`, `rdp` or `dccp`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "srcIp": {
          "type": "string",
          "description": "CIDRs separated by a comma or tag names such 'HR' or 'marketing' etc.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "action",
        "description",
        "dstIp",
        "logEnabled",
        "port",
        "protocol",
        "srcIp"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixNetworkDomainsNetworkDomain:getAviatrixNetworkDomainsNetworkDomain": {
      "properties": {
        "account": {
          "type": "string",
          "description": "Access Account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cloudType": {
          "type": "string",
          "description": "Type of cloud service provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "egressInspection": {
          "type": "boolean",
          "description": "Egress inspection is enable or not.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "egressInspectionName": {
          "type": "string",
          "description": "Egress inspection name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "inspectionPolicy": {
          "type": "string",
          "description": "Inspection policy name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intraDomainInspection": {
          "type": "boolean",
          "description": "Firewall inspection for traffic within one Security Domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intraDomainInspectionName": {
          "type": "string",
          "description": "Intra domain inspection name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Network Domain name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "region": {
          "type": "string",
          "description": "Region of cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "routeTableId": {
          "type": "string",
          "description": "Route table's id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tgwName": {
          "type": "string",
          "description": "AWS TGW name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of network domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "account",
        "cloudType",
        "egressInspection",
        "egressInspectionName",
        "inspectionPolicy",
        "intraDomainInspection",
        "intraDomainInspectionName",
        "name",
        "region",
        "routeTableId",
        "tgwName",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixTransitGatewayBgpLanInterface:getAviatrixTransitGatewayBgpLanInterface": {
      "properties": {
        "subnet": {
          "type": "string",
          "description": "Subnet Info.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID of GCP cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnet",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixTransitGatewayHaBgpLanInterface:getAviatrixTransitGatewayHaBgpLanInterface": {
      "properties": {
        "subnet": {
          "type": "string",
          "description": "Subnet Info.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID of GCP cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnet",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixTransitGatewaysGatewayList:getAviatrixTransitGatewaysGatewayList": {
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Aviatrix account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "allocateNewEip": {
          "type": "boolean",
          "description": "When value is false, an idle address in Elastic IP pool is reused for this gateway. Otherwise, a new Elastic IP is allocated and used for this gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain for OCI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "azureEipNameResourceGroup": {
          "type": "string",
          "description": "The name of the public IP address and its resource group in Azure to assign to this Transit Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "bgpEcmp": {
          "type": "boolean",
          "description": "Enable Equal Cost Multi Path (ECMP) routing for the next hop.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "bgpHoldTime": {
          "type": "integer",
          "description": "BGP Hold Time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "bgpLanInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FgetAviatrixTransitGatewaysGatewayListBgpLanInterface:getAviatrixTransitGatewaysGatewayListBgpLanInterface"
          },
          "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP Transit.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "bgpLanIpLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of available BGP LAN interface IPs for transit external device connection creation. Only supports GCP. Available as of provider version R2.21.0+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "bgpPollingTime": {
          "type": "string",
          "description": "BGP route polling time. Unit is in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cloudInstanceId": {
          "type": "string",
          "description": "Instance ID of the transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider.\n* `connected_transit\"` -  Status of Connected Transit of transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connectedTransit": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customizedSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be customized for the spoke VPC routes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableActiveStandby": {
          "type": "boolean",
          "description": "Enables Active-Standby Mode, available only with HA enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableActiveStandbyPreemptive": {
          "type": "boolean",
          "description": "Enables Preemptive Mode for Active-Standby, available only with Active-Standby enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableBgpOverLan": {
          "type": "boolean",
          "description": "Pre-allocate a network interface(eth4) for \\\"BGP over LAN\\\" functionality. Only valid for cloud_type = 4 (GCP) and 8 (Azure). Available as of provider version R2.18+\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableEncryptVolume": {
          "type": "boolean",
          "description": "Status of Encrypt Gateway EBS Volume of the transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableGatewayLoadBalancer": {
          "type": "boolean",
          "description": "Enable firenet interfaces with AWS Gateway Load Balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableHybridConnection": {
          "type": "boolean",
          "description": "Sign of readiness for TGW connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable jumbo frame support for transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableMonitorGatewaySubnets": {
          "type": "boolean",
          "description": "Enable [monitor gateway subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet). Only valid for cloud_type = 1 (AWS) or 256 (AWSGov).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableMultiTierTransit": {
          "type": "boolean",
          "description": "Status of multi-tier transit mode on transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enablePrivateOob": {
          "type": "boolean",
          "description": "Status of private OOB for the transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableSegmentation": {
          "type": "boolean",
          "description": "Enable segmentation to allow association of transit gateway to security domains.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableSpotInstance": {
          "type": "boolean",
          "description": "Enable spot instance. NOT supported for production deployment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableTransitSummarizeCidrToTgw": {
          "type": "boolean",
          "description": "Enable summarize CIDR to TGW.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Status of Vpc Dns Server of the transit Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludedAdvertisedSpokeRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be advertised to on-prem as \"Excluded CIDR List\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain for OCI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "filteredSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be filtered from the spoke VPC route table.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gwName": {
          "type": "string",
          "description": "Aviatrix transit gateway name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gwSize": {
          "type": "string",
          "description": "Size of transit gateway instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "haBgpLanInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FgetAviatrixTransitGatewaysGatewayListHaBgpLanInterface:getAviatrixTransitGatewaysGatewayListHaBgpLanInterface"
          },
          "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP HA Transit.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "haBgpLanIpLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of available BGP LAN interface IPs for transit external device HA connection creation. Only supports GCP. Available as of provider version R2.21.0+.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "imageVersion": {
          "type": "string",
          "description": "The image version of the gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Status of Insane Mode of the transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "insaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lanPrivateSubnet": {
          "type": "string",
          "description": "LAN Private Subnet. Only used for GCP Transit FireNet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lanVpcId": {
          "type": "string",
          "description": "LAN VPC ID. Only used for GCP Transit FireNet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "learnedCidrsApprovalMode": {
          "type": "string",
          "description": "Set the learned CIDRs approval mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "localAsNumber": {
          "type": "string",
          "description": "Changes the Aviatrix Transit Gateway ASN number before you setup Aviatrix Transit Gateway connection configurations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "monitorExcludeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oobAvailabilityZone": {
          "type": "string",
          "description": "OOB availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oobManagementSubnet": {
          "type": "string",
          "description": "OOB management subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of AS numbers to populate BGP AP_PATH field when it advertises to VGW or peer devices.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "privateIp": {
          "type": "string",
          "description": "Private IP address of the transit gateway created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "publicIp": {
          "type": "string",
          "description": "Public IP address of the Transit Gateway created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupId": {
          "type": "string",
          "description": "Security group used for the transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "singleAzHa": {
          "type": "boolean",
          "description": "Status of Single AZ HA of transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "singleIpSnat": {
          "type": "boolean",
          "description": "Status of Single IP Source Nat mode of the transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "softwareVersion": {
          "type": "string",
          "description": "The software version of the gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "spotPrice": {
          "type": "string",
          "description": "Price for spot instance. NOT supported for production deployment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tunnelDetectionTime": {
          "type": "integer",
          "description": "The IPSec tunnel down detection time for the transit gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Only available for cloud_type = 8 (Azure). Must be in the form 'az-n', for example, 'az-2'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "allocateNewEip",
        "availabilityDomain",
        "azureEipNameResourceGroup",
        "bgpEcmp",
        "bgpHoldTime",
        "bgpLanInterfaces",
        "bgpLanIpLists",
        "bgpPollingTime",
        "cloudInstanceId",
        "cloudType",
        "connectedTransit",
        "customizedSpokeVpcRoutes",
        "enableActiveStandby",
        "enableActiveStandbyPreemptive",
        "enableBgpOverLan",
        "enableEncryptVolume",
        "enableGatewayLoadBalancer",
        "enableHybridConnection",
        "enableJumboFrame",
        "enableMonitorGatewaySubnets",
        "enableMultiTierTransit",
        "enablePrivateOob",
        "enableSegmentation",
        "enableSpotInstance",
        "enableTransitSummarizeCidrToTgw",
        "enableVpcDnsServer",
        "excludedAdvertisedSpokeRoutes",
        "faultDomain",
        "filteredSpokeVpcRoutes",
        "gwName",
        "gwSize",
        "haBgpLanInterfaces",
        "haBgpLanIpLists",
        "imageVersion",
        "insaneMode",
        "insaneModeAz",
        "lanPrivateSubnet",
        "lanVpcId",
        "learnedCidrsApprovalMode",
        "localAsNumber",
        "monitorExcludeLists",
        "oobAvailabilityZone",
        "oobManagementSubnet",
        "prependAsPaths",
        "privateIp",
        "publicIp",
        "securityGroupId",
        "singleAzHa",
        "singleIpSnat",
        "softwareVersion",
        "spotPrice",
        "subnet",
        "tunnelDetectionTime",
        "vpcId",
        "vpcReg",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixTransitGatewaysGatewayListBgpLanInterface:getAviatrixTransitGatewaysGatewayListBgpLanInterface": {
      "properties": {
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnet",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixTransitGatewaysGatewayListHaBgpLanInterface:getAviatrixTransitGatewaysGatewayListHaBgpLanInterface": {
      "properties": {
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnet",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixVpcPrivateSubnet:getAviatrixVpcPrivateSubnet": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Private subnet CIDR.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the Aviatrix VPC.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Private subnet ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "name",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixVpcPublicSubnet:getAviatrixVpcPublicSubnet": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Private subnet CIDR.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the Aviatrix VPC.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Private subnet ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "name",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixVpcSubnet:getAviatrixVpcSubnet": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Private subnet CIDR.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the Aviatrix VPC.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Private subnet ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "name",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixVpcTrackerVpcList:getAviatrixVpcTrackerVpcList": {
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Filters VPC list by access account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cidr": {
          "type": "string",
          "description": "Filters VPC list by CIDR (AWS/Azure only).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cloudType": {
          "type": "integer",
          "description": "Filters VPC list by cloud provider id. For example, cloud_type = 1 will give all AWS VPCs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "instanceCount": {
          "type": "integer",
          "description": "Number of running instances in the VPC.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Subnet name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "region": {
          "type": "string",
          "description": "Filters VPC list by region (AWS/Azure only).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnets": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FgetAviatrixVpcTrackerVpcListSubnet:getAviatrixVpcTrackerVpcListSubnet"
          },
          "description": "List of subnets within this VPC (GCP only).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpcId": {
          "type": "string",
          "description": "VPC id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "cidr",
        "cloudType",
        "instanceCount",
        "name",
        "region",
        "subnets",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "aviatrix:index/getAviatrixVpcTrackerVpcListSubnet:getAviatrixVpcTrackerVpcListSubnet": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Filters VPC list by CIDR (AWS/Azure only).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gwIp": {
          "type": "string",
          "description": "Subnet gateway ip.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Subnet name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "region": {
          "type": "string",
          "description": "Filters VPC list by region (AWS/Azure only).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "gwIp",
        "name",
        "region"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the aviatrix 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": {
      "controllerIp": {
        "type": "string"
      },
      "password": {
        "type": "string"
      },
      "pathToCaCertificate": {
        "type": "string"
      },
      "username": {
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "controllerIp",
      "password",
      "username"
    ],
    "inputProperties": {
      "controllerIp": {
        "type": "string"
      },
      "ignoreTags": {
        "$ref": "#/types/aviatrix:index%2FProviderIgnoreTags:ProviderIgnoreTags",
        "description": "Configuration block with settings to ignore tags across all resources.\n"
      },
      "password": {
        "type": "string"
      },
      "pathToCaCertificate": {
        "type": "string"
      },
      "skipVersionValidation": {
        "type": "boolean"
      },
      "username": {
        "type": "string"
      },
      "verifySslCertificate": {
        "type": "boolean"
      }
    },
    "requiredInputs": [
      "controllerIp",
      "password",
      "username"
    ]
  },
  "resources": {
    "aviatrix:index/aviatrixAccount:AviatrixAccount": {
      "description": "The **aviatrix_account** resource allows the creation and management of Aviatrix cloud accounts.\n\n> **NOTE:** With the release of Controller 5.4 (compatible with Aviatrix provider R2.13), Role-Based Access Control (RBAC) is now integrated into the Accounts workflow. Any **aviatrix_account** created in 5.3 by default will have admin privileges (attached to the 'admin' RBAC permission group). In 5.4, any new accounts created will not be attached to any RBAC group unless otherwise specified through the **aviatrix_rbac_group_access_account_attachment** resource.\n\n\n## Import\n\n**account** can be imported using the `account_name` (when doing import, need to leave sensitive attributes blank), e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAccount:AviatrixAccount test account_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Account name. This can be used for logging in to CloudN console or UserConnect controller.\n"
        },
        "alicloudAccessKey": {
          "type": "string",
          "description": "Alibaba Cloud Access Key. Required when creating an account for Alibaba Cloud.\n",
          "secret": true
        },
        "alicloudAccountId": {
          "type": "string",
          "description": "Alibaba Cloud Account number to associate with Aviatrix account. Required when creating an account for Alibaba Cloud.\n"
        },
        "alicloudSecretKey": {
          "type": "string",
          "description": "Alibaba Cloud Secret Key. Required when creating an account for Alibaba Cloud.\n",
          "secret": true
        },
        "armApplicationId": {
          "type": "string",
          "description": "Azure ARM Application ID. Required when creating an account for Azure.\n",
          "secret": true
        },
        "armApplicationKey": {
          "type": "string",
          "description": "Azure ARM Application key. Required when creating an account for Azure.\n",
          "secret": true
        },
        "armDirectoryId": {
          "type": "string",
          "description": "Azure ARM Directory ID. Required when creating an account for Azure.\n",
          "secret": true
        },
        "armSubscriptionId": {
          "type": "string",
          "description": "Azure ARM Subscription ID. Required when creating an account for Azure.\n"
        },
        "auditAccount": {
          "type": "boolean",
          "description": "Enable account audit.\n"
        },
        "awsAccessKey": {
          "type": "string",
          "description": "AWS Access Key. Required when `aws_iam` is \"false\" and when creating an account for AWS.\n",
          "secret": true
        },
        "awsAccountNumber": {
          "type": "string",
          "description": "AWS Account number to associate with Aviatrix account. Required when creating an account for AWS.\n"
        },
        "awsCaCertPath": {
          "type": "string",
          "description": "(Optional) AWS Top Secret Region or Secret Region Custom Certificate Authority file name on the controller. Available as of provider R2.19.5+.\n"
        },
        "awsGatewayRoleApp": {
          "type": "string",
          "description": "A separate AWS App role ARN to assign to gateways created by the controller. Required when `aws_gateway_role_ec2` is set. Only allowed when `aws_iam`, `awsgov_iam`, or `awschina_iam` is \"true\" when creating an account for AWS, AWSGov or AWSChina, respectively. Available as of provider version R2.19+.\n"
        },
        "awsGatewayRoleEc2": {
          "type": "string",
          "description": "A separate AWS EC2 role ARN to assign to gateways created by the controller. Required when `aws_gateway_role_app` is set. Only allowed when `aws_iam`, `awsgov_iam`, or `awschina_iam` is \"true\" when creating an account for AWS, AWSGov or AWSChina, respectively. Available as of provider version R2.19+.\n"
        },
        "awsIam": {
          "type": "boolean",
          "description": "AWS IAM-role based flag, this option is for UserConnect.\n"
        },
        "awsRoleApp": {
          "type": "string",
          "description": "AWS App role ARN, this option is for UserConnect. Required when `aws_iam` is \"true\" and when creating an account for AWS.\n"
        },
        "awsRoleEc2": {
          "type": "string",
          "description": "AWS EC2 role ARN, this option is for UserConnect. Required when `aws_iam` is \"true\" and when creating an account for AWS.\n"
        },
        "awsSecretKey": {
          "type": "string",
          "description": "AWS Secret Key. Required when `aws_iam` is \"false\" and when creating an account for AWS.\n",
          "secret": true
        },
        "awschinaAccessKey": {
          "type": "string",
          "description": "AWSChina Access Key. Required when `awschina_iam` is \"false\" and when creating an account for AWSChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "awschinaAccountNumber": {
          "type": "string",
          "description": "AWSChina Account number to associate with Aviatrix account. Required when creating an account for AWSChina. Available as of provider version 2.19+.\n"
        },
        "awschinaIam": {
          "type": "boolean",
          "description": "AWSChina IAM-role based flag. Available as of provider version 2.19+.\n"
        },
        "awschinaRoleApp": {
          "type": "string",
          "description": "AWSChina App role ARN. Available when `awschina_iam` is \"true\" and when creating an account for AWSChina. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awschinaRoleEc2": {
          "type": "string",
          "description": "AWSChina EC2 role ARN. Available when `awschina_iam` is \"true\" and when creating an account for AWSChina. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awschinaSecretKey": {
          "type": "string",
          "description": "AWSChina Secret Key. Required when `awschina_iam` is \"false\" and when creating an account for AWSChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "awsgovAccessKey": {
          "type": "string",
          "description": "AWS Access Key. Required when creating an account for AWSGov.\n",
          "secret": true
        },
        "awsgovAccountNumber": {
          "type": "string",
          "description": "AWSGov Account number to associate with Aviatrix account. Required when creating an account for AWSGov.\n"
        },
        "awsgovIam": {
          "type": "boolean",
          "description": "AWSGov IAM-role based flag. Available as of provider version 2.19+.\n"
        },
        "awsgovRoleApp": {
          "type": "string",
          "description": "AWSGov App role ARN. Available when `awsgov_iam` is \"true\" and when creating an account for AWSGov. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awsgovRoleEc2": {
          "type": "string",
          "description": "AWSGov EC2 role ARN. Available when `awsgov_iam` is \"true\" and when creating an account for AWSGov. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awsgovSecretKey": {
          "type": "string",
          "description": "AWS Secret Key. Required when creating an account for AWSGov.\n",
          "secret": true
        },
        "awssAccountNumber": {
          "type": "string",
          "description": "AWS Secret Region Account Number. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCaChainCert": {
          "type": "string",
          "description": "AWS Secret Region Custom Certificate Authority local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awssCapAccountName": {
          "type": "string",
          "description": "AWS Secret Region Account Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCapAgency": {
          "type": "string",
          "description": "AWS Secret Region CAP Agency. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCapCert": {
          "type": "string",
          "description": "AWS Secret Region CAP Certificate local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awssCapCertKey": {
          "type": "string",
          "description": "AWS Secret Region CAP Certificate Key local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awssCapCertKeyPath": {
          "type": "string",
          "description": "(Optional) AWS Secret Region CAP Certificate Key file name on the controller. Available as of provider R2.19.5+.\n"
        },
        "awssCapCertPath": {
          "type": "string",
          "description": "(Optional) AWS Secret Region CAP Certificate file name on the controller. Available as of provider R2.19.5+.\n"
        },
        "awssCapRoleName": {
          "type": "string",
          "description": "AWS Secret Region Role Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCapUrl": {
          "type": "string",
          "description": "AWS Secret Region CAP Url. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsAccountNumber": {
          "type": "string",
          "description": "AWS Top Secret Region Account Number. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCaChainCert": {
          "type": "string",
          "description": "AWS Top Secret Region Custom Certificate Authority local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awstsCapAgency": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Agency. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCapCert": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Certificate local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awstsCapCertKey": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Certificate Key local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awstsCapCertKeyPath": {
          "type": "string",
          "description": "(Optional) AWS Top Secret Region CAP Certificate Key file name on the controller. Available as of provider R2.19.5+.\n"
        },
        "awstsCapCertPath": {
          "type": "string",
          "description": "(Optional) AWS Top Secret Region CAP Certificate file name on the controller. Available as of provider R2.19.5+.\n"
        },
        "awstsCapMission": {
          "type": "string",
          "description": "AWS Top Secret Region Mission. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCapRoleName": {
          "type": "string",
          "description": "AWS Top Secret Region Role Name. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCapUrl": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Url. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "azurechinaApplicationId": {
          "type": "string",
          "description": "AzureChina ARM Application ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "azurechinaApplicationKey": {
          "type": "string",
          "description": "AzureChina ARM Application key. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "azurechinaDirectoryId": {
          "type": "string",
          "description": "AzureChina ARM Directory ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "azurechinaSubscriptionId": {
          "type": "string",
          "description": "AzureChina ARM Subscription ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n"
        },
        "azuregovApplicationId": {
          "type": "string",
          "description": "AzureGov ARM Application ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
          "secret": true
        },
        "azuregovApplicationKey": {
          "type": "string",
          "description": "AzureGov ARM Application key. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
          "secret": true
        },
        "azuregovDirectoryId": {
          "type": "string",
          "description": "AzureGov ARM Directory ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
          "secret": true
        },
        "azuregovSubscriptionId": {
          "type": "string",
          "description": "AzureGov ARM Subscription ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider. Only AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina and Alibaba Cloud are supported currently. Enter 1 for AWS, 4 for GCP, 8 for Azure, 16 for OCI, 32 for AzureGov, 256 for AWSGov, 1024 for AWSChina or 2048 for AzureChina, 8192 for Alibaba Cloud.\n"
        },
        "gcloudProjectCredentialsFilepath": {
          "type": "string",
          "description": "GCloud Project Credentials [local filepath].json. Required when creating an account for GCP.\n"
        },
        "gcloudProjectId": {
          "type": "string",
          "description": "GCloud Project ID.\n"
        },
        "ociApiPrivateKeyFilepath": {
          "type": "string",
          "description": "Oracle OCI API Private Key local file path. Required when creating an account for OCI.\n",
          "secret": true
        },
        "ociCompartmentId": {
          "type": "string",
          "description": "Oracle OCI Compartment ID. Required when creating an account for OCI.\n",
          "secret": true
        },
        "ociTenancyId": {
          "type": "string",
          "description": "Oracle OCI Tenancy ID. Required when creating an account for OCI.\n",
          "secret": true
        },
        "ociUserId": {
          "type": "string",
          "description": "Oracle OCI User ID. Required when creating an account for OCI.\n",
          "secret": true
        },
        "rbacGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of existing RBAC group names. This attribute should only be used when creating an account. Updating this attribute will have no effect. Available as of provider version R2.23.0+.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "awsCaCertPath",
        "awsRoleApp",
        "awsRoleEc2",
        "awschinaRoleApp",
        "awschinaRoleEc2",
        "awsgovRoleApp",
        "awsgovRoleEc2",
        "awssCapCertKeyPath",
        "awssCapCertPath",
        "awstsCapCertKeyPath",
        "awstsCapCertPath",
        "cloudType"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Account name. This can be used for logging in to CloudN console or UserConnect controller.\n",
          "willReplaceOnChanges": true
        },
        "alicloudAccessKey": {
          "type": "string",
          "description": "Alibaba Cloud Access Key. Required when creating an account for Alibaba Cloud.\n",
          "secret": true
        },
        "alicloudAccountId": {
          "type": "string",
          "description": "Alibaba Cloud Account number to associate with Aviatrix account. Required when creating an account for Alibaba Cloud.\n"
        },
        "alicloudSecretKey": {
          "type": "string",
          "description": "Alibaba Cloud Secret Key. Required when creating an account for Alibaba Cloud.\n",
          "secret": true
        },
        "armApplicationId": {
          "type": "string",
          "description": "Azure ARM Application ID. Required when creating an account for Azure.\n",
          "secret": true
        },
        "armApplicationKey": {
          "type": "string",
          "description": "Azure ARM Application key. Required when creating an account for Azure.\n",
          "secret": true
        },
        "armDirectoryId": {
          "type": "string",
          "description": "Azure ARM Directory ID. Required when creating an account for Azure.\n",
          "secret": true
        },
        "armSubscriptionId": {
          "type": "string",
          "description": "Azure ARM Subscription ID. Required when creating an account for Azure.\n"
        },
        "auditAccount": {
          "type": "boolean",
          "description": "Enable account audit.\n"
        },
        "awsAccessKey": {
          "type": "string",
          "description": "AWS Access Key. Required when `aws_iam` is \"false\" and when creating an account for AWS.\n",
          "secret": true
        },
        "awsAccountNumber": {
          "type": "string",
          "description": "AWS Account number to associate with Aviatrix account. Required when creating an account for AWS.\n"
        },
        "awsGatewayRoleApp": {
          "type": "string",
          "description": "A separate AWS App role ARN to assign to gateways created by the controller. Required when `aws_gateway_role_ec2` is set. Only allowed when `aws_iam`, `awsgov_iam`, or `awschina_iam` is \"true\" when creating an account for AWS, AWSGov or AWSChina, respectively. Available as of provider version R2.19+.\n"
        },
        "awsGatewayRoleEc2": {
          "type": "string",
          "description": "A separate AWS EC2 role ARN to assign to gateways created by the controller. Required when `aws_gateway_role_app` is set. Only allowed when `aws_iam`, `awsgov_iam`, or `awschina_iam` is \"true\" when creating an account for AWS, AWSGov or AWSChina, respectively. Available as of provider version R2.19+.\n"
        },
        "awsIam": {
          "type": "boolean",
          "description": "AWS IAM-role based flag, this option is for UserConnect.\n"
        },
        "awsRoleApp": {
          "type": "string",
          "description": "AWS App role ARN, this option is for UserConnect. Required when `aws_iam` is \"true\" and when creating an account for AWS.\n"
        },
        "awsRoleEc2": {
          "type": "string",
          "description": "AWS EC2 role ARN, this option is for UserConnect. Required when `aws_iam` is \"true\" and when creating an account for AWS.\n"
        },
        "awsSecretKey": {
          "type": "string",
          "description": "AWS Secret Key. Required when `aws_iam` is \"false\" and when creating an account for AWS.\n",
          "secret": true
        },
        "awschinaAccessKey": {
          "type": "string",
          "description": "AWSChina Access Key. Required when `awschina_iam` is \"false\" and when creating an account for AWSChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "awschinaAccountNumber": {
          "type": "string",
          "description": "AWSChina Account number to associate with Aviatrix account. Required when creating an account for AWSChina. Available as of provider version 2.19+.\n"
        },
        "awschinaIam": {
          "type": "boolean",
          "description": "AWSChina IAM-role based flag. Available as of provider version 2.19+.\n"
        },
        "awschinaRoleApp": {
          "type": "string",
          "description": "AWSChina App role ARN. Available when `awschina_iam` is \"true\" and when creating an account for AWSChina. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awschinaRoleEc2": {
          "type": "string",
          "description": "AWSChina EC2 role ARN. Available when `awschina_iam` is \"true\" and when creating an account for AWSChina. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awschinaSecretKey": {
          "type": "string",
          "description": "AWSChina Secret Key. Required when `awschina_iam` is \"false\" and when creating an account for AWSChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "awsgovAccessKey": {
          "type": "string",
          "description": "AWS Access Key. Required when creating an account for AWSGov.\n",
          "secret": true
        },
        "awsgovAccountNumber": {
          "type": "string",
          "description": "AWSGov Account number to associate with Aviatrix account. Required when creating an account for AWSGov.\n"
        },
        "awsgovIam": {
          "type": "boolean",
          "description": "AWSGov IAM-role based flag. Available as of provider version 2.19+.\n"
        },
        "awsgovRoleApp": {
          "type": "string",
          "description": "AWSGov App role ARN. Available when `awsgov_iam` is \"true\" and when creating an account for AWSGov. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awsgovRoleEc2": {
          "type": "string",
          "description": "AWSGov EC2 role ARN. Available when `awsgov_iam` is \"true\" and when creating an account for AWSGov. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
        },
        "awsgovSecretKey": {
          "type": "string",
          "description": "AWS Secret Key. Required when creating an account for AWSGov.\n",
          "secret": true
        },
        "awssAccountNumber": {
          "type": "string",
          "description": "AWS Secret Region Account Number. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCaChainCert": {
          "type": "string",
          "description": "AWS Secret Region Custom Certificate Authority local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awssCapAccountName": {
          "type": "string",
          "description": "AWS Secret Region Account Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCapAgency": {
          "type": "string",
          "description": "AWS Secret Region CAP Agency. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCapCert": {
          "type": "string",
          "description": "AWS Secret Region CAP Certificate local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awssCapCertKey": {
          "type": "string",
          "description": "AWS Secret Region CAP Certificate Key local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awssCapRoleName": {
          "type": "string",
          "description": "AWS Secret Region Role Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awssCapUrl": {
          "type": "string",
          "description": "AWS Secret Region CAP Url. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsAccountNumber": {
          "type": "string",
          "description": "AWS Top Secret Region Account Number. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCaChainCert": {
          "type": "string",
          "description": "AWS Top Secret Region Custom Certificate Authority local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awstsCapAgency": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Agency. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCapCert": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Certificate local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awstsCapCertKey": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Certificate Key local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
          "secret": true
        },
        "awstsCapMission": {
          "type": "string",
          "description": "AWS Top Secret Region Mission. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCapRoleName": {
          "type": "string",
          "description": "AWS Top Secret Region Role Name. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "awstsCapUrl": {
          "type": "string",
          "description": "AWS Top Secret Region CAP Url. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
        },
        "azurechinaApplicationId": {
          "type": "string",
          "description": "AzureChina ARM Application ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "azurechinaApplicationKey": {
          "type": "string",
          "description": "AzureChina ARM Application key. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "azurechinaDirectoryId": {
          "type": "string",
          "description": "AzureChina ARM Directory ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
          "secret": true
        },
        "azurechinaSubscriptionId": {
          "type": "string",
          "description": "AzureChina ARM Subscription ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n"
        },
        "azuregovApplicationId": {
          "type": "string",
          "description": "AzureGov ARM Application ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
          "secret": true
        },
        "azuregovApplicationKey": {
          "type": "string",
          "description": "AzureGov ARM Application key. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
          "secret": true
        },
        "azuregovDirectoryId": {
          "type": "string",
          "description": "AzureGov ARM Directory ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
          "secret": true
        },
        "azuregovSubscriptionId": {
          "type": "string",
          "description": "AzureGov ARM Subscription ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider. Only AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina and Alibaba Cloud are supported currently. Enter 1 for AWS, 4 for GCP, 8 for Azure, 16 for OCI, 32 for AzureGov, 256 for AWSGov, 1024 for AWSChina or 2048 for AzureChina, 8192 for Alibaba Cloud.\n"
        },
        "gcloudProjectCredentialsFilepath": {
          "type": "string",
          "description": "GCloud Project Credentials [local filepath].json. Required when creating an account for GCP.\n"
        },
        "gcloudProjectId": {
          "type": "string",
          "description": "GCloud Project ID.\n"
        },
        "ociApiPrivateKeyFilepath": {
          "type": "string",
          "description": "Oracle OCI API Private Key local file path. Required when creating an account for OCI.\n",
          "secret": true
        },
        "ociCompartmentId": {
          "type": "string",
          "description": "Oracle OCI Compartment ID. Required when creating an account for OCI.\n",
          "secret": true
        },
        "ociTenancyId": {
          "type": "string",
          "description": "Oracle OCI Tenancy ID. Required when creating an account for OCI.\n",
          "secret": true
        },
        "ociUserId": {
          "type": "string",
          "description": "Oracle OCI User ID. Required when creating an account for OCI.\n",
          "secret": true
        },
        "rbacGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of existing RBAC group names. This attribute should only be used when creating an account. Updating this attribute will have no effect. Available as of provider version R2.23.0+.\n"
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAccount resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Account name. This can be used for logging in to CloudN console or UserConnect controller.\n",
            "willReplaceOnChanges": true
          },
          "alicloudAccessKey": {
            "type": "string",
            "description": "Alibaba Cloud Access Key. Required when creating an account for Alibaba Cloud.\n",
            "secret": true
          },
          "alicloudAccountId": {
            "type": "string",
            "description": "Alibaba Cloud Account number to associate with Aviatrix account. Required when creating an account for Alibaba Cloud.\n"
          },
          "alicloudSecretKey": {
            "type": "string",
            "description": "Alibaba Cloud Secret Key. Required when creating an account for Alibaba Cloud.\n",
            "secret": true
          },
          "armApplicationId": {
            "type": "string",
            "description": "Azure ARM Application ID. Required when creating an account for Azure.\n",
            "secret": true
          },
          "armApplicationKey": {
            "type": "string",
            "description": "Azure ARM Application key. Required when creating an account for Azure.\n",
            "secret": true
          },
          "armDirectoryId": {
            "type": "string",
            "description": "Azure ARM Directory ID. Required when creating an account for Azure.\n",
            "secret": true
          },
          "armSubscriptionId": {
            "type": "string",
            "description": "Azure ARM Subscription ID. Required when creating an account for Azure.\n"
          },
          "auditAccount": {
            "type": "boolean",
            "description": "Enable account audit.\n"
          },
          "awsAccessKey": {
            "type": "string",
            "description": "AWS Access Key. Required when `aws_iam` is \"false\" and when creating an account for AWS.\n",
            "secret": true
          },
          "awsAccountNumber": {
            "type": "string",
            "description": "AWS Account number to associate with Aviatrix account. Required when creating an account for AWS.\n"
          },
          "awsCaCertPath": {
            "type": "string",
            "description": "(Optional) AWS Top Secret Region or Secret Region Custom Certificate Authority file name on the controller. Available as of provider R2.19.5+.\n"
          },
          "awsGatewayRoleApp": {
            "type": "string",
            "description": "A separate AWS App role ARN to assign to gateways created by the controller. Required when `aws_gateway_role_ec2` is set. Only allowed when `aws_iam`, `awsgov_iam`, or `awschina_iam` is \"true\" when creating an account for AWS, AWSGov or AWSChina, respectively. Available as of provider version R2.19+.\n"
          },
          "awsGatewayRoleEc2": {
            "type": "string",
            "description": "A separate AWS EC2 role ARN to assign to gateways created by the controller. Required when `aws_gateway_role_app` is set. Only allowed when `aws_iam`, `awsgov_iam`, or `awschina_iam` is \"true\" when creating an account for AWS, AWSGov or AWSChina, respectively. Available as of provider version R2.19+.\n"
          },
          "awsIam": {
            "type": "boolean",
            "description": "AWS IAM-role based flag, this option is for UserConnect.\n"
          },
          "awsRoleApp": {
            "type": "string",
            "description": "AWS App role ARN, this option is for UserConnect. Required when `aws_iam` is \"true\" and when creating an account for AWS.\n"
          },
          "awsRoleEc2": {
            "type": "string",
            "description": "AWS EC2 role ARN, this option is for UserConnect. Required when `aws_iam` is \"true\" and when creating an account for AWS.\n"
          },
          "awsSecretKey": {
            "type": "string",
            "description": "AWS Secret Key. Required when `aws_iam` is \"false\" and when creating an account for AWS.\n",
            "secret": true
          },
          "awschinaAccessKey": {
            "type": "string",
            "description": "AWSChina Access Key. Required when `awschina_iam` is \"false\" and when creating an account for AWSChina. Available as of provider version 2.19+.\n",
            "secret": true
          },
          "awschinaAccountNumber": {
            "type": "string",
            "description": "AWSChina Account number to associate with Aviatrix account. Required when creating an account for AWSChina. Available as of provider version 2.19+.\n"
          },
          "awschinaIam": {
            "type": "boolean",
            "description": "AWSChina IAM-role based flag. Available as of provider version 2.19+.\n"
          },
          "awschinaRoleApp": {
            "type": "string",
            "description": "AWSChina App role ARN. Available when `awschina_iam` is \"true\" and when creating an account for AWSChina. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
          },
          "awschinaRoleEc2": {
            "type": "string",
            "description": "AWSChina EC2 role ARN. Available when `awschina_iam` is \"true\" and when creating an account for AWSChina. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
          },
          "awschinaSecretKey": {
            "type": "string",
            "description": "AWSChina Secret Key. Required when `awschina_iam` is \"false\" and when creating an account for AWSChina. Available as of provider version 2.19+.\n",
            "secret": true
          },
          "awsgovAccessKey": {
            "type": "string",
            "description": "AWS Access Key. Required when creating an account for AWSGov.\n",
            "secret": true
          },
          "awsgovAccountNumber": {
            "type": "string",
            "description": "AWSGov Account number to associate with Aviatrix account. Required when creating an account for AWSGov.\n"
          },
          "awsgovIam": {
            "type": "boolean",
            "description": "AWSGov IAM-role based flag. Available as of provider version 2.19+.\n"
          },
          "awsgovRoleApp": {
            "type": "string",
            "description": "AWSGov App role ARN. Available when `awsgov_iam` is \"true\" and when creating an account for AWSGov. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
          },
          "awsgovRoleEc2": {
            "type": "string",
            "description": "AWSGov EC2 role ARN. Available when `awsgov_iam` is \"true\" and when creating an account for AWSGov. If left empty, the ARN will be computed. Available as of provider version 2.19+.\n"
          },
          "awsgovSecretKey": {
            "type": "string",
            "description": "AWS Secret Key. Required when creating an account for AWSGov.\n",
            "secret": true
          },
          "awssAccountNumber": {
            "type": "string",
            "description": "AWS Secret Region Account Number. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awssCaChainCert": {
            "type": "string",
            "description": "AWS Secret Region Custom Certificate Authority local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "secret": true
          },
          "awssCapAccountName": {
            "type": "string",
            "description": "AWS Secret Region Account Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awssCapAgency": {
            "type": "string",
            "description": "AWS Secret Region CAP Agency. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awssCapCert": {
            "type": "string",
            "description": "AWS Secret Region CAP Certificate local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "secret": true
          },
          "awssCapCertKey": {
            "type": "string",
            "description": "AWS Secret Region CAP Certificate Key local file path. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "secret": true
          },
          "awssCapCertKeyPath": {
            "type": "string",
            "description": "(Optional) AWS Secret Region CAP Certificate Key file name on the controller. Available as of provider R2.19.5+.\n"
          },
          "awssCapCertPath": {
            "type": "string",
            "description": "(Optional) AWS Secret Region CAP Certificate file name on the controller. Available as of provider R2.19.5+.\n"
          },
          "awssCapRoleName": {
            "type": "string",
            "description": "AWS Secret Region Role Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awssCapUrl": {
            "type": "string",
            "description": "AWS Secret Region CAP Url. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awstsAccountNumber": {
            "type": "string",
            "description": "AWS Top Secret Region Account Number. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awstsCaChainCert": {
            "type": "string",
            "description": "AWS Top Secret Region Custom Certificate Authority local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
            "secret": true
          },
          "awstsCapAgency": {
            "type": "string",
            "description": "AWS Top Secret Region CAP Agency. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awstsCapCert": {
            "type": "string",
            "description": "AWS Top Secret Region CAP Certificate local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
            "secret": true
          },
          "awstsCapCertKey": {
            "type": "string",
            "description": "AWS Top Secret Region CAP Certificate Key local file path. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
            "secret": true
          },
          "awstsCapCertKeyPath": {
            "type": "string",
            "description": "(Optional) AWS Top Secret Region CAP Certificate Key file name on the controller. Available as of provider R2.19.5+.\n"
          },
          "awstsCapCertPath": {
            "type": "string",
            "description": "(Optional) AWS Top Secret Region CAP Certificate file name on the controller. Available as of provider R2.19.5+.\n"
          },
          "awstsCapMission": {
            "type": "string",
            "description": "AWS Top Secret Region Mission. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awstsCapRoleName": {
            "type": "string",
            "description": "AWS Top Secret Region Role Name. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "awstsCapUrl": {
            "type": "string",
            "description": "AWS Top Secret Region CAP Url. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n"
          },
          "azurechinaApplicationId": {
            "type": "string",
            "description": "AzureChina ARM Application ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
            "secret": true
          },
          "azurechinaApplicationKey": {
            "type": "string",
            "description": "AzureChina ARM Application key. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
            "secret": true
          },
          "azurechinaDirectoryId": {
            "type": "string",
            "description": "AzureChina ARM Directory ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n",
            "secret": true
          },
          "azurechinaSubscriptionId": {
            "type": "string",
            "description": "AzureChina ARM Subscription ID. Required when creating an account for AzureChina. Available as of provider version 2.19+.\n"
          },
          "azuregovApplicationId": {
            "type": "string",
            "description": "AzureGov ARM Application ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
            "secret": true
          },
          "azuregovApplicationKey": {
            "type": "string",
            "description": "AzureGov ARM Application key. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
            "secret": true
          },
          "azuregovDirectoryId": {
            "type": "string",
            "description": "AzureGov ARM Directory ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n",
            "secret": true
          },
          "azuregovSubscriptionId": {
            "type": "string",
            "description": "AzureGov ARM Subscription ID. Required when creating an account for AzureGov. Available as of provider version R2.19+.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider. Only AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina and Alibaba Cloud are supported currently. Enter 1 for AWS, 4 for GCP, 8 for Azure, 16 for OCI, 32 for AzureGov, 256 for AWSGov, 1024 for AWSChina or 2048 for AzureChina, 8192 for Alibaba Cloud.\n"
          },
          "gcloudProjectCredentialsFilepath": {
            "type": "string",
            "description": "GCloud Project Credentials [local filepath].json. Required when creating an account for GCP.\n"
          },
          "gcloudProjectId": {
            "type": "string",
            "description": "GCloud Project ID.\n"
          },
          "ociApiPrivateKeyFilepath": {
            "type": "string",
            "description": "Oracle OCI API Private Key local file path. Required when creating an account for OCI.\n",
            "secret": true
          },
          "ociCompartmentId": {
            "type": "string",
            "description": "Oracle OCI Compartment ID. Required when creating an account for OCI.\n",
            "secret": true
          },
          "ociTenancyId": {
            "type": "string",
            "description": "Oracle OCI Tenancy ID. Required when creating an account for OCI.\n",
            "secret": true
          },
          "ociUserId": {
            "type": "string",
            "description": "Oracle OCI User ID. Required when creating an account for OCI.\n",
            "secret": true
          },
          "rbacGroups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of existing RBAC group names. This attribute should only be used when creating an account. Updating this attribute will have no effect. Available as of provider version R2.23.0+.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAccountUser:AviatrixAccountUser": {
      "description": "The **aviatrix_account_user** resource allows the creation and management of Aviatrix user accounts.\n\n> **NOTE:** With the release of Controller 5.4 (compatible with Aviatrix provider R2.13), Role-Based Access Control (RBAC) is now integrated into the Accounts workflow. Any **aviatrix_account_user** created in 5.3 by default will have admin privileges (attached to the 'admin' RBAC permission group). In 5.4, any new account users created will no longer have the option to specify an `account_name`, but rather have the option to attach the user to specific RBAC groups through the **aviatrix_rbac_group_user_attachment** resource for more granular security control. Account users created in 5.4 will have minimal access (read_only) unless otherwise specified in the RBAC group permissions that the users are attached to.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix User Account\nconst testAccountuser = new aviatrix.AviatrixAccountUser(\"test_accountuser\", {\n    email: \"username1@testdomain.com\",\n    password: \"passwordforuser1-1234\",\n    username: \"username1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix User Account\ntest_accountuser = aviatrix.AviatrixAccountUser(\"testAccountuser\",\n    email=\"username1@testdomain.com\",\n    password=\"passwordforuser1-1234\",\n    username=\"username1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix User Account\n    var testAccountuser = new Aviatrix.AviatrixAccountUser(\"testAccountuser\", new()\n    {\n        Email = \"username1@testdomain.com\",\n        Password = \"passwordforuser1-1234\",\n        Username = \"username1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAccountUser(ctx, \"testAccountuser\", &aviatrix.AviatrixAccountUserArgs{\n\t\t\tEmail:    pulumi.String(\"username1@testdomain.com\"),\n\t\t\tPassword: pulumi.String(\"passwordforuser1-1234\"),\n\t\t\tUsername: pulumi.String(\"username1\"),\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.aviatrix.AviatrixAccountUser;\nimport com.pulumi.aviatrix.AviatrixAccountUserArgs;\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 testAccountuser = new AviatrixAccountUser(\"testAccountuser\", AviatrixAccountUserArgs.builder()        \n            .email(\"username1@testdomain.com\")\n            .password(\"passwordforuser1-1234\")\n            .username(\"username1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix User Account\n  testAccountuser:\n    type: aviatrix:AviatrixAccountUser\n    properties:\n      email: username1@testdomain.com\n      password: passwordforuser1-1234\n      username: username1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**account_user** can be imported using the `username` (when doing import, need to leave `password` argument blank), e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAccountUser:AviatrixAccountUser test username\n```\n\n ",
      "properties": {
        "email": {
          "type": "string",
          "description": "Email of address of account user to be created.\n"
        },
        "password": {
          "type": "string",
          "description": "Login password for the account user to be created. If password is changed, current account will be destroyed and a new account will be created.\n",
          "secret": true
        },
        "username": {
          "type": "string",
          "description": "Name of account user to be created. It can only include alphanumeric characters(lower case only), hyphens, dots or underscores. 1 to 80 in length. No spaces are allowed.\n"
        }
      },
      "type": "object",
      "required": [
        "email",
        "password",
        "username"
      ],
      "inputProperties": {
        "email": {
          "type": "string",
          "description": "Email of address of account user to be created.\n"
        },
        "password": {
          "type": "string",
          "description": "Login password for the account user to be created. If password is changed, current account will be destroyed and a new account will be created.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "username": {
          "type": "string",
          "description": "Name of account user to be created. It can only include alphanumeric characters(lower case only), hyphens, dots or underscores. 1 to 80 in length. No spaces are allowed.\n"
        }
      },
      "requiredInputs": [
        "email",
        "password",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAccountUser resources.\n",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email of address of account user to be created.\n"
          },
          "password": {
            "type": "string",
            "description": "Login password for the account user to be created. If password is changed, current account will be destroyed and a new account will be created.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "username": {
            "type": "string",
            "description": "Name of account user to be created. It can only include alphanumeric characters(lower case only), hyphens, dots or underscores. 1 to 80 in length. No spaces are allowed.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAppDomain:AviatrixAppDomain": {
      "description": "!> **WARNING** **aviatrix_app_domain** is part of the Micro-segmentation private preview feature for R2.22.0. If you wish to enable a private preview mode feature, please contact your sales representative or Aviatrix Support.\nThe **aviatrix_app_domain** resource handles the creation and management of App Domains. Available as of Provider R2.22.0+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix App Domain\nconst testAppDomainIp = new aviatrix.AviatrixAppDomain(\"test_app_domain_ip\", {\n    selector: {\n        matchExpressions: [\n            {\n                accountName: \"devops\",\n                region: \"us-west-2\",\n                tags: {\n                    k3: \"v3\",\n                },\n                type: \"vm\",\n            },\n            {\n                cidr: \"10.0.0.0/16\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix App Domain\ntest_app_domain_ip = aviatrix.AviatrixAppDomain(\"testAppDomainIp\", selector=aviatrix.AviatrixAppDomainSelectorArgs(\n    match_expressions=[\n        aviatrix.AviatrixAppDomainSelectorMatchExpressionArgs(\n            account_name=\"devops\",\n            region=\"us-west-2\",\n            tags={\n                \"k3\": \"v3\",\n            },\n            type=\"vm\",\n        ),\n        aviatrix.AviatrixAppDomainSelectorMatchExpressionArgs(\n            cidr=\"10.0.0.0/16\",\n        ),\n    ],\n))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix App Domain\n    var testAppDomainIp = new Aviatrix.AviatrixAppDomain(\"testAppDomainIp\", new()\n    {\n        Selector = new Aviatrix.Inputs.AviatrixAppDomainSelectorArgs\n        {\n            MatchExpressions = new[]\n            {\n                new Aviatrix.Inputs.AviatrixAppDomainSelectorMatchExpressionArgs\n                {\n                    AccountName = \"devops\",\n                    Region = \"us-west-2\",\n                    Tags = \n                    {\n                        { \"k3\", \"v3\" },\n                    },\n                    Type = \"vm\",\n                },\n                new Aviatrix.Inputs.AviatrixAppDomainSelectorMatchExpressionArgs\n                {\n                    Cidr = \"10.0.0.0/16\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAppDomain(ctx, \"testAppDomainIp\", &aviatrix.AviatrixAppDomainArgs{\n\t\t\tSelector: &AviatrixAppDomainSelectorArgs{\n\t\t\t\tMatchExpressions: AviatrixAppDomainSelectorMatchExpressionArray{\n\t\t\t\t\t&AviatrixAppDomainSelectorMatchExpressionArgs{\n\t\t\t\t\t\tAccountName: pulumi.String(\"devops\"),\n\t\t\t\t\t\tRegion:      pulumi.String(\"us-west-2\"),\n\t\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\t\"k3\": pulumi.String(\"v3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tType: pulumi.String(\"vm\"),\n\t\t\t\t\t},\n\t\t\t\t\t&AviatrixAppDomainSelectorMatchExpressionArgs{\n\t\t\t\t\t\tCidr: pulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixAppDomain;\nimport com.pulumi.aviatrix.AviatrixAppDomainArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixAppDomainSelectorArgs;\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 testAppDomainIp = new AviatrixAppDomain(\"testAppDomainIp\", AviatrixAppDomainArgs.builder()        \n            .selector(AviatrixAppDomainSelectorArgs.builder()\n                .matchExpressions(                \n                    AviatrixAppDomainSelectorMatchExpressionArgs.builder()\n                        .accountName(\"devops\")\n                        .region(\"us-west-2\")\n                        .tags(Map.of(\"k3\", \"v3\"))\n                        .type(\"vm\")\n                        .build(),\n                    AviatrixAppDomainSelectorMatchExpressionArgs.builder()\n                        .cidr(\"10.0.0.0/16\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix App Domain\n  testAppDomainIp:\n    type: aviatrix:AviatrixAppDomain\n    properties:\n      selector:\n        matchExpressions:\n          - accountName: devops\n            region: us-west-2\n            tags:\n              k3: v3\n            type: vm\n          - cidr: 10.0.0.0/16\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_app_domain** can be imported using the `uuid`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAppDomain:AviatrixAppDomain test 41984f8b-5a37-4272-89b3-57c79e9ff77c\n```\n\n ",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the App Domain.\n"
        },
        "selector": {
          "$ref": "#/types/aviatrix:index%2FAviatrixAppDomainSelector:AviatrixAppDomainSelector",
          "description": "Block containing match expressions to filter the App Domain.\n"
        },
        "uuid": {
          "type": "string",
          "description": "UUID of the App Domain.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "selector",
        "uuid"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "Name of the App Domain.\n"
        },
        "selector": {
          "$ref": "#/types/aviatrix:index%2FAviatrixAppDomainSelector:AviatrixAppDomainSelector",
          "description": "Block containing match expressions to filter the App Domain.\n"
        }
      },
      "requiredInputs": [
        "selector"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAppDomain resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the App Domain.\n"
          },
          "selector": {
            "$ref": "#/types/aviatrix:index%2FAviatrixAppDomainSelector:AviatrixAppDomainSelector",
            "description": "Block containing match expressions to filter the App Domain.\n"
          },
          "uuid": {
            "type": "string",
            "description": "UUID of the App Domain.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixArmPeer:AviatrixArmPeer": {
      "description": "The **aviatrix_arm_peer** resource allows the creation and management of Aviatrix ARM peerings.\n\n!> **WARNING:** The `aviatrix.AviatrixArmPeer` resource is deprecated as of **Release 2.12**. It is currently kept for backward-compatibility and will be removed in the future. Please use the Azure peer resource instead. If this is already in the state, please remove it from the state file and import as `aviatrix.AviatrixAzurePeer`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix ARM Peering\nconst testArmpeer = new aviatrix.AviatrixArmPeer(\"test_armpeer\", {\n    accountName1: \"test1-account\",\n    accountName2: \"test2-account\",\n    vnetNameResourceGroup1: \"vpc-abcd1234\",\n    vnetNameResourceGroup2: \"vpc-rdef3333\",\n    vnetReg1: \"us-east-1\",\n    vnetReg2: \"us-west-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix ARM Peering\ntest_armpeer = aviatrix.AviatrixArmPeer(\"testArmpeer\",\n    account_name1=\"test1-account\",\n    account_name2=\"test2-account\",\n    vnet_name_resource_group1=\"vpc-abcd1234\",\n    vnet_name_resource_group2=\"vpc-rdef3333\",\n    vnet_reg1=\"us-east-1\",\n    vnet_reg2=\"us-west-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix ARM Peering\n    var testArmpeer = new Aviatrix.AviatrixArmPeer(\"testArmpeer\", new()\n    {\n        AccountName1 = \"test1-account\",\n        AccountName2 = \"test2-account\",\n        VnetNameResourceGroup1 = \"vpc-abcd1234\",\n        VnetNameResourceGroup2 = \"vpc-rdef3333\",\n        VnetReg1 = \"us-east-1\",\n        VnetReg2 = \"us-west-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixArmPeer(ctx, \"testArmpeer\", &aviatrix.AviatrixArmPeerArgs{\n\t\t\tAccountName1:           pulumi.String(\"test1-account\"),\n\t\t\tAccountName2:           pulumi.String(\"test2-account\"),\n\t\t\tVnetNameResourceGroup1: pulumi.String(\"vpc-abcd1234\"),\n\t\t\tVnetNameResourceGroup2: pulumi.String(\"vpc-rdef3333\"),\n\t\t\tVnetReg1:               pulumi.String(\"us-east-1\"),\n\t\t\tVnetReg2:               pulumi.String(\"us-west-1\"),\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.aviatrix.AviatrixArmPeer;\nimport com.pulumi.aviatrix.AviatrixArmPeerArgs;\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 testArmpeer = new AviatrixArmPeer(\"testArmpeer\", AviatrixArmPeerArgs.builder()        \n            .accountName1(\"test1-account\")\n            .accountName2(\"test2-account\")\n            .vnetNameResourceGroup1(\"vpc-abcd1234\")\n            .vnetNameResourceGroup2(\"vpc-rdef3333\")\n            .vnetReg1(\"us-east-1\")\n            .vnetReg2(\"us-west-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix ARM Peering\n  testArmpeer:\n    type: aviatrix:AviatrixArmPeer\n    properties:\n      accountName1: test1-account\n      accountName2: test2-account\n      vnetNameResourceGroup1: vpc-abcd1234\n      vnetNameResourceGroup2: vpc-rdef3333\n      vnetReg1: us-east-1\n      vnetReg2: us-west-1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**arm_peer** can be imported using the `vnet_name_resource_group1` and `vnet_name_resource_group2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixArmPeer:AviatrixArmPeer test vnet_name_resource_group1~vnet_name_resource_group2\n```\n\n ",
      "properties": {
        "accountName1": {
          "type": "string",
          "description": "This parameter represents the name of an Azure Cloud-Account in Aviatrix controller.\n"
        },
        "accountName2": {
          "type": "string",
          "description": "This parameter represents the name of an Azure Cloud-Account in Aviatrix controller.\n"
        },
        "vnetCidr1s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VNet CIDR of vnet_name_resource_group1.\n"
        },
        "vnetCidr2s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VNet CIDR of vnet_name_resource_group2.\n"
        },
        "vnetNameResourceGroup1": {
          "type": "string",
          "description": "VNet-Name of Azure cloud. Example: \"VNet_Name:Resource_Group_Name\".\n"
        },
        "vnetNameResourceGroup2": {
          "type": "string",
          "description": "VNet-Name of Azure cloud. Example: \"VNet_Name:Resource_Group_Name\".\n"
        },
        "vnetReg1": {
          "type": "string",
          "description": "Region of Azure cloud. Example: \"East US 2\".\n"
        },
        "vnetReg2": {
          "type": "string",
          "description": "Region of Azure cloud. Example: \"East US 2\".\n"
        }
      },
      "type": "object",
      "required": [
        "accountName1",
        "accountName2",
        "vnetCidr1s",
        "vnetCidr2s",
        "vnetNameResourceGroup1",
        "vnetNameResourceGroup2",
        "vnetReg1",
        "vnetReg2"
      ],
      "inputProperties": {
        "accountName1": {
          "type": "string",
          "description": "This parameter represents the name of an Azure Cloud-Account in Aviatrix controller.\n",
          "willReplaceOnChanges": true
        },
        "accountName2": {
          "type": "string",
          "description": "This parameter represents the name of an Azure Cloud-Account in Aviatrix controller.\n",
          "willReplaceOnChanges": true
        },
        "vnetNameResourceGroup1": {
          "type": "string",
          "description": "VNet-Name of Azure cloud. Example: \"VNet_Name:Resource_Group_Name\".\n",
          "willReplaceOnChanges": true
        },
        "vnetNameResourceGroup2": {
          "type": "string",
          "description": "VNet-Name of Azure cloud. Example: \"VNet_Name:Resource_Group_Name\".\n",
          "willReplaceOnChanges": true
        },
        "vnetReg1": {
          "type": "string",
          "description": "Region of Azure cloud. Example: \"East US 2\".\n",
          "willReplaceOnChanges": true
        },
        "vnetReg2": {
          "type": "string",
          "description": "Region of Azure cloud. Example: \"East US 2\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName1",
        "accountName2",
        "vnetNameResourceGroup1",
        "vnetNameResourceGroup2",
        "vnetReg1",
        "vnetReg2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixArmPeer resources.\n",
        "properties": {
          "accountName1": {
            "type": "string",
            "description": "This parameter represents the name of an Azure Cloud-Account in Aviatrix controller.\n",
            "willReplaceOnChanges": true
          },
          "accountName2": {
            "type": "string",
            "description": "This parameter represents the name of an Azure Cloud-Account in Aviatrix controller.\n",
            "willReplaceOnChanges": true
          },
          "vnetCidr1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of VNet CIDR of vnet_name_resource_group1.\n"
          },
          "vnetCidr2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of VNet CIDR of vnet_name_resource_group2.\n"
          },
          "vnetNameResourceGroup1": {
            "type": "string",
            "description": "VNet-Name of Azure cloud. Example: \"VNet_Name:Resource_Group_Name\".\n",
            "willReplaceOnChanges": true
          },
          "vnetNameResourceGroup2": {
            "type": "string",
            "description": "VNet-Name of Azure cloud. Example: \"VNet_Name:Resource_Group_Name\".\n",
            "willReplaceOnChanges": true
          },
          "vnetReg1": {
            "type": "string",
            "description": "Region of Azure cloud. Example: \"East US 2\".\n",
            "willReplaceOnChanges": true
          },
          "vnetReg2": {
            "type": "string",
            "description": "Region of Azure cloud. Example: \"East US 2\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsGuardDuty:AviatrixAwsGuardDuty": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Configure AWS GuardDuty \nconst testAwsGuardDuty = new aviatrix.AviatrixAwsGuardDuty(\"testAwsGuardDuty\", {\n    accountName: aviatrix_account.account_1.account_name,\n    region: \"us-west-1\",\n    excludedIps: [\n        \"127.0.0.1\",\n        \"10.0.0.1\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Configure AWS GuardDuty \ntest_aws_guard_duty = aviatrix.AviatrixAwsGuardDuty(\"testAwsGuardDuty\",\n    account_name=aviatrix_account[\"account_1\"][\"account_name\"],\n    region=\"us-west-1\",\n    excluded_ips=[\n        \"127.0.0.1\",\n        \"10.0.0.1\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Configure AWS GuardDuty \n    var testAwsGuardDuty = new Aviatrix.AviatrixAwsGuardDuty(\"testAwsGuardDuty\", new()\n    {\n        AccountName = aviatrix_account.Account_1.Account_name,\n        Region = \"us-west-1\",\n        ExcludedIps = new[]\n        {\n            \"127.0.0.1\",\n            \"10.0.0.1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsGuardDuty(ctx, \"testAwsGuardDuty\", &aviatrix.AviatrixAwsGuardDutyArgs{\n\t\t\tAccountName: pulumi.Any(aviatrix_account.Account_1.Account_name),\n\t\t\tRegion:      pulumi.String(\"us-west-1\"),\n\t\t\tExcludedIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.1\"),\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\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.aviatrix.AviatrixAwsGuardDuty;\nimport com.pulumi.aviatrix.AviatrixAwsGuardDutyArgs;\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 testAwsGuardDuty = new AviatrixAwsGuardDuty(\"testAwsGuardDuty\", AviatrixAwsGuardDutyArgs.builder()        \n            .accountName(aviatrix_account.account_1().account_name())\n            .region(\"us-west-1\")\n            .excludedIps(            \n                \"127.0.0.1\",\n                \"10.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Configure AWS GuardDuty\n  testAwsGuardDuty:\n    type: aviatrix:AviatrixAwsGuardDuty\n    properties:\n      accountName: ${aviatrix_account.account_1.account_name}\n      region: us-west-1\n      excludedIps:\n        - 127.0.0.1\n        - 10.0.0.1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_guard_duty** resource can be imported with the `account_name` and `region` in the form \"account_name~~region\", e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsGuardDuty:AviatrixAwsGuardDuty test_aws_guard_duty devops-acc~~us-west-1\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Account name.\n"
        },
        "excludedIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of excluded IPs.\n"
        },
        "region": {
          "type": "string",
          "description": "Region.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "region"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Account name.\n",
          "willReplaceOnChanges": true
        },
        "excludedIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of excluded IPs.\n"
        },
        "region": {
          "type": "string",
          "description": "Region.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "region"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsGuardDuty resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Account name.\n",
            "willReplaceOnChanges": true
          },
          "excludedIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of excluded IPs.\n"
          },
          "region": {
            "type": "string",
            "description": "Region.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsPeer:AviatrixAwsPeer": {
      "description": "The **aviatrix_aws_peer** resource allows the creation and management of Aviatrix-created native AWS intra and inter-region VPC peerings.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS Peering\nconst testAwspeer = new aviatrix.AviatrixAwsPeer(\"test_awspeer\", {\n    accountName1: \"test1-account\",\n    accountName2: \"test2-account\",\n    rtbList1s: [\"rtb-abcd1234\"],\n    rtbList2s: [\"rtb-wxyz5678\"],\n    vpcId1: \"vpc-abcd1234\",\n    vpcId2: \"vpc-rdef3333\",\n    vpcReg1: \"us-east-1\",\n    vpcReg2: \"us-west-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS Peering\ntest_awspeer = aviatrix.AviatrixAwsPeer(\"testAwspeer\",\n    account_name1=\"test1-account\",\n    account_name2=\"test2-account\",\n    rtb_list1s=[\"rtb-abcd1234\"],\n    rtb_list2s=[\"rtb-wxyz5678\"],\n    vpc_id1=\"vpc-abcd1234\",\n    vpc_id2=\"vpc-rdef3333\",\n    vpc_reg1=\"us-east-1\",\n    vpc_reg2=\"us-west-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS Peering\n    var testAwspeer = new Aviatrix.AviatrixAwsPeer(\"testAwspeer\", new()\n    {\n        AccountName1 = \"test1-account\",\n        AccountName2 = \"test2-account\",\n        RtbList1s = new[]\n        {\n            \"rtb-abcd1234\",\n        },\n        RtbList2s = new[]\n        {\n            \"rtb-wxyz5678\",\n        },\n        VpcId1 = \"vpc-abcd1234\",\n        VpcId2 = \"vpc-rdef3333\",\n        VpcReg1 = \"us-east-1\",\n        VpcReg2 = \"us-west-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsPeer(ctx, \"testAwspeer\", &aviatrix.AviatrixAwsPeerArgs{\n\t\t\tAccountName1: pulumi.String(\"test1-account\"),\n\t\t\tAccountName2: pulumi.String(\"test2-account\"),\n\t\t\tRtbList1s: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"rtb-abcd1234\"),\n\t\t\t},\n\t\t\tRtbList2s: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"rtb-wxyz5678\"),\n\t\t\t},\n\t\t\tVpcId1:  pulumi.String(\"vpc-abcd1234\"),\n\t\t\tVpcId2:  pulumi.String(\"vpc-rdef3333\"),\n\t\t\tVpcReg1: pulumi.String(\"us-east-1\"),\n\t\t\tVpcReg2: pulumi.String(\"us-west-1\"),\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.aviatrix.AviatrixAwsPeer;\nimport com.pulumi.aviatrix.AviatrixAwsPeerArgs;\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 testAwspeer = new AviatrixAwsPeer(\"testAwspeer\", AviatrixAwsPeerArgs.builder()        \n            .accountName1(\"test1-account\")\n            .accountName2(\"test2-account\")\n            .rtbList1s(\"rtb-abcd1234\")\n            .rtbList2s(\"rtb-wxyz5678\")\n            .vpcId1(\"vpc-abcd1234\")\n            .vpcId2(\"vpc-rdef3333\")\n            .vpcReg1(\"us-east-1\")\n            .vpcReg2(\"us-west-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS Peering\n  testAwspeer:\n    type: aviatrix:AviatrixAwsPeer\n    properties:\n      accountName1: test1-account\n      accountName2: test2-account\n      rtbList1s:\n        - rtb-abcd1234\n      rtbList2s:\n        - rtb-wxyz5678\n      vpcId1: vpc-abcd1234\n      vpcId2: vpc-rdef3333\n      vpcReg1: us-east-1\n      vpcReg2: us-west-1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_peer** can be imported using the `vpc_id1` and `vpc_id2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsPeer:AviatrixAwsPeer test vpc_id1~vpc_id2\n```\n\n ",
      "properties": {
        "accountName1": {
          "type": "string",
          "description": "This parameter represents the name of an AWS Cloud-Account in Aviatrix controller.\n"
        },
        "accountName2": {
          "type": "string",
          "description": "This parameter represents the name of an AWS Cloud-Account in Aviatrix controller.\n"
        },
        "rtbList1Outputs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of route table ID of vpc_id1.\n"
        },
        "rtbList1s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Route table ID. Valid Values: [\"all\"], [\"rtb-abcd1234\"] OR [\"rtb-abcd1234,rtb-wxyz5678\"].\n"
        },
        "rtbList2Outputs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of route table ID of vpc_id2.\n"
        },
        "rtbList2s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Route table ID. Valid Values: [\"all\"], [\"rtb-abcd1234\"] OR [\"rtb-abcd1234,rtb-wxyz5678\"].\n"
        },
        "vpcId1": {
          "type": "string",
          "description": "VPC ID of AWS cloud. Example: AWS: \"vpc-abcd1234\".\n"
        },
        "vpcId2": {
          "type": "string",
          "description": "VPC ID of AWS cloud. Example: AWS: \"vpc-abcd1234\".\n"
        },
        "vpcReg1": {
          "type": "string",
          "description": "Region of AWS cloud. Example: AWS: \"us-east-1\".\n"
        },
        "vpcReg2": {
          "type": "string",
          "description": "Region of AWS cloud. Example: AWS: \"us-east-1\".\n"
        }
      },
      "type": "object",
      "required": [
        "accountName1",
        "accountName2",
        "rtbList1Outputs",
        "rtbList2Outputs",
        "vpcId1",
        "vpcId2",
        "vpcReg1",
        "vpcReg2"
      ],
      "inputProperties": {
        "accountName1": {
          "type": "string",
          "description": "This parameter represents the name of an AWS Cloud-Account in Aviatrix controller.\n",
          "willReplaceOnChanges": true
        },
        "accountName2": {
          "type": "string",
          "description": "This parameter represents the name of an AWS Cloud-Account in Aviatrix controller.\n",
          "willReplaceOnChanges": true
        },
        "rtbList1s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Route table ID. Valid Values: [\"all\"], [\"rtb-abcd1234\"] OR [\"rtb-abcd1234,rtb-wxyz5678\"].\n",
          "willReplaceOnChanges": true
        },
        "rtbList2s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Route table ID. Valid Values: [\"all\"], [\"rtb-abcd1234\"] OR [\"rtb-abcd1234,rtb-wxyz5678\"].\n",
          "willReplaceOnChanges": true
        },
        "vpcId1": {
          "type": "string",
          "description": "VPC ID of AWS cloud. Example: AWS: \"vpc-abcd1234\".\n",
          "willReplaceOnChanges": true
        },
        "vpcId2": {
          "type": "string",
          "description": "VPC ID of AWS cloud. Example: AWS: \"vpc-abcd1234\".\n",
          "willReplaceOnChanges": true
        },
        "vpcReg1": {
          "type": "string",
          "description": "Region of AWS cloud. Example: AWS: \"us-east-1\".\n",
          "willReplaceOnChanges": true
        },
        "vpcReg2": {
          "type": "string",
          "description": "Region of AWS cloud. Example: AWS: \"us-east-1\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName1",
        "accountName2",
        "vpcId1",
        "vpcId2",
        "vpcReg1",
        "vpcReg2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsPeer resources.\n",
        "properties": {
          "accountName1": {
            "type": "string",
            "description": "This parameter represents the name of an AWS Cloud-Account in Aviatrix controller.\n",
            "willReplaceOnChanges": true
          },
          "accountName2": {
            "type": "string",
            "description": "This parameter represents the name of an AWS Cloud-Account in Aviatrix controller.\n",
            "willReplaceOnChanges": true
          },
          "rtbList1Outputs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of route table ID of vpc_id1.\n"
          },
          "rtbList1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Route table ID. Valid Values: [\"all\"], [\"rtb-abcd1234\"] OR [\"rtb-abcd1234,rtb-wxyz5678\"].\n",
            "willReplaceOnChanges": true
          },
          "rtbList2Outputs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of route table ID of vpc_id2.\n"
          },
          "rtbList2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Route table ID. Valid Values: [\"all\"], [\"rtb-abcd1234\"] OR [\"rtb-abcd1234,rtb-wxyz5678\"].\n",
            "willReplaceOnChanges": true
          },
          "vpcId1": {
            "type": "string",
            "description": "VPC ID of AWS cloud. Example: AWS: \"vpc-abcd1234\".\n",
            "willReplaceOnChanges": true
          },
          "vpcId2": {
            "type": "string",
            "description": "VPC ID of AWS cloud. Example: AWS: \"vpc-abcd1234\".\n",
            "willReplaceOnChanges": true
          },
          "vpcReg1": {
            "type": "string",
            "description": "Region of AWS cloud. Example: AWS: \"us-east-1\".\n",
            "willReplaceOnChanges": true
          },
          "vpcReg2": {
            "type": "string",
            "description": "Region of AWS cloud. Example: AWS: \"us-east-1\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgw:AviatrixAwsTgw": {
      "description": "The **aviatrix_aws_tgw** resource allows the creation and management of Aviatrix-created AWS TGWs.\n\n> **NOTE:** If you are planning to attach VPCs to the **aviatrix_aws_tgw** resource and anticipate updating it often and/or using advanced options such as customized route advertisement, we highly recommend managing those VPCs outside this resource by setting `manage_vpc_attachment` to false and using the **aviatrix_aws_tgw_vpc_attachment** resource instead of the in-line `attached_vpc {}` block.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS TGW\nconst testAwsTgw = new aviatrix.AviatrixAwsTgw(\"test_aws_tgw\", {\n    accountName: \"devops\",\n    awsSideAsNumber: \"64512\",\n    manageTransitGatewayAttachment: false,\n    manageVpcAttachment: false,\n    region: \"us-east-1\",\n    securityDomains: [\n        {\n            connectedDomains: [\n                \"Default_Domain\",\n                \"Shared_Service_Domain\",\n                \"mysdn1\",\n            ],\n            securityDomainName: \"Aviatrix_Edge_Domain\",\n        },\n        {\n            connectedDomains: [\n                \"Aviatrix_Edge_Domain\",\n                \"Shared_Service_Domain\",\n            ],\n            securityDomainName: \"Default_Domain\",\n        },\n        {\n            connectedDomains: [\n                \"Aviatrix_Edge_Domain\",\n                \"Default_Domain\",\n            ],\n            securityDomainName: \"Shared_Service_Domain\",\n        },\n        {\n            connectedDomains: [\"Aviatrix_Edge_Domain\"],\n            securityDomainName: \"SDN1\",\n        },\n        {\n            securityDomainName: \"mysdn2\",\n        },\n        {\n            aviatrixFirewall: true,\n            securityDomainName: \"firewall-domain\",\n        },\n    ],\n    tgwName: \"test-AWS-TGW\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW\ntest_aws_tgw = aviatrix.AviatrixAwsTgw(\"testAwsTgw\",\n    account_name=\"devops\",\n    aws_side_as_number=\"64512\",\n    manage_transit_gateway_attachment=False,\n    manage_vpc_attachment=False,\n    region=\"us-east-1\",\n    security_domains=[\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\n                \"Default_Domain\",\n                \"Shared_Service_Domain\",\n                \"mysdn1\",\n            ],\n            security_domain_name=\"Aviatrix_Edge_Domain\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\n                \"Aviatrix_Edge_Domain\",\n                \"Shared_Service_Domain\",\n            ],\n            security_domain_name=\"Default_Domain\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\n                \"Aviatrix_Edge_Domain\",\n                \"Default_Domain\",\n            ],\n            security_domain_name=\"Shared_Service_Domain\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\"Aviatrix_Edge_Domain\"],\n            security_domain_name=\"SDN1\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            security_domain_name=\"mysdn2\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            aviatrix_firewall=True,\n            security_domain_name=\"firewall-domain\",\n        ),\n    ],\n    tgw_name=\"test-AWS-TGW\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW\n    var testAwsTgw = new Aviatrix.AviatrixAwsTgw(\"testAwsTgw\", new()\n    {\n        AccountName = \"devops\",\n        AwsSideAsNumber = \"64512\",\n        ManageTransitGatewayAttachment = false,\n        ManageVpcAttachment = false,\n        Region = \"us-east-1\",\n        SecurityDomains = new[]\n        {\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Default_Domain\",\n                    \"Shared_Service_Domain\",\n                    \"mysdn1\",\n                },\n                SecurityDomainName = \"Aviatrix_Edge_Domain\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Aviatrix_Edge_Domain\",\n                    \"Shared_Service_Domain\",\n                },\n                SecurityDomainName = \"Default_Domain\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Aviatrix_Edge_Domain\",\n                    \"Default_Domain\",\n                },\n                SecurityDomainName = \"Shared_Service_Domain\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Aviatrix_Edge_Domain\",\n                },\n                SecurityDomainName = \"SDN1\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                SecurityDomainName = \"mysdn2\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                AviatrixFirewall = true,\n                SecurityDomainName = \"firewall-domain\",\n            },\n        },\n        TgwName = \"test-AWS-TGW\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgw(ctx, \"testAwsTgw\", &aviatrix.AviatrixAwsTgwArgs{\n\t\t\tAccountName:                    pulumi.String(\"devops\"),\n\t\t\tAwsSideAsNumber:                pulumi.String(\"64512\"),\n\t\t\tManageTransitGatewayAttachment: pulumi.Bool(false),\n\t\t\tManageVpcAttachment:            pulumi.Bool(false),\n\t\t\tRegion:                         pulumi.String(\"us-east-1\"),\n\t\t\tSecurityDomains: AviatrixAwsTgwSecurityDomainTypeArray{\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Default_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"Shared_Service_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"mysdn1\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"Shared_Service_Domain\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"Default_Domain\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"Default_Domain\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"Shared_Service_Domain\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"SDN1\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"mysdn2\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tAviatrixFirewall:   pulumi.Bool(true),\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"firewall-domain\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTgwName: pulumi.String(\"test-AWS-TGW\"),\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.aviatrix.AviatrixAwsTgw;\nimport com.pulumi.aviatrix.AviatrixAwsTgwArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixAwsTgwSecurityDomainArgs;\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 testAwsTgw = new AviatrixAwsTgw(\"testAwsTgw\", AviatrixAwsTgwArgs.builder()        \n            .accountName(\"devops\")\n            .awsSideAsNumber(\"64512\")\n            .manageTransitGatewayAttachment(false)\n            .manageVpcAttachment(false)\n            .region(\"us-east-1\")\n            .securityDomains(            \n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(                    \n                        \"Default_Domain\",\n                        \"Shared_Service_Domain\",\n                        \"mysdn1\")\n                    .securityDomainName(\"Aviatrix_Edge_Domain\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(                    \n                        \"Aviatrix_Edge_Domain\",\n                        \"Shared_Service_Domain\")\n                    .securityDomainName(\"Default_Domain\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(                    \n                        \"Aviatrix_Edge_Domain\",\n                        \"Default_Domain\")\n                    .securityDomainName(\"Shared_Service_Domain\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(\"Aviatrix_Edge_Domain\")\n                    .securityDomainName(\"SDN1\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .securityDomainName(\"mysdn2\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .aviatrixFirewall(true)\n                    .securityDomainName(\"firewall-domain\")\n                    .build())\n            .tgwName(\"test-AWS-TGW\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW\n  testAwsTgw:\n    type: aviatrix:AviatrixAwsTgw\n    properties:\n      accountName: devops\n      awsSideAsNumber: '64512'\n      manageTransitGatewayAttachment: false\n      manageVpcAttachment: false\n      region: us-east-1\n      securityDomains:\n        - connectedDomains:\n            - Default_Domain\n            - Shared_Service_Domain\n            - mysdn1\n          securityDomainName: Aviatrix_Edge_Domain\n        - connectedDomains:\n            - Aviatrix_Edge_Domain\n            - Shared_Service_Domain\n          securityDomainName: Default_Domain\n        - connectedDomains:\n            - Aviatrix_Edge_Domain\n            - Default_Domain\n          securityDomainName: Shared_Service_Domain\n        - connectedDomains:\n            - Aviatrix_Edge_Domain\n          securityDomainName: SDN1\n        - securityDomainName: mysdn2\n        - aviatrixFirewall: true\n          securityDomainName: firewall-domain\n      tgwName: test-AWS-TGW\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWSGov TGW\nconst testAwsGovTgw = new aviatrix.AviatrixAwsTgw(\"test_aws_gov_tgw\", {\n    accountName: \"devops\",\n    awsSideAsNumber: \"64512\",\n    cloudType: 256,\n    manageTransitGatewayAttachment: false,\n    manageVpcAttachment: false,\n    region: \"us-gov-east-1\",\n    securityDomains: [\n        {\n            connectedDomains: [\n                \"Default_Domain\",\n                \"Shared_Service_Domain\",\n                \"mysdn1\",\n            ],\n            securityDomainName: \"Aviatrix_Edge_Domain\",\n        },\n        {\n            connectedDomains: [\n                \"Aviatrix_Edge_Domain\",\n                \"Shared_Service_Domain\",\n            ],\n            securityDomainName: \"Default_Domain\",\n        },\n        {\n            connectedDomains: [\n                \"Aviatrix_Edge_Domain\",\n                \"Default_Domain\",\n            ],\n            securityDomainName: \"Shared_Service_Domain\",\n        },\n        {\n            connectedDomains: [\"Aviatrix_Edge_Domain\"],\n            securityDomainName: \"SDN1\",\n        },\n        {\n            securityDomainName: \"mysdn2\",\n        },\n        {\n            aviatrixFirewall: true,\n            securityDomainName: \"firewall-domain\",\n        },\n    ],\n    tgwName: \"test-AWSGov-TGW\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWSGov TGW\ntest_aws_gov_tgw = aviatrix.AviatrixAwsTgw(\"testAwsGovTgw\",\n    account_name=\"devops\",\n    aws_side_as_number=\"64512\",\n    cloud_type=256,\n    manage_transit_gateway_attachment=False,\n    manage_vpc_attachment=False,\n    region=\"us-gov-east-1\",\n    security_domains=[\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\n                \"Default_Domain\",\n                \"Shared_Service_Domain\",\n                \"mysdn1\",\n            ],\n            security_domain_name=\"Aviatrix_Edge_Domain\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\n                \"Aviatrix_Edge_Domain\",\n                \"Shared_Service_Domain\",\n            ],\n            security_domain_name=\"Default_Domain\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\n                \"Aviatrix_Edge_Domain\",\n                \"Default_Domain\",\n            ],\n            security_domain_name=\"Shared_Service_Domain\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            connected_domains=[\"Aviatrix_Edge_Domain\"],\n            security_domain_name=\"SDN1\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            security_domain_name=\"mysdn2\",\n        ),\n        aviatrix.AviatrixAwsTgwSecurityDomainArgs(\n            aviatrix_firewall=True,\n            security_domain_name=\"firewall-domain\",\n        ),\n    ],\n    tgw_name=\"test-AWSGov-TGW\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWSGov TGW\n    var testAwsGovTgw = new Aviatrix.AviatrixAwsTgw(\"testAwsGovTgw\", new()\n    {\n        AccountName = \"devops\",\n        AwsSideAsNumber = \"64512\",\n        CloudType = 256,\n        ManageTransitGatewayAttachment = false,\n        ManageVpcAttachment = false,\n        Region = \"us-gov-east-1\",\n        SecurityDomains = new[]\n        {\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Default_Domain\",\n                    \"Shared_Service_Domain\",\n                    \"mysdn1\",\n                },\n                SecurityDomainName = \"Aviatrix_Edge_Domain\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Aviatrix_Edge_Domain\",\n                    \"Shared_Service_Domain\",\n                },\n                SecurityDomainName = \"Default_Domain\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Aviatrix_Edge_Domain\",\n                    \"Default_Domain\",\n                },\n                SecurityDomainName = \"Shared_Service_Domain\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                ConnectedDomains = new[]\n                {\n                    \"Aviatrix_Edge_Domain\",\n                },\n                SecurityDomainName = \"SDN1\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                SecurityDomainName = \"mysdn2\",\n            },\n            new Aviatrix.Inputs.AviatrixAwsTgwSecurityDomainArgs\n            {\n                AviatrixFirewall = true,\n                SecurityDomainName = \"firewall-domain\",\n            },\n        },\n        TgwName = \"test-AWSGov-TGW\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgw(ctx, \"testAwsGovTgw\", &aviatrix.AviatrixAwsTgwArgs{\n\t\t\tAccountName:                    pulumi.String(\"devops\"),\n\t\t\tAwsSideAsNumber:                pulumi.String(\"64512\"),\n\t\t\tCloudType:                      pulumi.Int(256),\n\t\t\tManageTransitGatewayAttachment: pulumi.Bool(false),\n\t\t\tManageVpcAttachment:            pulumi.Bool(false),\n\t\t\tRegion:                         pulumi.String(\"us-gov-east-1\"),\n\t\t\tSecurityDomains: AviatrixAwsTgwSecurityDomainTypeArray{\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Default_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"Shared_Service_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"mysdn1\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"Shared_Service_Domain\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"Default_Domain\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t\t\tpulumi.String(\"Default_Domain\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"Shared_Service_Domain\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tConnectedDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Aviatrix_Edge_Domain\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"SDN1\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"mysdn2\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixAwsTgwSecurityDomainTypeArgs{\n\t\t\t\t\tAviatrixFirewall:   pulumi.Bool(true),\n\t\t\t\t\tSecurityDomainName: pulumi.String(\"firewall-domain\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTgwName: pulumi.String(\"test-AWSGov-TGW\"),\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.aviatrix.AviatrixAwsTgw;\nimport com.pulumi.aviatrix.AviatrixAwsTgwArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixAwsTgwSecurityDomainArgs;\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 testAwsGovTgw = new AviatrixAwsTgw(\"testAwsGovTgw\", AviatrixAwsTgwArgs.builder()        \n            .accountName(\"devops\")\n            .awsSideAsNumber(\"64512\")\n            .cloudType(256)\n            .manageTransitGatewayAttachment(false)\n            .manageVpcAttachment(false)\n            .region(\"us-gov-east-1\")\n            .securityDomains(            \n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(                    \n                        \"Default_Domain\",\n                        \"Shared_Service_Domain\",\n                        \"mysdn1\")\n                    .securityDomainName(\"Aviatrix_Edge_Domain\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(                    \n                        \"Aviatrix_Edge_Domain\",\n                        \"Shared_Service_Domain\")\n                    .securityDomainName(\"Default_Domain\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(                    \n                        \"Aviatrix_Edge_Domain\",\n                        \"Default_Domain\")\n                    .securityDomainName(\"Shared_Service_Domain\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .connectedDomains(\"Aviatrix_Edge_Domain\")\n                    .securityDomainName(\"SDN1\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .securityDomainName(\"mysdn2\")\n                    .build(),\n                AviatrixAwsTgwSecurityDomainArgs.builder()\n                    .aviatrixFirewall(true)\n                    .securityDomainName(\"firewall-domain\")\n                    .build())\n            .tgwName(\"test-AWSGov-TGW\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWSGov TGW\n  testAwsGovTgw:\n    type: aviatrix:AviatrixAwsTgw\n    properties:\n      accountName: devops\n      awsSideAsNumber: '64512'\n      cloudType: 256\n      manageTransitGatewayAttachment: false\n      manageVpcAttachment: false\n      region: us-gov-east-1\n      securityDomains:\n        - connectedDomains:\n            - Default_Domain\n            - Shared_Service_Domain\n            - mysdn1\n          securityDomainName: Aviatrix_Edge_Domain\n        - connectedDomains:\n            - Aviatrix_Edge_Domain\n            - Shared_Service_Domain\n          securityDomainName: Default_Domain\n        - connectedDomains:\n            - Aviatrix_Edge_Domain\n            - Default_Domain\n          securityDomainName: Shared_Service_Domain\n        - connectedDomains:\n            - Aviatrix_Edge_Domain\n          securityDomainName: SDN1\n        - securityDomainName: mysdn2\n        - aviatrixFirewall: true\n          securityDomainName: firewall-domain\n      tgwName: test-AWSGov-TGW\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw** can be imported using the `tgw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgw:AviatrixAwsTgw test tgw_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Name of the cloud account in the Aviatrix controller.\n"
        },
        "attachedAviatrixTransitGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of names of Aviatrix Transit Gateway(s) (transit VPCs) to attach to the Aviatrix_Edge_Domain.\n",
          "deprecationMessage": "Please set `manage_transit_gateway_attachment` to false, and use the standalone aviatrix_aws_tgw_transit_gateway_attachment resource instead."
        },
        "awsSideAsNumber": {
          "type": "string",
          "description": "BGP Local ASN (Autonomous System Number). Integer between 1-4294967294. Example: \"65001\".\n"
        },
        "cidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of TGW CIDRs. For example, `cidrs = [\"10.0.10.0/24\", \"10.1.10.0/24\"]`. Available as of provider version R2.18.1+.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Supported for AWS (1) and AWSGov (256). Default value: 1.\n"
        },
        "enableMulticast": {
          "type": "boolean",
          "description": "Enable multicast. Default value: false. Valid values: true, false. Available in provider version R2.17+.\n"
        },
        "inspectionMode": {
          "type": "string",
          "description": "Inspection mode. Valid values: \"Domain-based\", \"Connection-based\". Default value: \"Domain-based\". Available as of provider version R2.23+.\n"
        },
        "manageSecurityDomain": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage security domains using the **aviatrix_aws_tgw** resource. If this is set to false, creation and management of security domains must be done using the **aviatrix_aws_tgw_security_domain** resource. Valid values: true, false. Default value: true.\n"
        },
        "manageTransitGatewayAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage transit gateway attachments to the TGW using the **aviatrix_aws_tgw** resource. If this is set to false, attachment of transit gateways must be done using the **aviatrix_aws_tgw_transit_gateway_attachment** resource. Valid values: true, false. Default value: true.\n"
        },
        "manageVpcAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage VPC attachments to the TGW using the **aviatrix_aws_tgw** resource. If this is set to false, attachment of VPCs must be done using the **aviatrix_aws_tgw_vpc_attachment** resource. Valid values: true, false. Default value: true.\n"
        },
        "region": {
          "type": "string",
          "description": "AWS region of AWS TGW to be created in\n"
        },
        "securityDomains": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixAwsTgwSecurityDomain:AviatrixAwsTgwSecurityDomain"
          },
          "description": "Security Domains to create together with AWS TGW's creation. Three default domains, along with the connections between them, are created automatically. These three domains can't be deleted, but the connection between any two of them can be.\n",
          "deprecationMessage": "Please set `manage_security_domain` to false, and use the standalone aviatrix_aws_tgw_network_domain resource instead."
        },
        "tgwId": {
          "type": "string",
          "description": "TGW ID. Available as of provider version R2.19+.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "Name of the AWS TGW to be created\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "awsSideAsNumber",
        "region",
        "tgwId",
        "tgwName"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Name of the cloud account in the Aviatrix controller.\n"
        },
        "attachedAviatrixTransitGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of names of Aviatrix Transit Gateway(s) (transit VPCs) to attach to the Aviatrix_Edge_Domain.\n",
          "deprecationMessage": "Please set `manage_transit_gateway_attachment` to false, and use the standalone aviatrix_aws_tgw_transit_gateway_attachment resource instead."
        },
        "awsSideAsNumber": {
          "type": "string",
          "description": "BGP Local ASN (Autonomous System Number). Integer between 1-4294967294. Example: \"65001\".\n",
          "willReplaceOnChanges": true
        },
        "cidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of TGW CIDRs. For example, `cidrs = [\"10.0.10.0/24\", \"10.1.10.0/24\"]`. Available as of provider version R2.18.1+.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Supported for AWS (1) and AWSGov (256). Default value: 1.\n"
        },
        "enableMulticast": {
          "type": "boolean",
          "description": "Enable multicast. Default value: false. Valid values: true, false. Available in provider version R2.17+.\n"
        },
        "inspectionMode": {
          "type": "string",
          "description": "Inspection mode. Valid values: \"Domain-based\", \"Connection-based\". Default value: \"Domain-based\". Available as of provider version R2.23+.\n"
        },
        "manageSecurityDomain": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage security domains using the **aviatrix_aws_tgw** resource. If this is set to false, creation and management of security domains must be done using the **aviatrix_aws_tgw_security_domain** resource. Valid values: true, false. Default value: true.\n"
        },
        "manageTransitGatewayAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage transit gateway attachments to the TGW using the **aviatrix_aws_tgw** resource. If this is set to false, attachment of transit gateways must be done using the **aviatrix_aws_tgw_transit_gateway_attachment** resource. Valid values: true, false. Default value: true.\n"
        },
        "manageVpcAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage VPC attachments to the TGW using the **aviatrix_aws_tgw** resource. If this is set to false, attachment of VPCs must be done using the **aviatrix_aws_tgw_vpc_attachment** resource. Valid values: true, false. Default value: true.\n"
        },
        "region": {
          "type": "string",
          "description": "AWS region of AWS TGW to be created in\n"
        },
        "securityDomains": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixAwsTgwSecurityDomain:AviatrixAwsTgwSecurityDomain"
          },
          "description": "Security Domains to create together with AWS TGW's creation. Three default domains, along with the connections between them, are created automatically. These three domains can't be deleted, but the connection between any two of them can be.\n",
          "deprecationMessage": "Please set `manage_security_domain` to false, and use the standalone aviatrix_aws_tgw_network_domain resource instead."
        },
        "tgwName": {
          "type": "string",
          "description": "Name of the AWS TGW to be created\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "awsSideAsNumber",
        "region",
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgw resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Name of the cloud account in the Aviatrix controller.\n"
          },
          "attachedAviatrixTransitGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of names of Aviatrix Transit Gateway(s) (transit VPCs) to attach to the Aviatrix_Edge_Domain.\n",
            "deprecationMessage": "Please set `manage_transit_gateway_attachment` to false, and use the standalone aviatrix_aws_tgw_transit_gateway_attachment resource instead."
          },
          "awsSideAsNumber": {
            "type": "string",
            "description": "BGP Local ASN (Autonomous System Number). Integer between 1-4294967294. Example: \"65001\".\n",
            "willReplaceOnChanges": true
          },
          "cidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of TGW CIDRs. For example, `cidrs = [\"10.0.10.0/24\", \"10.1.10.0/24\"]`. Available as of provider version R2.18.1+.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider, requires an integer value. Supported for AWS (1) and AWSGov (256). Default value: 1.\n"
          },
          "enableMulticast": {
            "type": "boolean",
            "description": "Enable multicast. Default value: false. Valid values: true, false. Available in provider version R2.17+.\n"
          },
          "inspectionMode": {
            "type": "string",
            "description": "Inspection mode. Valid values: \"Domain-based\", \"Connection-based\". Default value: \"Domain-based\". Available as of provider version R2.23+.\n"
          },
          "manageSecurityDomain": {
            "type": "boolean",
            "description": "This parameter is a switch used to determine whether or not to manage security domains using the **aviatrix_aws_tgw** resource. If this is set to false, creation and management of security domains must be done using the **aviatrix_aws_tgw_security_domain** resource. Valid values: true, false. Default value: true.\n"
          },
          "manageTransitGatewayAttachment": {
            "type": "boolean",
            "description": "This parameter is a switch used to determine whether or not to manage transit gateway attachments to the TGW using the **aviatrix_aws_tgw** resource. If this is set to false, attachment of transit gateways must be done using the **aviatrix_aws_tgw_transit_gateway_attachment** resource. Valid values: true, false. Default value: true.\n"
          },
          "manageVpcAttachment": {
            "type": "boolean",
            "description": "This parameter is a switch used to determine whether or not to manage VPC attachments to the TGW using the **aviatrix_aws_tgw** resource. If this is set to false, attachment of VPCs must be done using the **aviatrix_aws_tgw_vpc_attachment** resource. Valid values: true, false. Default value: true.\n"
          },
          "region": {
            "type": "string",
            "description": "AWS region of AWS TGW to be created in\n"
          },
          "securityDomains": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixAwsTgwSecurityDomain:AviatrixAwsTgwSecurityDomain"
            },
            "description": "Security Domains to create together with AWS TGW's creation. Three default domains, along with the connections between them, are created automatically. These three domains can't be deleted, but the connection between any two of them can be.\n",
            "deprecationMessage": "Please set `manage_security_domain` to false, and use the standalone aviatrix_aws_tgw_network_domain resource instead."
          },
          "tgwId": {
            "type": "string",
            "description": "TGW ID. Available as of provider version R2.19+.\n"
          },
          "tgwName": {
            "type": "string",
            "description": "Name of the AWS TGW to be created\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwConnect:AviatrixAwsTgwConnect": {
      "description": "The **aviatrix_aws_tgw_connect** resource allows the creation and management of AWS TGW Connect connections. To create\nand manage TGW Connect peers, please use `aviatrix.AviatrixAwsTgwConnectPeer` resources. This resource is available as of\nprovider version R2.18.1+.\n\n> **NOTE:** Before creating an AWS TGW Connect, the AWS TGW must have an attached VPC via\nthe `aviatrix.AviatrixAwsTgwVpcAttachment` resource. Also, the AWS TGW must have configured CIDRs via\nthe `aviatrix.AviatrixAwsTgw` `cidrs` attribute.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix AWS TGW Connect\nconst testAwsTgwConnect = new aviatrix.AviatrixAwsTgwConnect(\"testAwsTgwConnect\", {\n    tgwName: aviatrix_aws_tgw.test_aws_tgw.tgw_name,\n    connectionName: \"aws-tgw-connect\",\n    transportVpcId: aviatrix_aws_tgw_vpc_attachment.test_aws_tgw_vpc_attachment.vpc_id,\n    networkDomainName: aviatrix_aws_tgw_vpc_attachment.test_aws_tgw_vpc_attachment.network_domain_name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW Connect\ntest_aws_tgw_connect = aviatrix.AviatrixAwsTgwConnect(\"testAwsTgwConnect\",\n    tgw_name=aviatrix_aws_tgw[\"test_aws_tgw\"][\"tgw_name\"],\n    connection_name=\"aws-tgw-connect\",\n    transport_vpc_id=aviatrix_aws_tgw_vpc_attachment[\"test_aws_tgw_vpc_attachment\"][\"vpc_id\"],\n    network_domain_name=aviatrix_aws_tgw_vpc_attachment[\"test_aws_tgw_vpc_attachment\"][\"network_domain_name\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW Connect\n    var testAwsTgwConnect = new Aviatrix.AviatrixAwsTgwConnect(\"testAwsTgwConnect\", new()\n    {\n        TgwName = aviatrix_aws_tgw.Test_aws_tgw.Tgw_name,\n        ConnectionName = \"aws-tgw-connect\",\n        TransportVpcId = aviatrix_aws_tgw_vpc_attachment.Test_aws_tgw_vpc_attachment.Vpc_id,\n        NetworkDomainName = aviatrix_aws_tgw_vpc_attachment.Test_aws_tgw_vpc_attachment.Network_domain_name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwConnect(ctx, \"testAwsTgwConnect\", &aviatrix.AviatrixAwsTgwConnectArgs{\n\t\t\tTgwName:           pulumi.Any(aviatrix_aws_tgw.Test_aws_tgw.Tgw_name),\n\t\t\tConnectionName:    pulumi.String(\"aws-tgw-connect\"),\n\t\t\tTransportVpcId:    pulumi.Any(aviatrix_aws_tgw_vpc_attachment.Test_aws_tgw_vpc_attachment.Vpc_id),\n\t\t\tNetworkDomainName: pulumi.Any(aviatrix_aws_tgw_vpc_attachment.Test_aws_tgw_vpc_attachment.Network_domain_name),\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.aviatrix.AviatrixAwsTgwConnect;\nimport com.pulumi.aviatrix.AviatrixAwsTgwConnectArgs;\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 testAwsTgwConnect = new AviatrixAwsTgwConnect(\"testAwsTgwConnect\", AviatrixAwsTgwConnectArgs.builder()        \n            .tgwName(aviatrix_aws_tgw.test_aws_tgw().tgw_name())\n            .connectionName(\"aws-tgw-connect\")\n            .transportVpcId(aviatrix_aws_tgw_vpc_attachment.test_aws_tgw_vpc_attachment().vpc_id())\n            .networkDomainName(aviatrix_aws_tgw_vpc_attachment.test_aws_tgw_vpc_attachment().network_domain_name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW Connect\n  testAwsTgwConnect:\n    type: aviatrix:AviatrixAwsTgwConnect\n    properties:\n      tgwName: ${aviatrix_aws_tgw.test_aws_tgw.tgw_name}\n      connectionName: aws-tgw-connect\n      transportVpcId: ${aviatrix_aws_tgw_vpc_attachment.test_aws_tgw_vpc_attachment.vpc_id}\n      networkDomainName: ${aviatrix_aws_tgw_vpc_attachment.test_aws_tgw_vpc_attachment.network_domain_name}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_connect** can be imported using the `tgw_name` and `connection_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwConnect:AviatrixAwsTgwConnect test tgw_name~~connection_name\n```\n\n ",
      "properties": {
        "connectAttachmentId": {
          "type": "string",
          "description": "Connect Attachment ID.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Connection name.\n"
        },
        "networkDomainName": {
          "type": "string",
          "description": "Network Domain name.\n"
        },
        "securityDomainName": {
          "type": "string",
          "description": "Security Domain name.\n",
          "deprecationMessage": "Please use network_domain_name instead."
        },
        "tgwName": {
          "type": "string",
          "description": "AWS TGW name.\n"
        },
        "transportAttachmentId": {
          "type": "string",
          "description": "Transport Attachment ID.\n"
        },
        "transportVpcId": {
          "type": "string",
          "description": "Transport Attachment VPC ID.\n"
        }
      },
      "type": "object",
      "required": [
        "connectAttachmentId",
        "connectionName",
        "tgwName",
        "transportAttachmentId",
        "transportVpcId"
      ],
      "inputProperties": {
        "connectionName": {
          "type": "string",
          "description": "Connection name.\n",
          "willReplaceOnChanges": true
        },
        "networkDomainName": {
          "type": "string",
          "description": "Network Domain name.\n",
          "willReplaceOnChanges": true
        },
        "securityDomainName": {
          "type": "string",
          "description": "Security Domain name.\n",
          "deprecationMessage": "Please use network_domain_name instead.",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "AWS TGW name.\n",
          "willReplaceOnChanges": true
        },
        "transportVpcId": {
          "type": "string",
          "description": "Transport Attachment VPC ID.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "connectionName",
        "tgwName",
        "transportVpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwConnect resources.\n",
        "properties": {
          "connectAttachmentId": {
            "type": "string",
            "description": "Connect Attachment ID.\n"
          },
          "connectionName": {
            "type": "string",
            "description": "Connection name.\n",
            "willReplaceOnChanges": true
          },
          "networkDomainName": {
            "type": "string",
            "description": "Network Domain name.\n",
            "willReplaceOnChanges": true
          },
          "securityDomainName": {
            "type": "string",
            "description": "Security Domain name.\n",
            "deprecationMessage": "Please use network_domain_name instead.",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "AWS TGW name.\n",
            "willReplaceOnChanges": true
          },
          "transportAttachmentId": {
            "type": "string",
            "description": "Transport Attachment ID.\n"
          },
          "transportVpcId": {
            "type": "string",
            "description": "Transport Attachment VPC ID.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwConnectPeer:AviatrixAwsTgwConnectPeer": {
      "description": "The **aviatrix_aws_tgw_connect_peer** resource allows the creation and management of AWS TGW Connect peers. This\nresource is available as of provider version R2.18.1+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix AWS TGW Connect Peer\nconst test = new aviatrix.AviatrixAwsTgwConnectPeer(\"test\", {\n    tgwName: aviatrix_aws_tgw.test_aws_tgw.tgw_name,\n    connectionName: aviatrix_aws_tgw_connect.test_aws_tgw_connect.connection_name,\n    connectPeerName: \"connect-peer-test\",\n    connectAttachmentId: aviatrix_aws_tgw_connect.test_aws_tgw_connect.connect_attachment_id,\n    peerAsNumber: \"65001\",\n    peerGreAddress: \"172.31.1.11\",\n    bgpInsideCidrs: [\"169.254.6.0/29\"],\n    tgwGreAddress: \"10.0.0.32\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW Connect Peer\ntest = aviatrix.AviatrixAwsTgwConnectPeer(\"test\",\n    tgw_name=aviatrix_aws_tgw[\"test_aws_tgw\"][\"tgw_name\"],\n    connection_name=aviatrix_aws_tgw_connect[\"test_aws_tgw_connect\"][\"connection_name\"],\n    connect_peer_name=\"connect-peer-test\",\n    connect_attachment_id=aviatrix_aws_tgw_connect[\"test_aws_tgw_connect\"][\"connect_attachment_id\"],\n    peer_as_number=\"65001\",\n    peer_gre_address=\"172.31.1.11\",\n    bgp_inside_cidrs=[\"169.254.6.0/29\"],\n    tgw_gre_address=\"10.0.0.32\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW Connect Peer\n    var test = new Aviatrix.AviatrixAwsTgwConnectPeer(\"test\", new()\n    {\n        TgwName = aviatrix_aws_tgw.Test_aws_tgw.Tgw_name,\n        ConnectionName = aviatrix_aws_tgw_connect.Test_aws_tgw_connect.Connection_name,\n        ConnectPeerName = \"connect-peer-test\",\n        ConnectAttachmentId = aviatrix_aws_tgw_connect.Test_aws_tgw_connect.Connect_attachment_id,\n        PeerAsNumber = \"65001\",\n        PeerGreAddress = \"172.31.1.11\",\n        BgpInsideCidrs = new[]\n        {\n            \"169.254.6.0/29\",\n        },\n        TgwGreAddress = \"10.0.0.32\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwConnectPeer(ctx, \"test\", &aviatrix.AviatrixAwsTgwConnectPeerArgs{\n\t\t\tTgwName:             pulumi.Any(aviatrix_aws_tgw.Test_aws_tgw.Tgw_name),\n\t\t\tConnectionName:      pulumi.Any(aviatrix_aws_tgw_connect.Test_aws_tgw_connect.Connection_name),\n\t\t\tConnectPeerName:     pulumi.String(\"connect-peer-test\"),\n\t\t\tConnectAttachmentId: pulumi.Any(aviatrix_aws_tgw_connect.Test_aws_tgw_connect.Connect_attachment_id),\n\t\t\tPeerAsNumber:        pulumi.String(\"65001\"),\n\t\t\tPeerGreAddress:      pulumi.String(\"172.31.1.11\"),\n\t\t\tBgpInsideCidrs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"169.254.6.0/29\"),\n\t\t\t},\n\t\t\tTgwGreAddress: pulumi.String(\"10.0.0.32\"),\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.aviatrix.AviatrixAwsTgwConnectPeer;\nimport com.pulumi.aviatrix.AviatrixAwsTgwConnectPeerArgs;\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 test = new AviatrixAwsTgwConnectPeer(\"test\", AviatrixAwsTgwConnectPeerArgs.builder()        \n            .tgwName(aviatrix_aws_tgw.test_aws_tgw().tgw_name())\n            .connectionName(aviatrix_aws_tgw_connect.test_aws_tgw_connect().connection_name())\n            .connectPeerName(\"connect-peer-test\")\n            .connectAttachmentId(aviatrix_aws_tgw_connect.test_aws_tgw_connect().connect_attachment_id())\n            .peerAsNumber(\"65001\")\n            .peerGreAddress(\"172.31.1.11\")\n            .bgpInsideCidrs(\"169.254.6.0/29\")\n            .tgwGreAddress(\"10.0.0.32\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW Connect Peer\n  test:\n    type: aviatrix:AviatrixAwsTgwConnectPeer\n    properties:\n      tgwName: ${aviatrix_aws_tgw.test_aws_tgw.tgw_name}\n      connectionName: ${aviatrix_aws_tgw_connect.test_aws_tgw_connect.connection_name}\n      connectPeerName: connect-peer-test\n      connectAttachmentId: ${aviatrix_aws_tgw_connect.test_aws_tgw_connect.connect_attachment_id}\n      peerAsNumber: '65001'\n      peerGreAddress: 172.31.1.11\n      bgpInsideCidrs:\n        - 169.254.6.0/29\n      tgwGreAddress: 10.0.0.32\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_connect_peer** can be imported using the `tgw_name`, `connection_name` and `connect_peer_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwConnectPeer:AviatrixAwsTgwConnectPeer test tgw_name~~connection_name~~connect_peer_name\n```\n\n ",
      "properties": {
        "bgpInsideCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of BGP Inside CIDR Block(s).\n"
        },
        "connectAttachmentId": {
          "type": "string",
          "description": "Connect Attachment ID.\n"
        },
        "connectPeerId": {
          "type": "string",
          "description": "Connect Peer ID.\n"
        },
        "connectPeerName": {
          "type": "string",
          "description": "TGW Connect peer name.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "TGW Connect connection name.\n"
        },
        "peerAsNumber": {
          "type": "string",
          "description": "Peer AS Number.\n"
        },
        "peerGreAddress": {
          "type": "string",
          "description": "Peer GRE IP Address.\n"
        },
        "tgwGreAddress": {
          "type": "string",
          "description": "AWS TGW GRE IP Address.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "AWS TGW name.\n"
        }
      },
      "type": "object",
      "required": [
        "bgpInsideCidrs",
        "connectAttachmentId",
        "connectPeerId",
        "connectPeerName",
        "connectionName",
        "peerAsNumber",
        "peerGreAddress",
        "tgwName"
      ],
      "inputProperties": {
        "bgpInsideCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of BGP Inside CIDR Block(s).\n",
          "willReplaceOnChanges": true
        },
        "connectAttachmentId": {
          "type": "string",
          "description": "Connect Attachment ID.\n",
          "willReplaceOnChanges": true
        },
        "connectPeerName": {
          "type": "string",
          "description": "TGW Connect peer name.\n",
          "willReplaceOnChanges": true
        },
        "connectionName": {
          "type": "string",
          "description": "TGW Connect connection name.\n",
          "willReplaceOnChanges": true
        },
        "peerAsNumber": {
          "type": "string",
          "description": "Peer AS Number.\n",
          "willReplaceOnChanges": true
        },
        "peerGreAddress": {
          "type": "string",
          "description": "Peer GRE IP Address.\n",
          "willReplaceOnChanges": true
        },
        "tgwGreAddress": {
          "type": "string",
          "description": "AWS TGW GRE IP Address.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "AWS TGW name.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "bgpInsideCidrs",
        "connectAttachmentId",
        "connectPeerName",
        "connectionName",
        "peerAsNumber",
        "peerGreAddress",
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwConnectPeer resources.\n",
        "properties": {
          "bgpInsideCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of BGP Inside CIDR Block(s).\n",
            "willReplaceOnChanges": true
          },
          "connectAttachmentId": {
            "type": "string",
            "description": "Connect Attachment ID.\n",
            "willReplaceOnChanges": true
          },
          "connectPeerId": {
            "type": "string",
            "description": "Connect Peer ID.\n"
          },
          "connectPeerName": {
            "type": "string",
            "description": "TGW Connect peer name.\n",
            "willReplaceOnChanges": true
          },
          "connectionName": {
            "type": "string",
            "description": "TGW Connect connection name.\n",
            "willReplaceOnChanges": true
          },
          "peerAsNumber": {
            "type": "string",
            "description": "Peer AS Number.\n",
            "willReplaceOnChanges": true
          },
          "peerGreAddress": {
            "type": "string",
            "description": "Peer GRE IP Address.\n",
            "willReplaceOnChanges": true
          },
          "tgwGreAddress": {
            "type": "string",
            "description": "AWS TGW GRE IP Address.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "AWS TGW name.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwDirectconnect:AviatrixAwsTgwDirectconnect": {
      "description": "The **aviatrix_aws_tgw_directconnect** resource allows the creation and management of Aviatrix-created AWS TGW DirectConnect connections.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS TGW Directconnect\nconst testAwsTgwDirectconnect = new aviatrix.AviatrixAwsTgwDirectconnect(\"test_aws_tgw_directconnect\", {\n    allowedPrefix: \"10.12.0.0/24\",\n    directconnectAccountName: \"username\",\n    dxGatewayId: \"30321d76-dd01-49bf\",\n    networkDomainName: \"my-ndn-1\",\n    tgwName: \"my-aws-tgw-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW Directconnect\ntest_aws_tgw_directconnect = aviatrix.AviatrixAwsTgwDirectconnect(\"testAwsTgwDirectconnect\",\n    allowed_prefix=\"10.12.0.0/24\",\n    directconnect_account_name=\"username\",\n    dx_gateway_id=\"30321d76-dd01-49bf\",\n    network_domain_name=\"my-ndn-1\",\n    tgw_name=\"my-aws-tgw-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW Directconnect\n    var testAwsTgwDirectconnect = new Aviatrix.AviatrixAwsTgwDirectconnect(\"testAwsTgwDirectconnect\", new()\n    {\n        AllowedPrefix = \"10.12.0.0/24\",\n        DirectconnectAccountName = \"username\",\n        DxGatewayId = \"30321d76-dd01-49bf\",\n        NetworkDomainName = \"my-ndn-1\",\n        TgwName = \"my-aws-tgw-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwDirectconnect(ctx, \"testAwsTgwDirectconnect\", &aviatrix.AviatrixAwsTgwDirectconnectArgs{\n\t\t\tAllowedPrefix:            pulumi.String(\"10.12.0.0/24\"),\n\t\t\tDirectconnectAccountName: pulumi.String(\"username\"),\n\t\t\tDxGatewayId:              pulumi.String(\"30321d76-dd01-49bf\"),\n\t\t\tNetworkDomainName:        pulumi.String(\"my-ndn-1\"),\n\t\t\tTgwName:                  pulumi.String(\"my-aws-tgw-1\"),\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.aviatrix.AviatrixAwsTgwDirectconnect;\nimport com.pulumi.aviatrix.AviatrixAwsTgwDirectconnectArgs;\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 testAwsTgwDirectconnect = new AviatrixAwsTgwDirectconnect(\"testAwsTgwDirectconnect\", AviatrixAwsTgwDirectconnectArgs.builder()        \n            .allowedPrefix(\"10.12.0.0/24\")\n            .directconnectAccountName(\"username\")\n            .dxGatewayId(\"30321d76-dd01-49bf\")\n            .networkDomainName(\"my-ndn-1\")\n            .tgwName(\"my-aws-tgw-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW Directconnect\n  testAwsTgwDirectconnect:\n    type: aviatrix:AviatrixAwsTgwDirectconnect\n    properties:\n      allowedPrefix: 10.12.0.0/24\n      directconnectAccountName: username\n      dxGatewayId: 30321d76-dd01-49bf\n      networkDomainName: my-ndn-1\n      tgwName: my-aws-tgw-1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_directconnect** can be imported using the `tgw_name` and `dx_gateway_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwDirectconnect:AviatrixAwsTgwDirectconnect test tgw_name~dx_gateway_id\n```\n\n ",
      "properties": {
        "allowedPrefix": {
          "type": "string",
          "description": "A list of comma separated CIDRs for DXGW to advertise to remote(on-prem).\n"
        },
        "directconnectAccountName": {
          "type": "string",
          "description": "This parameter represents the name of an Account in Aviatrix controller.\n"
        },
        "dxGatewayId": {
          "type": "string",
          "description": "This parameter represents the name of a Direct Connect Gateway ID.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable [encrypted transit approval](https://docs.aviatrix.com/HowTos/tgw_approval.html) for AWS TGW DirectConnect. Valid values: true, false. Default value: false.\n"
        },
        "networkDomainName": {
          "type": "string",
          "description": "The name of a network domain, to which the direct connect gateway will be attached.\n"
        },
        "securityDomainName": {
          "type": "string",
          "description": "The name of a security domain, to which the direct connect gateway will be attached.\n",
          "deprecationMessage": "Please use network_domain_name instead."
        },
        "tgwName": {
          "type": "string",
          "description": "This parameter represents the name of an AWS TGW.\n"
        }
      },
      "type": "object",
      "required": [
        "allowedPrefix",
        "directconnectAccountName",
        "dxGatewayId",
        "tgwName"
      ],
      "inputProperties": {
        "allowedPrefix": {
          "type": "string",
          "description": "A list of comma separated CIDRs for DXGW to advertise to remote(on-prem).\n"
        },
        "directconnectAccountName": {
          "type": "string",
          "description": "This parameter represents the name of an Account in Aviatrix controller.\n",
          "willReplaceOnChanges": true
        },
        "dxGatewayId": {
          "type": "string",
          "description": "This parameter represents the name of a Direct Connect Gateway ID.\n",
          "willReplaceOnChanges": true
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable [encrypted transit approval](https://docs.aviatrix.com/HowTos/tgw_approval.html) for AWS TGW DirectConnect. Valid values: true, false. Default value: false.\n"
        },
        "networkDomainName": {
          "type": "string",
          "description": "The name of a network domain, to which the direct connect gateway will be attached.\n",
          "willReplaceOnChanges": true
        },
        "securityDomainName": {
          "type": "string",
          "description": "The name of a security domain, to which the direct connect gateway will be attached.\n",
          "deprecationMessage": "Please use network_domain_name instead.",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "This parameter represents the name of an AWS TGW.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "allowedPrefix",
        "directconnectAccountName",
        "dxGatewayId",
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwDirectconnect resources.\n",
        "properties": {
          "allowedPrefix": {
            "type": "string",
            "description": "A list of comma separated CIDRs for DXGW to advertise to remote(on-prem).\n"
          },
          "directconnectAccountName": {
            "type": "string",
            "description": "This parameter represents the name of an Account in Aviatrix controller.\n",
            "willReplaceOnChanges": true
          },
          "dxGatewayId": {
            "type": "string",
            "description": "This parameter represents the name of a Direct Connect Gateway ID.\n",
            "willReplaceOnChanges": true
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Switch to enable/disable [encrypted transit approval](https://docs.aviatrix.com/HowTos/tgw_approval.html) for AWS TGW DirectConnect. Valid values: true, false. Default value: false.\n"
          },
          "networkDomainName": {
            "type": "string",
            "description": "The name of a network domain, to which the direct connect gateway will be attached.\n",
            "willReplaceOnChanges": true
          },
          "securityDomainName": {
            "type": "string",
            "description": "The name of a security domain, to which the direct connect gateway will be attached.\n",
            "deprecationMessage": "Please use network_domain_name instead.",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "This parameter represents the name of an AWS TGW.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwIntraDomainInspection:AviatrixAwsTgwIntraDomainInspection": {
      "description": "The **aviatrix_aws_tgw_intra_domain_inspection** resource allows the creation and management of intra domain inspection of security domains in an AWS TGW.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Intra Domain Inspection\nconst test = new aviatrix.AviatrixAwsTgwIntraDomainInspection(\"test\", {\n    firewallDomainName: \"firewall-domain\",\n    routeDomainName: \"mysd\",\n    tgwName: \"test-AWS-TGW\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Intra Domain Inspection\ntest = aviatrix.AviatrixAwsTgwIntraDomainInspection(\"test\",\n    firewall_domain_name=\"firewall-domain\",\n    route_domain_name=\"mysd\",\n    tgw_name=\"test-AWS-TGW\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Intra Domain Inspection\n    var test = new Aviatrix.AviatrixAwsTgwIntraDomainInspection(\"test\", new()\n    {\n        FirewallDomainName = \"firewall-domain\",\n        RouteDomainName = \"mysd\",\n        TgwName = \"test-AWS-TGW\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwIntraDomainInspection(ctx, \"test\", &aviatrix.AviatrixAwsTgwIntraDomainInspectionArgs{\n\t\t\tFirewallDomainName: pulumi.String(\"firewall-domain\"),\n\t\t\tRouteDomainName:    pulumi.String(\"mysd\"),\n\t\t\tTgwName:            pulumi.String(\"test-AWS-TGW\"),\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.aviatrix.AviatrixAwsTgwIntraDomainInspection;\nimport com.pulumi.aviatrix.AviatrixAwsTgwIntraDomainInspectionArgs;\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 test = new AviatrixAwsTgwIntraDomainInspection(\"test\", AviatrixAwsTgwIntraDomainInspectionArgs.builder()        \n            .firewallDomainName(\"firewall-domain\")\n            .routeDomainName(\"mysd\")\n            .tgwName(\"test-AWS-TGW\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Intra Domain Inspection\n  test:\n    type: aviatrix:AviatrixAwsTgwIntraDomainInspection\n    properties:\n      firewallDomainName: firewall-domain\n      routeDomainName: mysd\n      tgwName: test-AWS-TGW\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_aws_tgw_intra_domain_inspection** can be imported using the `tgw_name` and `route_domain_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwIntraDomainInspection:AviatrixAwsTgwIntraDomainInspection test tgw_name~route_domain_name\n```\n\n ",
      "properties": {
        "firewallDomainName": {
          "type": "string",
          "description": "The name of a firewall security domain.\n"
        },
        "routeDomainName": {
          "type": "string",
          "description": "The name of a security domain.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name.\n"
        }
      },
      "type": "object",
      "required": [
        "firewallDomainName",
        "routeDomainName",
        "tgwName"
      ],
      "inputProperties": {
        "firewallDomainName": {
          "type": "string",
          "description": "The name of a firewall security domain.\n",
          "willReplaceOnChanges": true
        },
        "routeDomainName": {
          "type": "string",
          "description": "The name of a security domain.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "firewallDomainName",
        "routeDomainName",
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwIntraDomainInspection resources.\n",
        "properties": {
          "firewallDomainName": {
            "type": "string",
            "description": "The name of a firewall security domain.\n",
            "willReplaceOnChanges": true
          },
          "routeDomainName": {
            "type": "string",
            "description": "The name of a security domain.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "The AWS TGW name.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwNetworkDomain:AviatrixAwsTgwNetworkDomain": {
      "description": "The **aviatrix_aws_tgw_network_domain** resource allows the creation and management of Aviatrix network domains.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix AWS TGW network domain\nconst testAwsTgw = new aviatrix.AviatrixAwsTgw(\"testAwsTgw\", {\n    accountName: \"devops\",\n    awsSideAsNumber: \"64512\",\n    region: \"us-east-1\",\n    tgwName: \"test-AWS-TGW\",\n    manageSecurityDomain: false,\n    manageVpcAttachment: false,\n    manageTransitGatewayAttachment: false,\n});\nconst defaultDomain = new aviatrix.AviatrixAwsTgwNetworkDomain(\"defaultDomain\", {tgwName: testAwsTgw.tgwName});\nconst sharedServiceDomain = new aviatrix.AviatrixAwsTgwNetworkDomain(\"sharedServiceDomain\", {tgwName: testAwsTgw.tgwName});\nconst aviatrixEdgeDomain = new aviatrix.AviatrixAwsTgwNetworkDomain(\"aviatrixEdgeDomain\", {tgwName: testAwsTgw.tgwName});\nconst defaultSdConn1 = new aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\", {\n    tgwName: testAwsTgw.tgwName,\n    domainName1: aviatrixEdgeDomain.name,\n    domainName2: defaultDomain.name,\n});\nconst defaultSdConn2 = new aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\", {\n    tgwName: testAwsTgw.tgwName,\n    domainName1: aviatrixEdgeDomain.name,\n    domainName2: sharedServiceDomain.name,\n});\nconst defaultSdConn3 = new aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\", {\n    tgwName: testAwsTgw.tgwName,\n    domainName1: defaultDomain.name,\n    domainName2: sharedServiceDomain.name,\n});\nconst test = new aviatrix.AviatrixAwsTgwNetworkDomain(\"test\", {tgwName: testAwsTgw.tgwName}, {\n    dependsOn: [\n        defaultDomain,\n        sharedServiceDomain,\n        aviatrixEdgeDomain,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW network domain\ntest_aws_tgw = aviatrix.AviatrixAwsTgw(\"testAwsTgw\",\n    account_name=\"devops\",\n    aws_side_as_number=\"64512\",\n    region=\"us-east-1\",\n    tgw_name=\"test-AWS-TGW\",\n    manage_security_domain=False,\n    manage_vpc_attachment=False,\n    manage_transit_gateway_attachment=False)\ndefault_domain = aviatrix.AviatrixAwsTgwNetworkDomain(\"defaultDomain\", tgw_name=test_aws_tgw.tgw_name)\nshared_service_domain = aviatrix.AviatrixAwsTgwNetworkDomain(\"sharedServiceDomain\", tgw_name=test_aws_tgw.tgw_name)\naviatrix_edge_domain = aviatrix.AviatrixAwsTgwNetworkDomain(\"aviatrixEdgeDomain\", tgw_name=test_aws_tgw.tgw_name)\ndefault_sd_conn1 = aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\",\n    tgw_name=test_aws_tgw.tgw_name,\n    domain_name1=aviatrix_edge_domain.name,\n    domain_name2=default_domain.name)\ndefault_sd_conn2 = aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\",\n    tgw_name=test_aws_tgw.tgw_name,\n    domain_name1=aviatrix_edge_domain.name,\n    domain_name2=shared_service_domain.name)\ndefault_sd_conn3 = aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\",\n    tgw_name=test_aws_tgw.tgw_name,\n    domain_name1=default_domain.name,\n    domain_name2=shared_service_domain.name)\ntest = aviatrix.AviatrixAwsTgwNetworkDomain(\"test\", tgw_name=test_aws_tgw.tgw_name,\nopts=pulumi.ResourceOptions(depends_on=[\n        default_domain,\n        shared_service_domain,\n        aviatrix_edge_domain,\n    ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW network domain\n    var testAwsTgw = new Aviatrix.AviatrixAwsTgw(\"testAwsTgw\", new()\n    {\n        AccountName = \"devops\",\n        AwsSideAsNumber = \"64512\",\n        Region = \"us-east-1\",\n        TgwName = \"test-AWS-TGW\",\n        ManageSecurityDomain = false,\n        ManageVpcAttachment = false,\n        ManageTransitGatewayAttachment = false,\n    });\n\n    var defaultDomain = new Aviatrix.AviatrixAwsTgwNetworkDomain(\"defaultDomain\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    });\n\n    var sharedServiceDomain = new Aviatrix.AviatrixAwsTgwNetworkDomain(\"sharedServiceDomain\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    });\n\n    var aviatrixEdgeDomain = new Aviatrix.AviatrixAwsTgwNetworkDomain(\"aviatrixEdgeDomain\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    });\n\n    var defaultSdConn1 = new Aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n        DomainName1 = aviatrixEdgeDomain.Name,\n        DomainName2 = defaultDomain.Name,\n    });\n\n    var defaultSdConn2 = new Aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n        DomainName1 = aviatrixEdgeDomain.Name,\n        DomainName2 = sharedServiceDomain.Name,\n    });\n\n    var defaultSdConn3 = new Aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n        DomainName1 = defaultDomain.Name,\n        DomainName2 = sharedServiceDomain.Name,\n    });\n\n    var test = new Aviatrix.AviatrixAwsTgwNetworkDomain(\"test\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    }, new CustomResourceOptions\n    {\n        DependsOn = new[]\n        {\n            defaultDomain,\n            sharedServiceDomain,\n            aviatrixEdgeDomain,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAwsTgw, err := aviatrix.NewAviatrixAwsTgw(ctx, \"testAwsTgw\", &aviatrix.AviatrixAwsTgwArgs{\n\t\t\tAccountName:                    pulumi.String(\"devops\"),\n\t\t\tAwsSideAsNumber:                pulumi.String(\"64512\"),\n\t\t\tRegion:                         pulumi.String(\"us-east-1\"),\n\t\t\tTgwName:                        pulumi.String(\"test-AWS-TGW\"),\n\t\t\tManageSecurityDomain:           pulumi.Bool(false),\n\t\t\tManageVpcAttachment:            pulumi.Bool(false),\n\t\t\tManageTransitGatewayAttachment: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDomain, err := aviatrix.NewAviatrixAwsTgwNetworkDomain(ctx, \"defaultDomain\", &aviatrix.AviatrixAwsTgwNetworkDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharedServiceDomain, err := aviatrix.NewAviatrixAwsTgwNetworkDomain(ctx, \"sharedServiceDomain\", &aviatrix.AviatrixAwsTgwNetworkDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taviatrixEdgeDomain, err := aviatrix.NewAviatrixAwsTgwNetworkDomain(ctx, \"aviatrixEdgeDomain\", &aviatrix.AviatrixAwsTgwNetworkDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwSecurityDomainConn(ctx, \"defaultSdConn1\", &aviatrix.AviatrixAwsTgwSecurityDomainConnArgs{\n\t\t\tTgwName:     testAwsTgw.TgwName,\n\t\t\tDomainName1: aviatrixEdgeDomain.Name,\n\t\t\tDomainName2: defaultDomain.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwSecurityDomainConn(ctx, \"defaultSdConn2\", &aviatrix.AviatrixAwsTgwSecurityDomainConnArgs{\n\t\t\tTgwName:     testAwsTgw.TgwName,\n\t\t\tDomainName1: aviatrixEdgeDomain.Name,\n\t\t\tDomainName2: sharedServiceDomain.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwSecurityDomainConn(ctx, \"defaultSdConn3\", &aviatrix.AviatrixAwsTgwSecurityDomainConnArgs{\n\t\t\tTgwName:     testAwsTgw.TgwName,\n\t\t\tDomainName1: defaultDomain.Name,\n\t\t\tDomainName2: sharedServiceDomain.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwNetworkDomain(ctx, \"test\", &aviatrix.AviatrixAwsTgwNetworkDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultDomain,\n\t\t\tsharedServiceDomain,\n\t\t\taviatrixEdgeDomain,\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.aviatrix.AviatrixAwsTgw;\nimport com.pulumi.aviatrix.AviatrixAwsTgwArgs;\nimport com.pulumi.aviatrix.AviatrixAwsTgwNetworkDomain;\nimport com.pulumi.aviatrix.AviatrixAwsTgwNetworkDomainArgs;\nimport com.pulumi.aviatrix.AviatrixAwsTgwSecurityDomainConn;\nimport com.pulumi.aviatrix.AviatrixAwsTgwSecurityDomainConnArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 testAwsTgw = new AviatrixAwsTgw(\"testAwsTgw\", AviatrixAwsTgwArgs.builder()        \n            .accountName(\"devops\")\n            .awsSideAsNumber(\"64512\")\n            .region(\"us-east-1\")\n            .tgwName(\"test-AWS-TGW\")\n            .manageSecurityDomain(false)\n            .manageVpcAttachment(false)\n            .manageTransitGatewayAttachment(false)\n            .build());\n\n        var defaultDomain = new AviatrixAwsTgwNetworkDomain(\"defaultDomain\", AviatrixAwsTgwNetworkDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build());\n\n        var sharedServiceDomain = new AviatrixAwsTgwNetworkDomain(\"sharedServiceDomain\", AviatrixAwsTgwNetworkDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build());\n\n        var aviatrixEdgeDomain = new AviatrixAwsTgwNetworkDomain(\"aviatrixEdgeDomain\", AviatrixAwsTgwNetworkDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build());\n\n        var defaultSdConn1 = new AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\", AviatrixAwsTgwSecurityDomainConnArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .domainName1(aviatrixEdgeDomain.name())\n            .domainName2(defaultDomain.name())\n            .build());\n\n        var defaultSdConn2 = new AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\", AviatrixAwsTgwSecurityDomainConnArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .domainName1(aviatrixEdgeDomain.name())\n            .domainName2(sharedServiceDomain.name())\n            .build());\n\n        var defaultSdConn3 = new AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\", AviatrixAwsTgwSecurityDomainConnArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .domainName1(defaultDomain.name())\n            .domainName2(sharedServiceDomain.name())\n            .build());\n\n        var test = new AviatrixAwsTgwNetworkDomain(\"test\", AviatrixAwsTgwNetworkDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    defaultDomain,\n                    sharedServiceDomain,\n                    aviatrixEdgeDomain)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW network domain\n  testAwsTgw:\n    type: aviatrix:AviatrixAwsTgw\n    properties:\n      accountName: devops\n      awsSideAsNumber: '64512'\n      region: us-east-1\n      tgwName: test-AWS-TGW\n      manageSecurityDomain: false\n      manageVpcAttachment: false\n      manageTransitGatewayAttachment: false\n  defaultDomain:\n    type: aviatrix:AviatrixAwsTgwNetworkDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n  sharedServiceDomain:\n    type: aviatrix:AviatrixAwsTgwNetworkDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n  aviatrixEdgeDomain:\n    type: aviatrix:AviatrixAwsTgwNetworkDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n  defaultSdConn1:\n    type: aviatrix:AviatrixAwsTgwSecurityDomainConn\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n      domainName1: ${aviatrixEdgeDomain.name}\n      domainName2: ${defaultDomain.name}\n  defaultSdConn2:\n    type: aviatrix:AviatrixAwsTgwSecurityDomainConn\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n      domainName1: ${aviatrixEdgeDomain.name}\n      domainName2: ${sharedServiceDomain.name}\n  defaultSdConn3:\n    type: aviatrix:AviatrixAwsTgwSecurityDomainConn\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n      domainName1: ${defaultDomain.name}\n      domainName2: ${sharedServiceDomain.name}\n  test:\n    type: aviatrix:AviatrixAwsTgwNetworkDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n    options:\n      dependson:\n        - ${defaultDomain}\n        - ${sharedServiceDomain}\n        - ${aviatrixEdgeDomain}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_network_domain** can be imported using the `name` and `tgw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwNetworkDomain:AviatrixAwsTgwNetworkDomain test tgw_name~name\n```\n\n ",
      "properties": {
        "aviatrixFirewall": {
          "type": "boolean",
          "description": "Set to true if the network domain is to be used as an Aviatrix Firewall Domain for the Aviatrix Firewall Network. Valid values: true, false. Default value: false.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the network domain.\n"
        },
        "nativeEgress": {
          "type": "boolean",
          "description": "Set to true if the network domain is to be used as a native egress domain (for non-Aviatrix Firewall Network-based central Internet bound traffic). Valid values: true, false. Default value: false.\n"
        },
        "nativeFirewall": {
          "type": "boolean",
          "description": "Set to true if the network domain is to be used as a native firewall domain (for non-Aviatrix Firewall Network-based firewall traffic inspection). Valid values: true, false. Default value: false.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name of the network domain.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "tgwName"
      ],
      "inputProperties": {
        "aviatrixFirewall": {
          "type": "boolean",
          "description": "Set to true if the network domain is to be used as an Aviatrix Firewall Domain for the Aviatrix Firewall Network. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "The name of the network domain.\n",
          "willReplaceOnChanges": true
        },
        "nativeEgress": {
          "type": "boolean",
          "description": "Set to true if the network domain is to be used as a native egress domain (for non-Aviatrix Firewall Network-based central Internet bound traffic). Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "nativeFirewall": {
          "type": "boolean",
          "description": "Set to true if the network domain is to be used as a native firewall domain (for non-Aviatrix Firewall Network-based firewall traffic inspection). Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name of the network domain.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwNetworkDomain resources.\n",
        "properties": {
          "aviatrixFirewall": {
            "type": "boolean",
            "description": "Set to true if the network domain is to be used as an Aviatrix Firewall Domain for the Aviatrix Firewall Network. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "The name of the network domain.\n",
            "willReplaceOnChanges": true
          },
          "nativeEgress": {
            "type": "boolean",
            "description": "Set to true if the network domain is to be used as a native egress domain (for non-Aviatrix Firewall Network-based central Internet bound traffic). Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "nativeFirewall": {
            "type": "boolean",
            "description": "Set to true if the network domain is to be used as a native firewall domain (for non-Aviatrix Firewall Network-based firewall traffic inspection). Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "The AWS TGW name of the network domain.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwPeering:AviatrixAwsTgwPeering": {
      "description": "The **aviatrix_aws_tgw_peering** resource allows the creation and management of Aviatrix-created inter-region peerings between AWS TGWs.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS Tgw Peering\nconst test = new aviatrix.AviatrixAwsTgwPeering(\"test\", {\n    tgwName1: \"tgw1\",\n    tgwName2: \"tgw2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS Tgw Peering\ntest = aviatrix.AviatrixAwsTgwPeering(\"test\",\n    tgw_name1=\"tgw1\",\n    tgw_name2=\"tgw2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS Tgw Peering\n    var test = new Aviatrix.AviatrixAwsTgwPeering(\"test\", new()\n    {\n        TgwName1 = \"tgw1\",\n        TgwName2 = \"tgw2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwPeering(ctx, \"test\", &aviatrix.AviatrixAwsTgwPeeringArgs{\n\t\t\tTgwName1: pulumi.String(\"tgw1\"),\n\t\t\tTgwName2: pulumi.String(\"tgw2\"),\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.aviatrix.AviatrixAwsTgwPeering;\nimport com.pulumi.aviatrix.AviatrixAwsTgwPeeringArgs;\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 test = new AviatrixAwsTgwPeering(\"test\", AviatrixAwsTgwPeeringArgs.builder()        \n            .tgwName1(\"tgw1\")\n            .tgwName2(\"tgw2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS Tgw Peering\n  test:\n    type: aviatrix:AviatrixAwsTgwPeering\n    properties:\n      tgwName1: tgw1\n      tgwName2: tgw2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_peering** can be imported using the `tgw_name1` and `tgw_name2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwPeering:AviatrixAwsTgwPeering test tgw_name1~tgw_name2\n```\n\n ",
      "properties": {
        "tgwName1": {
          "type": "string",
          "description": "This parameter represents name of the first AWS TGW to make a peer pair.\n"
        },
        "tgwName2": {
          "type": "string",
          "description": "This parameter represents name of the second AWS TGW to make a peer pair.\n"
        }
      },
      "type": "object",
      "required": [
        "tgwName1",
        "tgwName2"
      ],
      "inputProperties": {
        "tgwName1": {
          "type": "string",
          "description": "This parameter represents name of the first AWS TGW to make a peer pair.\n",
          "willReplaceOnChanges": true
        },
        "tgwName2": {
          "type": "string",
          "description": "This parameter represents name of the second AWS TGW to make a peer pair.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "tgwName1",
        "tgwName2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwPeering resources.\n",
        "properties": {
          "tgwName1": {
            "type": "string",
            "description": "This parameter represents name of the first AWS TGW to make a peer pair.\n",
            "willReplaceOnChanges": true
          },
          "tgwName2": {
            "type": "string",
            "description": "This parameter represents name of the second AWS TGW to make a peer pair.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwPeeringDomainConn:AviatrixAwsTgwPeeringDomainConn": {
      "description": "The **aviatrix_aws_tgw_peering_domain_conn** resource allows the creation and management of Aviatrix domain connections between peered AWS TGWs.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Domian Connection between Peered AWS Tgws\nconst test = new aviatrix.AviatrixAwsTgwPeeringDomainConn(\"test\", {\n    domainName1: \"Default_Domain\",\n    domainName2: \"Default_Domain\",\n    tgwName1: \"tgw1\",\n    tgwName2: \"tgw2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Domian Connection between Peered AWS Tgws\ntest = aviatrix.AviatrixAwsTgwPeeringDomainConn(\"test\",\n    domain_name1=\"Default_Domain\",\n    domain_name2=\"Default_Domain\",\n    tgw_name1=\"tgw1\",\n    tgw_name2=\"tgw2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Domian Connection between Peered AWS Tgws\n    var test = new Aviatrix.AviatrixAwsTgwPeeringDomainConn(\"test\", new()\n    {\n        DomainName1 = \"Default_Domain\",\n        DomainName2 = \"Default_Domain\",\n        TgwName1 = \"tgw1\",\n        TgwName2 = \"tgw2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwPeeringDomainConn(ctx, \"test\", &aviatrix.AviatrixAwsTgwPeeringDomainConnArgs{\n\t\t\tDomainName1: pulumi.String(\"Default_Domain\"),\n\t\t\tDomainName2: pulumi.String(\"Default_Domain\"),\n\t\t\tTgwName1:    pulumi.String(\"tgw1\"),\n\t\t\tTgwName2:    pulumi.String(\"tgw2\"),\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.aviatrix.AviatrixAwsTgwPeeringDomainConn;\nimport com.pulumi.aviatrix.AviatrixAwsTgwPeeringDomainConnArgs;\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 test = new AviatrixAwsTgwPeeringDomainConn(\"test\", AviatrixAwsTgwPeeringDomainConnArgs.builder()        \n            .domainName1(\"Default_Domain\")\n            .domainName2(\"Default_Domain\")\n            .tgwName1(\"tgw1\")\n            .tgwName2(\"tgw2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Domian Connection between Peered AWS Tgws\n  test:\n    type: aviatrix:AviatrixAwsTgwPeeringDomainConn\n    properties:\n      domainName1: Default_Domain\n      domainName2: Default_Domain\n      tgwName1: tgw1\n      tgwName2: tgw2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_peering_domain_conn** can be imported using the `tgw_name1`, `domain_name1`, `tgw_name2` and `domain_name2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwPeeringDomainConn:AviatrixAwsTgwPeeringDomainConn test tgw_name1:domain_name1~tgw_name2:domain_name2\n```\n\n ",
      "properties": {
        "domainName1": {
          "type": "string",
          "description": "The name of the source domain to make a connection.\n"
        },
        "domainName2": {
          "type": "string",
          "description": "The name of the destination domain to make a connection.\n"
        },
        "tgwName1": {
          "type": "string",
          "description": "The AWS TGW name of the source domain to make a connection.\n"
        },
        "tgwName2": {
          "type": "string",
          "description": "The AWS TGW name of the destination domain to make a connection.\n"
        }
      },
      "type": "object",
      "required": [
        "domainName1",
        "domainName2",
        "tgwName1",
        "tgwName2"
      ],
      "inputProperties": {
        "domainName1": {
          "type": "string",
          "description": "The name of the source domain to make a connection.\n",
          "willReplaceOnChanges": true
        },
        "domainName2": {
          "type": "string",
          "description": "The name of the destination domain to make a connection.\n",
          "willReplaceOnChanges": true
        },
        "tgwName1": {
          "type": "string",
          "description": "The AWS TGW name of the source domain to make a connection.\n",
          "willReplaceOnChanges": true
        },
        "tgwName2": {
          "type": "string",
          "description": "The AWS TGW name of the destination domain to make a connection.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "domainName1",
        "domainName2",
        "tgwName1",
        "tgwName2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwPeeringDomainConn resources.\n",
        "properties": {
          "domainName1": {
            "type": "string",
            "description": "The name of the source domain to make a connection.\n",
            "willReplaceOnChanges": true
          },
          "domainName2": {
            "type": "string",
            "description": "The name of the destination domain to make a connection.\n",
            "willReplaceOnChanges": true
          },
          "tgwName1": {
            "type": "string",
            "description": "The AWS TGW name of the source domain to make a connection.\n",
            "willReplaceOnChanges": true
          },
          "tgwName2": {
            "type": "string",
            "description": "The AWS TGW name of the destination domain to make a connection.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwSecurityDomain:AviatrixAwsTgwSecurityDomain": {
      "description": "!> **WARNING:** Resource **aviatrix_aws_tgw_security_domain** will be deprecated in future releases. Please use resource **aviatrix_aws_tgw_network_domain** instead.\n\nThe **aviatrix_aws_tgw_security_domain** resource allows the creation and management of Aviatrix security domains.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix AWS TGW security domain\nconst testAwsTgw = new aviatrix.AviatrixAwsTgw(\"testAwsTgw\", {\n    accountName: \"devops\",\n    awsSideAsNumber: \"64512\",\n    region: \"us-east-1\",\n    tgwName: \"test-AWS-TGW\",\n    manageSecurityDomain: false,\n    manageVpcAttachment: false,\n    manageTransitGatewayAttachment: false,\n});\nconst defaultDomain = new aviatrix.AviatrixAwsTgwSecurityDomain(\"defaultDomain\", {tgwName: testAwsTgw.tgwName});\nconst sharedServiceDomain = new aviatrix.AviatrixAwsTgwSecurityDomain(\"sharedServiceDomain\", {tgwName: testAwsTgw.tgwName});\nconst aviatrixEdgeDomain = new aviatrix.AviatrixAwsTgwSecurityDomain(\"aviatrixEdgeDomain\", {tgwName: testAwsTgw.tgwName});\nconst defaultSdConn1 = new aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\", {\n    tgwName: testAwsTgw.tgwName,\n    domainName1: aviatrixEdgeDomain.name,\n    domainName2: defaultDomain.name,\n});\nconst defaultSdConn2 = new aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\", {\n    tgwName: testAwsTgw.tgwName,\n    domainName1: aviatrixEdgeDomain.name,\n    domainName2: sharedServiceDomain.name,\n});\nconst defaultSdConn3 = new aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\", {\n    tgwName: testAwsTgw.tgwName,\n    domainName1: defaultDomain.name,\n    domainName2: sharedServiceDomain.name,\n});\nconst test = new aviatrix.AviatrixAwsTgwSecurityDomain(\"test\", {tgwName: testAwsTgw.tgwName}, {\n    dependsOn: [\n        defaultDomain,\n        sharedServiceDomain,\n        aviatrixEdgeDomain,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW security domain\ntest_aws_tgw = aviatrix.AviatrixAwsTgw(\"testAwsTgw\",\n    account_name=\"devops\",\n    aws_side_as_number=\"64512\",\n    region=\"us-east-1\",\n    tgw_name=\"test-AWS-TGW\",\n    manage_security_domain=False,\n    manage_vpc_attachment=False,\n    manage_transit_gateway_attachment=False)\ndefault_domain = aviatrix.AviatrixAwsTgwSecurityDomain(\"defaultDomain\", tgw_name=test_aws_tgw.tgw_name)\nshared_service_domain = aviatrix.AviatrixAwsTgwSecurityDomain(\"sharedServiceDomain\", tgw_name=test_aws_tgw.tgw_name)\naviatrix_edge_domain = aviatrix.AviatrixAwsTgwSecurityDomain(\"aviatrixEdgeDomain\", tgw_name=test_aws_tgw.tgw_name)\ndefault_sd_conn1 = aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\",\n    tgw_name=test_aws_tgw.tgw_name,\n    domain_name1=aviatrix_edge_domain.name,\n    domain_name2=default_domain.name)\ndefault_sd_conn2 = aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\",\n    tgw_name=test_aws_tgw.tgw_name,\n    domain_name1=aviatrix_edge_domain.name,\n    domain_name2=shared_service_domain.name)\ndefault_sd_conn3 = aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\",\n    tgw_name=test_aws_tgw.tgw_name,\n    domain_name1=default_domain.name,\n    domain_name2=shared_service_domain.name)\ntest = aviatrix.AviatrixAwsTgwSecurityDomain(\"test\", tgw_name=test_aws_tgw.tgw_name,\nopts=pulumi.ResourceOptions(depends_on=[\n        default_domain,\n        shared_service_domain,\n        aviatrix_edge_domain,\n    ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW security domain\n    var testAwsTgw = new Aviatrix.AviatrixAwsTgw(\"testAwsTgw\", new()\n    {\n        AccountName = \"devops\",\n        AwsSideAsNumber = \"64512\",\n        Region = \"us-east-1\",\n        TgwName = \"test-AWS-TGW\",\n        ManageSecurityDomain = false,\n        ManageVpcAttachment = false,\n        ManageTransitGatewayAttachment = false,\n    });\n\n    var defaultDomain = new Aviatrix.AviatrixAwsTgwSecurityDomain(\"defaultDomain\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    });\n\n    var sharedServiceDomain = new Aviatrix.AviatrixAwsTgwSecurityDomain(\"sharedServiceDomain\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    });\n\n    var aviatrixEdgeDomain = new Aviatrix.AviatrixAwsTgwSecurityDomain(\"aviatrixEdgeDomain\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    });\n\n    var defaultSdConn1 = new Aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n        DomainName1 = aviatrixEdgeDomain.Name,\n        DomainName2 = defaultDomain.Name,\n    });\n\n    var defaultSdConn2 = new Aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n        DomainName1 = aviatrixEdgeDomain.Name,\n        DomainName2 = sharedServiceDomain.Name,\n    });\n\n    var defaultSdConn3 = new Aviatrix.AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n        DomainName1 = defaultDomain.Name,\n        DomainName2 = sharedServiceDomain.Name,\n    });\n\n    var test = new Aviatrix.AviatrixAwsTgwSecurityDomain(\"test\", new()\n    {\n        TgwName = testAwsTgw.TgwName,\n    }, new CustomResourceOptions\n    {\n        DependsOn = new[]\n        {\n            defaultDomain,\n            sharedServiceDomain,\n            aviatrixEdgeDomain,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAwsTgw, err := aviatrix.NewAviatrixAwsTgw(ctx, \"testAwsTgw\", &aviatrix.AviatrixAwsTgwArgs{\n\t\t\tAccountName:                    pulumi.String(\"devops\"),\n\t\t\tAwsSideAsNumber:                pulumi.String(\"64512\"),\n\t\t\tRegion:                         pulumi.String(\"us-east-1\"),\n\t\t\tTgwName:                        pulumi.String(\"test-AWS-TGW\"),\n\t\t\tManageSecurityDomain:           pulumi.Bool(false),\n\t\t\tManageVpcAttachment:            pulumi.Bool(false),\n\t\t\tManageTransitGatewayAttachment: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDomain, err := aviatrix.NewAviatrixAwsTgwSecurityDomain(ctx, \"defaultDomain\", &aviatrix.AviatrixAwsTgwSecurityDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharedServiceDomain, err := aviatrix.NewAviatrixAwsTgwSecurityDomain(ctx, \"sharedServiceDomain\", &aviatrix.AviatrixAwsTgwSecurityDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taviatrixEdgeDomain, err := aviatrix.NewAviatrixAwsTgwSecurityDomain(ctx, \"aviatrixEdgeDomain\", &aviatrix.AviatrixAwsTgwSecurityDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwSecurityDomainConn(ctx, \"defaultSdConn1\", &aviatrix.AviatrixAwsTgwSecurityDomainConnArgs{\n\t\t\tTgwName:     testAwsTgw.TgwName,\n\t\t\tDomainName1: aviatrixEdgeDomain.Name,\n\t\t\tDomainName2: defaultDomain.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwSecurityDomainConn(ctx, \"defaultSdConn2\", &aviatrix.AviatrixAwsTgwSecurityDomainConnArgs{\n\t\t\tTgwName:     testAwsTgw.TgwName,\n\t\t\tDomainName1: aviatrixEdgeDomain.Name,\n\t\t\tDomainName2: sharedServiceDomain.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwSecurityDomainConn(ctx, \"defaultSdConn3\", &aviatrix.AviatrixAwsTgwSecurityDomainConnArgs{\n\t\t\tTgwName:     testAwsTgw.TgwName,\n\t\t\tDomainName1: defaultDomain.Name,\n\t\t\tDomainName2: sharedServiceDomain.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixAwsTgwSecurityDomain(ctx, \"test\", &aviatrix.AviatrixAwsTgwSecurityDomainArgs{\n\t\t\tTgwName: testAwsTgw.TgwName,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultDomain,\n\t\t\tsharedServiceDomain,\n\t\t\taviatrixEdgeDomain,\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.aviatrix.AviatrixAwsTgw;\nimport com.pulumi.aviatrix.AviatrixAwsTgwArgs;\nimport com.pulumi.aviatrix.AviatrixAwsTgwSecurityDomain;\nimport com.pulumi.aviatrix.AviatrixAwsTgwSecurityDomainArgs;\nimport com.pulumi.aviatrix.AviatrixAwsTgwSecurityDomainConn;\nimport com.pulumi.aviatrix.AviatrixAwsTgwSecurityDomainConnArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 testAwsTgw = new AviatrixAwsTgw(\"testAwsTgw\", AviatrixAwsTgwArgs.builder()        \n            .accountName(\"devops\")\n            .awsSideAsNumber(\"64512\")\n            .region(\"us-east-1\")\n            .tgwName(\"test-AWS-TGW\")\n            .manageSecurityDomain(false)\n            .manageVpcAttachment(false)\n            .manageTransitGatewayAttachment(false)\n            .build());\n\n        var defaultDomain = new AviatrixAwsTgwSecurityDomain(\"defaultDomain\", AviatrixAwsTgwSecurityDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build());\n\n        var sharedServiceDomain = new AviatrixAwsTgwSecurityDomain(\"sharedServiceDomain\", AviatrixAwsTgwSecurityDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build());\n\n        var aviatrixEdgeDomain = new AviatrixAwsTgwSecurityDomain(\"aviatrixEdgeDomain\", AviatrixAwsTgwSecurityDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build());\n\n        var defaultSdConn1 = new AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn1\", AviatrixAwsTgwSecurityDomainConnArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .domainName1(aviatrixEdgeDomain.name())\n            .domainName2(defaultDomain.name())\n            .build());\n\n        var defaultSdConn2 = new AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn2\", AviatrixAwsTgwSecurityDomainConnArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .domainName1(aviatrixEdgeDomain.name())\n            .domainName2(sharedServiceDomain.name())\n            .build());\n\n        var defaultSdConn3 = new AviatrixAwsTgwSecurityDomainConn(\"defaultSdConn3\", AviatrixAwsTgwSecurityDomainConnArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .domainName1(defaultDomain.name())\n            .domainName2(sharedServiceDomain.name())\n            .build());\n\n        var test = new AviatrixAwsTgwSecurityDomain(\"test\", AviatrixAwsTgwSecurityDomainArgs.builder()        \n            .tgwName(testAwsTgw.tgwName())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    defaultDomain,\n                    sharedServiceDomain,\n                    aviatrixEdgeDomain)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW security domain\n  testAwsTgw:\n    type: aviatrix:AviatrixAwsTgw\n    properties:\n      accountName: devops\n      awsSideAsNumber: '64512'\n      region: us-east-1\n      tgwName: test-AWS-TGW\n      manageSecurityDomain: false\n      manageVpcAttachment: false\n      manageTransitGatewayAttachment: false\n  defaultDomain:\n    type: aviatrix:AviatrixAwsTgwSecurityDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n  sharedServiceDomain:\n    type: aviatrix:AviatrixAwsTgwSecurityDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n  aviatrixEdgeDomain:\n    type: aviatrix:AviatrixAwsTgwSecurityDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n  defaultSdConn1:\n    type: aviatrix:AviatrixAwsTgwSecurityDomainConn\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n      domainName1: ${aviatrixEdgeDomain.name}\n      domainName2: ${defaultDomain.name}\n  defaultSdConn2:\n    type: aviatrix:AviatrixAwsTgwSecurityDomainConn\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n      domainName1: ${aviatrixEdgeDomain.name}\n      domainName2: ${sharedServiceDomain.name}\n  defaultSdConn3:\n    type: aviatrix:AviatrixAwsTgwSecurityDomainConn\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n      domainName1: ${defaultDomain.name}\n      domainName2: ${sharedServiceDomain.name}\n  test:\n    type: aviatrix:AviatrixAwsTgwSecurityDomain\n    properties:\n      tgwName: ${testAwsTgw.tgwName}\n    options:\n      dependson:\n        - ${defaultDomain}\n        - ${sharedServiceDomain}\n        - ${aviatrixEdgeDomain}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_security_domain** can be imported using the `name` and `tgw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwSecurityDomain:AviatrixAwsTgwSecurityDomain test tgw_name~name\n```\n\n ",
      "properties": {
        "aviatrixFirewall": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as an Aviatrix Firewall Domain for the Aviatrix Firewall Network. Valid values: true, false. Default value: false.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the security domain.\n"
        },
        "nativeEgress": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as a native egress domain (for non-Aviatrix Firewall Network-based central Internet bound traffic). Valid values: true, false. Default value: false.\n"
        },
        "nativeFirewall": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as a native firewall domain (for non-Aviatrix Firewall Network-based firewall traffic inspection). Valid values: true, false. Default value: false.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name of the security domain.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "tgwName"
      ],
      "inputProperties": {
        "aviatrixFirewall": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as an Aviatrix Firewall Domain for the Aviatrix Firewall Network. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "The name of the security domain.\n",
          "willReplaceOnChanges": true
        },
        "nativeEgress": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as a native egress domain (for non-Aviatrix Firewall Network-based central Internet bound traffic). Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "nativeFirewall": {
          "type": "boolean",
          "description": "Set to true if the security domain is to be used as a native firewall domain (for non-Aviatrix Firewall Network-based firewall traffic inspection). Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name of the security domain.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwSecurityDomain resources.\n",
        "properties": {
          "aviatrixFirewall": {
            "type": "boolean",
            "description": "Set to true if the security domain is to be used as an Aviatrix Firewall Domain for the Aviatrix Firewall Network. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "The name of the security domain.\n",
            "willReplaceOnChanges": true
          },
          "nativeEgress": {
            "type": "boolean",
            "description": "Set to true if the security domain is to be used as a native egress domain (for non-Aviatrix Firewall Network-based central Internet bound traffic). Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "nativeFirewall": {
            "type": "boolean",
            "description": "Set to true if the security domain is to be used as a native firewall domain (for non-Aviatrix Firewall Network-based firewall traffic inspection). Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "The AWS TGW name of the security domain.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwSecurityDomainConn:AviatrixAwsTgwSecurityDomainConn": {
      "description": "!> **WARNING:** Resource 'aviatrix_aws_tgw_security_domain_connection' will be deprecated in future releases. Please use resource 'aviatrix_aws_tgw_peering_domain_conn' instead.\n\nThe **aviatrix_aws_tgw_security_domain_connection** resource allows the creation and management of the connections between security domains in an AWS TGW.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Security Domain Connection\nconst test = new aviatrix.AviatrixAwsTgwSecurityDomainConn(\"test\", {\n    domainName1: \"domain1\",\n    domainName2: \"domain2\",\n    tgwName: \"tgw\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Security Domain Connection\ntest = aviatrix.AviatrixAwsTgwSecurityDomainConn(\"test\",\n    domain_name1=\"domain1\",\n    domain_name2=\"domain2\",\n    tgw_name=\"tgw\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Security Domain Connection\n    var test = new Aviatrix.AviatrixAwsTgwSecurityDomainConn(\"test\", new()\n    {\n        DomainName1 = \"domain1\",\n        DomainName2 = \"domain2\",\n        TgwName = \"tgw\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwSecurityDomainConn(ctx, \"test\", &aviatrix.AviatrixAwsTgwSecurityDomainConnArgs{\n\t\t\tDomainName1: pulumi.String(\"domain1\"),\n\t\t\tDomainName2: pulumi.String(\"domain2\"),\n\t\t\tTgwName:     pulumi.String(\"tgw\"),\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.aviatrix.AviatrixAwsTgwSecurityDomainConn;\nimport com.pulumi.aviatrix.AviatrixAwsTgwSecurityDomainConnArgs;\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 test = new AviatrixAwsTgwSecurityDomainConn(\"test\", AviatrixAwsTgwSecurityDomainConnArgs.builder()        \n            .domainName1(\"domain1\")\n            .domainName2(\"domain2\")\n            .tgwName(\"tgw\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Security Domain Connection\n  test:\n    type: aviatrix:AviatrixAwsTgwSecurityDomainConn\n    properties:\n      domainName1: domain1\n      domainName2: domain2\n      tgwName: tgw\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_security_domain_connection** can be imported using the `tgw_name`, `domain_name1` and `domain_name2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwSecurityDomainConn:AviatrixAwsTgwSecurityDomainConn test tgw_name~domain_name1~domain_name2\n```\n\n ",
      "properties": {
        "domainName1": {
          "type": "string",
          "description": "The name of a security domain to make a connection.\n"
        },
        "domainName2": {
          "type": "string",
          "description": "The name of another security domain to make a connection.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name.\n"
        }
      },
      "type": "object",
      "required": [
        "domainName1",
        "domainName2",
        "tgwName"
      ],
      "inputProperties": {
        "domainName1": {
          "type": "string",
          "description": "The name of a security domain to make a connection.\n",
          "willReplaceOnChanges": true
        },
        "domainName2": {
          "type": "string",
          "description": "The name of another security domain to make a connection.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "The AWS TGW name.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "domainName1",
        "domainName2",
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwSecurityDomainConn resources.\n",
        "properties": {
          "domainName1": {
            "type": "string",
            "description": "The name of a security domain to make a connection.\n",
            "willReplaceOnChanges": true
          },
          "domainName2": {
            "type": "string",
            "description": "The name of another security domain to make a connection.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "The AWS TGW name.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwTransitGatewayAttachment:AviatrixAwsTgwTransitGatewayAttachment": {
      "description": "The **aviatrix_aws_tgw_transit_gateway_attachment** resource manages the attachment of the Aviatrix transit gateway to the AWS TGW.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS TGW Transit Gateway Attachment\nconst testTransitGatewayAttachment = new aviatrix.AviatrixAwsTgwTransitGatewayAttachment(\"test_transit_gateway_attachment\", {\n    region: \"us-east-1\",\n    tgwName: \"test-tgw\",\n    transitGatewayName: \"transit-gw-1\",\n    vpcAccountName: \"test-account\",\n    vpcId: \"vpc-0e2fac2b91c6697b3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW Transit Gateway Attachment\ntest_transit_gateway_attachment = aviatrix.AviatrixAwsTgwTransitGatewayAttachment(\"testTransitGatewayAttachment\",\n    region=\"us-east-1\",\n    tgw_name=\"test-tgw\",\n    transit_gateway_name=\"transit-gw-1\",\n    vpc_account_name=\"test-account\",\n    vpc_id=\"vpc-0e2fac2b91c6697b3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW Transit Gateway Attachment\n    var testTransitGatewayAttachment = new Aviatrix.AviatrixAwsTgwTransitGatewayAttachment(\"testTransitGatewayAttachment\", new()\n    {\n        Region = \"us-east-1\",\n        TgwName = \"test-tgw\",\n        TransitGatewayName = \"transit-gw-1\",\n        VpcAccountName = \"test-account\",\n        VpcId = \"vpc-0e2fac2b91c6697b3\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwTransitGatewayAttachment(ctx, \"testTransitGatewayAttachment\", &aviatrix.AviatrixAwsTgwTransitGatewayAttachmentArgs{\n\t\t\tRegion:             pulumi.String(\"us-east-1\"),\n\t\t\tTgwName:            pulumi.String(\"test-tgw\"),\n\t\t\tTransitGatewayName: pulumi.String(\"transit-gw-1\"),\n\t\t\tVpcAccountName:     pulumi.String(\"test-account\"),\n\t\t\tVpcId:              pulumi.String(\"vpc-0e2fac2b91c6697b3\"),\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.aviatrix.AviatrixAwsTgwTransitGatewayAttachment;\nimport com.pulumi.aviatrix.AviatrixAwsTgwTransitGatewayAttachmentArgs;\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 testTransitGatewayAttachment = new AviatrixAwsTgwTransitGatewayAttachment(\"testTransitGatewayAttachment\", AviatrixAwsTgwTransitGatewayAttachmentArgs.builder()        \n            .region(\"us-east-1\")\n            .tgwName(\"test-tgw\")\n            .transitGatewayName(\"transit-gw-1\")\n            .vpcAccountName(\"test-account\")\n            .vpcId(\"vpc-0e2fac2b91c6697b3\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW Transit Gateway Attachment\n  testTransitGatewayAttachment:\n    type: aviatrix:AviatrixAwsTgwTransitGatewayAttachment\n    properties:\n      region: us-east-1\n      tgwName: test-tgw\n      transitGatewayName: transit-gw-1\n      vpcAccountName: test-account\n      vpcId: vpc-0e2fac2b91c6697b3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_transit_gateway_attachment** can be imported using the `tgw_name` and `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwTransitGatewayAttachment:AviatrixAwsTgwTransitGatewayAttachment test tgw_name~vpc_id\n```\n\n ",
      "properties": {
        "region": {
          "type": "string",
          "description": "AWS Region of the TGW.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "Name of the AWS TGW.\n"
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of the transit gateway to be attached to the AWS TGW.\n"
        },
        "vpcAccountName": {
          "type": "string",
          "description": "The name of the cloud account in the Aviatrix controller, which is associated with the VPC.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the VPC, where transit gateway is launched.\n"
        }
      },
      "type": "object",
      "required": [
        "region",
        "tgwName",
        "transitGatewayName",
        "vpcAccountName",
        "vpcId"
      ],
      "inputProperties": {
        "region": {
          "type": "string",
          "description": "AWS Region of the TGW.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "Name of the AWS TGW.\n",
          "willReplaceOnChanges": true
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of the transit gateway to be attached to the AWS TGW.\n",
          "willReplaceOnChanges": true
        },
        "vpcAccountName": {
          "type": "string",
          "description": "The name of the cloud account in the Aviatrix controller, which is associated with the VPC.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the VPC, where transit gateway is launched.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "region",
        "tgwName",
        "transitGatewayName",
        "vpcAccountName",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwTransitGatewayAttachment resources.\n",
        "properties": {
          "region": {
            "type": "string",
            "description": "AWS Region of the TGW.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "Name of the AWS TGW.\n",
            "willReplaceOnChanges": true
          },
          "transitGatewayName": {
            "type": "string",
            "description": "Name of the transit gateway to be attached to the AWS TGW.\n",
            "willReplaceOnChanges": true
          },
          "vpcAccountName": {
            "type": "string",
            "description": "The name of the cloud account in the Aviatrix controller, which is associated with the VPC.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the VPC, where transit gateway is launched.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwVpcAttachment:AviatrixAwsTgwVpcAttachment": {
      "description": "The **aviatrix_aws_tgw_vpc_attachment** resource manages the attaching & detaching of the VPC to & from an AWS TGW, and FireNet Gateway to TGW Firewall Domain.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS TGW VPC Attachment\nconst testAwsTgwVpcAttachment = new aviatrix.AviatrixAwsTgwVpcAttachment(\"test_aws_tgw_vpc_attachment\", {\n    networkDomainName: \"my-ndn\",\n    region: \"us-east-1\",\n    tgwName: \"test-tgw\",\n    vpcAccountName: \"test-account\",\n    vpcId: \"vpc-0e2fac2b91c6697b3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW VPC Attachment\ntest_aws_tgw_vpc_attachment = aviatrix.AviatrixAwsTgwVpcAttachment(\"testAwsTgwVpcAttachment\",\n    network_domain_name=\"my-ndn\",\n    region=\"us-east-1\",\n    tgw_name=\"test-tgw\",\n    vpc_account_name=\"test-account\",\n    vpc_id=\"vpc-0e2fac2b91c6697b3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW VPC Attachment\n    var testAwsTgwVpcAttachment = new Aviatrix.AviatrixAwsTgwVpcAttachment(\"testAwsTgwVpcAttachment\", new()\n    {\n        NetworkDomainName = \"my-ndn\",\n        Region = \"us-east-1\",\n        TgwName = \"test-tgw\",\n        VpcAccountName = \"test-account\",\n        VpcId = \"vpc-0e2fac2b91c6697b3\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwVpcAttachment(ctx, \"testAwsTgwVpcAttachment\", &aviatrix.AviatrixAwsTgwVpcAttachmentArgs{\n\t\t\tNetworkDomainName: pulumi.String(\"my-ndn\"),\n\t\t\tRegion:            pulumi.String(\"us-east-1\"),\n\t\t\tTgwName:           pulumi.String(\"test-tgw\"),\n\t\t\tVpcAccountName:    pulumi.String(\"test-account\"),\n\t\t\tVpcId:             pulumi.String(\"vpc-0e2fac2b91c6697b3\"),\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.aviatrix.AviatrixAwsTgwVpcAttachment;\nimport com.pulumi.aviatrix.AviatrixAwsTgwVpcAttachmentArgs;\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 testAwsTgwVpcAttachment = new AviatrixAwsTgwVpcAttachment(\"testAwsTgwVpcAttachment\", AviatrixAwsTgwVpcAttachmentArgs.builder()        \n            .networkDomainName(\"my-ndn\")\n            .region(\"us-east-1\")\n            .tgwName(\"test-tgw\")\n            .vpcAccountName(\"test-account\")\n            .vpcId(\"vpc-0e2fac2b91c6697b3\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW VPC Attachment\n  testAwsTgwVpcAttachment:\n    type: aviatrix:AviatrixAwsTgwVpcAttachment\n    properties:\n      networkDomainName: my-ndn\n      region: us-east-1\n      tgwName: test-tgw\n      vpcAccountName: test-account\n      vpcId: vpc-0e2fac2b91c6697b3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_vpc_attachment** can be imported using the `tgw_name`, `security_domain_name` and `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwVpcAttachment:AviatrixAwsTgwVpcAttachment test tgw_name~security_domain_name~vpc_id\n```\n\n ",
      "properties": {
        "customizedRouteAdvertisement": {
          "type": "string",
          "description": "Advanced option. Customized route(s) to be advertised to other VPCs that are connected to the same TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
        },
        "customizedRoutes": {
          "type": "string",
          "description": "Advanced option. Customized Spoke VPC Routes. It allows the admin to enter non-RFC1918 routes in the VPC route table targeting the TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
        },
        "disableLocalRoutePropagation": {
          "type": "boolean",
          "description": "Advanced option. If set to true, it disables automatic route propagation of this VPC to other VPCs within the same security domain. Valid values: true, false. Default value: false.\n"
        },
        "edgeAttachment": {
          "type": "string",
          "description": "Advanced option. To allow access to the private IP of the MGMT interface of the Firewalls, set this attribute to enable Management Access From Onprem. This feature advertises the Firewalls private MGMT subnet to your Edge domain. Example: \"vpn-0068bb31917ff2289\".\n"
        },
        "networkDomainName": {
          "type": "string",
          "description": "The name of the network domain, to which the VPC will be attached to. If changed, the VPC will be detached from the old domain, and attached to the new domain.\n"
        },
        "region": {
          "type": "string",
          "description": "AWS Region of the TGW.\n"
        },
        "routeTables": {
          "type": "string",
          "description": "Advanced option. Route tables separated by ',' to participate in TGW Orchestrator, i.e., learned routes will be propagated to these route tables. Example: \"rtb-212ff547,rtb-045397874c170c745\".\n"
        },
        "securityDomainName": {
          "type": "string",
          "description": "The name of the security domain, to which the VPC will be attached to. If changed, the VPC will be detached from the old domain, and attached to the new domain.\n",
          "deprecationMessage": "Please use network_domain_name instead."
        },
        "subnets": {
          "type": "string",
          "description": "Advanced option. VPC subnets separated by ',' to attach to the VPC. If left blank, Aviatrix Controller automatically\nselects a subnet representing each AZ for the VPC attachment.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "Name of the AWS TGW.\n"
        },
        "vpcAccountName": {
          "type": "string",
          "description": "The name of the cloud account in the Aviatrix controller, which is associated with the VPC.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the VPC to be attached to the specified `security_domain_name`.\n"
        }
      },
      "type": "object",
      "required": [
        "region",
        "routeTables",
        "subnets",
        "tgwName",
        "vpcAccountName",
        "vpcId"
      ],
      "inputProperties": {
        "customizedRouteAdvertisement": {
          "type": "string",
          "description": "Advanced option. Customized route(s) to be advertised to other VPCs that are connected to the same TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
        },
        "customizedRoutes": {
          "type": "string",
          "description": "Advanced option. Customized Spoke VPC Routes. It allows the admin to enter non-RFC1918 routes in the VPC route table targeting the TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
        },
        "disableLocalRoutePropagation": {
          "type": "boolean",
          "description": "Advanced option. If set to true, it disables automatic route propagation of this VPC to other VPCs within the same security domain. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "edgeAttachment": {
          "type": "string",
          "description": "Advanced option. To allow access to the private IP of the MGMT interface of the Firewalls, set this attribute to enable Management Access From Onprem. This feature advertises the Firewalls private MGMT subnet to your Edge domain. Example: \"vpn-0068bb31917ff2289\".\n"
        },
        "networkDomainName": {
          "type": "string",
          "description": "The name of the network domain, to which the VPC will be attached to. If changed, the VPC will be detached from the old domain, and attached to the new domain.\n",
          "willReplaceOnChanges": true
        },
        "region": {
          "type": "string",
          "description": "AWS Region of the TGW.\n"
        },
        "routeTables": {
          "type": "string",
          "description": "Advanced option. Route tables separated by ',' to participate in TGW Orchestrator, i.e., learned routes will be propagated to these route tables. Example: \"rtb-212ff547,rtb-045397874c170c745\".\n",
          "willReplaceOnChanges": true
        },
        "securityDomainName": {
          "type": "string",
          "description": "The name of the security domain, to which the VPC will be attached to. If changed, the VPC will be detached from the old domain, and attached to the new domain.\n",
          "deprecationMessage": "Please use network_domain_name instead.",
          "willReplaceOnChanges": true
        },
        "subnets": {
          "type": "string",
          "description": "Advanced option. VPC subnets separated by ',' to attach to the VPC. If left blank, Aviatrix Controller automatically\nselects a subnet representing each AZ for the VPC attachment.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "Name of the AWS TGW.\n",
          "willReplaceOnChanges": true
        },
        "vpcAccountName": {
          "type": "string",
          "description": "The name of the cloud account in the Aviatrix controller, which is associated with the VPC.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the VPC to be attached to the specified `security_domain_name`.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "region",
        "tgwName",
        "vpcAccountName",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwVpcAttachment resources.\n",
        "properties": {
          "customizedRouteAdvertisement": {
            "type": "string",
            "description": "Advanced option. Customized route(s) to be advertised to other VPCs that are connected to the same TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
          },
          "customizedRoutes": {
            "type": "string",
            "description": "Advanced option. Customized Spoke VPC Routes. It allows the admin to enter non-RFC1918 routes in the VPC route table targeting the TGW. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
          },
          "disableLocalRoutePropagation": {
            "type": "boolean",
            "description": "Advanced option. If set to true, it disables automatic route propagation of this VPC to other VPCs within the same security domain. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "edgeAttachment": {
            "type": "string",
            "description": "Advanced option. To allow access to the private IP of the MGMT interface of the Firewalls, set this attribute to enable Management Access From Onprem. This feature advertises the Firewalls private MGMT subnet to your Edge domain. Example: \"vpn-0068bb31917ff2289\".\n"
          },
          "networkDomainName": {
            "type": "string",
            "description": "The name of the network domain, to which the VPC will be attached to. If changed, the VPC will be detached from the old domain, and attached to the new domain.\n",
            "willReplaceOnChanges": true
          },
          "region": {
            "type": "string",
            "description": "AWS Region of the TGW.\n"
          },
          "routeTables": {
            "type": "string",
            "description": "Advanced option. Route tables separated by ',' to participate in TGW Orchestrator, i.e., learned routes will be propagated to these route tables. Example: \"rtb-212ff547,rtb-045397874c170c745\".\n",
            "willReplaceOnChanges": true
          },
          "securityDomainName": {
            "type": "string",
            "description": "The name of the security domain, to which the VPC will be attached to. If changed, the VPC will be detached from the old domain, and attached to the new domain.\n",
            "deprecationMessage": "Please use network_domain_name instead.",
            "willReplaceOnChanges": true
          },
          "subnets": {
            "type": "string",
            "description": "Advanced option. VPC subnets separated by ',' to attach to the VPC. If left blank, Aviatrix Controller automatically\nselects a subnet representing each AZ for the VPC attachment.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "Name of the AWS TGW.\n",
            "willReplaceOnChanges": true
          },
          "vpcAccountName": {
            "type": "string",
            "description": "The name of the cloud account in the Aviatrix controller, which is associated with the VPC.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the VPC to be attached to the specified `security_domain_name`.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAwsTgwVpnConn:AviatrixAwsTgwVpnConn": {
      "description": "The **aviatrix_aws_tgw_vpn_conn** resource allows the creation and management of Aviatrix AWS TGW VPN connections in their selected Security Domain.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS TGW VPN Connection (dynamic)\nconst testAwsTgwVpnConn = new aviatrix.AviatrixAwsTgwVpnConn(\"test_aws_tgw_vpn_conn\", {\n    connectionName: \"my-conn1\",\n    connectionType: \"dynamic\",\n    publicIp: \"40.0.0.0\",\n    remoteAsNumber: \"12\",\n    routeDomainName: \"Default_Domain\",\n    tgwName: \"test-tgw1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW VPN Connection (dynamic)\ntest_aws_tgw_vpn_conn = aviatrix.AviatrixAwsTgwVpnConn(\"testAwsTgwVpnConn\",\n    connection_name=\"my-conn1\",\n    connection_type=\"dynamic\",\n    public_ip=\"40.0.0.0\",\n    remote_as_number=\"12\",\n    route_domain_name=\"Default_Domain\",\n    tgw_name=\"test-tgw1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW VPN Connection (dynamic)\n    var testAwsTgwVpnConn = new Aviatrix.AviatrixAwsTgwVpnConn(\"testAwsTgwVpnConn\", new()\n    {\n        ConnectionName = \"my-conn1\",\n        ConnectionType = \"dynamic\",\n        PublicIp = \"40.0.0.0\",\n        RemoteAsNumber = \"12\",\n        RouteDomainName = \"Default_Domain\",\n        TgwName = \"test-tgw1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwVpnConn(ctx, \"testAwsTgwVpnConn\", &aviatrix.AviatrixAwsTgwVpnConnArgs{\n\t\t\tConnectionName:  pulumi.String(\"my-conn1\"),\n\t\t\tConnectionType:  pulumi.String(\"dynamic\"),\n\t\t\tPublicIp:        pulumi.String(\"40.0.0.0\"),\n\t\t\tRemoteAsNumber:  pulumi.String(\"12\"),\n\t\t\tRouteDomainName: pulumi.String(\"Default_Domain\"),\n\t\t\tTgwName:         pulumi.String(\"test-tgw1\"),\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.aviatrix.AviatrixAwsTgwVpnConn;\nimport com.pulumi.aviatrix.AviatrixAwsTgwVpnConnArgs;\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 testAwsTgwVpnConn = new AviatrixAwsTgwVpnConn(\"testAwsTgwVpnConn\", AviatrixAwsTgwVpnConnArgs.builder()        \n            .connectionName(\"my-conn1\")\n            .connectionType(\"dynamic\")\n            .publicIp(\"40.0.0.0\")\n            .remoteAsNumber(\"12\")\n            .routeDomainName(\"Default_Domain\")\n            .tgwName(\"test-tgw1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW VPN Connection (dynamic)\n  testAwsTgwVpnConn:\n    type: aviatrix:AviatrixAwsTgwVpnConn\n    properties:\n      connectionName: my-conn1\n      connectionType: dynamic\n      publicIp: 40.0.0.0\n      remoteAsNumber: '12'\n      routeDomainName: Default_Domain\n      tgwName: test-tgw1\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS TGW VPN Connection (static)\nconst testAwsTgwVpnConn = new aviatrix.AviatrixAwsTgwVpnConn(\"test_aws_tgw_vpn_conn\", {\n    connectionName: \"my-conn1\",\n    connectionType: \"static\",\n    publicIp: \"40.0.0.0\",\n    remoteCidr: \"16.0.0.0/16,16.1.0.0/16\",\n    routeDomainName: \"Default_Domain\",\n    tgwName: \"test-tgw1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS TGW VPN Connection (static)\ntest_aws_tgw_vpn_conn = aviatrix.AviatrixAwsTgwVpnConn(\"testAwsTgwVpnConn\",\n    connection_name=\"my-conn1\",\n    connection_type=\"static\",\n    public_ip=\"40.0.0.0\",\n    remote_cidr=\"16.0.0.0/16,16.1.0.0/16\",\n    route_domain_name=\"Default_Domain\",\n    tgw_name=\"test-tgw1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS TGW VPN Connection (static)\n    var testAwsTgwVpnConn = new Aviatrix.AviatrixAwsTgwVpnConn(\"testAwsTgwVpnConn\", new()\n    {\n        ConnectionName = \"my-conn1\",\n        ConnectionType = \"static\",\n        PublicIp = \"40.0.0.0\",\n        RemoteCidr = \"16.0.0.0/16,16.1.0.0/16\",\n        RouteDomainName = \"Default_Domain\",\n        TgwName = \"test-tgw1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAwsTgwVpnConn(ctx, \"testAwsTgwVpnConn\", &aviatrix.AviatrixAwsTgwVpnConnArgs{\n\t\t\tConnectionName:  pulumi.String(\"my-conn1\"),\n\t\t\tConnectionType:  pulumi.String(\"static\"),\n\t\t\tPublicIp:        pulumi.String(\"40.0.0.0\"),\n\t\t\tRemoteCidr:      pulumi.String(\"16.0.0.0/16,16.1.0.0/16\"),\n\t\t\tRouteDomainName: pulumi.String(\"Default_Domain\"),\n\t\t\tTgwName:         pulumi.String(\"test-tgw1\"),\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.aviatrix.AviatrixAwsTgwVpnConn;\nimport com.pulumi.aviatrix.AviatrixAwsTgwVpnConnArgs;\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 testAwsTgwVpnConn = new AviatrixAwsTgwVpnConn(\"testAwsTgwVpnConn\", AviatrixAwsTgwVpnConnArgs.builder()        \n            .connectionName(\"my-conn1\")\n            .connectionType(\"static\")\n            .publicIp(\"40.0.0.0\")\n            .remoteCidr(\"16.0.0.0/16,16.1.0.0/16\")\n            .routeDomainName(\"Default_Domain\")\n            .tgwName(\"test-tgw1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS TGW VPN Connection (static)\n  testAwsTgwVpnConn:\n    type: aviatrix:AviatrixAwsTgwVpnConn\n    properties:\n      connectionName: my-conn1\n      connectionType: static\n      publicIp: 40.0.0.0\n      remoteCidr: 16.0.0.0/16,16.1.0.0/16\n      routeDomainName: Default_Domain\n      tgwName: test-tgw1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aws_tgw_vpn_conn** can be imported using the `tgw_name` and `vpn_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAwsTgwVpnConn:AviatrixAwsTgwVpnConn test tgw_name~vpn_id\n```\n\n ",
      "properties": {
        "connectionName": {
          "type": "string",
          "description": "Unique name of the connection.\n"
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid values: 'dynamic', 'static'. 'dynamic' stands for a BGP VPN connection; 'static' stands for a static VPN connection. Default value: 'dynamic'.\n"
        },
        "enableGlobalAcceleration": {
          "type": "boolean",
          "description": "Enable Global Acceleration. Type: Boolean. Default: false.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable [encrypted transit approval](https://docs.aviatrix.com/HowTos/tgw_approval.html) for AWS TGW VPN connection. Valid values: true, false. Default value: false.\n"
        },
        "insideIpCidrTun1": {
          "type": "string",
          "description": "Inside IP CIDR for Tunnel 1. A /30 CIDR in 169.254.0.0/16.\n"
        },
        "insideIpCidrTun2": {
          "type": "string",
          "description": "Inside IP CIDR for Tunnel 2. A /30 CIDR in 169.254.0.0/16.\n"
        },
        "preSharedKeyTun1": {
          "type": "string",
          "description": "Pre-Shared Key for Tunnel 1. A 8-64 character string with alphanumeric underscore(_) and dot(.). It cannot start with 0.\n",
          "secret": true
        },
        "preSharedKeyTun2": {
          "type": "string",
          "description": "Pre-Shared Key for Tunnel 2. A 8-64 character string with alphanumeric underscore(_) and dot(.). It cannot start with 0.\n",
          "secret": true
        },
        "publicIp": {
          "type": "string",
          "description": "Public IP address. Example: \"40.0.0.0\".\n"
        },
        "remoteAsNumber": {
          "type": "string",
          "description": "AWS side as a number. Integer between 1-4294967294. Example: \"12\". **Required for a dynamic VPN connection.**\n"
        },
        "remoteCidr": {
          "type": "string",
          "description": "Remote CIDRs separated by \",\". Example: AWS: \"16.0.0.0/16,16.1.0.0/16\". **Required for a static VPN connection.**\n"
        },
        "routeDomainName": {
          "type": "string",
          "description": "The name of a route domain, to which the vpn will be attached.\n"
        },
        "tgwName": {
          "type": "string",
          "description": "This parameter represents the name of an AWS TGW.\n"
        },
        "vpnId": {
          "type": "string",
          "description": "ID of the VPN generated by creation of the connection.\n"
        },
        "vpnTunnelDatas": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixAwsTgwVpnConnVpnTunnelData:AviatrixAwsTgwVpnConnVpnTunnelData"
          },
          "description": "AWS TGW VPN tunnel data.\n"
        }
      },
      "type": "object",
      "required": [
        "connectionName",
        "publicIp",
        "routeDomainName",
        "tgwName",
        "vpnId",
        "vpnTunnelDatas"
      ],
      "inputProperties": {
        "connectionName": {
          "type": "string",
          "description": "Unique name of the connection.\n",
          "willReplaceOnChanges": true
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid values: 'dynamic', 'static'. 'dynamic' stands for a BGP VPN connection; 'static' stands for a static VPN connection. Default value: 'dynamic'.\n",
          "willReplaceOnChanges": true
        },
        "enableGlobalAcceleration": {
          "type": "boolean",
          "description": "Enable Global Acceleration. Type: Boolean. Default: false.\n",
          "willReplaceOnChanges": true
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable [encrypted transit approval](https://docs.aviatrix.com/HowTos/tgw_approval.html) for AWS TGW VPN connection. Valid values: true, false. Default value: false.\n"
        },
        "insideIpCidrTun1": {
          "type": "string",
          "description": "Inside IP CIDR for Tunnel 1. A /30 CIDR in 169.254.0.0/16.\n",
          "willReplaceOnChanges": true
        },
        "insideIpCidrTun2": {
          "type": "string",
          "description": "Inside IP CIDR for Tunnel 2. A /30 CIDR in 169.254.0.0/16.\n",
          "willReplaceOnChanges": true
        },
        "preSharedKeyTun1": {
          "type": "string",
          "description": "Pre-Shared Key for Tunnel 1. A 8-64 character string with alphanumeric underscore(_) and dot(.). It cannot start with 0.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "preSharedKeyTun2": {
          "type": "string",
          "description": "Pre-Shared Key for Tunnel 2. A 8-64 character string with alphanumeric underscore(_) and dot(.). It cannot start with 0.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "publicIp": {
          "type": "string",
          "description": "Public IP address. Example: \"40.0.0.0\".\n",
          "willReplaceOnChanges": true
        },
        "remoteAsNumber": {
          "type": "string",
          "description": "AWS side as a number. Integer between 1-4294967294. Example: \"12\". **Required for a dynamic VPN connection.**\n",
          "willReplaceOnChanges": true
        },
        "remoteCidr": {
          "type": "string",
          "description": "Remote CIDRs separated by \",\". Example: AWS: \"16.0.0.0/16,16.1.0.0/16\". **Required for a static VPN connection.**\n",
          "willReplaceOnChanges": true
        },
        "routeDomainName": {
          "type": "string",
          "description": "The name of a route domain, to which the vpn will be attached.\n",
          "willReplaceOnChanges": true
        },
        "tgwName": {
          "type": "string",
          "description": "This parameter represents the name of an AWS TGW.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "connectionName",
        "publicIp",
        "routeDomainName",
        "tgwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAwsTgwVpnConn resources.\n",
        "properties": {
          "connectionName": {
            "type": "string",
            "description": "Unique name of the connection.\n",
            "willReplaceOnChanges": true
          },
          "connectionType": {
            "type": "string",
            "description": "Connection type. Valid values: 'dynamic', 'static'. 'dynamic' stands for a BGP VPN connection; 'static' stands for a static VPN connection. Default value: 'dynamic'.\n",
            "willReplaceOnChanges": true
          },
          "enableGlobalAcceleration": {
            "type": "boolean",
            "description": "Enable Global Acceleration. Type: Boolean. Default: false.\n",
            "willReplaceOnChanges": true
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Switch to enable/disable [encrypted transit approval](https://docs.aviatrix.com/HowTos/tgw_approval.html) for AWS TGW VPN connection. Valid values: true, false. Default value: false.\n"
          },
          "insideIpCidrTun1": {
            "type": "string",
            "description": "Inside IP CIDR for Tunnel 1. A /30 CIDR in 169.254.0.0/16.\n",
            "willReplaceOnChanges": true
          },
          "insideIpCidrTun2": {
            "type": "string",
            "description": "Inside IP CIDR for Tunnel 2. A /30 CIDR in 169.254.0.0/16.\n",
            "willReplaceOnChanges": true
          },
          "preSharedKeyTun1": {
            "type": "string",
            "description": "Pre-Shared Key for Tunnel 1. A 8-64 character string with alphanumeric underscore(_) and dot(.). It cannot start with 0.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "preSharedKeyTun2": {
            "type": "string",
            "description": "Pre-Shared Key for Tunnel 2. A 8-64 character string with alphanumeric underscore(_) and dot(.). It cannot start with 0.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "publicIp": {
            "type": "string",
            "description": "Public IP address. Example: \"40.0.0.0\".\n",
            "willReplaceOnChanges": true
          },
          "remoteAsNumber": {
            "type": "string",
            "description": "AWS side as a number. Integer between 1-4294967294. Example: \"12\". **Required for a dynamic VPN connection.**\n",
            "willReplaceOnChanges": true
          },
          "remoteCidr": {
            "type": "string",
            "description": "Remote CIDRs separated by \",\". Example: AWS: \"16.0.0.0/16,16.1.0.0/16\". **Required for a static VPN connection.**\n",
            "willReplaceOnChanges": true
          },
          "routeDomainName": {
            "type": "string",
            "description": "The name of a route domain, to which the vpn will be attached.\n",
            "willReplaceOnChanges": true
          },
          "tgwName": {
            "type": "string",
            "description": "This parameter represents the name of an AWS TGW.\n",
            "willReplaceOnChanges": true
          },
          "vpnId": {
            "type": "string",
            "description": "ID of the VPN generated by creation of the connection.\n"
          },
          "vpnTunnelDatas": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixAwsTgwVpnConnVpnTunnelData:AviatrixAwsTgwVpnConnVpnTunnelData"
            },
            "description": "AWS TGW VPN tunnel data.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAzurePeer:AviatrixAzurePeer": {
      "description": "The **aviatrix_azure_peer** resource allows the creation and management of the Aviatrix-created peerings between Azure VNets.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Azure Peering\nconst testAzurepeer = new aviatrix.AviatrixAzurePeer(\"test_azurepeer\", {\n    accountName1: \"test1-account\",\n    accountName2: \"test2-account\",\n    vnetNameResourceGroup1: \"Foo_VNet1:Bar_RG1:GUID1\",\n    vnetNameResourceGroup2: \"Foo_VNet2:Bar_RG2:GUID2\",\n    vnetReg1: \"Central US\",\n    vnetReg2: \"East US\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Azure Peering\ntest_azurepeer = aviatrix.AviatrixAzurePeer(\"testAzurepeer\",\n    account_name1=\"test1-account\",\n    account_name2=\"test2-account\",\n    vnet_name_resource_group1=\"Foo_VNet1:Bar_RG1:GUID1\",\n    vnet_name_resource_group2=\"Foo_VNet2:Bar_RG2:GUID2\",\n    vnet_reg1=\"Central US\",\n    vnet_reg2=\"East US\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Azure Peering\n    var testAzurepeer = new Aviatrix.AviatrixAzurePeer(\"testAzurepeer\", new()\n    {\n        AccountName1 = \"test1-account\",\n        AccountName2 = \"test2-account\",\n        VnetNameResourceGroup1 = \"Foo_VNet1:Bar_RG1:GUID1\",\n        VnetNameResourceGroup2 = \"Foo_VNet2:Bar_RG2:GUID2\",\n        VnetReg1 = \"Central US\",\n        VnetReg2 = \"East US\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAzurePeer(ctx, \"testAzurepeer\", &aviatrix.AviatrixAzurePeerArgs{\n\t\t\tAccountName1:           pulumi.String(\"test1-account\"),\n\t\t\tAccountName2:           pulumi.String(\"test2-account\"),\n\t\t\tVnetNameResourceGroup1: pulumi.String(\"Foo_VNet1:Bar_RG1:GUID1\"),\n\t\t\tVnetNameResourceGroup2: pulumi.String(\"Foo_VNet2:Bar_RG2:GUID2\"),\n\t\t\tVnetReg1:               pulumi.String(\"Central US\"),\n\t\t\tVnetReg2:               pulumi.String(\"East US\"),\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.aviatrix.AviatrixAzurePeer;\nimport com.pulumi.aviatrix.AviatrixAzurePeerArgs;\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 testAzurepeer = new AviatrixAzurePeer(\"testAzurepeer\", AviatrixAzurePeerArgs.builder()        \n            .accountName1(\"test1-account\")\n            .accountName2(\"test2-account\")\n            .vnetNameResourceGroup1(\"Foo_VNet1:Bar_RG1:GUID1\")\n            .vnetNameResourceGroup2(\"Foo_VNet2:Bar_RG2:GUID2\")\n            .vnetReg1(\"Central US\")\n            .vnetReg2(\"East US\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Azure Peering\n  testAzurepeer:\n    type: aviatrix:AviatrixAzurePeer\n    properties:\n      accountName1: test1-account\n      accountName2: test2-account\n      vnetNameResourceGroup1: Foo_VNet1:Bar_RG1:GUID1\n      vnetNameResourceGroup2: Foo_VNet2:Bar_RG2:GUID2\n      vnetReg1: Central US\n      vnetReg2: East US\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**azure_peer** can be imported using the `vnet_name_resource_group1` and `vnet_name_resource_group2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAzurePeer:AviatrixAzurePeer test vnet_name_resource_group1~vnet_name_resource_group2\n```\n\n ",
      "properties": {
        "accountName1": {
          "type": "string",
          "description": "Name of the Azure cloud account in the Aviatrix controller for VNet 1.\n"
        },
        "accountName2": {
          "type": "string",
          "description": "Name of the Azure cloud account in the Aviatrix controller for VNet 2.\n"
        },
        "vnetCidr1s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VNet CIDR of vnet_name_resource_group1.\n"
        },
        "vnetCidr2s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VNet CIDR of vnet_name_resource_group2.\n"
        },
        "vnetNameResourceGroup1": {
          "type": "string",
          "description": "Azure VNet 1's name. Example: \"VNet_Name1:Resource_Group_Name1:GUID1\".\n"
        },
        "vnetNameResourceGroup2": {
          "type": "string",
          "description": "Azure VNet 2's name. Example: \"VNet_Name2:Resource_Group_Name2:GUID2\".\n"
        },
        "vnetReg1": {
          "type": "string",
          "description": "Region of Azure VNet 1. Example: \"East US 2\".\n"
        },
        "vnetReg2": {
          "type": "string",
          "description": "Region of Azure VNet 2. Example: \"East US 2\".\n"
        }
      },
      "type": "object",
      "required": [
        "accountName1",
        "accountName2",
        "vnetCidr1s",
        "vnetCidr2s",
        "vnetNameResourceGroup1",
        "vnetNameResourceGroup2",
        "vnetReg1",
        "vnetReg2"
      ],
      "inputProperties": {
        "accountName1": {
          "type": "string",
          "description": "Name of the Azure cloud account in the Aviatrix controller for VNet 1.\n",
          "willReplaceOnChanges": true
        },
        "accountName2": {
          "type": "string",
          "description": "Name of the Azure cloud account in the Aviatrix controller for VNet 2.\n",
          "willReplaceOnChanges": true
        },
        "vnetNameResourceGroup1": {
          "type": "string",
          "description": "Azure VNet 1's name. Example: \"VNet_Name1:Resource_Group_Name1:GUID1\".\n",
          "willReplaceOnChanges": true
        },
        "vnetNameResourceGroup2": {
          "type": "string",
          "description": "Azure VNet 2's name. Example: \"VNet_Name2:Resource_Group_Name2:GUID2\".\n",
          "willReplaceOnChanges": true
        },
        "vnetReg1": {
          "type": "string",
          "description": "Region of Azure VNet 1. Example: \"East US 2\".\n",
          "willReplaceOnChanges": true
        },
        "vnetReg2": {
          "type": "string",
          "description": "Region of Azure VNet 2. Example: \"East US 2\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName1",
        "accountName2",
        "vnetNameResourceGroup1",
        "vnetNameResourceGroup2",
        "vnetReg1",
        "vnetReg2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAzurePeer resources.\n",
        "properties": {
          "accountName1": {
            "type": "string",
            "description": "Name of the Azure cloud account in the Aviatrix controller for VNet 1.\n",
            "willReplaceOnChanges": true
          },
          "accountName2": {
            "type": "string",
            "description": "Name of the Azure cloud account in the Aviatrix controller for VNet 2.\n",
            "willReplaceOnChanges": true
          },
          "vnetCidr1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of VNet CIDR of vnet_name_resource_group1.\n"
          },
          "vnetCidr2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of VNet CIDR of vnet_name_resource_group2.\n"
          },
          "vnetNameResourceGroup1": {
            "type": "string",
            "description": "Azure VNet 1's name. Example: \"VNet_Name1:Resource_Group_Name1:GUID1\".\n",
            "willReplaceOnChanges": true
          },
          "vnetNameResourceGroup2": {
            "type": "string",
            "description": "Azure VNet 2's name. Example: \"VNet_Name2:Resource_Group_Name2:GUID2\".\n",
            "willReplaceOnChanges": true
          },
          "vnetReg1": {
            "type": "string",
            "description": "Region of Azure VNet 1. Example: \"East US 2\".\n",
            "willReplaceOnChanges": true
          },
          "vnetReg2": {
            "type": "string",
            "description": "Region of Azure VNet 2. Example: \"East US 2\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAzureSpokeNativePeering:AviatrixAzureSpokeNativePeering": {
      "description": "The **aviatrix_azure_spoke_native_peering** resource allows the creation and management of Aviatrix-created Azure Spoke VNet attachments via Native Peering.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Azure spoke native peering\nconst test = new aviatrix.AviatrixAzureSpokeNativePeering(\"test\", {\n    spokeAccountName: \"devops-azure\",\n    spokeRegion: \"West US\",\n    spokeVpcId: \"Foo_VNet:Bar_RG:GUID\",\n    transitGatewayName: \"transit-gw-azure\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Azure spoke native peering\ntest = aviatrix.AviatrixAzureSpokeNativePeering(\"test\",\n    spoke_account_name=\"devops-azure\",\n    spoke_region=\"West US\",\n    spoke_vpc_id=\"Foo_VNet:Bar_RG:GUID\",\n    transit_gateway_name=\"transit-gw-azure\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Azure spoke native peering\n    var test = new Aviatrix.AviatrixAzureSpokeNativePeering(\"test\", new()\n    {\n        SpokeAccountName = \"devops-azure\",\n        SpokeRegion = \"West US\",\n        SpokeVpcId = \"Foo_VNet:Bar_RG:GUID\",\n        TransitGatewayName = \"transit-gw-azure\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAzureSpokeNativePeering(ctx, \"test\", &aviatrix.AviatrixAzureSpokeNativePeeringArgs{\n\t\t\tSpokeAccountName:   pulumi.String(\"devops-azure\"),\n\t\t\tSpokeRegion:        pulumi.String(\"West US\"),\n\t\t\tSpokeVpcId:         pulumi.String(\"Foo_VNet:Bar_RG:GUID\"),\n\t\t\tTransitGatewayName: pulumi.String(\"transit-gw-azure\"),\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.aviatrix.AviatrixAzureSpokeNativePeering;\nimport com.pulumi.aviatrix.AviatrixAzureSpokeNativePeeringArgs;\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 test = new AviatrixAzureSpokeNativePeering(\"test\", AviatrixAzureSpokeNativePeeringArgs.builder()        \n            .spokeAccountName(\"devops-azure\")\n            .spokeRegion(\"West US\")\n            .spokeVpcId(\"Foo_VNet:Bar_RG:GUID\")\n            .transitGatewayName(\"transit-gw-azure\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Azure spoke native peering\n  test:\n    type: aviatrix:AviatrixAzureSpokeNativePeering\n    properties:\n      spokeAccountName: devops-azure\n      spokeRegion: West US\n      spokeVpcId: Foo_VNet:Bar_RG:GUID\n      transitGatewayName: transit-gw-azure\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**azure_spoke_native_peering** can be imported using the `transit_gateway_name`, `spoke_account_name` and `spoke_vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAzureSpokeNativePeering:AviatrixAzureSpokeNativePeering test transit_gateway_name~spoke_account_name~spoke_vpc_id\n```\n\n ",
      "properties": {
        "spokeAccountName": {
          "type": "string",
          "description": "An Aviatrix account that corresponds to a subscription in Azure.\n"
        },
        "spokeRegion": {
          "type": "string",
          "description": "Spoke VNet region. Example: \"West US\".\n"
        },
        "spokeVpcId": {
          "type": "string",
          "description": "Combination of the Spoke's VNet name, resource group and GUID. Example: \"Foo_VNet:Bar_RG:GUID\".\n"
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of an Transit FireNet-enabled Azure transit gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "spokeAccountName",
        "spokeRegion",
        "spokeVpcId",
        "transitGatewayName"
      ],
      "inputProperties": {
        "spokeAccountName": {
          "type": "string",
          "description": "An Aviatrix account that corresponds to a subscription in Azure.\n",
          "willReplaceOnChanges": true
        },
        "spokeRegion": {
          "type": "string",
          "description": "Spoke VNet region. Example: \"West US\".\n",
          "willReplaceOnChanges": true
        },
        "spokeVpcId": {
          "type": "string",
          "description": "Combination of the Spoke's VNet name, resource group and GUID. Example: \"Foo_VNet:Bar_RG:GUID\".\n",
          "willReplaceOnChanges": true
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of an Transit FireNet-enabled Azure transit gateway.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "spokeAccountName",
        "spokeRegion",
        "spokeVpcId",
        "transitGatewayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAzureSpokeNativePeering resources.\n",
        "properties": {
          "spokeAccountName": {
            "type": "string",
            "description": "An Aviatrix account that corresponds to a subscription in Azure.\n",
            "willReplaceOnChanges": true
          },
          "spokeRegion": {
            "type": "string",
            "description": "Spoke VNet region. Example: \"West US\".\n",
            "willReplaceOnChanges": true
          },
          "spokeVpcId": {
            "type": "string",
            "description": "Combination of the Spoke's VNet name, resource group and GUID. Example: \"Foo_VNet:Bar_RG:GUID\".\n",
            "willReplaceOnChanges": true
          },
          "transitGatewayName": {
            "type": "string",
            "description": "Name of an Transit FireNet-enabled Azure transit gateway.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixAzureVngConn:AviatrixAzureVngConn": {
      "description": "The **aviatrix_azure_vng_conn** resource allows the creation and management of the connection between Aviatrix Transit Gateway and Azure VNG.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Attach an Azure VNG to an Aviatrix Transit Gateway\nconst test = new aviatrix.AviatrixAzureVngConn(\"test\", {\n    connectionName: \"connection\",\n    primaryGatewayName: \"primary-gateway\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Attach an Azure VNG to an Aviatrix Transit Gateway\ntest = aviatrix.AviatrixAzureVngConn(\"test\",\n    connection_name=\"connection\",\n    primary_gateway_name=\"primary-gateway\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Attach an Azure VNG to an Aviatrix Transit Gateway\n    var test = new Aviatrix.AviatrixAzureVngConn(\"test\", new()\n    {\n        ConnectionName = \"connection\",\n        PrimaryGatewayName = \"primary-gateway\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixAzureVngConn(ctx, \"test\", &aviatrix.AviatrixAzureVngConnArgs{\n\t\t\tConnectionName:     pulumi.String(\"connection\"),\n\t\t\tPrimaryGatewayName: pulumi.String(\"primary-gateway\"),\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.aviatrix.AviatrixAzureVngConn;\nimport com.pulumi.aviatrix.AviatrixAzureVngConnArgs;\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 test = new AviatrixAzureVngConn(\"test\", AviatrixAzureVngConnArgs.builder()        \n            .connectionName(\"connection\")\n            .primaryGatewayName(\"primary-gateway\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Attach an Azure VNG to an Aviatrix Transit Gateway\n  test:\n    type: aviatrix:AviatrixAzureVngConn\n    properties:\n      connectionName: connection\n      primaryGatewayName: primary-gateway\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_azure_vng_conn** can be imported using the `connection_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixAzureVngConn:AviatrixAzureVngConn test connection\n```\n\n ",
      "properties": {
        "attached": {
          "type": "boolean",
          "description": "The status of the connection.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Connection name.\n"
        },
        "primaryGatewayName": {
          "type": "string",
          "description": "Primary Aviatrix transit gateway name.\n"
        },
        "vngName": {
          "type": "string",
          "description": "Name of Azure VNG.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID.\n"
        }
      },
      "type": "object",
      "required": [
        "attached",
        "connectionName",
        "primaryGatewayName",
        "vngName",
        "vpcId"
      ],
      "inputProperties": {
        "connectionName": {
          "type": "string",
          "description": "Connection name.\n",
          "willReplaceOnChanges": true
        },
        "primaryGatewayName": {
          "type": "string",
          "description": "Primary Aviatrix transit gateway name.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "connectionName",
        "primaryGatewayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixAzureVngConn resources.\n",
        "properties": {
          "attached": {
            "type": "boolean",
            "description": "The status of the connection.\n"
          },
          "connectionName": {
            "type": "string",
            "description": "Connection name.\n",
            "willReplaceOnChanges": true
          },
          "primaryGatewayName": {
            "type": "string",
            "description": "Primary Aviatrix transit gateway name.\n",
            "willReplaceOnChanges": true
          },
          "vngName": {
            "type": "string",
            "description": "Name of Azure VNG.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixCloudnRegistration:AviatrixCloudnRegistration": {
      "description": "The **aviatrix_cloudn_registration** resource allows the registration and deregistration of Aviatrix CloudN as a Gateway. This resource is available as of provider version R2.21+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a CloudN Registration\nconst testCloudnRegistration = new aviatrix.AviatrixCloudnRegistration(\"test_cloudn_registration\", {\n    address: \"10.210.38.100\",\n    localAsNumber: \"65000\",\n    password: \"password\",\n    prependAsPaths: [\n        \"65000\",\n        \"65000\",\n    ],\n    username: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a CloudN Registration\ntest_cloudn_registration = aviatrix.AviatrixCloudnRegistration(\"testCloudnRegistration\",\n    address=\"10.210.38.100\",\n    local_as_number=\"65000\",\n    password=\"password\",\n    prepend_as_paths=[\n        \"65000\",\n        \"65000\",\n    ],\n    username=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a CloudN Registration\n    var testCloudnRegistration = new Aviatrix.AviatrixCloudnRegistration(\"testCloudnRegistration\", new()\n    {\n        Address = \"10.210.38.100\",\n        LocalAsNumber = \"65000\",\n        Password = \"password\",\n        PrependAsPaths = new[]\n        {\n            \"65000\",\n            \"65000\",\n        },\n        Username = \"admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixCloudnRegistration(ctx, \"testCloudnRegistration\", &aviatrix.AviatrixCloudnRegistrationArgs{\n\t\t\tAddress:       pulumi.String(\"10.210.38.100\"),\n\t\t\tLocalAsNumber: pulumi.String(\"65000\"),\n\t\t\tPassword:      pulumi.String(\"password\"),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t},\n\t\t\tUsername: pulumi.String(\"admin\"),\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.aviatrix.AviatrixCloudnRegistration;\nimport com.pulumi.aviatrix.AviatrixCloudnRegistrationArgs;\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 testCloudnRegistration = new AviatrixCloudnRegistration(\"testCloudnRegistration\", AviatrixCloudnRegistrationArgs.builder()        \n            .address(\"10.210.38.100\")\n            .localAsNumber(\"65000\")\n            .password(\"password\")\n            .prependAsPaths(            \n                \"65000\",\n                \"65000\")\n            .username(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a CloudN Registration\n  testCloudnRegistration:\n    type: aviatrix:AviatrixCloudnRegistration\n    properties:\n      address: 10.210.38.100\n      localAsNumber: '65000'\n      password: password\n      prependAsPaths:\n        - '65000'\n        - '65000'\n      username: admin\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**cloudn_registration** can be imported using the `name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixCloudnRegistration:AviatrixCloudnRegistration test_cloudn_registration name\n```\n\n ",
      "properties": {
        "address": {
          "type": "string",
          "description": "Aviatrix CloudN's public or private IP. Type: String.\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "BGP AS Number to assign to the Transit Gateway. Type: String.\n"
        },
        "name": {
          "type": "string",
          "description": "Gateway name to assign to the CloudN device. Type: String.\n"
        },
        "password": {
          "type": "string",
          "description": "Aviatrix account password corresponding to above username. Type: String.\n",
          "secret": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires local_as_number to be set. Type: List.\n"
        },
        "username": {
          "type": "string",
          "description": "Aviatrix account username which will be used to log in to Aviatrix CloudN. Type: String.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "localAsNumber",
        "name",
        "password",
        "username"
      ],
      "inputProperties": {
        "address": {
          "type": "string",
          "description": "Aviatrix CloudN's public or private IP. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "localAsNumber": {
          "type": "string",
          "description": "BGP AS Number to assign to the Transit Gateway. Type: String.\n"
        },
        "name": {
          "type": "string",
          "description": "Gateway name to assign to the CloudN device. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "password": {
          "type": "string",
          "description": "Aviatrix account password corresponding to above username. Type: String.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires local_as_number to be set. Type: List.\n"
        },
        "username": {
          "type": "string",
          "description": "Aviatrix account username which will be used to log in to Aviatrix CloudN. Type: String.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "address",
        "password",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixCloudnRegistration resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "Aviatrix CloudN's public or private IP. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "localAsNumber": {
            "type": "string",
            "description": "BGP AS Number to assign to the Transit Gateway. Type: String.\n"
          },
          "name": {
            "type": "string",
            "description": "Gateway name to assign to the CloudN device. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "password": {
            "type": "string",
            "description": "Aviatrix account password corresponding to above username. Type: String.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires local_as_number to be set. Type: List.\n"
          },
          "username": {
            "type": "string",
            "description": "Aviatrix account username which will be used to log in to Aviatrix CloudN. Type: String.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixCloudnTransitGatewayAttachment:AviatrixCloudnTransitGatewayAttachment": {
      "description": "The **aviatrix_cloudn_transit_gateway_attachment** resource allows the creation and management of CloudN Transit Gateway Attachments. This resource is available as of provider version R2.19+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create a CloudN Transit Gateway Attachment\nconst test = new aviatrix.AviatrixCloudnTransitGatewayAttachment(\"test\", {\n    deviceName: aviatrix_device_registration.test_device.name,\n    transitGatewayName: aviatrix_transit_gateway.aws_transit.gw_name,\n    connectionName: \"cloudn-transit-attachment-test\",\n    transitGatewayBgpAsn: \"65000\",\n    cloudnBgpAsn: \"65046\",\n    cloudnLanInterfaceNeighborIp: \"10.210.38.100\",\n    cloudnLanInterfaceNeighborBgpAsn: \"65219\",\n    enableOverPrivateNetwork: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a CloudN Transit Gateway Attachment\ntest = aviatrix.AviatrixCloudnTransitGatewayAttachment(\"test\",\n    device_name=aviatrix_device_registration[\"test_device\"][\"name\"],\n    transit_gateway_name=aviatrix_transit_gateway[\"aws_transit\"][\"gw_name\"],\n    connection_name=\"cloudn-transit-attachment-test\",\n    transit_gateway_bgp_asn=\"65000\",\n    cloudn_bgp_asn=\"65046\",\n    cloudn_lan_interface_neighbor_ip=\"10.210.38.100\",\n    cloudn_lan_interface_neighbor_bgp_asn=\"65219\",\n    enable_over_private_network=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a CloudN Transit Gateway Attachment\n    var test = new Aviatrix.AviatrixCloudnTransitGatewayAttachment(\"test\", new()\n    {\n        DeviceName = aviatrix_device_registration.Test_device.Name,\n        TransitGatewayName = aviatrix_transit_gateway.Aws_transit.Gw_name,\n        ConnectionName = \"cloudn-transit-attachment-test\",\n        TransitGatewayBgpAsn = \"65000\",\n        CloudnBgpAsn = \"65046\",\n        CloudnLanInterfaceNeighborIp = \"10.210.38.100\",\n        CloudnLanInterfaceNeighborBgpAsn = \"65219\",\n        EnableOverPrivateNetwork = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixCloudnTransitGatewayAttachment(ctx, \"test\", &aviatrix.AviatrixCloudnTransitGatewayAttachmentArgs{\n\t\t\tDeviceName:                       pulumi.Any(aviatrix_device_registration.Test_device.Name),\n\t\t\tTransitGatewayName:               pulumi.Any(aviatrix_transit_gateway.Aws_transit.Gw_name),\n\t\t\tConnectionName:                   pulumi.String(\"cloudn-transit-attachment-test\"),\n\t\t\tTransitGatewayBgpAsn:             pulumi.String(\"65000\"),\n\t\t\tCloudnBgpAsn:                     pulumi.String(\"65046\"),\n\t\t\tCloudnLanInterfaceNeighborIp:     pulumi.String(\"10.210.38.100\"),\n\t\t\tCloudnLanInterfaceNeighborBgpAsn: pulumi.String(\"65219\"),\n\t\t\tEnableOverPrivateNetwork:         pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixCloudnTransitGatewayAttachment;\nimport com.pulumi.aviatrix.AviatrixCloudnTransitGatewayAttachmentArgs;\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 test = new AviatrixCloudnTransitGatewayAttachment(\"test\", AviatrixCloudnTransitGatewayAttachmentArgs.builder()        \n            .deviceName(aviatrix_device_registration.test_device().name())\n            .transitGatewayName(aviatrix_transit_gateway.aws_transit().gw_name())\n            .connectionName(\"cloudn-transit-attachment-test\")\n            .transitGatewayBgpAsn(\"65000\")\n            .cloudnBgpAsn(\"65046\")\n            .cloudnLanInterfaceNeighborIp(\"10.210.38.100\")\n            .cloudnLanInterfaceNeighborBgpAsn(\"65219\")\n            .enableOverPrivateNetwork(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a CloudN Transit Gateway Attachment\n  test:\n    type: aviatrix:AviatrixCloudnTransitGatewayAttachment\n    properties:\n      deviceName: ${aviatrix_device_registration.test_device.name}\n      transitGatewayName: ${aviatrix_transit_gateway.aws_transit.gw_name}\n      connectionName: cloudn-transit-attachment-test\n      transitGatewayBgpAsn: '65000'\n      cloudnBgpAsn: '65046'\n      cloudnLanInterfaceNeighborIp: 10.210.38.100\n      cloudnLanInterfaceNeighborBgpAsn: '65219'\n      enableOverPrivateNetwork: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_cloudn_transit_gateway_attachment** can be imported using the `connection_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixCloudnTransitGatewayAttachment:AviatrixCloudnTransitGatewayAttachment test connection_name\n```\n\n ",
      "properties": {
        "cloudnBgpAsn": {
          "type": "string",
          "description": "CloudN BGP AS Number. Type: String.\n"
        },
        "cloudnLanInterfaceNeighborBgpAsn": {
          "type": "string",
          "description": "CloudN LAN Interface Neighbor's AS Number. Type: String.\n"
        },
        "cloudnLanInterfaceNeighborIp": {
          "type": "string",
          "description": "CloudN LAN Interface Neighbor's IP Address. Type: String.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Connection Name. Type: String.\n"
        },
        "deviceName": {
          "type": "string",
          "description": "CloudN device name. Type: String.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable Jumbo Frame support for the connection. Type: Boolean. Default: false.\n"
        },
        "enableOverPrivateNetwork": {
          "type": "boolean",
          "description": "Enable connection over private network. Type: Boolean. Default: true.\n"
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires transit_gateway_bgp_asn to be set. Type: List. Available as of provider version R2.21.0+.\n"
        },
        "transitGatewayBgpAsn": {
          "type": "string",
          "description": "Transit Gateway BGP AS Number. Type: String.\n"
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Transit Gateway Name. Type: String.\n"
        }
      },
      "type": "object",
      "required": [
        "cloudnBgpAsn",
        "cloudnLanInterfaceNeighborBgpAsn",
        "cloudnLanInterfaceNeighborIp",
        "connectionName",
        "deviceName",
        "transitGatewayBgpAsn",
        "transitGatewayName"
      ],
      "inputProperties": {
        "cloudnBgpAsn": {
          "type": "string",
          "description": "CloudN BGP AS Number. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "cloudnLanInterfaceNeighborBgpAsn": {
          "type": "string",
          "description": "CloudN LAN Interface Neighbor's AS Number. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "cloudnLanInterfaceNeighborIp": {
          "type": "string",
          "description": "CloudN LAN Interface Neighbor's IP Address. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "connectionName": {
          "type": "string",
          "description": "Connection Name. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "deviceName": {
          "type": "string",
          "description": "CloudN device name. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable Jumbo Frame support for the connection. Type: Boolean. Default: false.\n"
        },
        "enableOverPrivateNetwork": {
          "type": "boolean",
          "description": "Enable connection over private network. Type: Boolean. Default: true.\n",
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires transit_gateway_bgp_asn to be set. Type: List. Available as of provider version R2.21.0+.\n"
        },
        "transitGatewayBgpAsn": {
          "type": "string",
          "description": "Transit Gateway BGP AS Number. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Transit Gateway Name. Type: String.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "cloudnBgpAsn",
        "cloudnLanInterfaceNeighborBgpAsn",
        "cloudnLanInterfaceNeighborIp",
        "connectionName",
        "deviceName",
        "transitGatewayBgpAsn",
        "transitGatewayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixCloudnTransitGatewayAttachment resources.\n",
        "properties": {
          "cloudnBgpAsn": {
            "type": "string",
            "description": "CloudN BGP AS Number. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "cloudnLanInterfaceNeighborBgpAsn": {
            "type": "string",
            "description": "CloudN LAN Interface Neighbor's AS Number. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "cloudnLanInterfaceNeighborIp": {
            "type": "string",
            "description": "CloudN LAN Interface Neighbor's IP Address. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "connectionName": {
            "type": "string",
            "description": "Connection Name. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "deviceName": {
            "type": "string",
            "description": "CloudN device name. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "enableJumboFrame": {
            "type": "boolean",
            "description": "Enable Jumbo Frame support for the connection. Type: Boolean. Default: false.\n"
          },
          "enableOverPrivateNetwork": {
            "type": "boolean",
            "description": "Enable connection over private network. Type: Boolean. Default: true.\n",
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires transit_gateway_bgp_asn to be set. Type: List. Available as of provider version R2.21.0+.\n"
          },
          "transitGatewayBgpAsn": {
            "type": "string",
            "description": "Transit Gateway BGP AS Number. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "transitGatewayName": {
            "type": "string",
            "description": "Transit Gateway Name. Type: String.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixCloudwatchAgent:AviatrixCloudwatchAgent": {
      "description": "The **aviatrix_cloudwatch_agent** resource allows the enabling and disabling of cloudwatch agent.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable cloudwatch agent\nconst testCloudwatchAgent = new aviatrix.AviatrixCloudwatchAgent(\"test_cloudwatch_agent\", {\n    cloudwatchRoleArn: \"arn:aws:iam::469550033836:role/aviatrix-role-cloudwatch\",\n    excludedGateways: [\n        \"a\",\n        \"b\",\n    ],\n    region: \"us-east-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable cloudwatch agent\ntest_cloudwatch_agent = aviatrix.AviatrixCloudwatchAgent(\"testCloudwatchAgent\",\n    cloudwatch_role_arn=\"arn:aws:iam::469550033836:role/aviatrix-role-cloudwatch\",\n    excluded_gateways=[\n        \"a\",\n        \"b\",\n    ],\n    region=\"us-east-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable cloudwatch agent\n    var testCloudwatchAgent = new Aviatrix.AviatrixCloudwatchAgent(\"testCloudwatchAgent\", new()\n    {\n        CloudwatchRoleArn = \"arn:aws:iam::469550033836:role/aviatrix-role-cloudwatch\",\n        ExcludedGateways = new[]\n        {\n            \"a\",\n            \"b\",\n        },\n        Region = \"us-east-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixCloudwatchAgent(ctx, \"testCloudwatchAgent\", &aviatrix.AviatrixCloudwatchAgentArgs{\n\t\t\tCloudwatchRoleArn: pulumi.String(\"arn:aws:iam::469550033836:role/aviatrix-role-cloudwatch\"),\n\t\t\tExcludedGateways: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\tpulumi.String(\"b\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\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.aviatrix.AviatrixCloudwatchAgent;\nimport com.pulumi.aviatrix.AviatrixCloudwatchAgentArgs;\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 testCloudwatchAgent = new AviatrixCloudwatchAgent(\"testCloudwatchAgent\", AviatrixCloudwatchAgentArgs.builder()        \n            .cloudwatchRoleArn(\"arn:aws:iam::469550033836:role/aviatrix-role-cloudwatch\")\n            .excludedGateways(            \n                \"a\",\n                \"b\")\n            .region(\"us-east-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable cloudwatch agent\n  testCloudwatchAgent:\n    type: aviatrix:AviatrixCloudwatchAgent\n    properties:\n      cloudwatchRoleArn: arn:aws:iam::469550033836:role/aviatrix-role-cloudwatch\n      excludedGateways:\n        - a\n        - b\n      region: us-east-1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**cloudwatch_agent** can be imported using \"cloudwatch_agent\", e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixCloudwatchAgent:AviatrixCloudwatchAgent test cloudwatch_agent\n```\n\n ",
      "properties": {
        "cloudwatchRoleArn": {
          "type": "string",
          "description": "CloudWatch role ARN.\n"
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n"
        },
        "logGroupName": {
          "type": "string",
          "description": "Log group name. \"AVIATRIX-CLOUDWATCH-LOG\" by default.\n"
        },
        "region": {
          "type": "string",
          "description": "Name of AWS region.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of cloudwatch agent.\n"
        }
      },
      "type": "object",
      "required": [
        "cloudwatchRoleArn",
        "region",
        "status"
      ],
      "inputProperties": {
        "cloudwatchRoleArn": {
          "type": "string",
          "description": "CloudWatch role ARN.\n",
          "willReplaceOnChanges": true
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
          "willReplaceOnChanges": true
        },
        "logGroupName": {
          "type": "string",
          "description": "Log group name. \"AVIATRIX-CLOUDWATCH-LOG\" by default.\n",
          "willReplaceOnChanges": true
        },
        "region": {
          "type": "string",
          "description": "Name of AWS region.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "cloudwatchRoleArn",
        "region"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixCloudwatchAgent resources.\n",
        "properties": {
          "cloudwatchRoleArn": {
            "type": "string",
            "description": "CloudWatch role ARN.\n",
            "willReplaceOnChanges": true
          },
          "excludedGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
            "willReplaceOnChanges": true
          },
          "logGroupName": {
            "type": "string",
            "description": "Log group name. \"AVIATRIX-CLOUDWATCH-LOG\" by default.\n",
            "willReplaceOnChanges": true
          },
          "region": {
            "type": "string",
            "description": "Name of AWS region.\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "The status of cloudwatch agent.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerBgpMaxAsLimitConfig:AviatrixControllerBgpMaxAsLimitConfig": {
      "description": "The **aviatrix_controller_bgp_max_as_limit_config** resource allows management of an Aviatrix Controller's BGP max AS limit for transit gateways. This resource is available as of provider version R2.18.1+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller BGP max AS limit config\nconst testMaxAsLimit = new aviatrix.AviatrixControllerBgpMaxAsLimitConfig(\"test_max_as_limit\", {\n    maxAsLimit: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller BGP max AS limit config\ntest_max_as_limit = aviatrix.AviatrixControllerBgpMaxAsLimitConfig(\"testMaxAsLimit\", max_as_limit=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller BGP max AS limit config\n    var testMaxAsLimit = new Aviatrix.AviatrixControllerBgpMaxAsLimitConfig(\"testMaxAsLimit\", new()\n    {\n        MaxAsLimit = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerBgpMaxAsLimitConfig(ctx, \"testMaxAsLimit\", &aviatrix.AviatrixControllerBgpMaxAsLimitConfigArgs{\n\t\t\tMaxAsLimit: pulumi.Int(1),\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.aviatrix.AviatrixControllerBgpMaxAsLimitConfig;\nimport com.pulumi.aviatrix.AviatrixControllerBgpMaxAsLimitConfigArgs;\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 testMaxAsLimit = new AviatrixControllerBgpMaxAsLimitConfig(\"testMaxAsLimit\", AviatrixControllerBgpMaxAsLimitConfigArgs.builder()        \n            .maxAsLimit(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller BGP max AS limit config\n  testMaxAsLimit:\n    type: aviatrix:AviatrixControllerBgpMaxAsLimitConfig\n    properties:\n      maxAsLimit: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_controller_bgp_max_as_limit_config** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerBgpMaxAsLimitConfig:AviatrixControllerBgpMaxAsLimitConfig test_max_as_limit 10-11-12-13\n```\n\n ",
      "properties": {
        "maxAsLimit": {
          "type": "integer",
          "description": "The maximum AS path limit allowed by transit gateways when handling BGP/Peering route propagation. Must be a number in the range [1-254].\n"
        }
      },
      "type": "object",
      "required": [
        "maxAsLimit"
      ],
      "inputProperties": {
        "maxAsLimit": {
          "type": "integer",
          "description": "The maximum AS path limit allowed by transit gateways when handling BGP/Peering route propagation. Must be a number in the range [1-254].\n"
        }
      },
      "requiredInputs": [
        "maxAsLimit"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerBgpMaxAsLimitConfig resources.\n",
        "properties": {
          "maxAsLimit": {
            "type": "integer",
            "description": "The maximum AS path limit allowed by transit gateways when handling BGP/Peering route propagation. Must be a number in the range [1-254].\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerCertDomainConfig:AviatrixControllerCertDomainConfig": {
      "description": "The **aviatrix_controller_cert_domain_config** resource allows management of an Aviatrix Controller's cert domain config. This resource is available as of provider version R2.19+.\n\n!> **WARNING:** Changing the Controller's cert domain config causes all other API calls to the controller to fail. If multiple other resources are created with the **aviatrix_controller_cert_domain_config** resource, a dependency on the **aviatrix_controller_cert_domain_config** resource must be added.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix controller cert domain config\nconst test = new aviatrix.AviatrixControllerCertDomainConfig(\"test\", {\n    certDomain: \"abc.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix controller cert domain config\ntest = aviatrix.AviatrixControllerCertDomainConfig(\"test\", cert_domain=\"abc.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix controller cert domain config\n    var test = new Aviatrix.AviatrixControllerCertDomainConfig(\"test\", new()\n    {\n        CertDomain = \"abc.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerCertDomainConfig(ctx, \"test\", &aviatrix.AviatrixControllerCertDomainConfigArgs{\n\t\t\tCertDomain: pulumi.String(\"abc.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerCertDomainConfig;\nimport com.pulumi.aviatrix.AviatrixControllerCertDomainConfigArgs;\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 test = new AviatrixControllerCertDomainConfig(\"test\", AviatrixControllerCertDomainConfigArgs.builder()        \n            .certDomain(\"abc.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix controller cert domain config\n  test:\n    type: aviatrix:AviatrixControllerCertDomainConfig\n    properties:\n      certDomain: abc.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_controller_cert_domain_config** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerCertDomainConfig:AviatrixControllerCertDomainConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "certDomain": {
          "type": "string",
          "description": "Domain name that is used in FQDN for generating cert. Default value: \"aviatrixnetwork.com\".\n"
        }
      },
      "type": "object",
      "inputProperties": {
        "certDomain": {
          "type": "string",
          "description": "Domain name that is used in FQDN for generating cert. Default value: \"aviatrixnetwork.com\".\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerCertDomainConfig resources.\n",
        "properties": {
          "certDomain": {
            "type": "string",
            "description": "Domain name that is used in FQDN for generating cert. Default value: \"aviatrixnetwork.com\".\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerConfig:AviatrixControllerConfig": {
      "description": "The **aviatrix_controller_config** resource allows management of an Aviatrix Controller's configurations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Config\nconst testControllerConfig = new aviatrix.AviatrixControllerConfig(\"test_controller_config\", {\n    fqdnExceptionRule: false,\n    httpAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Config\ntest_controller_config = aviatrix.AviatrixControllerConfig(\"testControllerConfig\",\n    fqdn_exception_rule=False,\n    http_access=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Config\n    var testControllerConfig = new Aviatrix.AviatrixControllerConfig(\"testControllerConfig\", new()\n    {\n        FqdnExceptionRule = false,\n        HttpAccess = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerConfig(ctx, \"testControllerConfig\", &aviatrix.AviatrixControllerConfigArgs{\n\t\t\tFqdnExceptionRule: pulumi.Bool(false),\n\t\t\tHttpAccess:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerConfig;\nimport com.pulumi.aviatrix.AviatrixControllerConfigArgs;\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 testControllerConfig = new AviatrixControllerConfig(\"testControllerConfig\", AviatrixControllerConfigArgs.builder()        \n            .fqdnExceptionRule(false)\n            .httpAccess(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Config\n  testControllerConfig:\n    type: aviatrix:AviatrixControllerConfig\n    properties:\n      fqdnExceptionRule: false\n      httpAccess: true\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Config with Controller Upgrade Without Upgrading Gateways\nconst testControllerConfig = new aviatrix.AviatrixControllerConfig(\"test_controller_config\", {\n    fqdnExceptionRule: false,\n    httpAccess: true,\n    manageGatewayUpgrades: false,\n    targetVersion: \"latest\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Config with Controller Upgrade Without Upgrading Gateways\ntest_controller_config = aviatrix.AviatrixControllerConfig(\"testControllerConfig\",\n    fqdn_exception_rule=False,\n    http_access=True,\n    manage_gateway_upgrades=False,\n    target_version=\"latest\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Config with Controller Upgrade Without Upgrading Gateways\n    var testControllerConfig = new Aviatrix.AviatrixControllerConfig(\"testControllerConfig\", new()\n    {\n        FqdnExceptionRule = false,\n        HttpAccess = true,\n        ManageGatewayUpgrades = false,\n        TargetVersion = \"latest\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerConfig(ctx, \"testControllerConfig\", &aviatrix.AviatrixControllerConfigArgs{\n\t\t\tFqdnExceptionRule:     pulumi.Bool(false),\n\t\t\tHttpAccess:            pulumi.Bool(true),\n\t\t\tManageGatewayUpgrades: pulumi.Bool(false),\n\t\t\tTargetVersion:         pulumi.String(\"latest\"),\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.aviatrix.AviatrixControllerConfig;\nimport com.pulumi.aviatrix.AviatrixControllerConfigArgs;\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 testControllerConfig = new AviatrixControllerConfig(\"testControllerConfig\", AviatrixControllerConfigArgs.builder()        \n            .fqdnExceptionRule(false)\n            .httpAccess(true)\n            .manageGatewayUpgrades(false)\n            .targetVersion(\"latest\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Config with Controller Upgrade Without Upgrading Gateways\n  testControllerConfig:\n    type: aviatrix:AviatrixControllerConfig\n    properties:\n      fqdnExceptionRule: false\n      httpAccess: true\n      manageGatewayUpgrades: false\n      targetVersion: latest\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Config with Controller Upgrade + Upgrade All Gateways\nconst testControllerConfig = new aviatrix.AviatrixControllerConfig(\"test_controller_config\", {\n    fqdnExceptionRule: false,\n    httpAccess: true,\n    targetVersion: \"latest\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Config with Controller Upgrade + Upgrade All Gateways\ntest_controller_config = aviatrix.AviatrixControllerConfig(\"testControllerConfig\",\n    fqdn_exception_rule=False,\n    http_access=True,\n    target_version=\"latest\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Config with Controller Upgrade + Upgrade All Gateways\n    var testControllerConfig = new Aviatrix.AviatrixControllerConfig(\"testControllerConfig\", new()\n    {\n        FqdnExceptionRule = false,\n        HttpAccess = true,\n        TargetVersion = \"latest\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerConfig(ctx, \"testControllerConfig\", &aviatrix.AviatrixControllerConfigArgs{\n\t\t\tFqdnExceptionRule: pulumi.Bool(false),\n\t\t\tHttpAccess:        pulumi.Bool(true),\n\t\t\tTargetVersion:     pulumi.String(\"latest\"),\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.aviatrix.AviatrixControllerConfig;\nimport com.pulumi.aviatrix.AviatrixControllerConfigArgs;\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 testControllerConfig = new AviatrixControllerConfig(\"testControllerConfig\", AviatrixControllerConfigArgs.builder()        \n            .fqdnExceptionRule(false)\n            .httpAccess(true)\n            .targetVersion(\"latest\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Config with Controller Upgrade + Upgrade All Gateways\n  testControllerConfig:\n    type: aviatrix:AviatrixControllerConfig\n    properties:\n      fqdnExceptionRule: false\n      httpAccess: true\n      targetVersion: latest\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Config with Cloudn Backup Configuration Enabled\nconst testControllerConfig = new aviatrix.AviatrixControllerConfig(\"test_controller_config\", {\n    backupAccountName: \"account_example\",\n    backupBucketName: \"bucket_example\",\n    backupCloudType: 1,\n    backupConfiguration: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Config with Cloudn Backup Configuration Enabled\ntest_controller_config = aviatrix.AviatrixControllerConfig(\"testControllerConfig\",\n    backup_account_name=\"account_example\",\n    backup_bucket_name=\"bucket_example\",\n    backup_cloud_type=1,\n    backup_configuration=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Config with Cloudn Backup Configuration Enabled\n    var testControllerConfig = new Aviatrix.AviatrixControllerConfig(\"testControllerConfig\", new()\n    {\n        BackupAccountName = \"account_example\",\n        BackupBucketName = \"bucket_example\",\n        BackupCloudType = 1,\n        BackupConfiguration = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerConfig(ctx, \"testControllerConfig\", &aviatrix.AviatrixControllerConfigArgs{\n\t\t\tBackupAccountName:   pulumi.String(\"account_example\"),\n\t\t\tBackupBucketName:    pulumi.String(\"bucket_example\"),\n\t\t\tBackupCloudType:     pulumi.Int(1),\n\t\t\tBackupConfiguration: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerConfig;\nimport com.pulumi.aviatrix.AviatrixControllerConfigArgs;\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 testControllerConfig = new AviatrixControllerConfig(\"testControllerConfig\", AviatrixControllerConfigArgs.builder()        \n            .backupAccountName(\"account_example\")\n            .backupBucketName(\"bucket_example\")\n            .backupCloudType(1)\n            .backupConfiguration(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Config with Cloudn Backup Configuration Enabled\n  testControllerConfig:\n    type: aviatrix:AviatrixControllerConfig\n    properties:\n      backupAccountName: account_example\n      backupBucketName: bucket_example\n      backupCloudType: 1\n      backupConfiguration: true\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Config and import HTTPS certificates\nconst testControllerConfig = new aviatrix.AviatrixControllerConfig(\"test_controller_config\", {\n    caCertificateFilePath: \"/path/to/ca_certificate.pem\",\n    serverPrivateKeyFilePath: \"/path/to/server.key\",\n    serverPublicCertificateFilePath: \"/path/to/server.crt\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Config and import HTTPS certificates\ntest_controller_config = aviatrix.AviatrixControllerConfig(\"testControllerConfig\",\n    ca_certificate_file_path=\"/path/to/ca_certificate.pem\",\n    server_private_key_file_path=\"/path/to/server.key\",\n    server_public_certificate_file_path=\"/path/to/server.crt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Config and import HTTPS certificates\n    var testControllerConfig = new Aviatrix.AviatrixControllerConfig(\"testControllerConfig\", new()\n    {\n        CaCertificateFilePath = \"/path/to/ca_certificate.pem\",\n        ServerPrivateKeyFilePath = \"/path/to/server.key\",\n        ServerPublicCertificateFilePath = \"/path/to/server.crt\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerConfig(ctx, \"testControllerConfig\", &aviatrix.AviatrixControllerConfigArgs{\n\t\t\tCaCertificateFilePath:           pulumi.String(\"/path/to/ca_certificate.pem\"),\n\t\t\tServerPrivateKeyFilePath:        pulumi.String(\"/path/to/server.key\"),\n\t\t\tServerPublicCertificateFilePath: pulumi.String(\"/path/to/server.crt\"),\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.aviatrix.AviatrixControllerConfig;\nimport com.pulumi.aviatrix.AviatrixControllerConfigArgs;\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 testControllerConfig = new AviatrixControllerConfig(\"testControllerConfig\", AviatrixControllerConfigArgs.builder()        \n            .caCertificateFilePath(\"/path/to/ca_certificate.pem\")\n            .serverPrivateKeyFilePath(\"/path/to/server.key\")\n            .serverPublicCertificateFilePath(\"/path/to/server.crt\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Config and import HTTPS certificates\n  testControllerConfig:\n    type: aviatrix:AviatrixControllerConfig\n    properties:\n      caCertificateFilePath: /path/to/ca_certificate.pem\n      serverPrivateKeyFilePath: /path/to/server.key\n      serverPublicCertificateFilePath: /path/to/server.crt\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Config and configure the AWS Guard Duty Scanning Interval\nconst testControllerConfig = new aviatrix.AviatrixControllerConfig(\"test_controller_config\", {\n    awsGuardDutyScanningInterval: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Config and configure the AWS Guard Duty Scanning Interval\ntest_controller_config = aviatrix.AviatrixControllerConfig(\"testControllerConfig\", aws_guard_duty_scanning_interval=10)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Config and configure the AWS Guard Duty Scanning Interval\n    var testControllerConfig = new Aviatrix.AviatrixControllerConfig(\"testControllerConfig\", new()\n    {\n        AwsGuardDutyScanningInterval = 10,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerConfig(ctx, \"testControllerConfig\", &aviatrix.AviatrixControllerConfigArgs{\n\t\t\tAwsGuardDutyScanningInterval: pulumi.Int(10),\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.aviatrix.AviatrixControllerConfig;\nimport com.pulumi.aviatrix.AviatrixControllerConfigArgs;\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 testControllerConfig = new AviatrixControllerConfig(\"testControllerConfig\", AviatrixControllerConfigArgs.builder()        \n            .awsGuardDutyScanningInterval(10)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Config and configure the AWS Guard Duty Scanning Interval\n  testControllerConfig:\n    type: aviatrix:AviatrixControllerConfig\n    properties:\n      awsGuardDutyScanningInterval: 10\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance controller_config can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerConfig:AviatrixControllerConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "awsGuardDutyScanningInterval": {
          "type": "integer",
          "description": "Configure the AWS Guard Duty scanning interval. Valid values: 5, 10, 15, 30 or 60. Default value: 60. Available as of provider version R2.18+.\n"
        },
        "backupAccountName": {
          "type": "string",
          "description": "Name of the cloud account in the Aviatrix controller.\n"
        },
        "backupBucketName": {
          "type": "string",
          "description": "Bucket Name. Required to enable configuration backup for AWS, AWSGov, GCP and OCI.\n"
        },
        "backupCloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Use 1 for AWS, 4 for GCP, 8 for Azure, 16 for OCI, and 256 for AWSGov.\n"
        },
        "backupConfiguration": {
          "type": "boolean",
          "description": "Switch to enable/disable controller CloudN backup config. Valid values: true, false. Default value: false.\n"
        },
        "backupContainerName": {
          "type": "string",
          "description": "Container name. Required to enable configuration backup for Azure.\n"
        },
        "backupRegion": {
          "type": "string",
          "description": "Name of region. Required to enable configuration backup for Azure and OCI.\n"
        },
        "backupStorageName": {
          "type": "string",
          "description": "Storage name. Required to enable configuration backup for Azure.\n"
        },
        "caCertificateFile": {
          "type": "string",
          "description": "CA certificate. To read certificate file from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
          "secret": true
        },
        "caCertificateFilePath": {
          "type": "string",
          "description": "File path to CA certificate. Available as of provider version R2.18+.\n"
        },
        "currentVersion": {
          "type": "string",
          "description": "Current version of the controller including the build number. Example: \"6.5.123\". Available as of provider version R2.20.0+.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC/VNET DNS Server for the controller. Valid values: true, false. Default value: false.\n"
        },
        "fqdnExceptionRule": {
          "type": "boolean",
          "description": "Enable/disable packets without an SNI field to pass through gateway(s). Valid values: true, false. Default value: true. For more information on this setting, please see [here](https://docs.aviatrix.com/HowTos/FQDN_Whitelists_Ref_Design.html#exception-rule)\n"
        },
        "httpAccess": {
          "type": "boolean",
          "description": "Switch for HTTP access. Valid values: true, false. Default value: false.\n"
        },
        "manageGatewayUpgrades": {
          "type": "boolean",
          "description": "If true, aviatrix.AviatrixControllerConfig will upgrade all gateways when target_version is set. If false, only the controller will be upgraded when target_version is set. In that case gateway upgrades should be handled in each gateway resource individually using the software_version and image_version attributes. Type: boolean. Default: true. Available as of provider version R2.20.0+.\n"
        },
        "multipleBackups": {
          "type": "boolean",
          "description": "Switch to enable the Controller to backup up to a maximum of 3 rotating backups. Valid values: true, false. Default value: false.\n"
        },
        "previousVersion": {
          "type": "string",
          "description": "Previous version of the controller including the build number. Example: \"6.5.123\". Available as of provider version R2.20.0+.\n"
        },
        "serverPrivateKeyFile": {
          "type": "string",
          "description": "Server private key. To read the private key from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
          "secret": true
        },
        "serverPrivateKeyFilePath": {
          "type": "string",
          "description": "File path to server private key. Available as of provider version R2.18+.\n"
        },
        "serverPublicCertificateFile": {
          "type": "string",
          "description": "Server public certificate. To read certificate file from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
          "secret": true
        },
        "serverPublicCertificateFilePath": {
          "type": "string",
          "description": "File path to the server public certificate. Available as of provider version R2.18+.\n"
        },
        "targetVersion": {
          "type": "string",
          "description": "The release version number to which the controller will be upgraded to. If not specified, controller will not be upgraded. If set to \"latest\", controller will be upgraded to the latest release. Please see the [Controller upgrade guide](https://docs.aviatrix.com/HowTos/inline_upgrade.html) for more information.\n"
        },
        "version": {
          "type": "string",
          "description": "Current version of the controller without build number. Example: \"6.5\"\n"
        }
      },
      "type": "object",
      "required": [
        "currentVersion",
        "previousVersion",
        "version"
      ],
      "inputProperties": {
        "awsGuardDutyScanningInterval": {
          "type": "integer",
          "description": "Configure the AWS Guard Duty scanning interval. Valid values: 5, 10, 15, 30 or 60. Default value: 60. Available as of provider version R2.18+.\n"
        },
        "backupAccountName": {
          "type": "string",
          "description": "Name of the cloud account in the Aviatrix controller.\n"
        },
        "backupBucketName": {
          "type": "string",
          "description": "Bucket Name. Required to enable configuration backup for AWS, AWSGov, GCP and OCI.\n"
        },
        "backupCloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Use 1 for AWS, 4 for GCP, 8 for Azure, 16 for OCI, and 256 for AWSGov.\n"
        },
        "backupConfiguration": {
          "type": "boolean",
          "description": "Switch to enable/disable controller CloudN backup config. Valid values: true, false. Default value: false.\n"
        },
        "backupContainerName": {
          "type": "string",
          "description": "Container name. Required to enable configuration backup for Azure.\n"
        },
        "backupRegion": {
          "type": "string",
          "description": "Name of region. Required to enable configuration backup for Azure and OCI.\n"
        },
        "backupStorageName": {
          "type": "string",
          "description": "Storage name. Required to enable configuration backup for Azure.\n"
        },
        "caCertificateFile": {
          "type": "string",
          "description": "CA certificate. To read certificate file from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
          "secret": true
        },
        "caCertificateFilePath": {
          "type": "string",
          "description": "File path to CA certificate. Available as of provider version R2.18+.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC/VNET DNS Server for the controller. Valid values: true, false. Default value: false.\n"
        },
        "fqdnExceptionRule": {
          "type": "boolean",
          "description": "Enable/disable packets without an SNI field to pass through gateway(s). Valid values: true, false. Default value: true. For more information on this setting, please see [here](https://docs.aviatrix.com/HowTos/FQDN_Whitelists_Ref_Design.html#exception-rule)\n"
        },
        "httpAccess": {
          "type": "boolean",
          "description": "Switch for HTTP access. Valid values: true, false. Default value: false.\n"
        },
        "manageGatewayUpgrades": {
          "type": "boolean",
          "description": "If true, aviatrix.AviatrixControllerConfig will upgrade all gateways when target_version is set. If false, only the controller will be upgraded when target_version is set. In that case gateway upgrades should be handled in each gateway resource individually using the software_version and image_version attributes. Type: boolean. Default: true. Available as of provider version R2.20.0+.\n"
        },
        "multipleBackups": {
          "type": "boolean",
          "description": "Switch to enable the Controller to backup up to a maximum of 3 rotating backups. Valid values: true, false. Default value: false.\n"
        },
        "serverPrivateKeyFile": {
          "type": "string",
          "description": "Server private key. To read the private key from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
          "secret": true
        },
        "serverPrivateKeyFilePath": {
          "type": "string",
          "description": "File path to server private key. Available as of provider version R2.18+.\n"
        },
        "serverPublicCertificateFile": {
          "type": "string",
          "description": "Server public certificate. To read certificate file from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
          "secret": true
        },
        "serverPublicCertificateFilePath": {
          "type": "string",
          "description": "File path to the server public certificate. Available as of provider version R2.18+.\n"
        },
        "targetVersion": {
          "type": "string",
          "description": "The release version number to which the controller will be upgraded to. If not specified, controller will not be upgraded. If set to \"latest\", controller will be upgraded to the latest release. Please see the [Controller upgrade guide](https://docs.aviatrix.com/HowTos/inline_upgrade.html) for more information.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerConfig resources.\n",
        "properties": {
          "awsGuardDutyScanningInterval": {
            "type": "integer",
            "description": "Configure the AWS Guard Duty scanning interval. Valid values: 5, 10, 15, 30 or 60. Default value: 60. Available as of provider version R2.18+.\n"
          },
          "backupAccountName": {
            "type": "string",
            "description": "Name of the cloud account in the Aviatrix controller.\n"
          },
          "backupBucketName": {
            "type": "string",
            "description": "Bucket Name. Required to enable configuration backup for AWS, AWSGov, GCP and OCI.\n"
          },
          "backupCloudType": {
            "type": "integer",
            "description": "Type of cloud service provider, requires an integer value. Use 1 for AWS, 4 for GCP, 8 for Azure, 16 for OCI, and 256 for AWSGov.\n"
          },
          "backupConfiguration": {
            "type": "boolean",
            "description": "Switch to enable/disable controller CloudN backup config. Valid values: true, false. Default value: false.\n"
          },
          "backupContainerName": {
            "type": "string",
            "description": "Container name. Required to enable configuration backup for Azure.\n"
          },
          "backupRegion": {
            "type": "string",
            "description": "Name of region. Required to enable configuration backup for Azure and OCI.\n"
          },
          "backupStorageName": {
            "type": "string",
            "description": "Storage name. Required to enable configuration backup for Azure.\n"
          },
          "caCertificateFile": {
            "type": "string",
            "description": "CA certificate. To read certificate file from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
            "secret": true
          },
          "caCertificateFilePath": {
            "type": "string",
            "description": "File path to CA certificate. Available as of provider version R2.18+.\n"
          },
          "currentVersion": {
            "type": "string",
            "description": "Current version of the controller including the build number. Example: \"6.5.123\". Available as of provider version R2.20.0+.\n"
          },
          "enableVpcDnsServer": {
            "type": "boolean",
            "description": "Enable VPC/VNET DNS Server for the controller. Valid values: true, false. Default value: false.\n"
          },
          "fqdnExceptionRule": {
            "type": "boolean",
            "description": "Enable/disable packets without an SNI field to pass through gateway(s). Valid values: true, false. Default value: true. For more information on this setting, please see [here](https://docs.aviatrix.com/HowTos/FQDN_Whitelists_Ref_Design.html#exception-rule)\n"
          },
          "httpAccess": {
            "type": "boolean",
            "description": "Switch for HTTP access. Valid values: true, false. Default value: false.\n"
          },
          "manageGatewayUpgrades": {
            "type": "boolean",
            "description": "If true, aviatrix.AviatrixControllerConfig will upgrade all gateways when target_version is set. If false, only the controller will be upgraded when target_version is set. In that case gateway upgrades should be handled in each gateway resource individually using the software_version and image_version attributes. Type: boolean. Default: true. Available as of provider version R2.20.0+.\n"
          },
          "multipleBackups": {
            "type": "boolean",
            "description": "Switch to enable the Controller to backup up to a maximum of 3 rotating backups. Valid values: true, false. Default value: false.\n"
          },
          "previousVersion": {
            "type": "string",
            "description": "Previous version of the controller including the build number. Example: \"6.5.123\". Available as of provider version R2.20.0+.\n"
          },
          "serverPrivateKeyFile": {
            "type": "string",
            "description": "Server private key. To read the private key from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
            "secret": true
          },
          "serverPrivateKeyFilePath": {
            "type": "string",
            "description": "File path to server private key. Available as of provider version R2.18+.\n"
          },
          "serverPublicCertificateFile": {
            "type": "string",
            "description": "Server public certificate. To read certificate file from a file, please use the built-in `file` function. Available as of provider version R2.21.2+.\n",
            "secret": true
          },
          "serverPublicCertificateFilePath": {
            "type": "string",
            "description": "File path to the server public certificate. Available as of provider version R2.18+.\n"
          },
          "targetVersion": {
            "type": "string",
            "description": "The release version number to which the controller will be upgraded to. If not specified, controller will not be upgraded. If set to \"latest\", controller will be upgraded to the latest release. Please see the [Controller upgrade guide](https://docs.aviatrix.com/HowTos/inline_upgrade.html) for more information.\n"
          },
          "version": {
            "type": "string",
            "description": "Current version of the controller without build number. Example: \"6.5\"\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerEmailConfig:AviatrixControllerEmailConfig": {
      "description": "The **aviatrix_controller_email_config** resource allows management of an Aviatrix Controller's notification email configurations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Email Config\nconst testEmailConfig = new aviatrix.AviatrixControllerEmailConfig(\"test_email_config\", {\n    adminAlertEmail: \"administrator@mycompany.com\",\n    criticalAlertEmail: \"it-support@mycompany.com\",\n    securityEventEmail: \"security-admin-group@mycompany.com\",\n    statusChangeEmail: \"it-admin-group@mycompany.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Email Config\ntest_email_config = aviatrix.AviatrixControllerEmailConfig(\"testEmailConfig\",\n    admin_alert_email=\"administrator@mycompany.com\",\n    critical_alert_email=\"it-support@mycompany.com\",\n    security_event_email=\"security-admin-group@mycompany.com\",\n    status_change_email=\"it-admin-group@mycompany.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Email Config\n    var testEmailConfig = new Aviatrix.AviatrixControllerEmailConfig(\"testEmailConfig\", new()\n    {\n        AdminAlertEmail = \"administrator@mycompany.com\",\n        CriticalAlertEmail = \"it-support@mycompany.com\",\n        SecurityEventEmail = \"security-admin-group@mycompany.com\",\n        StatusChangeEmail = \"it-admin-group@mycompany.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerEmailConfig(ctx, \"testEmailConfig\", &aviatrix.AviatrixControllerEmailConfigArgs{\n\t\t\tAdminAlertEmail:    pulumi.String(\"administrator@mycompany.com\"),\n\t\t\tCriticalAlertEmail: pulumi.String(\"it-support@mycompany.com\"),\n\t\t\tSecurityEventEmail: pulumi.String(\"security-admin-group@mycompany.com\"),\n\t\t\tStatusChangeEmail:  pulumi.String(\"it-admin-group@mycompany.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerEmailConfig;\nimport com.pulumi.aviatrix.AviatrixControllerEmailConfigArgs;\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 testEmailConfig = new AviatrixControllerEmailConfig(\"testEmailConfig\", AviatrixControllerEmailConfigArgs.builder()        \n            .adminAlertEmail(\"administrator@mycompany.com\")\n            .criticalAlertEmail(\"it-support@mycompany.com\")\n            .securityEventEmail(\"security-admin-group@mycompany.com\")\n            .statusChangeEmail(\"it-admin-group@mycompany.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Email Config\n  testEmailConfig:\n    type: aviatrix:AviatrixControllerEmailConfig\n    properties:\n      adminAlertEmail: administrator@mycompany.com\n      criticalAlertEmail: it-support@mycompany.com\n      securityEventEmail: security-admin-group@mycompany.com\n      statusChangeEmail: it-admin-group@mycompany.com\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Email Config and configure the Status Change Notification Interval\nconst testEmailConfig = new aviatrix.AviatrixControllerEmailConfig(\"test_email_config\", {\n    adminAlertEmail: \"administrator@mycompany.com\",\n    criticalAlertEmail: \"it-support@mycompany.com\",\n    securityEventEmail: \"security-admin-group@mycompany.com\",\n    statusChangeEmail: \"it-admin-group@mycompany.com\",\n    statusChangeNotificationInterval: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Email Config and configure the Status Change Notification Interval\ntest_email_config = aviatrix.AviatrixControllerEmailConfig(\"testEmailConfig\",\n    admin_alert_email=\"administrator@mycompany.com\",\n    critical_alert_email=\"it-support@mycompany.com\",\n    security_event_email=\"security-admin-group@mycompany.com\",\n    status_change_email=\"it-admin-group@mycompany.com\",\n    status_change_notification_interval=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Email Config and configure the Status Change Notification Interval\n    var testEmailConfig = new Aviatrix.AviatrixControllerEmailConfig(\"testEmailConfig\", new()\n    {\n        AdminAlertEmail = \"administrator@mycompany.com\",\n        CriticalAlertEmail = \"it-support@mycompany.com\",\n        SecurityEventEmail = \"security-admin-group@mycompany.com\",\n        StatusChangeEmail = \"it-admin-group@mycompany.com\",\n        StatusChangeNotificationInterval = 20,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerEmailConfig(ctx, \"testEmailConfig\", &aviatrix.AviatrixControllerEmailConfigArgs{\n\t\t\tAdminAlertEmail:                  pulumi.String(\"administrator@mycompany.com\"),\n\t\t\tCriticalAlertEmail:               pulumi.String(\"it-support@mycompany.com\"),\n\t\t\tSecurityEventEmail:               pulumi.String(\"security-admin-group@mycompany.com\"),\n\t\t\tStatusChangeEmail:                pulumi.String(\"it-admin-group@mycompany.com\"),\n\t\t\tStatusChangeNotificationInterval: pulumi.Int(20),\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.aviatrix.AviatrixControllerEmailConfig;\nimport com.pulumi.aviatrix.AviatrixControllerEmailConfigArgs;\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 testEmailConfig = new AviatrixControllerEmailConfig(\"testEmailConfig\", AviatrixControllerEmailConfigArgs.builder()        \n            .adminAlertEmail(\"administrator@mycompany.com\")\n            .criticalAlertEmail(\"it-support@mycompany.com\")\n            .securityEventEmail(\"security-admin-group@mycompany.com\")\n            .statusChangeEmail(\"it-admin-group@mycompany.com\")\n            .statusChangeNotificationInterval(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Email Config and configure the Status Change Notification Interval\n  testEmailConfig:\n    type: aviatrix:AviatrixControllerEmailConfig\n    properties:\n      adminAlertEmail: administrator@mycompany.com\n      criticalAlertEmail: it-support@mycompany.com\n      securityEventEmail: security-admin-group@mycompany.com\n      statusChangeEmail: it-admin-group@mycompany.com\n      statusChangeNotificationInterval: 20\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance controller_email_config can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerEmailConfig:AviatrixControllerEmailConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "adminAlertEmail": {
          "type": "string",
          "description": "Email to receive important account and certification information.\n"
        },
        "adminAlertEmailVerified": {
          "type": "boolean",
          "description": "Whether admin alert notification email is verified.\n"
        },
        "criticalAlertEmail": {
          "type": "string",
          "description": "Email to receive field notices and critical notices.\n"
        },
        "criticalAlertEmailVerified": {
          "type": "boolean",
          "description": "Whether critical alert notification email is verified.\n"
        },
        "securityEventEmail": {
          "type": "string",
          "description": "Email to receive security and CVE (Common Vulnerabilities and Exposures) notification emails.\n"
        },
        "securityEventEmailVerified": {
          "type": "boolean",
          "description": "Whether security event notification email is verified.\n"
        },
        "statusChangeEmail": {
          "type": "string",
          "description": "Email to receive system/tunnel status notification emails.\n"
        },
        "statusChangeEmailVerified": {
          "type": "boolean",
          "description": "Whether status change notification email is verified.\n"
        },
        "statusChangeNotificationInterval": {
          "type": "integer",
          "description": "Status change notification interval in seconds. Default value: 60.\n"
        }
      },
      "type": "object",
      "required": [
        "adminAlertEmail",
        "adminAlertEmailVerified",
        "criticalAlertEmail",
        "criticalAlertEmailVerified",
        "securityEventEmail",
        "securityEventEmailVerified",
        "statusChangeEmail",
        "statusChangeEmailVerified"
      ],
      "inputProperties": {
        "adminAlertEmail": {
          "type": "string",
          "description": "Email to receive important account and certification information.\n"
        },
        "criticalAlertEmail": {
          "type": "string",
          "description": "Email to receive field notices and critical notices.\n"
        },
        "securityEventEmail": {
          "type": "string",
          "description": "Email to receive security and CVE (Common Vulnerabilities and Exposures) notification emails.\n"
        },
        "statusChangeEmail": {
          "type": "string",
          "description": "Email to receive system/tunnel status notification emails.\n"
        },
        "statusChangeNotificationInterval": {
          "type": "integer",
          "description": "Status change notification interval in seconds. Default value: 60.\n"
        }
      },
      "requiredInputs": [
        "adminAlertEmail",
        "criticalAlertEmail",
        "securityEventEmail",
        "statusChangeEmail"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerEmailConfig resources.\n",
        "properties": {
          "adminAlertEmail": {
            "type": "string",
            "description": "Email to receive important account and certification information.\n"
          },
          "adminAlertEmailVerified": {
            "type": "boolean",
            "description": "Whether admin alert notification email is verified.\n"
          },
          "criticalAlertEmail": {
            "type": "string",
            "description": "Email to receive field notices and critical notices.\n"
          },
          "criticalAlertEmailVerified": {
            "type": "boolean",
            "description": "Whether critical alert notification email is verified.\n"
          },
          "securityEventEmail": {
            "type": "string",
            "description": "Email to receive security and CVE (Common Vulnerabilities and Exposures) notification emails.\n"
          },
          "securityEventEmailVerified": {
            "type": "boolean",
            "description": "Whether security event notification email is verified.\n"
          },
          "statusChangeEmail": {
            "type": "string",
            "description": "Email to receive system/tunnel status notification emails.\n"
          },
          "statusChangeEmailVerified": {
            "type": "boolean",
            "description": "Whether status change notification email is verified.\n"
          },
          "statusChangeNotificationInterval": {
            "type": "integer",
            "description": "Status change notification interval in seconds. Default value: 60.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerEmailExceptionNotificationConfig:AviatrixControllerEmailExceptionNotificationConfig": {
      "description": "The **aviatrix_controller_email_exception_notification_config** resource allows management of an Aviatrix Controller's email exception notification config. This resource is available as of provider version R2.19+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix controller email exception notification config\nconst test = new aviatrix.AviatrixControllerEmailExceptionNotificationConfig(\"test\", {\n    enableEmailExceptionNotification: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix controller email exception notification config\ntest = aviatrix.AviatrixControllerEmailExceptionNotificationConfig(\"test\", enable_email_exception_notification=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix controller email exception notification config\n    var test = new Aviatrix.AviatrixControllerEmailExceptionNotificationConfig(\"test\", new()\n    {\n        EnableEmailExceptionNotification = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerEmailExceptionNotificationConfig(ctx, \"test\", &aviatrix.AviatrixControllerEmailExceptionNotificationConfigArgs{\n\t\t\tEnableEmailExceptionNotification: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerEmailExceptionNotificationConfig;\nimport com.pulumi.aviatrix.AviatrixControllerEmailExceptionNotificationConfigArgs;\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 test = new AviatrixControllerEmailExceptionNotificationConfig(\"test\", AviatrixControllerEmailExceptionNotificationConfigArgs.builder()        \n            .enableEmailExceptionNotification(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix controller email exception notification config\n  test:\n    type: aviatrix:AviatrixControllerEmailExceptionNotificationConfig\n    properties:\n      enableEmailExceptionNotification: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_controller_email_exception_notification_config** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerEmailExceptionNotificationConfig:AviatrixControllerEmailExceptionNotificationConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "enableEmailExceptionNotification": {
          "type": "boolean",
          "description": "Enable exception email notification. When set to true, exception email will be sent to \"exception@aviatrix.com\", when set to false, exception email will be sent to controller's admin email. Valid values: true, false. Default value: true.\n"
        }
      },
      "type": "object",
      "inputProperties": {
        "enableEmailExceptionNotification": {
          "type": "boolean",
          "description": "Enable exception email notification. When set to true, exception email will be sent to \"exception@aviatrix.com\", when set to false, exception email will be sent to controller's admin email. Valid values: true, false. Default value: true.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerEmailExceptionNotificationConfig resources.\n",
        "properties": {
          "enableEmailExceptionNotification": {
            "type": "boolean",
            "description": "Enable exception email notification. When set to true, exception email will be sent to \"exception@aviatrix.com\", when set to false, exception email will be sent to controller's admin email. Valid values: true, false. Default value: true.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerGatewayKeepaliveConfig:AviatrixControllerGatewayKeepaliveConfig": {
      "description": "The **aviatrix_controller_gateway_keepalive_config** resource allows management of an Aviatrix Controller's gateway keepalive template configuration. This resource is available as of provider version R2.19.2+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Gateway Keepalive config\nconst testGatewayKeepalive = new aviatrix.AviatrixControllerGatewayKeepaliveConfig(\"test_gateway_keepalive\", {\n    keepaliveSpeed: \"medium\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Gateway Keepalive config\ntest_gateway_keepalive = aviatrix.AviatrixControllerGatewayKeepaliveConfig(\"testGatewayKeepalive\", keepalive_speed=\"medium\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Gateway Keepalive config\n    var testGatewayKeepalive = new Aviatrix.AviatrixControllerGatewayKeepaliveConfig(\"testGatewayKeepalive\", new()\n    {\n        KeepaliveSpeed = \"medium\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerGatewayKeepaliveConfig(ctx, \"testGatewayKeepalive\", &aviatrix.AviatrixControllerGatewayKeepaliveConfigArgs{\n\t\t\tKeepaliveSpeed: pulumi.String(\"medium\"),\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.aviatrix.AviatrixControllerGatewayKeepaliveConfig;\nimport com.pulumi.aviatrix.AviatrixControllerGatewayKeepaliveConfigArgs;\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 testGatewayKeepalive = new AviatrixControllerGatewayKeepaliveConfig(\"testGatewayKeepalive\", AviatrixControllerGatewayKeepaliveConfigArgs.builder()        \n            .keepaliveSpeed(\"medium\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Gateway Keepalive config\n  testGatewayKeepalive:\n    type: aviatrix:AviatrixControllerGatewayKeepaliveConfig\n    properties:\n      keepaliveSpeed: medium\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_controller_gateway_keepalive_config** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerGatewayKeepaliveConfig:AviatrixControllerGatewayKeepaliveConfig test_gateway_keepalive 10-11-12-13\n```\n\n ",
      "properties": {
        "keepaliveSpeed": {
          "type": "string",
          "description": "The gateway keepalive template name. Must be one of \"slow\", \"medium\" or \"fast\". Visit [here](https://docs.aviatrix.com/HowTos/gateway.html#gateway-keepalives) for the complete documentation about the gateway keepalive configuration.\n"
        }
      },
      "type": "object",
      "required": [
        "keepaliveSpeed"
      ],
      "inputProperties": {
        "keepaliveSpeed": {
          "type": "string",
          "description": "The gateway keepalive template name. Must be one of \"slow\", \"medium\" or \"fast\". Visit [here](https://docs.aviatrix.com/HowTos/gateway.html#gateway-keepalives) for the complete documentation about the gateway keepalive configuration.\n"
        }
      },
      "requiredInputs": [
        "keepaliveSpeed"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerGatewayKeepaliveConfig resources.\n",
        "properties": {
          "keepaliveSpeed": {
            "type": "string",
            "description": "The gateway keepalive template name. Must be one of \"slow\", \"medium\" or \"fast\". Visit [here](https://docs.aviatrix.com/HowTos/gateway.html#gateway-keepalives) for the complete documentation about the gateway keepalive configuration.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerPrivateModeConfig:AviatrixControllerPrivateModeConfig": {
      "description": "The **aviatrix_controller_private_mode_config** resource allows management of an Aviatrix Controller's Private Mode configuration. This resource is available as of provider version R2.23+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Private Mode config\nconst test = new aviatrix.AviatrixControllerPrivateModeConfig(\"test\", {\n    enablePrivateMode: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Private Mode config\ntest = aviatrix.AviatrixControllerPrivateModeConfig(\"test\", enable_private_mode=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Private Mode config\n    var test = new Aviatrix.AviatrixControllerPrivateModeConfig(\"test\", new()\n    {\n        EnablePrivateMode = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerPrivateModeConfig(ctx, \"test\", &aviatrix.AviatrixControllerPrivateModeConfigArgs{\n\t\t\tEnablePrivateMode: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerPrivateModeConfig;\nimport com.pulumi.aviatrix.AviatrixControllerPrivateModeConfigArgs;\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 test = new AviatrixControllerPrivateModeConfig(\"test\", AviatrixControllerPrivateModeConfigArgs.builder()        \n            .enablePrivateMode(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Private Mode config\n  test:\n    type: aviatrix:AviatrixControllerPrivateModeConfig\n    properties:\n      enablePrivateMode: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_controller_private_mode_config** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerPrivateModeConfig:AviatrixControllerPrivateModeConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "copilotInstanceId": {
          "type": "string",
          "description": "Instance ID of a copilot instance to associate with an Aviatrix Controller in Private Mode. The copilot instance must be in the same VPC as the Aviatrix Controller.\n"
        },
        "enablePrivateMode": {
          "type": "boolean",
          "description": "Whether to enable Private Mode on an Aviatrix Controller.\n"
        },
        "proxies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of Controller proxies for Private Mode.\n"
        }
      },
      "type": "object",
      "required": [
        "enablePrivateMode"
      ],
      "inputProperties": {
        "copilotInstanceId": {
          "type": "string",
          "description": "Instance ID of a copilot instance to associate with an Aviatrix Controller in Private Mode. The copilot instance must be in the same VPC as the Aviatrix Controller.\n"
        },
        "enablePrivateMode": {
          "type": "boolean",
          "description": "Whether to enable Private Mode on an Aviatrix Controller.\n"
        },
        "proxies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of Controller proxies for Private Mode.\n"
        }
      },
      "requiredInputs": [
        "enablePrivateMode"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerPrivateModeConfig resources.\n",
        "properties": {
          "copilotInstanceId": {
            "type": "string",
            "description": "Instance ID of a copilot instance to associate with an Aviatrix Controller in Private Mode. The copilot instance must be in the same VPC as the Aviatrix Controller.\n"
          },
          "enablePrivateMode": {
            "type": "boolean",
            "description": "Whether to enable Private Mode on an Aviatrix Controller.\n"
          },
          "proxies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of Controller proxies for Private Mode.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerPrivateOob:AviatrixControllerPrivateOob": {
      "description": "The **aviatrix_controller_private_oob** resource allows management of an Aviatrix Controller's private OOB configurations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Private OOB\nconst testPrivateOob = new aviatrix.AviatrixControllerPrivateOob(\"test_private_oob\", {\n    enablePrivateOob: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Private OOB\ntest_private_oob = aviatrix.AviatrixControllerPrivateOob(\"testPrivateOob\", enable_private_oob=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Private OOB\n    var testPrivateOob = new Aviatrix.AviatrixControllerPrivateOob(\"testPrivateOob\", new()\n    {\n        EnablePrivateOob = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerPrivateOob(ctx, \"testPrivateOob\", &aviatrix.AviatrixControllerPrivateOobArgs{\n\t\t\tEnablePrivateOob: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerPrivateOob;\nimport com.pulumi.aviatrix.AviatrixControllerPrivateOobArgs;\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 testPrivateOob = new AviatrixControllerPrivateOob(\"testPrivateOob\", AviatrixControllerPrivateOobArgs.builder()        \n            .enablePrivateOob(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Private OOB\n  testPrivateOob:\n    type: aviatrix:AviatrixControllerPrivateOob\n    properties:\n      enablePrivateOob: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**controller_private_oob** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerPrivateOob:AviatrixControllerPrivateOob test 10-11-12-13\n```\n\n ",
      "properties": {
        "enablePrivateOob": {
          "type": "boolean",
          "description": "Switch to enable/disable Aviatrix controller private OOB. Valid values: true, false. Default value: false.\n"
        }
      },
      "type": "object",
      "inputProperties": {
        "enablePrivateOob": {
          "type": "boolean",
          "description": "Switch to enable/disable Aviatrix controller private OOB. Valid values: true, false. Default value: false.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerPrivateOob resources.\n",
        "properties": {
          "enablePrivateOob": {
            "type": "boolean",
            "description": "Switch to enable/disable Aviatrix controller private OOB. Valid values: true, false. Default value: false.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixControllerSecurityGroupManagementConfig:AviatrixControllerSecurityGroupManagementConfig": {
      "description": "The **aviatrix_controller_security_group_management_config** resource allows management of an Aviatrix Controller's security group management configurations. This resource is available as of v2.20.1.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Security Group Management Config to Enable Security Group Management\nconst testSqmConfig = new aviatrix.AviatrixControllerSecurityGroupManagementConfig(\"test_sqm_config\", {\n    accountName: \"devops\",\n    enableSecurityGroupManagement: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Security Group Management Config to Enable Security Group Management\ntest_sqm_config = aviatrix.AviatrixControllerSecurityGroupManagementConfig(\"testSqmConfig\",\n    account_name=\"devops\",\n    enable_security_group_management=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Security Group Management Config to Enable Security Group Management\n    var testSqmConfig = new Aviatrix.AviatrixControllerSecurityGroupManagementConfig(\"testSqmConfig\", new()\n    {\n        AccountName = \"devops\",\n        EnableSecurityGroupManagement = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerSecurityGroupManagementConfig(ctx, \"testSqmConfig\", &aviatrix.AviatrixControllerSecurityGroupManagementConfigArgs{\n\t\t\tAccountName:                   pulumi.String(\"devops\"),\n\t\t\tEnableSecurityGroupManagement: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerSecurityGroupManagementConfig;\nimport com.pulumi.aviatrix.AviatrixControllerSecurityGroupManagementConfigArgs;\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 testSqmConfig = new AviatrixControllerSecurityGroupManagementConfig(\"testSqmConfig\", AviatrixControllerSecurityGroupManagementConfigArgs.builder()        \n            .accountName(\"devops\")\n            .enableSecurityGroupManagement(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Security Group Management Config to Enable Security Group Management\n  testSqmConfig:\n    type: aviatrix:AviatrixControllerSecurityGroupManagementConfig\n    properties:\n      accountName: devops\n      enableSecurityGroupManagement: true\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Security Group Management Config to Disable Security Group Management\nconst testSqmConfig = new aviatrix.AviatrixControllerSecurityGroupManagementConfig(\"test_sqm_config\", {\n    enableSecurityGroupManagement: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Security Group Management Config to Disable Security Group Management\ntest_sqm_config = aviatrix.AviatrixControllerSecurityGroupManagementConfig(\"testSqmConfig\", enable_security_group_management=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Security Group Management Config to Disable Security Group Management\n    var testSqmConfig = new Aviatrix.AviatrixControllerSecurityGroupManagementConfig(\"testSqmConfig\", new()\n    {\n        EnableSecurityGroupManagement = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixControllerSecurityGroupManagementConfig(ctx, \"testSqmConfig\", &aviatrix.AviatrixControllerSecurityGroupManagementConfigArgs{\n\t\t\tEnableSecurityGroupManagement: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixControllerSecurityGroupManagementConfig;\nimport com.pulumi.aviatrix.AviatrixControllerSecurityGroupManagementConfigArgs;\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 testSqmConfig = new AviatrixControllerSecurityGroupManagementConfig(\"testSqmConfig\", AviatrixControllerSecurityGroupManagementConfigArgs.builder()        \n            .enableSecurityGroupManagement(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Security Group Management Config to Disable Security Group Management\n  testSqmConfig:\n    type: aviatrix:AviatrixControllerSecurityGroupManagementConfig\n    properties:\n      enableSecurityGroupManagement: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance controller_security_group_management_config can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixControllerSecurityGroupManagementConfig:AviatrixControllerSecurityGroupManagementConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Select the [primary access account](https://docs.aviatrix.com/HowTos/aviatrix_account.html#setup-primary-access-account-for-aws-cloud).\n"
        },
        "enableSecurityGroupManagement": {
          "type": "boolean",
          "description": "Enable to allow Controller to automatically manage inbound rules from gateways. Valid values: true, false.\n"
        }
      },
      "type": "object",
      "required": [
        "enableSecurityGroupManagement"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Select the [primary access account](https://docs.aviatrix.com/HowTos/aviatrix_account.html#setup-primary-access-account-for-aws-cloud).\n"
        },
        "enableSecurityGroupManagement": {
          "type": "boolean",
          "description": "Enable to allow Controller to automatically manage inbound rules from gateways. Valid values: true, false.\n"
        }
      },
      "requiredInputs": [
        "enableSecurityGroupManagement"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixControllerSecurityGroupManagementConfig resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Select the [primary access account](https://docs.aviatrix.com/HowTos/aviatrix_account.html#setup-primary-access-account-for-aws-cloud).\n"
          },
          "enableSecurityGroupManagement": {
            "type": "boolean",
            "description": "Enable to allow Controller to automatically manage inbound rules from gateways. Valid values: true, false.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixCopilotAssociation:AviatrixCopilotAssociation": {
      "description": "The **aviatrix_copilot_association** resource allows management of controller CoPilot Association. This resource is available as of provider version R2.19+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a CoPilot Association\nconst testCopilotAssociation = new aviatrix.AviatrixCopilotAssociation(\"test_copilot_association\", {\n    copilotAddress: \"copilot.aviatrix.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a CoPilot Association\ntest_copilot_association = aviatrix.AviatrixCopilotAssociation(\"testCopilotAssociation\", copilot_address=\"copilot.aviatrix.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a CoPilot Association\n    var testCopilotAssociation = new Aviatrix.AviatrixCopilotAssociation(\"testCopilotAssociation\", new()\n    {\n        CopilotAddress = \"copilot.aviatrix.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixCopilotAssociation(ctx, \"testCopilotAssociation\", &aviatrix.AviatrixCopilotAssociationArgs{\n\t\t\tCopilotAddress: pulumi.String(\"copilot.aviatrix.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixCopilotAssociation;\nimport com.pulumi.aviatrix.AviatrixCopilotAssociationArgs;\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 testCopilotAssociation = new AviatrixCopilotAssociation(\"testCopilotAssociation\", AviatrixCopilotAssociationArgs.builder()        \n            .copilotAddress(\"copilot.aviatrix.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a CoPilot Association\n  testCopilotAssociation:\n    type: aviatrix:AviatrixCopilotAssociation\n    properties:\n      copilotAddress: copilot.aviatrix.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_copilot_association** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixCopilotAssociation:AviatrixCopilotAssociation test_copilot_association 10-11-12-13\n```\n\n ",
      "properties": {
        "copilotAddress": {
          "type": "string",
          "description": "CoPilot instance IP Address or Hostname.\n"
        }
      },
      "type": "object",
      "required": [
        "copilotAddress"
      ],
      "inputProperties": {
        "copilotAddress": {
          "type": "string",
          "description": "CoPilot instance IP Address or Hostname.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "copilotAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixCopilotAssociation resources.\n",
        "properties": {
          "copilotAddress": {
            "type": "string",
            "description": "CoPilot instance IP Address or Hostname.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixCopilotSecurityGroupManagementConfig:AviatrixCopilotSecurityGroupManagementConfig": {
      "description": "The **aviatrix_copilot_security_group_management_config** resource allows management of controller CoPilot security group management configuration. This resource is available as of provider version R2.23+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable the CoPilot Security Group Management\nconst test = new aviatrix.AviatrixCopilotSecurityGroupManagementConfig(\"test\", {\n    accountName: \"aws-account\",\n    cloudType: 1,\n    enableCopilotSecurityGroupManagement: true,\n    instanceId: \"i-1234567890\",\n    region: \"us-east-1\",\n    vpcId: \"vpc-1234567890\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable the CoPilot Security Group Management\ntest = aviatrix.AviatrixCopilotSecurityGroupManagementConfig(\"test\",\n    account_name=\"aws-account\",\n    cloud_type=1,\n    enable_copilot_security_group_management=True,\n    instance_id=\"i-1234567890\",\n    region=\"us-east-1\",\n    vpc_id=\"vpc-1234567890\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable the CoPilot Security Group Management\n    var test = new Aviatrix.AviatrixCopilotSecurityGroupManagementConfig(\"test\", new()\n    {\n        AccountName = \"aws-account\",\n        CloudType = 1,\n        EnableCopilotSecurityGroupManagement = true,\n        InstanceId = \"i-1234567890\",\n        Region = \"us-east-1\",\n        VpcId = \"vpc-1234567890\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixCopilotSecurityGroupManagementConfig(ctx, \"test\", &aviatrix.AviatrixCopilotSecurityGroupManagementConfigArgs{\n\t\t\tAccountName:                          pulumi.String(\"aws-account\"),\n\t\t\tCloudType:                            pulumi.Int(1),\n\t\t\tEnableCopilotSecurityGroupManagement: pulumi.Bool(true),\n\t\t\tInstanceId:                           pulumi.String(\"i-1234567890\"),\n\t\t\tRegion:                               pulumi.String(\"us-east-1\"),\n\t\t\tVpcId:                                pulumi.String(\"vpc-1234567890\"),\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.aviatrix.AviatrixCopilotSecurityGroupManagementConfig;\nimport com.pulumi.aviatrix.AviatrixCopilotSecurityGroupManagementConfigArgs;\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 test = new AviatrixCopilotSecurityGroupManagementConfig(\"test\", AviatrixCopilotSecurityGroupManagementConfigArgs.builder()        \n            .accountName(\"aws-account\")\n            .cloudType(1)\n            .enableCopilotSecurityGroupManagement(true)\n            .instanceId(\"i-1234567890\")\n            .region(\"us-east-1\")\n            .vpcId(\"vpc-1234567890\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable the CoPilot Security Group Management\n  test:\n    type: aviatrix:AviatrixCopilotSecurityGroupManagementConfig\n    properties:\n      accountName: aws-account\n      cloudType: 1\n      enableCopilotSecurityGroupManagement: true\n      instanceId: i-1234567890\n      region: us-east-1\n      vpcId: vpc-1234567890\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_copilot_security_group_management_config** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixCopilotSecurityGroupManagementConfig:AviatrixCopilotSecurityGroupManagementConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Aviatrix access account name. Required to enable copilot security group management.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Cloud type. The type of this attribute is Integer. Only support AWS, Azure and OCI. Required to enable copilot security group management.\n"
        },
        "enableCopilotSecurityGroupManagement": {
          "type": "boolean",
          "description": "Switch to enable copilot security group management. Valid values: true, false.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "CoPilot instance ID. Required to enable copilot security group management.\n"
        },
        "region": {
          "type": "string",
          "description": "Region where CoPilot is deployed. Required and valid for AWS and Azure.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID. Required to enable copilot security group management.\n"
        },
        "zone": {
          "type": "string",
          "description": "Zone where CoPilot is deployed. Required and valid for GCP.\n"
        }
      },
      "type": "object",
      "required": [
        "enableCopilotSecurityGroupManagement"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Aviatrix access account name. Required to enable copilot security group management.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Cloud type. The type of this attribute is Integer. Only support AWS, Azure and OCI. Required to enable copilot security group management.\n"
        },
        "enableCopilotSecurityGroupManagement": {
          "type": "boolean",
          "description": "Switch to enable copilot security group management. Valid values: true, false.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "CoPilot instance ID. Required to enable copilot security group management.\n"
        },
        "region": {
          "type": "string",
          "description": "Region where CoPilot is deployed. Required and valid for AWS and Azure.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID. Required to enable copilot security group management.\n"
        },
        "zone": {
          "type": "string",
          "description": "Zone where CoPilot is deployed. Required and valid for GCP.\n"
        }
      },
      "requiredInputs": [
        "enableCopilotSecurityGroupManagement"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixCopilotSecurityGroupManagementConfig resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Aviatrix access account name. Required to enable copilot security group management.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Cloud type. The type of this attribute is Integer. Only support AWS, Azure and OCI. Required to enable copilot security group management.\n"
          },
          "enableCopilotSecurityGroupManagement": {
            "type": "boolean",
            "description": "Switch to enable copilot security group management. Valid values: true, false.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "CoPilot instance ID. Required to enable copilot security group management.\n"
          },
          "region": {
            "type": "string",
            "description": "Region where CoPilot is deployed. Required and valid for AWS and Azure.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID. Required to enable copilot security group management.\n"
          },
          "zone": {
            "type": "string",
            "description": "Zone where CoPilot is deployed. Required and valid for GCP.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixDatadogAgent:AviatrixDatadogAgent": {
      "description": "The **aviatrix_datadog_agent** resource allows the enabling and disabling of datadog agent.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable datadog agent\nconst testDatadogAgent = new aviatrix.AviatrixDatadogAgent(\"test_datadog_agent\", {\n    apiKey: \"your_api_key\",\n    excludedGateways: [\n        \"a\",\n        \"b\",\n    ],\n    site: \"datadoghq.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable datadog agent\ntest_datadog_agent = aviatrix.AviatrixDatadogAgent(\"testDatadogAgent\",\n    api_key=\"your_api_key\",\n    excluded_gateways=[\n        \"a\",\n        \"b\",\n    ],\n    site=\"datadoghq.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable datadog agent\n    var testDatadogAgent = new Aviatrix.AviatrixDatadogAgent(\"testDatadogAgent\", new()\n    {\n        ApiKey = \"your_api_key\",\n        ExcludedGateways = new[]\n        {\n            \"a\",\n            \"b\",\n        },\n        Site = \"datadoghq.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixDatadogAgent(ctx, \"testDatadogAgent\", &aviatrix.AviatrixDatadogAgentArgs{\n\t\t\tApiKey: pulumi.String(\"your_api_key\"),\n\t\t\tExcludedGateways: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\tpulumi.String(\"b\"),\n\t\t\t},\n\t\t\tSite: pulumi.String(\"datadoghq.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixDatadogAgent;\nimport com.pulumi.aviatrix.AviatrixDatadogAgentArgs;\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 testDatadogAgent = new AviatrixDatadogAgent(\"testDatadogAgent\", AviatrixDatadogAgentArgs.builder()        \n            .apiKey(\"your_api_key\")\n            .excludedGateways(            \n                \"a\",\n                \"b\")\n            .site(\"datadoghq.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable datadog agent\n  testDatadogAgent:\n    type: aviatrix:AviatrixDatadogAgent\n    properties:\n      apiKey: your_api_key\n      excludedGateways:\n        - a\n        - b\n      site: datadoghq.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**datadog_agent** can be imported using \"datadog_agent\", e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixDatadogAgent:AviatrixDatadogAgent test datadog_agent\n```\n\n ",
      "properties": {
        "apiKey": {
          "type": "string",
          "description": "API key.\n",
          "secret": true
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n"
        },
        "metricsOnly": {
          "type": "boolean",
          "description": "Only export metrics without exporting logs. False by default.\n"
        },
        "site": {
          "type": "string",
          "description": "Site preference (\"datadoghq.com\" or\" datadoghq.eu\"). \"datadoghq.com\" by default.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of datadog agent.\n"
        }
      },
      "type": "object",
      "required": [
        "apiKey",
        "status"
      ],
      "inputProperties": {
        "apiKey": {
          "type": "string",
          "description": "API key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
          "willReplaceOnChanges": true
        },
        "metricsOnly": {
          "type": "boolean",
          "description": "Only export metrics without exporting logs. False by default.\n",
          "willReplaceOnChanges": true
        },
        "site": {
          "type": "string",
          "description": "Site preference (\"datadoghq.com\" or\" datadoghq.eu\"). \"datadoghq.com\" by default.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "apiKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixDatadogAgent resources.\n",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "API key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "excludedGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
            "willReplaceOnChanges": true
          },
          "metricsOnly": {
            "type": "boolean",
            "description": "Only export metrics without exporting logs. False by default.\n",
            "willReplaceOnChanges": true
          },
          "site": {
            "type": "string",
            "description": "Site preference (\"datadoghq.com\" or\" datadoghq.eu\"). \"datadoghq.com\" by default.\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "The status of datadog agent.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixDeviceInterfaceConfig:AviatrixDeviceInterfaceConfig": {
      "description": "The **aviatrix_device_interface_config** resource allows the configuration of the WAN primary interface and IP for a device, for use in CloudN.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Configure the primary WAN interface and IP for a device.\nconst testDeviceInterfaceConfig = new aviatrix.AviatrixDeviceInterfaceConfig(\"test_device_interface_config\", {\n    deviceName: \"test-device\",\n    wanPrimaryInterface: \"eth0\",\n    wanPrimaryInterfacePublicIp: \"181.12.43.21\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Configure the primary WAN interface and IP for a device.\ntest_device_interface_config = aviatrix.AviatrixDeviceInterfaceConfig(\"testDeviceInterfaceConfig\",\n    device_name=\"test-device\",\n    wan_primary_interface=\"eth0\",\n    wan_primary_interface_public_ip=\"181.12.43.21\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Configure the primary WAN interface and IP for a device.\n    var testDeviceInterfaceConfig = new Aviatrix.AviatrixDeviceInterfaceConfig(\"testDeviceInterfaceConfig\", new()\n    {\n        DeviceName = \"test-device\",\n        WanPrimaryInterface = \"eth0\",\n        WanPrimaryInterfacePublicIp = \"181.12.43.21\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixDeviceInterfaceConfig(ctx, \"testDeviceInterfaceConfig\", &aviatrix.AviatrixDeviceInterfaceConfigArgs{\n\t\t\tDeviceName:                  pulumi.String(\"test-device\"),\n\t\t\tWanPrimaryInterface:         pulumi.String(\"eth0\"),\n\t\t\tWanPrimaryInterfacePublicIp: pulumi.String(\"181.12.43.21\"),\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.aviatrix.AviatrixDeviceInterfaceConfig;\nimport com.pulumi.aviatrix.AviatrixDeviceInterfaceConfigArgs;\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 testDeviceInterfaceConfig = new AviatrixDeviceInterfaceConfig(\"testDeviceInterfaceConfig\", AviatrixDeviceInterfaceConfigArgs.builder()        \n            .deviceName(\"test-device\")\n            .wanPrimaryInterface(\"eth0\")\n            .wanPrimaryInterfacePublicIp(\"181.12.43.21\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Configure the primary WAN interface and IP for a device.\n  testDeviceInterfaceConfig:\n    type: aviatrix:AviatrixDeviceInterfaceConfig\n    properties:\n      deviceName: test-device\n      wanPrimaryInterface: eth0\n      wanPrimaryInterfacePublicIp: 181.12.43.21\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**device_interface_config** can be imported using the `device_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixDeviceInterfaceConfig:AviatrixDeviceInterfaceConfig test device_name\n```\n\n ",
      "properties": {
        "deviceName": {
          "type": "string",
          "description": "Name of the device.\n"
        },
        "wanPrimaryInterface": {
          "type": "string",
          "description": "Name of the WAN primary interface.\n"
        },
        "wanPrimaryInterfacePublicIp": {
          "type": "string",
          "description": "The WAN Primary interface public IP.\n"
        }
      },
      "type": "object",
      "required": [
        "deviceName",
        "wanPrimaryInterface",
        "wanPrimaryInterfacePublicIp"
      ],
      "inputProperties": {
        "deviceName": {
          "type": "string",
          "description": "Name of the device.\n",
          "willReplaceOnChanges": true
        },
        "wanPrimaryInterface": {
          "type": "string",
          "description": "Name of the WAN primary interface.\n"
        },
        "wanPrimaryInterfacePublicIp": {
          "type": "string",
          "description": "The WAN Primary interface public IP.\n"
        }
      },
      "requiredInputs": [
        "deviceName",
        "wanPrimaryInterface",
        "wanPrimaryInterfacePublicIp"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixDeviceInterfaceConfig resources.\n",
        "properties": {
          "deviceName": {
            "type": "string",
            "description": "Name of the device.\n",
            "willReplaceOnChanges": true
          },
          "wanPrimaryInterface": {
            "type": "string",
            "description": "Name of the WAN primary interface.\n"
          },
          "wanPrimaryInterfacePublicIp": {
            "type": "string",
            "description": "The WAN Primary interface public IP.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixEdgeCaag:AviatrixEdgeCaag": {
      "description": "The **aviatrix_edge_caag** resource creates the Aviatrix Edge as a CaaG. This resource is available as of provider version R2.22+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a DHCP Edge as a CaaG\nconst test = new aviatrix.AviatrixEdgeCaag(\"test\", {\n    lanInterfaceIpPrefix: \"10.60.0.0/24\",\n    localAsNumber: \"65000\",\n    managementInterfaceConfig: \"DHCP\",\n    prependAsPaths: [\n        \"65000\",\n        \"65000\",\n    ],\n    wanDefaultGatewayIp: \"10.60.0.0\",\n    wanInterfaceIpPrefix: \"10.60.0.0/24\",\n    ztpFileDownloadPath: \"/image/download/path\",\n    ztpFileType: \"iso\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a DHCP Edge as a CaaG\ntest = aviatrix.AviatrixEdgeCaag(\"test\",\n    lan_interface_ip_prefix=\"10.60.0.0/24\",\n    local_as_number=\"65000\",\n    management_interface_config=\"DHCP\",\n    prepend_as_paths=[\n        \"65000\",\n        \"65000\",\n    ],\n    wan_default_gateway_ip=\"10.60.0.0\",\n    wan_interface_ip_prefix=\"10.60.0.0/24\",\n    ztp_file_download_path=\"/image/download/path\",\n    ztp_file_type=\"iso\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a DHCP Edge as a CaaG\n    var test = new Aviatrix.AviatrixEdgeCaag(\"test\", new()\n    {\n        LanInterfaceIpPrefix = \"10.60.0.0/24\",\n        LocalAsNumber = \"65000\",\n        ManagementInterfaceConfig = \"DHCP\",\n        PrependAsPaths = new[]\n        {\n            \"65000\",\n            \"65000\",\n        },\n        WanDefaultGatewayIp = \"10.60.0.0\",\n        WanInterfaceIpPrefix = \"10.60.0.0/24\",\n        ZtpFileDownloadPath = \"/image/download/path\",\n        ZtpFileType = \"iso\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixEdgeCaag(ctx, \"test\", &aviatrix.AviatrixEdgeCaagArgs{\n\t\t\tLanInterfaceIpPrefix:      pulumi.String(\"10.60.0.0/24\"),\n\t\t\tLocalAsNumber:             pulumi.String(\"65000\"),\n\t\t\tManagementInterfaceConfig: pulumi.String(\"DHCP\"),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t},\n\t\t\tWanDefaultGatewayIp:  pulumi.String(\"10.60.0.0\"),\n\t\t\tWanInterfaceIpPrefix: pulumi.String(\"10.60.0.0/24\"),\n\t\t\tZtpFileDownloadPath:  pulumi.String(\"/image/download/path\"),\n\t\t\tZtpFileType:          pulumi.String(\"iso\"),\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.aviatrix.AviatrixEdgeCaag;\nimport com.pulumi.aviatrix.AviatrixEdgeCaagArgs;\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 test = new AviatrixEdgeCaag(\"test\", AviatrixEdgeCaagArgs.builder()        \n            .lanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .localAsNumber(\"65000\")\n            .managementInterfaceConfig(\"DHCP\")\n            .prependAsPaths(            \n                \"65000\",\n                \"65000\")\n            .wanDefaultGatewayIp(\"10.60.0.0\")\n            .wanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .ztpFileDownloadPath(\"/image/download/path\")\n            .ztpFileType(\"iso\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a DHCP Edge as a CaaG\n  test:\n    type: aviatrix:AviatrixEdgeCaag\n    properties:\n      lanInterfaceIpPrefix: 10.60.0.0/24\n      localAsNumber: '65000'\n      managementInterfaceConfig: DHCP\n      prependAsPaths:\n        - '65000'\n        - '65000'\n      wanDefaultGatewayIp: 10.60.0.0\n      wanInterfaceIpPrefix: 10.60.0.0/24\n      ztpFileDownloadPath: /image/download/path\n      ztpFileType: iso\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a Static Edge as a CaaG\nconst test = new aviatrix.AviatrixEdgeCaag(\"test\", {\n    dnsServerIp: \"10.60.0.0\",\n    lanInterfaceIpPrefix: \"10.60.0.0/24\",\n    localAsNumber: \"65000\",\n    managementDefaultGatewayIp: \"10.60.0.0\",\n    managementInterfaceConfig: \"Static\",\n    managementInterfaceIpPrefix: \"10.60.0.0/24\",\n    prependAsPaths: [\n        \"65000\",\n        \"65000\",\n    ],\n    secondaryDnsServerIp: \"10.60.0.0\",\n    wanDefaultGatewayIp: \"10.60.0.0\",\n    wanInterfaceIpPrefix: \"10.60.0.0/24\",\n    ztpFileDownloadPath: \"/image/download/path\",\n    ztpFileType: \"iso\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a Static Edge as a CaaG\ntest = aviatrix.AviatrixEdgeCaag(\"test\",\n    dns_server_ip=\"10.60.0.0\",\n    lan_interface_ip_prefix=\"10.60.0.0/24\",\n    local_as_number=\"65000\",\n    management_default_gateway_ip=\"10.60.0.0\",\n    management_interface_config=\"Static\",\n    management_interface_ip_prefix=\"10.60.0.0/24\",\n    prepend_as_paths=[\n        \"65000\",\n        \"65000\",\n    ],\n    secondary_dns_server_ip=\"10.60.0.0\",\n    wan_default_gateway_ip=\"10.60.0.0\",\n    wan_interface_ip_prefix=\"10.60.0.0/24\",\n    ztp_file_download_path=\"/image/download/path\",\n    ztp_file_type=\"iso\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a Static Edge as a CaaG\n    var test = new Aviatrix.AviatrixEdgeCaag(\"test\", new()\n    {\n        DnsServerIp = \"10.60.0.0\",\n        LanInterfaceIpPrefix = \"10.60.0.0/24\",\n        LocalAsNumber = \"65000\",\n        ManagementDefaultGatewayIp = \"10.60.0.0\",\n        ManagementInterfaceConfig = \"Static\",\n        ManagementInterfaceIpPrefix = \"10.60.0.0/24\",\n        PrependAsPaths = new[]\n        {\n            \"65000\",\n            \"65000\",\n        },\n        SecondaryDnsServerIp = \"10.60.0.0\",\n        WanDefaultGatewayIp = \"10.60.0.0\",\n        WanInterfaceIpPrefix = \"10.60.0.0/24\",\n        ZtpFileDownloadPath = \"/image/download/path\",\n        ZtpFileType = \"iso\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixEdgeCaag(ctx, \"test\", &aviatrix.AviatrixEdgeCaagArgs{\n\t\t\tDnsServerIp:                 pulumi.String(\"10.60.0.0\"),\n\t\t\tLanInterfaceIpPrefix:        pulumi.String(\"10.60.0.0/24\"),\n\t\t\tLocalAsNumber:               pulumi.String(\"65000\"),\n\t\t\tManagementDefaultGatewayIp:  pulumi.String(\"10.60.0.0\"),\n\t\t\tManagementInterfaceConfig:   pulumi.String(\"Static\"),\n\t\t\tManagementInterfaceIpPrefix: pulumi.String(\"10.60.0.0/24\"),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t},\n\t\t\tSecondaryDnsServerIp: pulumi.String(\"10.60.0.0\"),\n\t\t\tWanDefaultGatewayIp:  pulumi.String(\"10.60.0.0\"),\n\t\t\tWanInterfaceIpPrefix: pulumi.String(\"10.60.0.0/24\"),\n\t\t\tZtpFileDownloadPath:  pulumi.String(\"/image/download/path\"),\n\t\t\tZtpFileType:          pulumi.String(\"iso\"),\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.aviatrix.AviatrixEdgeCaag;\nimport com.pulumi.aviatrix.AviatrixEdgeCaagArgs;\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 test = new AviatrixEdgeCaag(\"test\", AviatrixEdgeCaagArgs.builder()        \n            .dnsServerIp(\"10.60.0.0\")\n            .lanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .localAsNumber(\"65000\")\n            .managementDefaultGatewayIp(\"10.60.0.0\")\n            .managementInterfaceConfig(\"Static\")\n            .managementInterfaceIpPrefix(\"10.60.0.0/24\")\n            .prependAsPaths(            \n                \"65000\",\n                \"65000\")\n            .secondaryDnsServerIp(\"10.60.0.0\")\n            .wanDefaultGatewayIp(\"10.60.0.0\")\n            .wanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .ztpFileDownloadPath(\"/image/download/path\")\n            .ztpFileType(\"iso\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a Static Edge as a CaaG\n  test:\n    type: aviatrix:AviatrixEdgeCaag\n    properties:\n      dnsServerIp: 10.60.0.0\n      lanInterfaceIpPrefix: 10.60.0.0/24\n      localAsNumber: '65000'\n      managementDefaultGatewayIp: 10.60.0.0\n      managementInterfaceConfig: Static\n      managementInterfaceIpPrefix: 10.60.0.0/24\n      prependAsPaths:\n        - '65000'\n        - '65000'\n      secondaryDnsServerIp: 10.60.0.0\n      wanDefaultGatewayIp: 10.60.0.0\n      wanInterfaceIpPrefix: 10.60.0.0/24\n      ztpFileDownloadPath: /image/download/path\n      ztpFileType: iso\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**edge_caag** can be imported using the `name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixEdgeCaag:AviatrixEdgeCaag test name\n```\n\n ",
      "properties": {
        "dnsServerIp": {
          "type": "string",
          "description": "DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "enableOverPrivateNetwork": {
          "type": "boolean",
          "description": "Indicates whether it is public or private connection between controller and gateway. Valid values: true, false. Default value: false.\n"
        },
        "lanInterfaceIpPrefix": {
          "type": "string",
          "description": "LAN interface IP and subnet prefix.\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "BGP AS Number to assign to Edge as a CaaG.\n"
        },
        "managementDefaultGatewayIp": {
          "type": "string",
          "description": "Management default gateway IP. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "managementEgressIpPrefix": {
          "type": "string",
          "description": "Management egress gateway IP and subnet prefix.\n"
        },
        "managementInterfaceConfig": {
          "type": "string",
          "description": "Management interface configuration. Valid values: \"DHCP\", \"Static\".\n"
        },
        "managementInterfaceIpPrefix": {
          "type": "string",
          "description": "Management interface IP and subnet prefix. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "name": {
          "type": "string",
          "description": "Edge as a CaaG name.\n"
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires local_as_number to be set. Type: List.\n"
        },
        "secondaryDnsServerIp": {
          "type": "string",
          "description": "Secondary DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "state": {
          "type": "string",
          "description": "State of Edge as a CaaG.\n"
        },
        "wanDefaultGatewayIp": {
          "type": "string",
          "description": "WAN default gateway IP.\n"
        },
        "wanInterfaceIpPrefix": {
          "type": "string",
          "description": "WAN interface IP and subnet prefix.\n"
        },
        "ztpFileDownloadPath": {
          "type": "string",
          "description": "The folder path where the ZTP file will be downloaded.\n"
        },
        "ztpFileType": {
          "type": "string",
          "description": "ZTP file type. Valid values: \"iso\", \"cloud-init\".\n"
        }
      },
      "type": "object",
      "required": [
        "lanInterfaceIpPrefix",
        "localAsNumber",
        "managementInterfaceConfig",
        "name",
        "state",
        "wanDefaultGatewayIp",
        "wanInterfaceIpPrefix",
        "ztpFileDownloadPath",
        "ztpFileType"
      ],
      "inputProperties": {
        "dnsServerIp": {
          "type": "string",
          "description": "DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "enableOverPrivateNetwork": {
          "type": "boolean",
          "description": "Indicates whether it is public or private connection between controller and gateway. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "lanInterfaceIpPrefix": {
          "type": "string",
          "description": "LAN interface IP and subnet prefix.\n",
          "willReplaceOnChanges": true
        },
        "localAsNumber": {
          "type": "string",
          "description": "BGP AS Number to assign to Edge as a CaaG.\n"
        },
        "managementDefaultGatewayIp": {
          "type": "string",
          "description": "Management default gateway IP. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "managementEgressIpPrefix": {
          "type": "string",
          "description": "Management egress gateway IP and subnet prefix.\n"
        },
        "managementInterfaceConfig": {
          "type": "string",
          "description": "Management interface configuration. Valid values: \"DHCP\", \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "managementInterfaceIpPrefix": {
          "type": "string",
          "description": "Management interface IP and subnet prefix. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "Edge as a CaaG name.\n",
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires local_as_number to be set. Type: List.\n"
        },
        "secondaryDnsServerIp": {
          "type": "string",
          "description": "Secondary DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "wanDefaultGatewayIp": {
          "type": "string",
          "description": "WAN default gateway IP.\n",
          "willReplaceOnChanges": true
        },
        "wanInterfaceIpPrefix": {
          "type": "string",
          "description": "WAN interface IP and subnet prefix.\n",
          "willReplaceOnChanges": true
        },
        "ztpFileDownloadPath": {
          "type": "string",
          "description": "The folder path where the ZTP file will be downloaded.\n",
          "willReplaceOnChanges": true
        },
        "ztpFileType": {
          "type": "string",
          "description": "ZTP file type. Valid values: \"iso\", \"cloud-init\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "lanInterfaceIpPrefix",
        "managementInterfaceConfig",
        "wanDefaultGatewayIp",
        "wanInterfaceIpPrefix",
        "ztpFileDownloadPath",
        "ztpFileType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixEdgeCaag resources.\n",
        "properties": {
          "dnsServerIp": {
            "type": "string",
            "description": "DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "enableOverPrivateNetwork": {
            "type": "boolean",
            "description": "Indicates whether it is public or private connection between controller and gateway. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "lanInterfaceIpPrefix": {
            "type": "string",
            "description": "LAN interface IP and subnet prefix.\n",
            "willReplaceOnChanges": true
          },
          "localAsNumber": {
            "type": "string",
            "description": "BGP AS Number to assign to Edge as a CaaG.\n"
          },
          "managementDefaultGatewayIp": {
            "type": "string",
            "description": "Management default gateway IP. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "managementEgressIpPrefix": {
            "type": "string",
            "description": "Management egress gateway IP and subnet prefix.\n"
          },
          "managementInterfaceConfig": {
            "type": "string",
            "description": "Management interface configuration. Valid values: \"DHCP\", \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "managementInterfaceIpPrefix": {
            "type": "string",
            "description": "Management interface IP and subnet prefix. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "Edge as a CaaG name.\n",
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Requires local_as_number to be set. Type: List.\n"
          },
          "secondaryDnsServerIp": {
            "type": "string",
            "description": "Secondary DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "state": {
            "type": "string",
            "description": "State of Edge as a CaaG.\n"
          },
          "wanDefaultGatewayIp": {
            "type": "string",
            "description": "WAN default gateway IP.\n",
            "willReplaceOnChanges": true
          },
          "wanInterfaceIpPrefix": {
            "type": "string",
            "description": "WAN interface IP and subnet prefix.\n",
            "willReplaceOnChanges": true
          },
          "ztpFileDownloadPath": {
            "type": "string",
            "description": "The folder path where the ZTP file will be downloaded.\n",
            "willReplaceOnChanges": true
          },
          "ztpFileType": {
            "type": "string",
            "description": "ZTP file type. Valid values: \"iso\", \"cloud-init\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixEdgeSpoke:AviatrixEdgeSpoke": {
      "description": "The **aviatrix_edge_spoke** resource creates the Aviatrix Edge as a Spoke. This resource is available as of provider version R2.23+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a DHCP Edge as a Spoke\nconst test = new aviatrix.AviatrixEdgeSpoke(\"test\", {\n    gwName: \"edge-test\",\n    lanInterfaceIpPrefix: \"10.60.0.0/24\",\n    localAsNumber: \"65000\",\n    managementInterfaceConfig: \"DHCP\",\n    prependAsPaths: [\n        \"65000\",\n        \"65000\",\n    ],\n    siteId: \"site-123\",\n    wanDefaultGatewayIp: \"10.60.0.0\",\n    wanInterfaceIpPrefix: \"10.60.0.0/24\",\n    ztpFileDownloadPath: \"/ztp/download/path\",\n    ztpFileType: \"iso\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a DHCP Edge as a Spoke\ntest = aviatrix.AviatrixEdgeSpoke(\"test\",\n    gw_name=\"edge-test\",\n    lan_interface_ip_prefix=\"10.60.0.0/24\",\n    local_as_number=\"65000\",\n    management_interface_config=\"DHCP\",\n    prepend_as_paths=[\n        \"65000\",\n        \"65000\",\n    ],\n    site_id=\"site-123\",\n    wan_default_gateway_ip=\"10.60.0.0\",\n    wan_interface_ip_prefix=\"10.60.0.0/24\",\n    ztp_file_download_path=\"/ztp/download/path\",\n    ztp_file_type=\"iso\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a DHCP Edge as a Spoke\n    var test = new Aviatrix.AviatrixEdgeSpoke(\"test\", new()\n    {\n        GwName = \"edge-test\",\n        LanInterfaceIpPrefix = \"10.60.0.0/24\",\n        LocalAsNumber = \"65000\",\n        ManagementInterfaceConfig = \"DHCP\",\n        PrependAsPaths = new[]\n        {\n            \"65000\",\n            \"65000\",\n        },\n        SiteId = \"site-123\",\n        WanDefaultGatewayIp = \"10.60.0.0\",\n        WanInterfaceIpPrefix = \"10.60.0.0/24\",\n        ZtpFileDownloadPath = \"/ztp/download/path\",\n        ZtpFileType = \"iso\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixEdgeSpoke(ctx, \"test\", &aviatrix.AviatrixEdgeSpokeArgs{\n\t\t\tGwName:                    pulumi.String(\"edge-test\"),\n\t\t\tLanInterfaceIpPrefix:      pulumi.String(\"10.60.0.0/24\"),\n\t\t\tLocalAsNumber:             pulumi.String(\"65000\"),\n\t\t\tManagementInterfaceConfig: pulumi.String(\"DHCP\"),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t},\n\t\t\tSiteId:               pulumi.String(\"site-123\"),\n\t\t\tWanDefaultGatewayIp:  pulumi.String(\"10.60.0.0\"),\n\t\t\tWanInterfaceIpPrefix: pulumi.String(\"10.60.0.0/24\"),\n\t\t\tZtpFileDownloadPath:  pulumi.String(\"/ztp/download/path\"),\n\t\t\tZtpFileType:          pulumi.String(\"iso\"),\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.aviatrix.AviatrixEdgeSpoke;\nimport com.pulumi.aviatrix.AviatrixEdgeSpokeArgs;\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 test = new AviatrixEdgeSpoke(\"test\", AviatrixEdgeSpokeArgs.builder()        \n            .gwName(\"edge-test\")\n            .lanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .localAsNumber(\"65000\")\n            .managementInterfaceConfig(\"DHCP\")\n            .prependAsPaths(            \n                \"65000\",\n                \"65000\")\n            .siteId(\"site-123\")\n            .wanDefaultGatewayIp(\"10.60.0.0\")\n            .wanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .ztpFileDownloadPath(\"/ztp/download/path\")\n            .ztpFileType(\"iso\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a DHCP Edge as a Spoke\n  test:\n    type: aviatrix:AviatrixEdgeSpoke\n    properties:\n      gwName: edge-test\n      lanInterfaceIpPrefix: 10.60.0.0/24\n      localAsNumber: '65000'\n      managementInterfaceConfig: DHCP\n      prependAsPaths:\n        - '65000'\n        - '65000'\n      siteId: site-123\n      wanDefaultGatewayIp: 10.60.0.0\n      wanInterfaceIpPrefix: 10.60.0.0/24\n      ztpFileDownloadPath: /ztp/download/path\n      ztpFileType: iso\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a Static Edge as a Spoke\nconst test = new aviatrix.AviatrixEdgeSpoke(\"test\", {\n    dnsServerIp: \"10.60.0.0\",\n    gwName: \"edge-test\",\n    lanInterfaceIpPrefix: \"10.60.0.0/24\",\n    localAsNumber: \"65000\",\n    managementDefaultGatewayIp: \"10.60.0.0\",\n    managementInterfaceConfig: \"Static\",\n    managementInterfaceIpPrefix: \"10.60.0.0/24\",\n    prependAsPaths: [\n        \"65000\",\n        \"65000\",\n    ],\n    secondaryDnsServerIp: \"10.60.0.0\",\n    siteId: \"site-123\",\n    wanDefaultGatewayIp: \"10.60.0.0\",\n    wanInterfaceIpPrefix: \"10.60.0.0/24\",\n    ztpFileDownloadPath: \"/ztp/download/path\",\n    ztpFileType: \"iso\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a Static Edge as a Spoke\ntest = aviatrix.AviatrixEdgeSpoke(\"test\",\n    dns_server_ip=\"10.60.0.0\",\n    gw_name=\"edge-test\",\n    lan_interface_ip_prefix=\"10.60.0.0/24\",\n    local_as_number=\"65000\",\n    management_default_gateway_ip=\"10.60.0.0\",\n    management_interface_config=\"Static\",\n    management_interface_ip_prefix=\"10.60.0.0/24\",\n    prepend_as_paths=[\n        \"65000\",\n        \"65000\",\n    ],\n    secondary_dns_server_ip=\"10.60.0.0\",\n    site_id=\"site-123\",\n    wan_default_gateway_ip=\"10.60.0.0\",\n    wan_interface_ip_prefix=\"10.60.0.0/24\",\n    ztp_file_download_path=\"/ztp/download/path\",\n    ztp_file_type=\"iso\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a Static Edge as a Spoke\n    var test = new Aviatrix.AviatrixEdgeSpoke(\"test\", new()\n    {\n        DnsServerIp = \"10.60.0.0\",\n        GwName = \"edge-test\",\n        LanInterfaceIpPrefix = \"10.60.0.0/24\",\n        LocalAsNumber = \"65000\",\n        ManagementDefaultGatewayIp = \"10.60.0.0\",\n        ManagementInterfaceConfig = \"Static\",\n        ManagementInterfaceIpPrefix = \"10.60.0.0/24\",\n        PrependAsPaths = new[]\n        {\n            \"65000\",\n            \"65000\",\n        },\n        SecondaryDnsServerIp = \"10.60.0.0\",\n        SiteId = \"site-123\",\n        WanDefaultGatewayIp = \"10.60.0.0\",\n        WanInterfaceIpPrefix = \"10.60.0.0/24\",\n        ZtpFileDownloadPath = \"/ztp/download/path\",\n        ZtpFileType = \"iso\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixEdgeSpoke(ctx, \"test\", &aviatrix.AviatrixEdgeSpokeArgs{\n\t\t\tDnsServerIp:                 pulumi.String(\"10.60.0.0\"),\n\t\t\tGwName:                      pulumi.String(\"edge-test\"),\n\t\t\tLanInterfaceIpPrefix:        pulumi.String(\"10.60.0.0/24\"),\n\t\t\tLocalAsNumber:               pulumi.String(\"65000\"),\n\t\t\tManagementDefaultGatewayIp:  pulumi.String(\"10.60.0.0\"),\n\t\t\tManagementInterfaceConfig:   pulumi.String(\"Static\"),\n\t\t\tManagementInterfaceIpPrefix: pulumi.String(\"10.60.0.0/24\"),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t\tpulumi.String(\"65000\"),\n\t\t\t},\n\t\t\tSecondaryDnsServerIp: pulumi.String(\"10.60.0.0\"),\n\t\t\tSiteId:               pulumi.String(\"site-123\"),\n\t\t\tWanDefaultGatewayIp:  pulumi.String(\"10.60.0.0\"),\n\t\t\tWanInterfaceIpPrefix: pulumi.String(\"10.60.0.0/24\"),\n\t\t\tZtpFileDownloadPath:  pulumi.String(\"/ztp/download/path\"),\n\t\t\tZtpFileType:          pulumi.String(\"iso\"),\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.aviatrix.AviatrixEdgeSpoke;\nimport com.pulumi.aviatrix.AviatrixEdgeSpokeArgs;\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 test = new AviatrixEdgeSpoke(\"test\", AviatrixEdgeSpokeArgs.builder()        \n            .dnsServerIp(\"10.60.0.0\")\n            .gwName(\"edge-test\")\n            .lanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .localAsNumber(\"65000\")\n            .managementDefaultGatewayIp(\"10.60.0.0\")\n            .managementInterfaceConfig(\"Static\")\n            .managementInterfaceIpPrefix(\"10.60.0.0/24\")\n            .prependAsPaths(            \n                \"65000\",\n                \"65000\")\n            .secondaryDnsServerIp(\"10.60.0.0\")\n            .siteId(\"site-123\")\n            .wanDefaultGatewayIp(\"10.60.0.0\")\n            .wanInterfaceIpPrefix(\"10.60.0.0/24\")\n            .ztpFileDownloadPath(\"/ztp/download/path\")\n            .ztpFileType(\"iso\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a Static Edge as a Spoke\n  test:\n    type: aviatrix:AviatrixEdgeSpoke\n    properties:\n      dnsServerIp: 10.60.0.0\n      gwName: edge-test\n      lanInterfaceIpPrefix: 10.60.0.0/24\n      localAsNumber: '65000'\n      managementDefaultGatewayIp: 10.60.0.0\n      managementInterfaceConfig: Static\n      managementInterfaceIpPrefix: 10.60.0.0/24\n      prependAsPaths:\n        - '65000'\n        - '65000'\n      secondaryDnsServerIp: 10.60.0.0\n      siteId: site-123\n      wanDefaultGatewayIp: 10.60.0.0\n      wanInterfaceIpPrefix: 10.60.0.0/24\n      ztpFileDownloadPath: /ztp/download/path\n      ztpFileType: iso\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**edge_spoke** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixEdgeSpoke:AviatrixEdgeSpoke test gw_name\n```\n\n ",
      "properties": {
        "approvedLearnedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved learned CIDRs. Valid only when `enable_learned_cidrs_approval` is set to true. Example: [\"10.1.0.0/116\", \"10.2.0.0/16\"].\n"
        },
        "bgpHoldTime": {
          "type": "integer",
          "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
        },
        "bgpPollingTime": {
          "type": "integer",
          "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: 50.\n"
        },
        "dnsServerIp": {
          "type": "string",
          "description": "DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "enableEdgeActiveStandby": {
          "type": "boolean",
          "description": "Switch to enable Edge Active-Standby mode. Valid values: true, false. Default value: false.\n"
        },
        "enableEdgeActiveStandbyPreemptive": {
          "type": "boolean",
          "description": "Switch to enable Preemptive Mode for Edge Active-Standby. Valid values: true, false. Default value: false.\n"
        },
        "enableEdgeTransitiveRouting": {
          "type": "boolean",
          "description": "Switch to enable Edge transitive routing. Valid values: true, false. Default value: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Switch to enable jumbo frame. Valid values: true, false. Default value: false.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable learned CIDR approval. Valid values: true, false. Default value: false.\n"
        },
        "enableManagementOverPrivateNetwork": {
          "type": "boolean",
          "description": "Switch to enable management over the private network. Valid values: true, false. Default value: false.\n"
        },
        "enablePreserveAsPath": {
          "type": "boolean",
          "description": "Switch to enable preserve as_path when advertising manual summary CIDRs. Valid values: true, false. Default value: false.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Edge as a Spoke name.\n"
        },
        "lanInterfaceIpPrefix": {
          "type": "string",
          "description": "LAN interface IP and subnet prefix.\n"
        },
        "latitude": {
          "type": "string",
          "description": "Latitude of Edge as a Spoke. Valid values are between -90 and 90. Example: \"47.7511\".\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "BGP AS Number to assign to Edge as a Spoke.\n"
        },
        "longitude": {
          "type": "string",
          "description": "Longitude of Edge as a Spoke. Valid values are between -180 and 180. Example: \"120.7401\".\n"
        },
        "managementDefaultGatewayIp": {
          "type": "string",
          "description": "Management default gateway IP. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "managementEgressIpPrefix": {
          "type": "string",
          "description": "Management egress gateway IP and subnet prefix.\n"
        },
        "managementInterfaceConfig": {
          "type": "string",
          "description": "Management interface configuration. Valid values: \"DHCP\", \"Static\".\n"
        },
        "managementInterfaceIpPrefix": {
          "type": "string",
          "description": "Management interface IP and subnet prefix. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of AS numbers to prepend gateway BGP AS_Path field. Valid only when `local_as_number` is set. Example: [\"65023\", \"65023\"].\n"
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Ethernet interface RX queue size. Once set, can't be deleted or disabled. Valid values: \"1K\", \"2K\", \"4K\".\n"
        },
        "secondaryDnsServerIp": {
          "type": "string",
          "description": "Secondary DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n"
        },
        "siteId": {
          "type": "string",
          "description": "Site ID.\n"
        },
        "spokeBgpManualAdvertiseCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of intended CIDRs to be advertised to external BGP router. Example: [\"10.1.0.0/116\", \"10.2.0.0/16\"].\n"
        },
        "state": {
          "type": "string",
          "description": "State of Edge as a Spoke.\n"
        },
        "wanDefaultGatewayIp": {
          "type": "string",
          "description": "WAN default gateway IP.\n"
        },
        "wanInterfaceIpPrefix": {
          "type": "string",
          "description": "WAN interface IP and subnet prefix.\n"
        },
        "wanPublicIp": {
          "type": "string",
          "description": "WAN public IP. Required for attaching connections over the Internet.\n"
        },
        "ztpFileDownloadPath": {
          "type": "string",
          "description": "The folder path where the ZTP file will be downloaded.\n"
        },
        "ztpFileType": {
          "type": "string",
          "description": "ZTP file type. Valid values: \"iso\", \"cloud-init\".\n"
        }
      },
      "type": "object",
      "required": [
        "gwName",
        "lanInterfaceIpPrefix",
        "latitude",
        "localAsNumber",
        "longitude",
        "managementInterfaceConfig",
        "siteId",
        "state",
        "wanDefaultGatewayIp",
        "wanInterfaceIpPrefix",
        "wanPublicIp",
        "ztpFileDownloadPath",
        "ztpFileType"
      ],
      "inputProperties": {
        "approvedLearnedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved learned CIDRs. Valid only when `enable_learned_cidrs_approval` is set to true. Example: [\"10.1.0.0/116\", \"10.2.0.0/16\"].\n"
        },
        "bgpHoldTime": {
          "type": "integer",
          "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
        },
        "bgpPollingTime": {
          "type": "integer",
          "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: 50.\n"
        },
        "dnsServerIp": {
          "type": "string",
          "description": "DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "enableEdgeActiveStandby": {
          "type": "boolean",
          "description": "Switch to enable Edge Active-Standby mode. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "enableEdgeActiveStandbyPreemptive": {
          "type": "boolean",
          "description": "Switch to enable Preemptive Mode for Edge Active-Standby. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "enableEdgeTransitiveRouting": {
          "type": "boolean",
          "description": "Switch to enable Edge transitive routing. Valid values: true, false. Default value: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Switch to enable jumbo frame. Valid values: true, false. Default value: false.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable learned CIDR approval. Valid values: true, false. Default value: false.\n"
        },
        "enableManagementOverPrivateNetwork": {
          "type": "boolean",
          "description": "Switch to enable management over the private network. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "enablePreserveAsPath": {
          "type": "boolean",
          "description": "Switch to enable preserve as_path when advertising manual summary CIDRs. Valid values: true, false. Default value: false.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Edge as a Spoke name.\n",
          "willReplaceOnChanges": true
        },
        "lanInterfaceIpPrefix": {
          "type": "string",
          "description": "LAN interface IP and subnet prefix.\n"
        },
        "latitude": {
          "type": "string",
          "description": "Latitude of Edge as a Spoke. Valid values are between -90 and 90. Example: \"47.7511\".\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "BGP AS Number to assign to Edge as a Spoke.\n"
        },
        "longitude": {
          "type": "string",
          "description": "Longitude of Edge as a Spoke. Valid values are between -180 and 180. Example: \"120.7401\".\n"
        },
        "managementDefaultGatewayIp": {
          "type": "string",
          "description": "Management default gateway IP. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "managementEgressIpPrefix": {
          "type": "string",
          "description": "Management egress gateway IP and subnet prefix.\n"
        },
        "managementInterfaceConfig": {
          "type": "string",
          "description": "Management interface configuration. Valid values: \"DHCP\", \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "managementInterfaceIpPrefix": {
          "type": "string",
          "description": "Management interface IP and subnet prefix. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of AS numbers to prepend gateway BGP AS_Path field. Valid only when `local_as_number` is set. Example: [\"65023\", \"65023\"].\n"
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Ethernet interface RX queue size. Once set, can't be deleted or disabled. Valid values: \"1K\", \"2K\", \"4K\".\n"
        },
        "secondaryDnsServerIp": {
          "type": "string",
          "description": "Secondary DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
          "willReplaceOnChanges": true
        },
        "siteId": {
          "type": "string",
          "description": "Site ID.\n",
          "willReplaceOnChanges": true
        },
        "spokeBgpManualAdvertiseCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of intended CIDRs to be advertised to external BGP router. Example: [\"10.1.0.0/116\", \"10.2.0.0/16\"].\n"
        },
        "wanDefaultGatewayIp": {
          "type": "string",
          "description": "WAN default gateway IP.\n"
        },
        "wanInterfaceIpPrefix": {
          "type": "string",
          "description": "WAN interface IP and subnet prefix.\n"
        },
        "wanPublicIp": {
          "type": "string",
          "description": "WAN public IP. Required for attaching connections over the Internet.\n"
        },
        "ztpFileDownloadPath": {
          "type": "string",
          "description": "The folder path where the ZTP file will be downloaded.\n",
          "willReplaceOnChanges": true
        },
        "ztpFileType": {
          "type": "string",
          "description": "ZTP file type. Valid values: \"iso\", \"cloud-init\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "gwName",
        "lanInterfaceIpPrefix",
        "managementInterfaceConfig",
        "siteId",
        "wanDefaultGatewayIp",
        "wanInterfaceIpPrefix",
        "ztpFileDownloadPath",
        "ztpFileType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixEdgeSpoke resources.\n",
        "properties": {
          "approvedLearnedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of approved learned CIDRs. Valid only when `enable_learned_cidrs_approval` is set to true. Example: [\"10.1.0.0/116\", \"10.2.0.0/16\"].\n"
          },
          "bgpHoldTime": {
            "type": "integer",
            "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
          },
          "bgpPollingTime": {
            "type": "integer",
            "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: 50.\n"
          },
          "dnsServerIp": {
            "type": "string",
            "description": "DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "enableEdgeActiveStandby": {
            "type": "boolean",
            "description": "Switch to enable Edge Active-Standby mode. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "enableEdgeActiveStandbyPreemptive": {
            "type": "boolean",
            "description": "Switch to enable Preemptive Mode for Edge Active-Standby. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "enableEdgeTransitiveRouting": {
            "type": "boolean",
            "description": "Switch to enable Edge transitive routing. Valid values: true, false. Default value: false.\n"
          },
          "enableJumboFrame": {
            "type": "boolean",
            "description": "Switch to enable jumbo frame. Valid values: true, false. Default value: false.\n"
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Switch to enable learned CIDR approval. Valid values: true, false. Default value: false.\n"
          },
          "enableManagementOverPrivateNetwork": {
            "type": "boolean",
            "description": "Switch to enable management over the private network. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "enablePreserveAsPath": {
            "type": "boolean",
            "description": "Switch to enable preserve as_path when advertising manual summary CIDRs. Valid values: true, false. Default value: false.\n"
          },
          "gwName": {
            "type": "string",
            "description": "Edge as a Spoke name.\n",
            "willReplaceOnChanges": true
          },
          "lanInterfaceIpPrefix": {
            "type": "string",
            "description": "LAN interface IP and subnet prefix.\n"
          },
          "latitude": {
            "type": "string",
            "description": "Latitude of Edge as a Spoke. Valid values are between -90 and 90. Example: \"47.7511\".\n"
          },
          "localAsNumber": {
            "type": "string",
            "description": "BGP AS Number to assign to Edge as a Spoke.\n"
          },
          "longitude": {
            "type": "string",
            "description": "Longitude of Edge as a Spoke. Valid values are between -180 and 180. Example: \"120.7401\".\n"
          },
          "managementDefaultGatewayIp": {
            "type": "string",
            "description": "Management default gateway IP. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "managementEgressIpPrefix": {
            "type": "string",
            "description": "Management egress gateway IP and subnet prefix.\n"
          },
          "managementInterfaceConfig": {
            "type": "string",
            "description": "Management interface configuration. Valid values: \"DHCP\", \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "managementInterfaceIpPrefix": {
            "type": "string",
            "description": "Management interface IP and subnet prefix. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of AS numbers to prepend gateway BGP AS_Path field. Valid only when `local_as_number` is set. Example: [\"65023\", \"65023\"].\n"
          },
          "rxQueueSize": {
            "type": "string",
            "description": "Ethernet interface RX queue size. Once set, can't be deleted or disabled. Valid values: \"1K\", \"2K\", \"4K\".\n"
          },
          "secondaryDnsServerIp": {
            "type": "string",
            "description": "Secondary DNS server IP. Required and valid when `management_interface_config` is \"Static\".\n",
            "willReplaceOnChanges": true
          },
          "siteId": {
            "type": "string",
            "description": "Site ID.\n",
            "willReplaceOnChanges": true
          },
          "spokeBgpManualAdvertiseCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of intended CIDRs to be advertised to external BGP router. Example: [\"10.1.0.0/116\", \"10.2.0.0/16\"].\n"
          },
          "state": {
            "type": "string",
            "description": "State of Edge as a Spoke.\n"
          },
          "wanDefaultGatewayIp": {
            "type": "string",
            "description": "WAN default gateway IP.\n"
          },
          "wanInterfaceIpPrefix": {
            "type": "string",
            "description": "WAN interface IP and subnet prefix.\n"
          },
          "wanPublicIp": {
            "type": "string",
            "description": "WAN public IP. Required for attaching connections over the Internet.\n"
          },
          "ztpFileDownloadPath": {
            "type": "string",
            "description": "The folder path where the ZTP file will be downloaded.\n",
            "willReplaceOnChanges": true
          },
          "ztpFileType": {
            "type": "string",
            "description": "ZTP file type. Valid values: \"iso\", \"cloud-init\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixEdgeSpokeExternalDeviceConn:AviatrixEdgeSpokeExternalDeviceConn": {
      "description": "The **aviatrix_edge_spoke_external_device_conn** resource creates and manages the connection between Edge as a Spoke and an External Device. This resource is available as of provider version R2.23+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Edge as a Spoke External Device Connection\nconst test = new aviatrix.AviatrixEdgeSpokeExternalDeviceConn(\"test\", {\n    bgpLocalAsNum: \"123\",\n    bgpRemoteAsNum: \"345\",\n    connectionName: \"conn\",\n    gwName: \"eaas\",\n    localLanIp: \"10.230.3.23\",\n    remoteLanIp: \"10.0.60.1\",\n    siteId: \"site-abcd1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Edge as a Spoke External Device Connection\ntest = aviatrix.AviatrixEdgeSpokeExternalDeviceConn(\"test\",\n    bgp_local_as_num=\"123\",\n    bgp_remote_as_num=\"345\",\n    connection_name=\"conn\",\n    gw_name=\"eaas\",\n    local_lan_ip=\"10.230.3.23\",\n    remote_lan_ip=\"10.0.60.1\",\n    site_id=\"site-abcd1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Edge as a Spoke External Device Connection\n    var test = new Aviatrix.AviatrixEdgeSpokeExternalDeviceConn(\"test\", new()\n    {\n        BgpLocalAsNum = \"123\",\n        BgpRemoteAsNum = \"345\",\n        ConnectionName = \"conn\",\n        GwName = \"eaas\",\n        LocalLanIp = \"10.230.3.23\",\n        RemoteLanIp = \"10.0.60.1\",\n        SiteId = \"site-abcd1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixEdgeSpokeExternalDeviceConn(ctx, \"test\", &aviatrix.AviatrixEdgeSpokeExternalDeviceConnArgs{\n\t\t\tBgpLocalAsNum:  pulumi.String(\"123\"),\n\t\t\tBgpRemoteAsNum: pulumi.String(\"345\"),\n\t\t\tConnectionName: pulumi.String(\"conn\"),\n\t\t\tGwName:         pulumi.String(\"eaas\"),\n\t\t\tLocalLanIp:     pulumi.String(\"10.230.3.23\"),\n\t\t\tRemoteLanIp:    pulumi.String(\"10.0.60.1\"),\n\t\t\tSiteId:         pulumi.String(\"site-abcd1234\"),\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.aviatrix.AviatrixEdgeSpokeExternalDeviceConn;\nimport com.pulumi.aviatrix.AviatrixEdgeSpokeExternalDeviceConnArgs;\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 test = new AviatrixEdgeSpokeExternalDeviceConn(\"test\", AviatrixEdgeSpokeExternalDeviceConnArgs.builder()        \n            .bgpLocalAsNum(\"123\")\n            .bgpRemoteAsNum(\"345\")\n            .connectionName(\"conn\")\n            .gwName(\"eaas\")\n            .localLanIp(\"10.230.3.23\")\n            .remoteLanIp(\"10.0.60.1\")\n            .siteId(\"site-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Edge as a Spoke External Device Connection\n  test:\n    type: aviatrix:AviatrixEdgeSpokeExternalDeviceConn\n    properties:\n      bgpLocalAsNum: '123'\n      bgpRemoteAsNum: '345'\n      connectionName: conn\n      gwName: eaas\n      localLanIp: 10.230.3.23\n      remoteLanIp: 10.0.60.1\n      siteId: site-abcd1234\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**edge_spoke_external_device_conn** can be imported using the `connection_name` and `site_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixEdgeSpokeExternalDeviceConn:AviatrixEdgeSpokeExternalDeviceConn test connection_name~site_id\n```\n\n ",
      "properties": {
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP local AS number.\n"
        },
        "bgpRemoteAsNum": {
          "type": "string",
          "description": "BGP remote AS number.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Connection name.\n"
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid value: 'bgp'. Default value: 'bgp'.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Edge as a Spoke name.\n"
        },
        "localLanIp": {
          "type": "string",
          "description": "Local LAN IP.\n"
        },
        "remoteLanIp": {
          "type": "string",
          "description": "Remote LAN IP.\n"
        },
        "siteId": {
          "type": "string",
          "description": "Edge as a Spoke site iD.\n"
        },
        "tunnelProtocol": {
          "type": "string",
          "description": "Tunnel protocol. Valid value: 'LAN'. Default value: 'LAN'. Case insensitive.\n"
        }
      },
      "type": "object",
      "required": [
        "bgpLocalAsNum",
        "bgpRemoteAsNum",
        "connectionName",
        "gwName",
        "localLanIp",
        "remoteLanIp",
        "siteId"
      ],
      "inputProperties": {
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP local AS number.\n",
          "willReplaceOnChanges": true
        },
        "bgpRemoteAsNum": {
          "type": "string",
          "description": "BGP remote AS number.\n",
          "willReplaceOnChanges": true
        },
        "connectionName": {
          "type": "string",
          "description": "Connection name.\n",
          "willReplaceOnChanges": true
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid value: 'bgp'. Default value: 'bgp'.\n",
          "willReplaceOnChanges": true
        },
        "gwName": {
          "type": "string",
          "description": "Edge as a Spoke name.\n",
          "willReplaceOnChanges": true
        },
        "localLanIp": {
          "type": "string",
          "description": "Local LAN IP.\n",
          "willReplaceOnChanges": true
        },
        "remoteLanIp": {
          "type": "string",
          "description": "Remote LAN IP.\n",
          "willReplaceOnChanges": true
        },
        "siteId": {
          "type": "string",
          "description": "Edge as a Spoke site iD.\n",
          "willReplaceOnChanges": true
        },
        "tunnelProtocol": {
          "type": "string",
          "description": "Tunnel protocol. Valid value: 'LAN'. Default value: 'LAN'. Case insensitive.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "bgpLocalAsNum",
        "bgpRemoteAsNum",
        "connectionName",
        "gwName",
        "localLanIp",
        "remoteLanIp",
        "siteId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixEdgeSpokeExternalDeviceConn resources.\n",
        "properties": {
          "bgpLocalAsNum": {
            "type": "string",
            "description": "BGP local AS number.\n",
            "willReplaceOnChanges": true
          },
          "bgpRemoteAsNum": {
            "type": "string",
            "description": "BGP remote AS number.\n",
            "willReplaceOnChanges": true
          },
          "connectionName": {
            "type": "string",
            "description": "Connection name.\n",
            "willReplaceOnChanges": true
          },
          "connectionType": {
            "type": "string",
            "description": "Connection type. Valid value: 'bgp'. Default value: 'bgp'.\n",
            "willReplaceOnChanges": true
          },
          "gwName": {
            "type": "string",
            "description": "Edge as a Spoke name.\n",
            "willReplaceOnChanges": true
          },
          "localLanIp": {
            "type": "string",
            "description": "Local LAN IP.\n",
            "willReplaceOnChanges": true
          },
          "remoteLanIp": {
            "type": "string",
            "description": "Remote LAN IP.\n",
            "willReplaceOnChanges": true
          },
          "siteId": {
            "type": "string",
            "description": "Edge as a Spoke site iD.\n",
            "willReplaceOnChanges": true
          },
          "tunnelProtocol": {
            "type": "string",
            "description": "Tunnel protocol. Valid value: 'LAN'. Default value: 'LAN'. Case insensitive.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixEdgeSpokeTransitAttachment:AviatrixEdgeSpokeTransitAttachment": {
      "description": "The **aviatrix_edge_spoke_transit_attachment** resource allows the creation and management of Aviatrix Edge as a Spoke to Transit gateway attachments. This resource is available as of provider version R2.23+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Edge as a Spoke Transit Attachment\nconst testAttachment = new aviatrix.AviatrixEdgeSpokeTransitAttachment(\"test_attachment\", {\n    spokeGwName: \"edge-as-a-spoke\",\n    transitGwName: \"transit-gw\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Edge as a Spoke Transit Attachment\ntest_attachment = aviatrix.AviatrixEdgeSpokeTransitAttachment(\"testAttachment\",\n    spoke_gw_name=\"edge-as-a-spoke\",\n    transit_gw_name=\"transit-gw\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Edge as a Spoke Transit Attachment\n    var testAttachment = new Aviatrix.AviatrixEdgeSpokeTransitAttachment(\"testAttachment\", new()\n    {\n        SpokeGwName = \"edge-as-a-spoke\",\n        TransitGwName = \"transit-gw\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixEdgeSpokeTransitAttachment(ctx, \"testAttachment\", &aviatrix.AviatrixEdgeSpokeTransitAttachmentArgs{\n\t\t\tSpokeGwName:   pulumi.String(\"edge-as-a-spoke\"),\n\t\t\tTransitGwName: pulumi.String(\"transit-gw\"),\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.aviatrix.AviatrixEdgeSpokeTransitAttachment;\nimport com.pulumi.aviatrix.AviatrixEdgeSpokeTransitAttachmentArgs;\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 testAttachment = new AviatrixEdgeSpokeTransitAttachment(\"testAttachment\", AviatrixEdgeSpokeTransitAttachmentArgs.builder()        \n            .spokeGwName(\"edge-as-a-spoke\")\n            .transitGwName(\"transit-gw\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Edge as a Spoke Transit Attachment\n  testAttachment:\n    type: aviatrix:AviatrixEdgeSpokeTransitAttachment\n    properties:\n      spokeGwName: edge-as-a-spoke\n      transitGwName: transit-gw\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**spoke_transit_attachment** can be imported using the `spoke_gw_name` and `transit_gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixEdgeSpokeTransitAttachment:AviatrixEdgeSpokeTransitAttachment test spoke_gw_name~transit_gw_name\n```\n\n ",
      "properties": {
        "enableInsaneMode": {
          "type": "boolean",
          "description": "Switch to enable insane mode. Valid values: true, false. Default: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Switch to enable jumbo frame. Valid values: true, false. Default: false.\n"
        },
        "enableOverPrivateNetwork": {
          "type": "boolean",
          "description": "Switch to enable over the private network. Valid values: true, false. Default: true.\n"
        },
        "insaneModeTunnelNumber": {
          "type": "integer",
          "description": "Insane mode tunnel number. Default: 0.\n"
        },
        "spokeGwName": {
          "type": "string",
          "description": "Name of the Edge as a Spoke to attach to transit network.\n"
        },
        "spokePrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on the Edge as a Spoke.\n"
        },
        "transitGwName": {
          "type": "string",
          "description": "Name of the transit gateway to attach the Edge as a Spoke to.\n"
        },
        "transitPrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on the Transit Gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "spokeGwName",
        "transitGwName"
      ],
      "inputProperties": {
        "enableInsaneMode": {
          "type": "boolean",
          "description": "Switch to enable insane mode. Valid values: true, false. Default: false.\n",
          "willReplaceOnChanges": true
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Switch to enable jumbo frame. Valid values: true, false. Default: false.\n",
          "willReplaceOnChanges": true
        },
        "enableOverPrivateNetwork": {
          "type": "boolean",
          "description": "Switch to enable over the private network. Valid values: true, false. Default: true.\n",
          "willReplaceOnChanges": true
        },
        "insaneModeTunnelNumber": {
          "type": "integer",
          "description": "Insane mode tunnel number. Default: 0.\n",
          "willReplaceOnChanges": true
        },
        "spokeGwName": {
          "type": "string",
          "description": "Name of the Edge as a Spoke to attach to transit network.\n",
          "willReplaceOnChanges": true
        },
        "spokePrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on the Edge as a Spoke.\n"
        },
        "transitGwName": {
          "type": "string",
          "description": "Name of the transit gateway to attach the Edge as a Spoke to.\n",
          "willReplaceOnChanges": true
        },
        "transitPrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on the Transit Gateway.\n"
        }
      },
      "requiredInputs": [
        "spokeGwName",
        "transitGwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixEdgeSpokeTransitAttachment resources.\n",
        "properties": {
          "enableInsaneMode": {
            "type": "boolean",
            "description": "Switch to enable insane mode. Valid values: true, false. Default: false.\n",
            "willReplaceOnChanges": true
          },
          "enableJumboFrame": {
            "type": "boolean",
            "description": "Switch to enable jumbo frame. Valid values: true, false. Default: false.\n",
            "willReplaceOnChanges": true
          },
          "enableOverPrivateNetwork": {
            "type": "boolean",
            "description": "Switch to enable over the private network. Valid values: true, false. Default: true.\n",
            "willReplaceOnChanges": true
          },
          "insaneModeTunnelNumber": {
            "type": "integer",
            "description": "Insane mode tunnel number. Default: 0.\n",
            "willReplaceOnChanges": true
          },
          "spokeGwName": {
            "type": "string",
            "description": "Name of the Edge as a Spoke to attach to transit network.\n",
            "willReplaceOnChanges": true
          },
          "spokePrependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection based AS Path Prepend. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on the Edge as a Spoke.\n"
          },
          "transitGwName": {
            "type": "string",
            "description": "Name of the transit gateway to attach the Edge as a Spoke to.\n",
            "willReplaceOnChanges": true
          },
          "transitPrependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection based AS Path Prepend. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on the Transit Gateway.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFilebeatForwarder:AviatrixFilebeatForwarder": {
      "description": "The **aviatrix_filebeat_forwarder** resource allows the enabling and disabling of filebeat forwarder.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Enable filebeat forwarder\nconst testFilebeatForwarder = new aviatrix.AviatrixFilebeatForwarder(\"testFilebeatForwarder\", {\n    server: \"1.2.3.4\",\n    port: 10,\n    trustedCaFile: fs.readFileSync(\"/path/to/ca.pem\"),\n    configFile: fs.readFileSync(\"/path/to/config.txt\"),\n    excludedGateways: [\n        \"a\",\n        \"b\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable filebeat forwarder\ntest_filebeat_forwarder = aviatrix.AviatrixFilebeatForwarder(\"testFilebeatForwarder\",\n    server=\"1.2.3.4\",\n    port=10,\n    trusted_ca_file=(lambda path: open(path).read())(\"/path/to/ca.pem\"),\n    config_file=(lambda path: open(path).read())(\"/path/to/config.txt\"),\n    excluded_gateways=[\n        \"a\",\n        \"b\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable filebeat forwarder\n    var testFilebeatForwarder = new Aviatrix.AviatrixFilebeatForwarder(\"testFilebeatForwarder\", new()\n    {\n        Server = \"1.2.3.4\",\n        Port = 10,\n        TrustedCaFile = File.ReadAllText(\"/path/to/ca.pem\"),\n        ConfigFile = File.ReadAllText(\"/path/to/config.txt\"),\n        ExcludedGateways = new[]\n        {\n            \"a\",\n            \"b\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixFilebeatForwarder(ctx, \"testFilebeatForwarder\", &aviatrix.AviatrixFilebeatForwarderArgs{\n\t\t\tServer:        pulumi.String(\"1.2.3.4\"),\n\t\t\tPort:          pulumi.Int(10),\n\t\t\tTrustedCaFile: readFileOrPanic(\"/path/to/ca.pem\"),\n\t\t\tConfigFile:    readFileOrPanic(\"/path/to/config.txt\"),\n\t\t\tExcludedGateways: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\tpulumi.String(\"b\"),\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.aviatrix.AviatrixFilebeatForwarder;\nimport com.pulumi.aviatrix.AviatrixFilebeatForwarderArgs;\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 testFilebeatForwarder = new AviatrixFilebeatForwarder(\"testFilebeatForwarder\", AviatrixFilebeatForwarderArgs.builder()        \n            .server(\"1.2.3.4\")\n            .port(10)\n            .trustedCaFile(Files.readString(Paths.get(\"/path/to/ca.pem\")))\n            .configFile(Files.readString(Paths.get(\"/path/to/config.txt\")))\n            .excludedGateways(            \n                \"a\",\n                \"b\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable filebeat forwarder\n  testFilebeatForwarder:\n    type: aviatrix:AviatrixFilebeatForwarder\n    properties:\n      server: 1.2.3.4\n      port: 10\n      trustedCaFile:\n        fn::readFile: /path/to/ca.pem\n      configFile:\n        fn::readFile: /path/to/config.txt\n      excludedGateways:\n        - a\n        - b\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**filebeat_forwarder** can be imported using \"filebeat_forwarder\", e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFilebeatForwarder:AviatrixFilebeatForwarder test filebeat_forwarder\n```\n\n ",
      "properties": {
        "configFile": {
          "type": "string",
          "description": "The config file. Use the `file` function to read from a file.\n"
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n"
        },
        "port": {
          "type": "integer",
          "description": "Port number.\n"
        },
        "server": {
          "type": "string",
          "description": "Server IP.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of filebeat forwarder.\n"
        },
        "trustedCaFile": {
          "type": "string",
          "description": "The trusted CA file. Use the `file` function to read from a file.\n"
        }
      },
      "type": "object",
      "required": [
        "port",
        "server",
        "status"
      ],
      "inputProperties": {
        "configFile": {
          "type": "string",
          "description": "The config file. Use the `file` function to read from a file.\n",
          "willReplaceOnChanges": true
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
          "willReplaceOnChanges": true
        },
        "port": {
          "type": "integer",
          "description": "Port number.\n",
          "willReplaceOnChanges": true
        },
        "server": {
          "type": "string",
          "description": "Server IP.\n",
          "willReplaceOnChanges": true
        },
        "trustedCaFile": {
          "type": "string",
          "description": "The trusted CA file. Use the `file` function to read from a file.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "port",
        "server"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFilebeatForwarder resources.\n",
        "properties": {
          "configFile": {
            "type": "string",
            "description": "The config file. Use the `file` function to read from a file.\n",
            "willReplaceOnChanges": true
          },
          "excludedGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
            "willReplaceOnChanges": true
          },
          "port": {
            "type": "integer",
            "description": "Port number.\n",
            "willReplaceOnChanges": true
          },
          "server": {
            "type": "string",
            "description": "Server IP.\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "The status of filebeat forwarder.\n"
          },
          "trustedCaFile": {
            "type": "string",
            "description": "The trusted CA file. Use the `file` function to read from a file.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFirenet:AviatrixFirenet": {
      "description": "The **aviatrix_firenet** resource allows the creation and management of [Aviatrix Firewall Networks](https://docs.aviatrix.com/HowTos/firewall_network_faq.html).\n\n> **NOTE:** This resource is used in conjunction with multiple other resources that may include, and are not limited to: **firewall_instance**, **firewall_instance_association**, **aws_tgw**, and **transit_gateway** resources or even **aviatrix_fqdn**, under the Aviatrix FireNet solution. Explicit dependencies may be set using `depends_on`. For more information on proper FireNet configuration, please see the workflow [here](https://docs.aviatrix.com/HowTos/firewall_network_workflow.html).\n\n\n## Import\n\n**firenet** can be imported using the `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirenet:AviatrixFirenet test vpc_id\n```\n\n ",
      "properties": {
        "eastWestInspectionExcludedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Network List Excluded From East-West Inspection. CIDRs to be excluded from inspection. Type: Set(String). Available as of provider version R2.19.5+.\n"
        },
        "egressEnabled": {
          "type": "boolean",
          "description": "Enable/disable egress through firewall. Valid values: true, false. Default value: false.\n"
        },
        "egressStaticCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of egress static CIDRs. Egress is required to be enabled. Example: [\"1.171.15.184/32\", \"1.171.15.185/32\"]. Available as of provider version R2.19+.\n"
        },
        "firewallInstanceAssociations": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFirenetFirewallInstanceAssociation:AviatrixFirenetFirewallInstanceAssociation"
          },
          "description": "Dynamic block of firewall instance(s) to be associated with the FireNet.\n",
          "deprecationMessage": "Please set `manage_firewall_instance_association` to false, and use the standalone aviatrix_firewall_instance_association resource instead."
        },
        "hashingAlgorithm": {
          "type": "string",
          "description": "Hashing algorithm to load balance traffic across the firewall. Valid values: \"2-Tuple\", \"5-Tuple\". Default value: \"5-Tuple\".\n"
        },
        "inspectionEnabled": {
          "type": "boolean",
          "description": "Enable/disable traffic inspection. Valid values: true, false. Default value: true.\n"
        },
        "keepAliveViaLanInterfaceEnabled": {
          "type": "boolean",
          "description": "Enable Keep Alive via Firewall LAN Interface. Valid values: true or false. Default value: false. Available as of provider version R2.18.1+.\n"
        },
        "manageFirewallInstanceAssociation": {
          "type": "boolean",
          "description": "Enable this attribute to manage firewall associations in-line. If set to true, in-line `firewall_instance_association` blocks can be used. If set to false, all firewall associations must be managed via standalone `aviatrix.AviatrixFirewallInstanceAssociation` resources. Default value: true. Valid values: true or false. Available in provider version R2.17.1+.\n"
        },
        "tgwSegmentationForEgressEnabled": {
          "type": "boolean",
          "description": "Enable TGW segmentation for egress. Valid values: true or false. Default value: false. Available as of provider version R2.19+.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Security VPC.\n"
        }
      },
      "type": "object",
      "required": [
        "vpcId"
      ],
      "inputProperties": {
        "eastWestInspectionExcludedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Network List Excluded From East-West Inspection. CIDRs to be excluded from inspection. Type: Set(String). Available as of provider version R2.19.5+.\n"
        },
        "egressEnabled": {
          "type": "boolean",
          "description": "Enable/disable egress through firewall. Valid values: true, false. Default value: false.\n"
        },
        "egressStaticCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of egress static CIDRs. Egress is required to be enabled. Example: [\"1.171.15.184/32\", \"1.171.15.185/32\"]. Available as of provider version R2.19+.\n"
        },
        "firewallInstanceAssociations": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFirenetFirewallInstanceAssociation:AviatrixFirenetFirewallInstanceAssociation"
          },
          "description": "Dynamic block of firewall instance(s) to be associated with the FireNet.\n",
          "deprecationMessage": "Please set `manage_firewall_instance_association` to false, and use the standalone aviatrix_firewall_instance_association resource instead."
        },
        "hashingAlgorithm": {
          "type": "string",
          "description": "Hashing algorithm to load balance traffic across the firewall. Valid values: \"2-Tuple\", \"5-Tuple\". Default value: \"5-Tuple\".\n"
        },
        "inspectionEnabled": {
          "type": "boolean",
          "description": "Enable/disable traffic inspection. Valid values: true, false. Default value: true.\n"
        },
        "keepAliveViaLanInterfaceEnabled": {
          "type": "boolean",
          "description": "Enable Keep Alive via Firewall LAN Interface. Valid values: true or false. Default value: false. Available as of provider version R2.18.1+.\n"
        },
        "manageFirewallInstanceAssociation": {
          "type": "boolean",
          "description": "Enable this attribute to manage firewall associations in-line. If set to true, in-line `firewall_instance_association` blocks can be used. If set to false, all firewall associations must be managed via standalone `aviatrix.AviatrixFirewallInstanceAssociation` resources. Default value: true. Valid values: true or false. Available in provider version R2.17.1+.\n"
        },
        "tgwSegmentationForEgressEnabled": {
          "type": "boolean",
          "description": "Enable TGW segmentation for egress. Valid values: true or false. Default value: false. Available as of provider version R2.19+.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Security VPC.\n"
        }
      },
      "requiredInputs": [
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFirenet resources.\n",
        "properties": {
          "eastWestInspectionExcludedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Network List Excluded From East-West Inspection. CIDRs to be excluded from inspection. Type: Set(String). Available as of provider version R2.19.5+.\n"
          },
          "egressEnabled": {
            "type": "boolean",
            "description": "Enable/disable egress through firewall. Valid values: true, false. Default value: false.\n"
          },
          "egressStaticCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of egress static CIDRs. Egress is required to be enabled. Example: [\"1.171.15.184/32\", \"1.171.15.185/32\"]. Available as of provider version R2.19+.\n"
          },
          "firewallInstanceAssociations": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixFirenetFirewallInstanceAssociation:AviatrixFirenetFirewallInstanceAssociation"
            },
            "description": "Dynamic block of firewall instance(s) to be associated with the FireNet.\n",
            "deprecationMessage": "Please set `manage_firewall_instance_association` to false, and use the standalone aviatrix_firewall_instance_association resource instead."
          },
          "hashingAlgorithm": {
            "type": "string",
            "description": "Hashing algorithm to load balance traffic across the firewall. Valid values: \"2-Tuple\", \"5-Tuple\". Default value: \"5-Tuple\".\n"
          },
          "inspectionEnabled": {
            "type": "boolean",
            "description": "Enable/disable traffic inspection. Valid values: true, false. Default value: true.\n"
          },
          "keepAliveViaLanInterfaceEnabled": {
            "type": "boolean",
            "description": "Enable Keep Alive via Firewall LAN Interface. Valid values: true or false. Default value: false. Available as of provider version R2.18.1+.\n"
          },
          "manageFirewallInstanceAssociation": {
            "type": "boolean",
            "description": "Enable this attribute to manage firewall associations in-line. If set to true, in-line `firewall_instance_association` blocks can be used. If set to false, all firewall associations must be managed via standalone `aviatrix.AviatrixFirewallInstanceAssociation` resources. Default value: true. Valid values: true or false. Available in provider version R2.17.1+.\n"
          },
          "tgwSegmentationForEgressEnabled": {
            "type": "boolean",
            "description": "Enable TGW segmentation for egress. Valid values: true or false. Default value: false. Available as of provider version R2.19+.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the Security VPC.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFirewall:AviatrixFirewall": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Firewall\nconst statefulFirewall1 = new aviatrix.AviatrixFirewall(\"stateful_firewall_1\", {\n    baseLogEnabled: true,\n    basePolicy: \"allow-all\",\n    gwName: \"gateway-1\",\n    manageFirewallPolicies: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Firewall\nstateful_firewall1 = aviatrix.AviatrixFirewall(\"statefulFirewall1\",\n    base_log_enabled=True,\n    base_policy=\"allow-all\",\n    gw_name=\"gateway-1\",\n    manage_firewall_policies=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Firewall\n    var statefulFirewall1 = new Aviatrix.AviatrixFirewall(\"statefulFirewall1\", new()\n    {\n        BaseLogEnabled = true,\n        BasePolicy = \"allow-all\",\n        GwName = \"gateway-1\",\n        ManageFirewallPolicies = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewall(ctx, \"statefulFirewall1\", &aviatrix.AviatrixFirewallArgs{\n\t\t\tBaseLogEnabled:         pulumi.Bool(true),\n\t\t\tBasePolicy:             pulumi.String(\"allow-all\"),\n\t\t\tGwName:                 pulumi.String(\"gateway-1\"),\n\t\t\tManageFirewallPolicies: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixFirewall;\nimport com.pulumi.aviatrix.AviatrixFirewallArgs;\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 statefulFirewall1 = new AviatrixFirewall(\"statefulFirewall1\", AviatrixFirewallArgs.builder()        \n            .baseLogEnabled(true)\n            .basePolicy(\"allow-all\")\n            .gwName(\"gateway-1\")\n            .manageFirewallPolicies(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Firewall\n  statefulFirewall1:\n    type: aviatrix:AviatrixFirewall\n    properties:\n      baseLogEnabled: true\n      basePolicy: allow-all\n      gwName: gateway-1\n      manageFirewallPolicies: false\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix Firewall with in-line rules\nconst statefulFirewall1 = new aviatrix.AviatrixFirewall(\"statefulFirewall1\", {\n    gwName: \"gateway-1\",\n    basePolicy: \"allow-all\",\n    baseLogEnabled: true,\n    policies: [\n        {\n            protocol: \"all\",\n            srcIp: \"10.17.0.224/32\",\n            logEnabled: true,\n            dstIp: \"10.12.0.172/32\",\n            action: \"force-drop\",\n            port: \"0:65535\",\n            description: \"first_policy\",\n        },\n        {\n            protocol: \"tcp\",\n            srcIp: \"10.16.0.224/32\",\n            logEnabled: false,\n            dstIp: \"10.12.1.172/32\",\n            action: \"force-drop\",\n            port: \"325\",\n            description: \"second_policy\",\n        },\n        {\n            protocol: \"udp\",\n            srcIp: \"10.14.0.225/32\",\n            logEnabled: false,\n            dstIp: \"10.13.1.173/32\",\n            action: \"deny\",\n            port: \"325\",\n            description: \"third_policy\",\n        },\n        {\n            protocol: \"tcp\",\n            srcIp: aviatrix_firewall_tag.test.firewall_tag,\n            logEnabled: false,\n            dstIp: \"10.13.1.173/32\",\n            action: \"deny\",\n            port: \"325\",\n            description: \"fourth_policy\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Firewall with in-line rules\nstateful_firewall1 = aviatrix.AviatrixFirewall(\"statefulFirewall1\",\n    gw_name=\"gateway-1\",\n    base_policy=\"allow-all\",\n    base_log_enabled=True,\n    policies=[\n        aviatrix.AviatrixFirewallPolicyArgs(\n            protocol=\"all\",\n            src_ip=\"10.17.0.224/32\",\n            log_enabled=True,\n            dst_ip=\"10.12.0.172/32\",\n            action=\"force-drop\",\n            port=\"0:65535\",\n            description=\"first_policy\",\n        ),\n        aviatrix.AviatrixFirewallPolicyArgs(\n            protocol=\"tcp\",\n            src_ip=\"10.16.0.224/32\",\n            log_enabled=False,\n            dst_ip=\"10.12.1.172/32\",\n            action=\"force-drop\",\n            port=\"325\",\n            description=\"second_policy\",\n        ),\n        aviatrix.AviatrixFirewallPolicyArgs(\n            protocol=\"udp\",\n            src_ip=\"10.14.0.225/32\",\n            log_enabled=False,\n            dst_ip=\"10.13.1.173/32\",\n            action=\"deny\",\n            port=\"325\",\n            description=\"third_policy\",\n        ),\n        aviatrix.AviatrixFirewallPolicyArgs(\n            protocol=\"tcp\",\n            src_ip=aviatrix_firewall_tag[\"test\"][\"firewall_tag\"],\n            log_enabled=False,\n            dst_ip=\"10.13.1.173/32\",\n            action=\"deny\",\n            port=\"325\",\n            description=\"fourth_policy\",\n        ),\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Firewall with in-line rules\n    var statefulFirewall1 = new Aviatrix.AviatrixFirewall(\"statefulFirewall1\", new()\n    {\n        GwName = \"gateway-1\",\n        BasePolicy = \"allow-all\",\n        BaseLogEnabled = true,\n        Policies = new[]\n        {\n            new Aviatrix.Inputs.AviatrixFirewallPolicyArgs\n            {\n                Protocol = \"all\",\n                SrcIp = \"10.17.0.224/32\",\n                LogEnabled = true,\n                DstIp = \"10.12.0.172/32\",\n                Action = \"force-drop\",\n                Port = \"0:65535\",\n                Description = \"first_policy\",\n            },\n            new Aviatrix.Inputs.AviatrixFirewallPolicyArgs\n            {\n                Protocol = \"tcp\",\n                SrcIp = \"10.16.0.224/32\",\n                LogEnabled = false,\n                DstIp = \"10.12.1.172/32\",\n                Action = \"force-drop\",\n                Port = \"325\",\n                Description = \"second_policy\",\n            },\n            new Aviatrix.Inputs.AviatrixFirewallPolicyArgs\n            {\n                Protocol = \"udp\",\n                SrcIp = \"10.14.0.225/32\",\n                LogEnabled = false,\n                DstIp = \"10.13.1.173/32\",\n                Action = \"deny\",\n                Port = \"325\",\n                Description = \"third_policy\",\n            },\n            new Aviatrix.Inputs.AviatrixFirewallPolicyArgs\n            {\n                Protocol = \"tcp\",\n                SrcIp = aviatrix_firewall_tag.Test.Firewall_tag,\n                LogEnabled = false,\n                DstIp = \"10.13.1.173/32\",\n                Action = \"deny\",\n                Port = \"325\",\n                Description = \"fourth_policy\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewall(ctx, \"statefulFirewall1\", &aviatrix.AviatrixFirewallArgs{\n\t\t\tGwName:         pulumi.String(\"gateway-1\"),\n\t\t\tBasePolicy:     pulumi.String(\"allow-all\"),\n\t\t\tBaseLogEnabled: pulumi.Bool(true),\n\t\t\tPolicies: AviatrixFirewallPolicyTypeArray{\n\t\t\t\t&AviatrixFirewallPolicyTypeArgs{\n\t\t\t\t\tProtocol:    pulumi.String(\"all\"),\n\t\t\t\t\tSrcIp:       pulumi.String(\"10.17.0.224/32\"),\n\t\t\t\t\tLogEnabled:  pulumi.Bool(true),\n\t\t\t\t\tDstIp:       pulumi.String(\"10.12.0.172/32\"),\n\t\t\t\t\tAction:      pulumi.String(\"force-drop\"),\n\t\t\t\t\tPort:        pulumi.String(\"0:65535\"),\n\t\t\t\t\tDescription: pulumi.String(\"first_policy\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixFirewallPolicyTypeArgs{\n\t\t\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t\t\t\tSrcIp:       pulumi.String(\"10.16.0.224/32\"),\n\t\t\t\t\tLogEnabled:  pulumi.Bool(false),\n\t\t\t\t\tDstIp:       pulumi.String(\"10.12.1.172/32\"),\n\t\t\t\t\tAction:      pulumi.String(\"force-drop\"),\n\t\t\t\t\tPort:        pulumi.String(\"325\"),\n\t\t\t\t\tDescription: pulumi.String(\"second_policy\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixFirewallPolicyTypeArgs{\n\t\t\t\t\tProtocol:    pulumi.String(\"udp\"),\n\t\t\t\t\tSrcIp:       pulumi.String(\"10.14.0.225/32\"),\n\t\t\t\t\tLogEnabled:  pulumi.Bool(false),\n\t\t\t\t\tDstIp:       pulumi.String(\"10.13.1.173/32\"),\n\t\t\t\t\tAction:      pulumi.String(\"deny\"),\n\t\t\t\t\tPort:        pulumi.String(\"325\"),\n\t\t\t\t\tDescription: pulumi.String(\"third_policy\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixFirewallPolicyTypeArgs{\n\t\t\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t\t\t\tSrcIp:       pulumi.Any(aviatrix_firewall_tag.Test.Firewall_tag),\n\t\t\t\t\tLogEnabled:  pulumi.Bool(false),\n\t\t\t\t\tDstIp:       pulumi.String(\"10.13.1.173/32\"),\n\t\t\t\t\tAction:      pulumi.String(\"deny\"),\n\t\t\t\t\tPort:        pulumi.String(\"325\"),\n\t\t\t\t\tDescription: pulumi.String(\"fourth_policy\"),\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.aviatrix.AviatrixFirewall;\nimport com.pulumi.aviatrix.AviatrixFirewallArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixFirewallPolicyArgs;\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 statefulFirewall1 = new AviatrixFirewall(\"statefulFirewall1\", AviatrixFirewallArgs.builder()        \n            .gwName(\"gateway-1\")\n            .basePolicy(\"allow-all\")\n            .baseLogEnabled(true)\n            .policies(            \n                AviatrixFirewallPolicyArgs.builder()\n                    .protocol(\"all\")\n                    .srcIp(\"10.17.0.224/32\")\n                    .logEnabled(true)\n                    .dstIp(\"10.12.0.172/32\")\n                    .action(\"force-drop\")\n                    .port(\"0:65535\")\n                    .description(\"first_policy\")\n                    .build(),\n                AviatrixFirewallPolicyArgs.builder()\n                    .protocol(\"tcp\")\n                    .srcIp(\"10.16.0.224/32\")\n                    .logEnabled(false)\n                    .dstIp(\"10.12.1.172/32\")\n                    .action(\"force-drop\")\n                    .port(\"325\")\n                    .description(\"second_policy\")\n                    .build(),\n                AviatrixFirewallPolicyArgs.builder()\n                    .protocol(\"udp\")\n                    .srcIp(\"10.14.0.225/32\")\n                    .logEnabled(false)\n                    .dstIp(\"10.13.1.173/32\")\n                    .action(\"deny\")\n                    .port(\"325\")\n                    .description(\"third_policy\")\n                    .build(),\n                AviatrixFirewallPolicyArgs.builder()\n                    .protocol(\"tcp\")\n                    .srcIp(aviatrix_firewall_tag.test().firewall_tag())\n                    .logEnabled(false)\n                    .dstIp(\"10.13.1.173/32\")\n                    .action(\"deny\")\n                    .port(\"325\")\n                    .description(\"fourth_policy\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Firewall with in-line rules\n  statefulFirewall1:\n    type: aviatrix:AviatrixFirewall\n    properties:\n      gwName: gateway-1\n      basePolicy: allow-all\n      baseLogEnabled: true\n      policies:\n        - protocol: all\n          srcIp: 10.17.0.224/32\n          logEnabled: true\n          dstIp: 10.12.0.172/32\n          action: force-drop\n          port: 0:65535\n          description: first_policy\n        - protocol: tcp\n          srcIp: 10.16.0.224/32\n          logEnabled: false\n          dstIp: 10.12.1.172/32\n          action: force-drop\n          port: '325'\n          description: second_policy\n        - protocol: udp\n          srcIp: 10.14.0.225/32\n          logEnabled: false\n          dstIp: 10.13.1.173/32\n          action: deny\n          port: '325'\n          description: third_policy\n        - protocol: tcp\n          srcIp: ${aviatrix_firewall_tag.test.firewall_tag}\n          logEnabled: false\n          dstIp: 10.13.1.173/32\n          action: deny\n          port: '325'\n          description: fourth_policy\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**firewall** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirewall:AviatrixFirewall test gw_name\n```\n\n ",
      "properties": {
        "baseLogEnabled": {
          "type": "boolean",
          "description": "Indicates whether enable logging or not. Valid Values: true, false. Default value: false.\n"
        },
        "basePolicy": {
          "type": "string",
          "description": "New base policy. Valid Values: \"allow-all\", \"deny-all\". Default value: \"deny-all\"\n"
        },
        "gwName": {
          "type": "string",
          "description": "Gateway name to attach firewall policy to.\n"
        },
        "manageFirewallPolicies": {
          "type": "boolean",
          "description": "Enable to manage firewall policies via in-line rules. If false, policies must be managed using `aviatrix.AviatrixFirewallPolicy` resources. Default: true. Valid values: true, false. Available in provider version R2.17+.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFirewallPolicy:AviatrixFirewallPolicy"
          },
          "description": "New access policy for the gateway. Seven fields are required for each policy item: `src_ip`, `dst_ip`, `protocol`, `port`, `action`, `log_enabled` and `description`. No duplicate rules (with same `src_ip`, `dst_ip`, `protocol` and `port`) are allowed.\n"
        }
      },
      "type": "object",
      "required": [
        "gwName"
      ],
      "inputProperties": {
        "baseLogEnabled": {
          "type": "boolean",
          "description": "Indicates whether enable logging or not. Valid Values: true, false. Default value: false.\n"
        },
        "basePolicy": {
          "type": "string",
          "description": "New base policy. Valid Values: \"allow-all\", \"deny-all\". Default value: \"deny-all\"\n"
        },
        "gwName": {
          "type": "string",
          "description": "Gateway name to attach firewall policy to.\n"
        },
        "manageFirewallPolicies": {
          "type": "boolean",
          "description": "Enable to manage firewall policies via in-line rules. If false, policies must be managed using `aviatrix.AviatrixFirewallPolicy` resources. Default: true. Valid values: true, false. Available in provider version R2.17+.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFirewallPolicy:AviatrixFirewallPolicy"
          },
          "description": "New access policy for the gateway. Seven fields are required for each policy item: `src_ip`, `dst_ip`, `protocol`, `port`, `action`, `log_enabled` and `description`. No duplicate rules (with same `src_ip`, `dst_ip`, `protocol` and `port`) are allowed.\n"
        }
      },
      "requiredInputs": [
        "gwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFirewall resources.\n",
        "properties": {
          "baseLogEnabled": {
            "type": "boolean",
            "description": "Indicates whether enable logging or not. Valid Values: true, false. Default value: false.\n"
          },
          "basePolicy": {
            "type": "string",
            "description": "New base policy. Valid Values: \"allow-all\", \"deny-all\". Default value: \"deny-all\"\n"
          },
          "gwName": {
            "type": "string",
            "description": "Gateway name to attach firewall policy to.\n"
          },
          "manageFirewallPolicies": {
            "type": "boolean",
            "description": "Enable to manage firewall policies via in-line rules. If false, policies must be managed using `aviatrix.AviatrixFirewallPolicy` resources. Default: true. Valid values: true, false. Available in provider version R2.17+.\n"
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixFirewallPolicy:AviatrixFirewallPolicy"
            },
            "description": "New access policy for the gateway. Seven fields are required for each policy item: `src_ip`, `dst_ip`, `protocol`, `port`, `action`, `log_enabled` and `description`. No duplicate rules (with same `src_ip`, `dst_ip`, `protocol` and `port`) are allowed.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFirewallInstance:AviatrixFirewallInstance": {
      "description": "The **aviatrix_firewall_instance** resource allows the creation and management of Aviatrix Firewall Instances.\n\nThis resource is used in [Aviatrix FireNet](https://docs.aviatrix.com/HowTos/firewall_network_faq.html) and [Aviatrix Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_faq.html) solutions, in conjunction with other resources that may include, and are not limited to: **firenet**, **firewall_instance_association**, **aws_tgw** and **transit_gateway** resources.\n\n\n## Import\n\n**firewall_instance** can be imported using the `instance_id`. For Azure or AzureGov FireNet instances, the value will be the `firewall_name` concatenated with a \":\" and the Resource Group of the `vpc_id` set for that instance. e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirewallInstance:AviatrixFirewallInstance test instance_id\n```\n\n ",
      "properties": {
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "bootstrapBucketName": {
          "type": "string",
          "description": "Only available for AWS and GCP. For GCP, only Palo Alto Networks VM-Series deployment can use this attribute. In advanced mode, specify a bootstrap bucket name where the initial configuration and policy file is stored.\n"
        },
        "bootstrapStorageName": {
          "type": "string",
          "description": "Advanced option. Bootstrap storage name. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series/Fortinet Series deployment only. Available as of provider version R2.17.1+.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Cloud Type.\n"
        },
        "containerFolder": {
          "type": "string",
          "description": "Advanced option. Container folder. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n"
        },
        "egressInterface": {
          "type": "string",
          "description": "ID of Egress Interface created.\n"
        },
        "egressSubnet": {
          "type": "string",
          "description": "Egress Interface Subnet. Select the subnet whose name contains “FW-ingress-egress”. For GCP, `egress_subnet` must be in the form `cidr~~region~~name`.\n"
        },
        "egressVpcId": {
          "type": "string",
          "description": "Egress VPC ID. Required for GCP. Available as of provider version R2.18.1+.\n"
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "fileShareFolder": {
          "type": "string",
          "description": "Advanced option. File share folder. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n"
        },
        "firenetGwName": {
          "type": "string",
          "description": "Name of the primary FireNet gateway. **Required for all FireNet deployments that do not utilize the TGW-Integrated FireNet with AWS Native GWLB VPC.**\n"
        },
        "firewallImage": {
          "type": "string",
          "description": "One of the AWS/Azure/GCP AMIs from various vendors such as Palo Alto Networks.\n"
        },
        "firewallImageId": {
          "type": "string",
          "description": "Firewall image ID. Applicable to AWS and Azure only. For AWS, please use AMI ID. For Azure, the format is “Publisher:Offer:Plan:Version”. Available as of provider version R2.19+.\n"
        },
        "firewallImageVersion": {
          "type": "string",
          "description": "Version of firewall image. If not specified, Controller will automatically select the latest version available.\n"
        },
        "firewallName": {
          "type": "string",
          "description": "Name of the firewall instance to be created.\n"
        },
        "firewallSize": {
          "type": "string",
          "description": "Instance size of the firewall. Example: \"m5.xlarge\".\n"
        },
        "gcpVpcId": {
          "type": "string",
          "description": "GCP Only. The current VPC ID.\n"
        },
        "iamRole": {
          "type": "string",
          "description": "Only available for AWS. In advanced mode, create an IAM Role on the AWS account that launched the FireNet gateway. Create a policy to attach to the role. The policy is to allow access to \"Bootstrap Bucket\".\n"
        },
        "instanceId": {
          "type": "string",
          "description": "ID of the firewall instance created.\n"
        },
        "keyName": {
          "type": "string",
          "description": "Applicable to AWS deployment only. AWS Key Pair name. If not provided a Key Pair will be generated.\n",
          "secret": true
        },
        "lanInterface": {
          "type": "string",
          "description": "ID of Lan Interface created.\n"
        },
        "managementInterface": {
          "type": "string",
          "description": "ID of Management Interface created.\n"
        },
        "managementSubnet": {
          "type": "string",
          "description": "Management Interface Subnet. Select the subnet whose name contains “gateway and firewall management”. For GCP, `management_subnet` must be in the form `cidr~~region~~name`. Required for Palo Alto Networks VM-Series and OCI Check Point firewalls. Otherwise, it must be empty.\n"
        },
        "managementVpcId": {
          "type": "string",
          "description": "Management VPC ID. Only used for GCP firewall. Required for Palo Alto Networks VM-Series, and required to be empty for Check Point or Fortinet series. Available as of provider version R2.18.1+.\n"
        },
        "password": {
          "type": "string",
          "description": "Applicable to Azure or AzureGov deployment only.\n",
          "secret": true
        },
        "publicIp": {
          "type": "string",
          "description": "Management Public IP.\n"
        },
        "sasUrlConfig": {
          "type": "string",
          "description": "Advanced option. SAS URL Config. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n"
        },
        "sasUrlLicense": {
          "type": "string",
          "description": "Advanced option. SAS URL License. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n"
        },
        "shareDirectory": {
          "type": "string",
          "description": "Advanced option. Share directory. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n"
        },
        "sicKey": {
          "type": "string",
          "description": "Advanced option. Sic key. Applicable to Check Point Series deployment only.\n",
          "secret": true
        },
        "sshPublicKey": {
          "type": "string",
          "description": "Applicable to Azure or AzureGov deployment only.\n",
          "secret": true
        },
        "storageAccessKey": {
          "type": "string",
          "description": "Advanced option. Storage access key. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n",
          "secret": true
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Mapping of key value pairs of tags for a firewall instance. Only available for AWS, AWSGov, GCP and Azure firewall instances. For AWS, AWSGov and Azure allowed characters are: letters, spaces, and numbers plus the following special characters: + - = . _ : @. For GCP allowed characters are: lowercase letters, numbers, \"-\" and \"_\". Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
        },
        "userData": {
          "type": "string",
          "description": "Advanced option. User Data. Applicable to Check Point Series and Fortinet Series deployment only. Type: String.\n"
        },
        "username": {
          "type": "string",
          "description": "Applicable to Azure or AzureGov deployment only. \"admin\" as a username is not accepted.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Security VPC. For GCP, `vpc_id` must be in the form vpc_id~-~gcloud_project_id.\n"
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Required if creating a Firewall Instance with a Native AWS GWLB-enabled VPC. Applicable to AWS, Azure, and GCP only. Available as of provider version R2.17+.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityDomain",
        "cloudType",
        "egressInterface",
        "egressSubnet",
        "faultDomain",
        "firewallImage",
        "firewallImageId",
        "firewallImageVersion",
        "firewallName",
        "firewallSize",
        "gcpVpcId",
        "instanceId",
        "lanInterface",
        "managementInterface",
        "publicIp",
        "vpcId",
        "zone"
      ],
      "inputProperties": {
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "bootstrapBucketName": {
          "type": "string",
          "description": "Only available for AWS and GCP. For GCP, only Palo Alto Networks VM-Series deployment can use this attribute. In advanced mode, specify a bootstrap bucket name where the initial configuration and policy file is stored.\n",
          "willReplaceOnChanges": true
        },
        "bootstrapStorageName": {
          "type": "string",
          "description": "Advanced option. Bootstrap storage name. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series/Fortinet Series deployment only. Available as of provider version R2.17.1+.\n",
          "willReplaceOnChanges": true
        },
        "containerFolder": {
          "type": "string",
          "description": "Advanced option. Container folder. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n",
          "willReplaceOnChanges": true
        },
        "egressSubnet": {
          "type": "string",
          "description": "Egress Interface Subnet. Select the subnet whose name contains “FW-ingress-egress”. For GCP, `egress_subnet` must be in the form `cidr~~region~~name`.\n",
          "willReplaceOnChanges": true
        },
        "egressVpcId": {
          "type": "string",
          "description": "Egress VPC ID. Required for GCP. Available as of provider version R2.18.1+.\n",
          "willReplaceOnChanges": true
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "fileShareFolder": {
          "type": "string",
          "description": "Advanced option. File share folder. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n",
          "willReplaceOnChanges": true
        },
        "firenetGwName": {
          "type": "string",
          "description": "Name of the primary FireNet gateway. **Required for all FireNet deployments that do not utilize the TGW-Integrated FireNet with AWS Native GWLB VPC.**\n",
          "willReplaceOnChanges": true
        },
        "firewallImage": {
          "type": "string",
          "description": "One of the AWS/Azure/GCP AMIs from various vendors such as Palo Alto Networks.\n",
          "willReplaceOnChanges": true
        },
        "firewallImageId": {
          "type": "string",
          "description": "Firewall image ID. Applicable to AWS and Azure only. For AWS, please use AMI ID. For Azure, the format is “Publisher:Offer:Plan:Version”. Available as of provider version R2.19+.\n"
        },
        "firewallImageVersion": {
          "type": "string",
          "description": "Version of firewall image. If not specified, Controller will automatically select the latest version available.\n",
          "willReplaceOnChanges": true
        },
        "firewallName": {
          "type": "string",
          "description": "Name of the firewall instance to be created.\n",
          "willReplaceOnChanges": true
        },
        "firewallSize": {
          "type": "string",
          "description": "Instance size of the firewall. Example: \"m5.xlarge\".\n",
          "willReplaceOnChanges": true
        },
        "iamRole": {
          "type": "string",
          "description": "Only available for AWS. In advanced mode, create an IAM Role on the AWS account that launched the FireNet gateway. Create a policy to attach to the role. The policy is to allow access to \"Bootstrap Bucket\".\n",
          "willReplaceOnChanges": true
        },
        "keyName": {
          "type": "string",
          "description": "Applicable to AWS deployment only. AWS Key Pair name. If not provided a Key Pair will be generated.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "managementSubnet": {
          "type": "string",
          "description": "Management Interface Subnet. Select the subnet whose name contains “gateway and firewall management”. For GCP, `management_subnet` must be in the form `cidr~~region~~name`. Required for Palo Alto Networks VM-Series and OCI Check Point firewalls. Otherwise, it must be empty.\n",
          "willReplaceOnChanges": true
        },
        "managementVpcId": {
          "type": "string",
          "description": "Management VPC ID. Only used for GCP firewall. Required for Palo Alto Networks VM-Series, and required to be empty for Check Point or Fortinet series. Available as of provider version R2.18.1+.\n",
          "willReplaceOnChanges": true
        },
        "password": {
          "type": "string",
          "description": "Applicable to Azure or AzureGov deployment only.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "sasUrlConfig": {
          "type": "string",
          "description": "Advanced option. SAS URL Config. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n",
          "willReplaceOnChanges": true
        },
        "sasUrlLicense": {
          "type": "string",
          "description": "Advanced option. SAS URL License. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n",
          "willReplaceOnChanges": true
        },
        "shareDirectory": {
          "type": "string",
          "description": "Advanced option. Share directory. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n",
          "willReplaceOnChanges": true
        },
        "sicKey": {
          "type": "string",
          "description": "Advanced option. Sic key. Applicable to Check Point Series deployment only.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "sshPublicKey": {
          "type": "string",
          "description": "Applicable to Azure or AzureGov deployment only.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "storageAccessKey": {
          "type": "string",
          "description": "Advanced option. Storage access key. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Mapping of key value pairs of tags for a firewall instance. Only available for AWS, AWSGov, GCP and Azure firewall instances. For AWS, AWSGov and Azure allowed characters are: letters, spaces, and numbers plus the following special characters: + - = . _ : @. For GCP allowed characters are: lowercase letters, numbers, \"-\" and \"_\". Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n",
          "willReplaceOnChanges": true
        },
        "userData": {
          "type": "string",
          "description": "Advanced option. User Data. Applicable to Check Point Series and Fortinet Series deployment only. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "username": {
          "type": "string",
          "description": "Applicable to Azure or AzureGov deployment only. \"admin\" as a username is not accepted.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Security VPC. For GCP, `vpc_id` must be in the form vpc_id~-~gcloud_project_id.\n",
          "willReplaceOnChanges": true
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Required if creating a Firewall Instance with a Native AWS GWLB-enabled VPC. Applicable to AWS, Azure, and GCP only. Available as of provider version R2.17+.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "egressSubnet",
        "firewallImage",
        "firewallName",
        "firewallSize",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFirewallInstance resources.\n",
        "properties": {
          "availabilityDomain": {
            "type": "string",
            "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "bootstrapBucketName": {
            "type": "string",
            "description": "Only available for AWS and GCP. For GCP, only Palo Alto Networks VM-Series deployment can use this attribute. In advanced mode, specify a bootstrap bucket name where the initial configuration and policy file is stored.\n",
            "willReplaceOnChanges": true
          },
          "bootstrapStorageName": {
            "type": "string",
            "description": "Advanced option. Bootstrap storage name. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series/Fortinet Series deployment only. Available as of provider version R2.17.1+.\n",
            "willReplaceOnChanges": true
          },
          "cloudType": {
            "type": "integer",
            "description": "Cloud Type.\n"
          },
          "containerFolder": {
            "type": "string",
            "description": "Advanced option. Container folder. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n",
            "willReplaceOnChanges": true
          },
          "egressInterface": {
            "type": "string",
            "description": "ID of Egress Interface created.\n"
          },
          "egressSubnet": {
            "type": "string",
            "description": "Egress Interface Subnet. Select the subnet whose name contains “FW-ingress-egress”. For GCP, `egress_subnet` must be in the form `cidr~~region~~name`.\n",
            "willReplaceOnChanges": true
          },
          "egressVpcId": {
            "type": "string",
            "description": "Egress VPC ID. Required for GCP. Available as of provider version R2.18.1+.\n",
            "willReplaceOnChanges": true
          },
          "faultDomain": {
            "type": "string",
            "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "fileShareFolder": {
            "type": "string",
            "description": "Advanced option. File share folder. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n",
            "willReplaceOnChanges": true
          },
          "firenetGwName": {
            "type": "string",
            "description": "Name of the primary FireNet gateway. **Required for all FireNet deployments that do not utilize the TGW-Integrated FireNet with AWS Native GWLB VPC.**\n",
            "willReplaceOnChanges": true
          },
          "firewallImage": {
            "type": "string",
            "description": "One of the AWS/Azure/GCP AMIs from various vendors such as Palo Alto Networks.\n",
            "willReplaceOnChanges": true
          },
          "firewallImageId": {
            "type": "string",
            "description": "Firewall image ID. Applicable to AWS and Azure only. For AWS, please use AMI ID. For Azure, the format is “Publisher:Offer:Plan:Version”. Available as of provider version R2.19+.\n"
          },
          "firewallImageVersion": {
            "type": "string",
            "description": "Version of firewall image. If not specified, Controller will automatically select the latest version available.\n",
            "willReplaceOnChanges": true
          },
          "firewallName": {
            "type": "string",
            "description": "Name of the firewall instance to be created.\n",
            "willReplaceOnChanges": true
          },
          "firewallSize": {
            "type": "string",
            "description": "Instance size of the firewall. Example: \"m5.xlarge\".\n",
            "willReplaceOnChanges": true
          },
          "gcpVpcId": {
            "type": "string",
            "description": "GCP Only. The current VPC ID.\n"
          },
          "iamRole": {
            "type": "string",
            "description": "Only available for AWS. In advanced mode, create an IAM Role on the AWS account that launched the FireNet gateway. Create a policy to attach to the role. The policy is to allow access to \"Bootstrap Bucket\".\n",
            "willReplaceOnChanges": true
          },
          "instanceId": {
            "type": "string",
            "description": "ID of the firewall instance created.\n"
          },
          "keyName": {
            "type": "string",
            "description": "Applicable to AWS deployment only. AWS Key Pair name. If not provided a Key Pair will be generated.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "lanInterface": {
            "type": "string",
            "description": "ID of Lan Interface created.\n"
          },
          "managementInterface": {
            "type": "string",
            "description": "ID of Management Interface created.\n"
          },
          "managementSubnet": {
            "type": "string",
            "description": "Management Interface Subnet. Select the subnet whose name contains “gateway and firewall management”. For GCP, `management_subnet` must be in the form `cidr~~region~~name`. Required for Palo Alto Networks VM-Series and OCI Check Point firewalls. Otherwise, it must be empty.\n",
            "willReplaceOnChanges": true
          },
          "managementVpcId": {
            "type": "string",
            "description": "Management VPC ID. Only used for GCP firewall. Required for Palo Alto Networks VM-Series, and required to be empty for Check Point or Fortinet series. Available as of provider version R2.18.1+.\n",
            "willReplaceOnChanges": true
          },
          "password": {
            "type": "string",
            "description": "Applicable to Azure or AzureGov deployment only.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "publicIp": {
            "type": "string",
            "description": "Management Public IP.\n"
          },
          "sasUrlConfig": {
            "type": "string",
            "description": "Advanced option. SAS URL Config. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n",
            "willReplaceOnChanges": true
          },
          "sasUrlLicense": {
            "type": "string",
            "description": "Advanced option. SAS URL License. Applicable to Azure or AzureGov and Fortinet Series deployment only.\n",
            "willReplaceOnChanges": true
          },
          "shareDirectory": {
            "type": "string",
            "description": "Advanced option. Share directory. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n",
            "willReplaceOnChanges": true
          },
          "sicKey": {
            "type": "string",
            "description": "Advanced option. Sic key. Applicable to Check Point Series deployment only.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "sshPublicKey": {
            "type": "string",
            "description": "Applicable to Azure or AzureGov deployment only.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "storageAccessKey": {
            "type": "string",
            "description": "Advanced option. Storage access key. Applicable to Azure or AzureGov and Palo Alto Networks VM-Series deployment only. Available as of provider version R2.17.1+.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Mapping of key value pairs of tags for a firewall instance. Only available for AWS, AWSGov, GCP and Azure firewall instances. For AWS, AWSGov and Azure allowed characters are: letters, spaces, and numbers plus the following special characters: + - = . _ : @. For GCP allowed characters are: lowercase letters, numbers, \"-\" and \"_\". Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n",
            "willReplaceOnChanges": true
          },
          "userData": {
            "type": "string",
            "description": "Advanced option. User Data. Applicable to Check Point Series and Fortinet Series deployment only. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "username": {
            "type": "string",
            "description": "Applicable to Azure or AzureGov deployment only. \"admin\" as a username is not accepted.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the Security VPC. For GCP, `vpc_id` must be in the form vpc_id~-~gcloud_project_id.\n",
            "willReplaceOnChanges": true
          },
          "zone": {
            "type": "string",
            "description": "Availability Zone. Required if creating a Firewall Instance with a Native AWS GWLB-enabled VPC. Applicable to AWS, Azure, and GCP only. Available as of provider version R2.17+.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFirewallInstanceAssociation:AviatrixFirewallInstanceAssociation": {
      "description": "The **aviatrix_firewall_instance_association** resource allows for the creation and management of a firewall instance association. To use this resource you must also have an `aviatrix.AviatrixFirenet` resource with it's `manage_firewall_instance_association` attribute set to false.\n\nAvailable in provider version R2.17.1+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Associate an Aviatrix FireNet Gateway with a Firewall Instance\nconst firewallInstanceAssociation1 = new aviatrix.AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\", {\n    vpcId: aviatrix_firewall_instance.firewall_instance_1.vpc_id,\n    firenetGwName: aviatrix_transit_gateway.transit_gateway_1.gw_name,\n    instanceId: aviatrix_firewall_instance.firewall_instance_1.instance_id,\n    firewallName: aviatrix_firewall_instance.firewall_instance_1.firewall_name,\n    lanInterface: aviatrix_firewall_instance.firewall_instance_1.lan_interface,\n    managementInterface: aviatrix_firewall_instance.firewall_instance_1.management_interface,\n    egressInterface: aviatrix_firewall_instance.firewall_instance_1.egress_interface,\n    attached: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Associate an Aviatrix FireNet Gateway with a Firewall Instance\nfirewall_instance_association1 = aviatrix.AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\",\n    vpc_id=aviatrix_firewall_instance[\"firewall_instance_1\"][\"vpc_id\"],\n    firenet_gw_name=aviatrix_transit_gateway[\"transit_gateway_1\"][\"gw_name\"],\n    instance_id=aviatrix_firewall_instance[\"firewall_instance_1\"][\"instance_id\"],\n    firewall_name=aviatrix_firewall_instance[\"firewall_instance_1\"][\"firewall_name\"],\n    lan_interface=aviatrix_firewall_instance[\"firewall_instance_1\"][\"lan_interface\"],\n    management_interface=aviatrix_firewall_instance[\"firewall_instance_1\"][\"management_interface\"],\n    egress_interface=aviatrix_firewall_instance[\"firewall_instance_1\"][\"egress_interface\"],\n    attached=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Associate an Aviatrix FireNet Gateway with a Firewall Instance\n    var firewallInstanceAssociation1 = new Aviatrix.AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\", new()\n    {\n        VpcId = aviatrix_firewall_instance.Firewall_instance_1.Vpc_id,\n        FirenetGwName = aviatrix_transit_gateway.Transit_gateway_1.Gw_name,\n        InstanceId = aviatrix_firewall_instance.Firewall_instance_1.Instance_id,\n        FirewallName = aviatrix_firewall_instance.Firewall_instance_1.Firewall_name,\n        LanInterface = aviatrix_firewall_instance.Firewall_instance_1.Lan_interface,\n        ManagementInterface = aviatrix_firewall_instance.Firewall_instance_1.Management_interface,\n        EgressInterface = aviatrix_firewall_instance.Firewall_instance_1.Egress_interface,\n        Attached = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewallInstanceAssociation(ctx, \"firewallInstanceAssociation1\", &aviatrix.AviatrixFirewallInstanceAssociationArgs{\n\t\t\tVpcId:               pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Vpc_id),\n\t\t\tFirenetGwName:       pulumi.Any(aviatrix_transit_gateway.Transit_gateway_1.Gw_name),\n\t\t\tInstanceId:          pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Instance_id),\n\t\t\tFirewallName:        pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Firewall_name),\n\t\t\tLanInterface:        pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Lan_interface),\n\t\t\tManagementInterface: pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Management_interface),\n\t\t\tEgressInterface:     pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Egress_interface),\n\t\t\tAttached:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixFirewallInstanceAssociation;\nimport com.pulumi.aviatrix.AviatrixFirewallInstanceAssociationArgs;\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 firewallInstanceAssociation1 = new AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\", AviatrixFirewallInstanceAssociationArgs.builder()        \n            .vpcId(aviatrix_firewall_instance.firewall_instance_1().vpc_id())\n            .firenetGwName(aviatrix_transit_gateway.transit_gateway_1().gw_name())\n            .instanceId(aviatrix_firewall_instance.firewall_instance_1().instance_id())\n            .firewallName(aviatrix_firewall_instance.firewall_instance_1().firewall_name())\n            .lanInterface(aviatrix_firewall_instance.firewall_instance_1().lan_interface())\n            .managementInterface(aviatrix_firewall_instance.firewall_instance_1().management_interface())\n            .egressInterface(aviatrix_firewall_instance.firewall_instance_1().egress_interface())\n            .attached(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Associate an Aviatrix FireNet Gateway with a Firewall Instance\n  firewallInstanceAssociation1:\n    type: aviatrix:AviatrixFirewallInstanceAssociation\n    properties:\n      vpcId: ${aviatrix_firewall_instance.firewall_instance_1.vpc_id}\n      firenetGwName: ${aviatrix_transit_gateway.transit_gateway_1.gw_name}\n      instanceId: ${aviatrix_firewall_instance.firewall_instance_1.instance_id}\n      firewallName: ${aviatrix_firewall_instance.firewall_instance_1.firewall_name}\n      lanInterface: ${aviatrix_firewall_instance.firewall_instance_1.lan_interface}\n      managementInterface: ${aviatrix_firewall_instance.firewall_instance_1.management_interface}\n      egressInterface: ${aviatrix_firewall_instance.firewall_instance_1.egress_interface}\n      attached: true\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Associate an GCP Aviatrix FireNet Gateway with a Firewall Instance\nconst firewallInstanceAssociation1 = new aviatrix.AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\", {\n    vpcId: aviatrix_firewall_instance.firewall_instance_1.vpc_id,\n    firenetGwName: aviatrix_transit_gateway.transit_gateway_1.gw_name,\n    instanceId: aviatrix_firewall_instance.firewall_instance_1.instance_id,\n    lanInterface: aviatrix_firewall_instance.firewall_instance_1.lan_interface,\n    managementInterface: aviatrix_firewall_instance.firewall_instance_1.management_interface,\n    egressInterface: aviatrix_firewall_instance.firewall_instance_1.egress_interface,\n    attached: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Associate an GCP Aviatrix FireNet Gateway with a Firewall Instance\nfirewall_instance_association1 = aviatrix.AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\",\n    vpc_id=aviatrix_firewall_instance[\"firewall_instance_1\"][\"vpc_id\"],\n    firenet_gw_name=aviatrix_transit_gateway[\"transit_gateway_1\"][\"gw_name\"],\n    instance_id=aviatrix_firewall_instance[\"firewall_instance_1\"][\"instance_id\"],\n    lan_interface=aviatrix_firewall_instance[\"firewall_instance_1\"][\"lan_interface\"],\n    management_interface=aviatrix_firewall_instance[\"firewall_instance_1\"][\"management_interface\"],\n    egress_interface=aviatrix_firewall_instance[\"firewall_instance_1\"][\"egress_interface\"],\n    attached=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Associate an GCP Aviatrix FireNet Gateway with a Firewall Instance\n    var firewallInstanceAssociation1 = new Aviatrix.AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\", new()\n    {\n        VpcId = aviatrix_firewall_instance.Firewall_instance_1.Vpc_id,\n        FirenetGwName = aviatrix_transit_gateway.Transit_gateway_1.Gw_name,\n        InstanceId = aviatrix_firewall_instance.Firewall_instance_1.Instance_id,\n        LanInterface = aviatrix_firewall_instance.Firewall_instance_1.Lan_interface,\n        ManagementInterface = aviatrix_firewall_instance.Firewall_instance_1.Management_interface,\n        EgressInterface = aviatrix_firewall_instance.Firewall_instance_1.Egress_interface,\n        Attached = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewallInstanceAssociation(ctx, \"firewallInstanceAssociation1\", &aviatrix.AviatrixFirewallInstanceAssociationArgs{\n\t\t\tVpcId:               pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Vpc_id),\n\t\t\tFirenetGwName:       pulumi.Any(aviatrix_transit_gateway.Transit_gateway_1.Gw_name),\n\t\t\tInstanceId:          pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Instance_id),\n\t\t\tLanInterface:        pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Lan_interface),\n\t\t\tManagementInterface: pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Management_interface),\n\t\t\tEgressInterface:     pulumi.Any(aviatrix_firewall_instance.Firewall_instance_1.Egress_interface),\n\t\t\tAttached:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixFirewallInstanceAssociation;\nimport com.pulumi.aviatrix.AviatrixFirewallInstanceAssociationArgs;\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 firewallInstanceAssociation1 = new AviatrixFirewallInstanceAssociation(\"firewallInstanceAssociation1\", AviatrixFirewallInstanceAssociationArgs.builder()        \n            .vpcId(aviatrix_firewall_instance.firewall_instance_1().vpc_id())\n            .firenetGwName(aviatrix_transit_gateway.transit_gateway_1().gw_name())\n            .instanceId(aviatrix_firewall_instance.firewall_instance_1().instance_id())\n            .lanInterface(aviatrix_firewall_instance.firewall_instance_1().lan_interface())\n            .managementInterface(aviatrix_firewall_instance.firewall_instance_1().management_interface())\n            .egressInterface(aviatrix_firewall_instance.firewall_instance_1().egress_interface())\n            .attached(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Associate an GCP Aviatrix FireNet Gateway with a Firewall Instance\n  firewallInstanceAssociation1:\n    type: aviatrix:AviatrixFirewallInstanceAssociation\n    properties:\n      vpcId: ${aviatrix_firewall_instance.firewall_instance_1.vpc_id}\n      firenetGwName: ${aviatrix_transit_gateway.transit_gateway_1.gw_name}\n      instanceId: ${aviatrix_firewall_instance.firewall_instance_1.instance_id}\n      lanInterface: ${aviatrix_firewall_instance.firewall_instance_1.lan_interface}\n      managementInterface: ${aviatrix_firewall_instance.firewall_instance_1.management_interface}\n      egressInterface: ${aviatrix_firewall_instance.firewall_instance_1.egress_interface}\n      attached: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**firewall_instance_association** can be imported using the `vpc_id`, `firenet_gw_name` and `instance_id` in the form `vpc_id~~firenet_gw_name~~instance_id` e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirewallInstanceAssociation:AviatrixFirewallInstanceAssociation test vpc_id~~firenet_gw_name~~instance_id\n```\n\n When using a Native GWLB VPC where there is no `firenet_gw_name` but the ID is in the same form e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirewallInstanceAssociation:AviatrixFirewallInstanceAssociation test vpc_id~~~~instance_id\n```\n\n ",
      "properties": {
        "attached": {
          "type": "boolean",
          "description": "Switch to attach/detach firewall instance to/from FireNet. Valid values: true, false. Default value: false.\n"
        },
        "egressInterface": {
          "type": "string",
          "description": "Egress interface ID. **Required if it is a firewall instance.**\n"
        },
        "firenetGwName": {
          "type": "string",
          "description": "Name of the primary FireNet gateway. Required for FireNet without Native GWLB VPC.\n"
        },
        "firewallName": {
          "type": "string",
          "description": "Firewall instance name. **Required for non-GCP firewall instance. For GCP, this field should not be set.**\n"
        },
        "instanceId": {
          "type": "string",
          "description": "ID of Firewall instance.\n"
        },
        "lanInterface": {
          "type": "string",
          "description": "Lan interface ID. **Required if it is a firewall instance.**\n"
        },
        "managementInterface": {
          "type": "string",
          "description": "Management interface ID. **Required if it is a firewall instance.**\n"
        },
        "vendorType": {
          "type": "string",
          "description": "Type of firewall. Valid values: \"Generic\", \"fqdn_gateway\". Default value: \"Generic\". Value \"fqdn_gateway\" is required for FQDN gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Security VPC.\n"
        }
      },
      "type": "object",
      "required": [
        "instanceId",
        "vpcId"
      ],
      "inputProperties": {
        "attached": {
          "type": "boolean",
          "description": "Switch to attach/detach firewall instance to/from FireNet. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "egressInterface": {
          "type": "string",
          "description": "Egress interface ID. **Required if it is a firewall instance.**\n",
          "willReplaceOnChanges": true
        },
        "firenetGwName": {
          "type": "string",
          "description": "Name of the primary FireNet gateway. Required for FireNet without Native GWLB VPC.\n",
          "willReplaceOnChanges": true
        },
        "firewallName": {
          "type": "string",
          "description": "Firewall instance name. **Required for non-GCP firewall instance. For GCP, this field should not be set.**\n",
          "willReplaceOnChanges": true
        },
        "instanceId": {
          "type": "string",
          "description": "ID of Firewall instance.\n",
          "willReplaceOnChanges": true
        },
        "lanInterface": {
          "type": "string",
          "description": "Lan interface ID. **Required if it is a firewall instance.**\n",
          "willReplaceOnChanges": true
        },
        "managementInterface": {
          "type": "string",
          "description": "Management interface ID. **Required if it is a firewall instance.**\n",
          "willReplaceOnChanges": true
        },
        "vendorType": {
          "type": "string",
          "description": "Type of firewall. Valid values: \"Generic\", \"fqdn_gateway\". Default value: \"Generic\". Value \"fqdn_gateway\" is required for FQDN gateway.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Security VPC.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "instanceId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFirewallInstanceAssociation resources.\n",
        "properties": {
          "attached": {
            "type": "boolean",
            "description": "Switch to attach/detach firewall instance to/from FireNet. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "egressInterface": {
            "type": "string",
            "description": "Egress interface ID. **Required if it is a firewall instance.**\n",
            "willReplaceOnChanges": true
          },
          "firenetGwName": {
            "type": "string",
            "description": "Name of the primary FireNet gateway. Required for FireNet without Native GWLB VPC.\n",
            "willReplaceOnChanges": true
          },
          "firewallName": {
            "type": "string",
            "description": "Firewall instance name. **Required for non-GCP firewall instance. For GCP, this field should not be set.**\n",
            "willReplaceOnChanges": true
          },
          "instanceId": {
            "type": "string",
            "description": "ID of Firewall instance.\n",
            "willReplaceOnChanges": true
          },
          "lanInterface": {
            "type": "string",
            "description": "Lan interface ID. **Required if it is a firewall instance.**\n",
            "willReplaceOnChanges": true
          },
          "managementInterface": {
            "type": "string",
            "description": "Management interface ID. **Required if it is a firewall instance.**\n",
            "willReplaceOnChanges": true
          },
          "vendorType": {
            "type": "string",
            "description": "Type of firewall. Valid values: \"Generic\", \"fqdn_gateway\". Default value: \"Generic\". Value \"fqdn_gateway\" is required for FQDN gateway.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the Security VPC.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFirewallManagementAccess:AviatrixFirewallManagementAccess": {
      "description": "The **aviatrix_firewall_management_access** resource allows the management of which resource to permit visibility into the Transit (FireNet) VPC.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Firewall Management Access\nconst testFirewallManagementAccess = new aviatrix.AviatrixFirewallManagementAccess(\"test_firewall_management_access\", {\n    managementAccessResourceName: \"SPOKE:spoke-gw\",\n    transitFirenetGatewayName: \"transit-gw\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Firewall Management Access\ntest_firewall_management_access = aviatrix.AviatrixFirewallManagementAccess(\"testFirewallManagementAccess\",\n    management_access_resource_name=\"SPOKE:spoke-gw\",\n    transit_firenet_gateway_name=\"transit-gw\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Firewall Management Access\n    var testFirewallManagementAccess = new Aviatrix.AviatrixFirewallManagementAccess(\"testFirewallManagementAccess\", new()\n    {\n        ManagementAccessResourceName = \"SPOKE:spoke-gw\",\n        TransitFirenetGatewayName = \"transit-gw\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewallManagementAccess(ctx, \"testFirewallManagementAccess\", &aviatrix.AviatrixFirewallManagementAccessArgs{\n\t\t\tManagementAccessResourceName: pulumi.String(\"SPOKE:spoke-gw\"),\n\t\t\tTransitFirenetGatewayName:    pulumi.String(\"transit-gw\"),\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.aviatrix.AviatrixFirewallManagementAccess;\nimport com.pulumi.aviatrix.AviatrixFirewallManagementAccessArgs;\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 testFirewallManagementAccess = new AviatrixFirewallManagementAccess(\"testFirewallManagementAccess\", AviatrixFirewallManagementAccessArgs.builder()        \n            .managementAccessResourceName(\"SPOKE:spoke-gw\")\n            .transitFirenetGatewayName(\"transit-gw\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Firewall Management Access\n  testFirewallManagementAccess:\n    type: aviatrix:AviatrixFirewallManagementAccess\n    properties:\n      managementAccessResourceName: SPOKE:spoke-gw\n      transitFirenetGatewayName: transit-gw\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**firewall_management_access** can be imported using the `transit_firenet_gateway_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirewallManagementAccess:AviatrixFirewallManagementAccess test transit_firenet_gateway_name\n```\n\n ",
      "properties": {
        "managementAccessResourceName": {
          "type": "string",
          "description": "Name of the resource to enable Firewall Management Access.\n"
        },
        "transitFirenetGatewayName": {
          "type": "string",
          "description": "Name of the Transit FireNet-enabled transit gateway. Currently supports AWS(1) and Azure(8) providers.\n"
        }
      },
      "type": "object",
      "required": [
        "managementAccessResourceName",
        "transitFirenetGatewayName"
      ],
      "inputProperties": {
        "managementAccessResourceName": {
          "type": "string",
          "description": "Name of the resource to enable Firewall Management Access.\n",
          "willReplaceOnChanges": true
        },
        "transitFirenetGatewayName": {
          "type": "string",
          "description": "Name of the Transit FireNet-enabled transit gateway. Currently supports AWS(1) and Azure(8) providers.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "managementAccessResourceName",
        "transitFirenetGatewayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFirewallManagementAccess resources.\n",
        "properties": {
          "managementAccessResourceName": {
            "type": "string",
            "description": "Name of the resource to enable Firewall Management Access.\n",
            "willReplaceOnChanges": true
          },
          "transitFirenetGatewayName": {
            "type": "string",
            "description": "Name of the Transit FireNet-enabled transit gateway. Currently supports AWS(1) and Azure(8) providers.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFirewallPolicy:AviatrixFirewallPolicy": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix Stateful Firewall Policy\nconst testFirewallPolicy = new aviatrix.AviatrixFirewallPolicy(\"testFirewallPolicy\", {\n    gwName: aviatrix_firewall.test_firewall.gw_name,\n    srcIp: \"10.15.0.224/32\",\n    dstIp: \"10.12.0.172/32\",\n    protocol: \"tcp\",\n    port: \"0:65535\",\n    action: \"allow\",\n    logEnabled: true,\n    description: \"Test policy.\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Stateful Firewall Policy\ntest_firewall_policy = aviatrix.AviatrixFirewallPolicy(\"testFirewallPolicy\",\n    gw_name=aviatrix_firewall[\"test_firewall\"][\"gw_name\"],\n    src_ip=\"10.15.0.224/32\",\n    dst_ip=\"10.12.0.172/32\",\n    protocol=\"tcp\",\n    port=\"0:65535\",\n    action=\"allow\",\n    log_enabled=True,\n    description=\"Test policy.\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Stateful Firewall Policy\n    var testFirewallPolicy = new Aviatrix.AviatrixFirewallPolicy(\"testFirewallPolicy\", new()\n    {\n        GwName = aviatrix_firewall.Test_firewall.Gw_name,\n        SrcIp = \"10.15.0.224/32\",\n        DstIp = \"10.12.0.172/32\",\n        Protocol = \"tcp\",\n        Port = \"0:65535\",\n        Action = \"allow\",\n        LogEnabled = true,\n        Description = \"Test policy.\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewallPolicy(ctx, \"testFirewallPolicy\", &aviatrix.AviatrixFirewallPolicyArgs{\n\t\t\tGwName:      pulumi.Any(aviatrix_firewall.Test_firewall.Gw_name),\n\t\t\tSrcIp:       pulumi.String(\"10.15.0.224/32\"),\n\t\t\tDstIp:       pulumi.String(\"10.12.0.172/32\"),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t\tPort:        pulumi.String(\"0:65535\"),\n\t\t\tAction:      pulumi.String(\"allow\"),\n\t\t\tLogEnabled:  pulumi.Bool(true),\n\t\t\tDescription: pulumi.String(\"Test policy.\"),\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.aviatrix.AviatrixFirewallPolicy;\nimport com.pulumi.aviatrix.AviatrixFirewallPolicyArgs;\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 testFirewallPolicy = new AviatrixFirewallPolicy(\"testFirewallPolicy\", AviatrixFirewallPolicyArgs.builder()        \n            .gwName(aviatrix_firewall.test_firewall().gw_name())\n            .srcIp(\"10.15.0.224/32\")\n            .dstIp(\"10.12.0.172/32\")\n            .protocol(\"tcp\")\n            .port(\"0:65535\")\n            .action(\"allow\")\n            .logEnabled(true)\n            .description(\"Test policy.\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Stateful Firewall Policy\n  testFirewallPolicy:\n    type: aviatrix:AviatrixFirewallPolicy\n    properties:\n      gwName: ${aviatrix_firewall.test_firewall.gw_name}\n      srcIp: 10.15.0.224/32\n      dstIp: 10.12.0.172/32\n      protocol: tcp\n      port: 0:65535\n      action: allow\n      logEnabled: true\n      description: Test policy.\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix Stateful Firewall Policy and insert it to a specific position\nconst testFirewallPolicy = new aviatrix.AviatrixFirewallPolicy(\"testFirewallPolicy\", {\n    gwName: aviatrix_firewall.test_firewall.gw_name,\n    srcIp: \"10.15.0.225/32\",\n    dstIp: \"10.12.0.173/32\",\n    protocol: \"tcp\",\n    port: \"0:65535\",\n    action: \"allow\",\n    logEnabled: true,\n    description: \"Test policy.\",\n    position: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Stateful Firewall Policy and insert it to a specific position\ntest_firewall_policy = aviatrix.AviatrixFirewallPolicy(\"testFirewallPolicy\",\n    gw_name=aviatrix_firewall[\"test_firewall\"][\"gw_name\"],\n    src_ip=\"10.15.0.225/32\",\n    dst_ip=\"10.12.0.173/32\",\n    protocol=\"tcp\",\n    port=\"0:65535\",\n    action=\"allow\",\n    log_enabled=True,\n    description=\"Test policy.\",\n    position=2)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Stateful Firewall Policy and insert it to a specific position\n    var testFirewallPolicy = new Aviatrix.AviatrixFirewallPolicy(\"testFirewallPolicy\", new()\n    {\n        GwName = aviatrix_firewall.Test_firewall.Gw_name,\n        SrcIp = \"10.15.0.225/32\",\n        DstIp = \"10.12.0.173/32\",\n        Protocol = \"tcp\",\n        Port = \"0:65535\",\n        Action = \"allow\",\n        LogEnabled = true,\n        Description = \"Test policy.\",\n        Position = 2,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewallPolicy(ctx, \"testFirewallPolicy\", &aviatrix.AviatrixFirewallPolicyArgs{\n\t\t\tGwName:      pulumi.Any(aviatrix_firewall.Test_firewall.Gw_name),\n\t\t\tSrcIp:       pulumi.String(\"10.15.0.225/32\"),\n\t\t\tDstIp:       pulumi.String(\"10.12.0.173/32\"),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t\tPort:        pulumi.String(\"0:65535\"),\n\t\t\tAction:      pulumi.String(\"allow\"),\n\t\t\tLogEnabled:  pulumi.Bool(true),\n\t\t\tDescription: pulumi.String(\"Test policy.\"),\n\t\t\tPosition:    pulumi.Int(2),\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.aviatrix.AviatrixFirewallPolicy;\nimport com.pulumi.aviatrix.AviatrixFirewallPolicyArgs;\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 testFirewallPolicy = new AviatrixFirewallPolicy(\"testFirewallPolicy\", AviatrixFirewallPolicyArgs.builder()        \n            .gwName(aviatrix_firewall.test_firewall().gw_name())\n            .srcIp(\"10.15.0.225/32\")\n            .dstIp(\"10.12.0.173/32\")\n            .protocol(\"tcp\")\n            .port(\"0:65535\")\n            .action(\"allow\")\n            .logEnabled(true)\n            .description(\"Test policy.\")\n            .position(2)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Stateful Firewall Policy and insert it to a specific position\n  testFirewallPolicy:\n    type: aviatrix:AviatrixFirewallPolicy\n    properties:\n      gwName: ${aviatrix_firewall.test_firewall.gw_name}\n      srcIp: 10.15.0.225/32\n      dstIp: 10.12.0.173/32\n      protocol: tcp\n      port: 0:65535\n      action: allow\n      logEnabled: true\n      description: Test policy.\n      position: 2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**firewall_policy** can be imported using the `gw_name`, `src_ip`, `dst_ip`, `protocol`, `port` and `action` separated by `~`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirewallPolicy:AviatrixFirewallPolicy test \"gw_name~src_ip~dst_ip~protocol~port~action\"\n```\n\n ",
      "properties": {
        "action": {
          "type": "string",
          "description": "Valid values: \"allow\", \"deny\" and \"force-drop\" (in stateful firewall rule to allow immediate packet dropping on established sessions).\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the policy. Example: \"This is policy no.1\".\n"
        },
        "dstIp": {
          "type": "string",
          "description": "CIDRs separated by comma or tag names such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16,10.45.0.0/20\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Gateway name to attach firewall policy to.\n"
        },
        "logEnabled": {
          "type": "boolean",
          "description": "Valid values: true, false. Default value: false.\n"
        },
        "port": {
          "type": "string",
          "description": "A single port or a range of port numbers. Example: \"25\", \"25:1024\".\n"
        },
        "position": {
          "type": "integer",
          "description": "Position in the policy list, where the firewall policy will be inserted to. Valid values: any positive integer. Example: 2. If it is larger than the size of policy list, the policy will be inserted to the end.\n"
        },
        "protocol": {
          "type": "string",
          "description": ": \"all\", \"tcp\", \"udp\", \"icmp\", \"sctp\", \"rdp\", \"dccp\".\n"
        },
        "srcIp": {
          "type": "string",
          "description": "CIDRs separated by comma or tag names such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16,10.45.0.0/20\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n"
        }
      },
      "type": "object",
      "required": [
        "action",
        "dstIp",
        "gwName",
        "port",
        "position",
        "srcIp"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "Valid values: \"allow\", \"deny\" and \"force-drop\" (in stateful firewall rule to allow immediate packet dropping on established sessions).\n",
          "willReplaceOnChanges": true
        },
        "description": {
          "type": "string",
          "description": "Description of the policy. Example: \"This is policy no.1\".\n",
          "willReplaceOnChanges": true
        },
        "dstIp": {
          "type": "string",
          "description": "CIDRs separated by comma or tag names such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16,10.45.0.0/20\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n",
          "willReplaceOnChanges": true
        },
        "gwName": {
          "type": "string",
          "description": "Gateway name to attach firewall policy to.\n",
          "willReplaceOnChanges": true
        },
        "logEnabled": {
          "type": "boolean",
          "description": "Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "port": {
          "type": "string",
          "description": "A single port or a range of port numbers. Example: \"25\", \"25:1024\".\n",
          "willReplaceOnChanges": true
        },
        "position": {
          "type": "integer",
          "description": "Position in the policy list, where the firewall policy will be inserted to. Valid values: any positive integer. Example: 2. If it is larger than the size of policy list, the policy will be inserted to the end.\n"
        },
        "protocol": {
          "type": "string",
          "description": ": \"all\", \"tcp\", \"udp\", \"icmp\", \"sctp\", \"rdp\", \"dccp\".\n",
          "willReplaceOnChanges": true
        },
        "srcIp": {
          "type": "string",
          "description": "CIDRs separated by comma or tag names such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16,10.45.0.0/20\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "action",
        "dstIp",
        "gwName",
        "port",
        "srcIp"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFirewallPolicy resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "Valid values: \"allow\", \"deny\" and \"force-drop\" (in stateful firewall rule to allow immediate packet dropping on established sessions).\n",
            "willReplaceOnChanges": true
          },
          "description": {
            "type": "string",
            "description": "Description of the policy. Example: \"This is policy no.1\".\n",
            "willReplaceOnChanges": true
          },
          "dstIp": {
            "type": "string",
            "description": "CIDRs separated by comma or tag names such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16,10.45.0.0/20\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n",
            "willReplaceOnChanges": true
          },
          "gwName": {
            "type": "string",
            "description": "Gateway name to attach firewall policy to.\n",
            "willReplaceOnChanges": true
          },
          "logEnabled": {
            "type": "boolean",
            "description": "Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "port": {
            "type": "string",
            "description": "A single port or a range of port numbers. Example: \"25\", \"25:1024\".\n",
            "willReplaceOnChanges": true
          },
          "position": {
            "type": "integer",
            "description": "Position in the policy list, where the firewall policy will be inserted to. Valid values: any positive integer. Example: 2. If it is larger than the size of policy list, the policy will be inserted to the end.\n"
          },
          "protocol": {
            "type": "string",
            "description": ": \"all\", \"tcp\", \"udp\", \"icmp\", \"sctp\", \"rdp\", \"dccp\".\n",
            "willReplaceOnChanges": true
          },
          "srcIp": {
            "type": "string",
            "description": "CIDRs separated by comma or tag names such \"HR\" or \"marketing\" etc. Example: \"10.30.0.0/16,10.45.0.0/20\". The **aviatrix_firewall_tag** resource should be created prior to using the tag name.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFirewallTag:AviatrixFirewallTag": {
      "description": "The **aviatrix_firewall_tag** resource allows the creation and management of [Aviatrix Stateful Firewall tags](https://docs.aviatrix.com/HowTos/tag_firewall.html) for tag-based security for gateways.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Firewall Tag\nconst testFirewallTag = new aviatrix.AviatrixFirewallTag(\"test_firewall_tag\", {\n    cidrLists: [\n        {\n            cidr: \"10.1.0.0/24\",\n            cidrTagName: \"a1\",\n        },\n        {\n            cidr: \"10.2.0.0/24\",\n            cidrTagName: \"b1\",\n        },\n    ],\n    firewallTag: \"test-firewall-tag\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Firewall Tag\ntest_firewall_tag = aviatrix.AviatrixFirewallTag(\"testFirewallTag\",\n    cidr_lists=[\n        aviatrix.AviatrixFirewallTagCidrListArgs(\n            cidr=\"10.1.0.0/24\",\n            cidr_tag_name=\"a1\",\n        ),\n        aviatrix.AviatrixFirewallTagCidrListArgs(\n            cidr=\"10.2.0.0/24\",\n            cidr_tag_name=\"b1\",\n        ),\n    ],\n    firewall_tag=\"test-firewall-tag\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Firewall Tag\n    var testFirewallTag = new Aviatrix.AviatrixFirewallTag(\"testFirewallTag\", new()\n    {\n        CidrLists = new[]\n        {\n            new Aviatrix.Inputs.AviatrixFirewallTagCidrListArgs\n            {\n                Cidr = \"10.1.0.0/24\",\n                CidrTagName = \"a1\",\n            },\n            new Aviatrix.Inputs.AviatrixFirewallTagCidrListArgs\n            {\n                Cidr = \"10.2.0.0/24\",\n                CidrTagName = \"b1\",\n            },\n        },\n        FirewallTag = \"test-firewall-tag\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFirewallTag(ctx, \"testFirewallTag\", &aviatrix.AviatrixFirewallTagArgs{\n\t\t\tCidrLists: AviatrixFirewallTagCidrListArray{\n\t\t\t\t&AviatrixFirewallTagCidrListArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"10.1.0.0/24\"),\n\t\t\t\t\tCidrTagName: pulumi.String(\"a1\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixFirewallTagCidrListArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"10.2.0.0/24\"),\n\t\t\t\t\tCidrTagName: pulumi.String(\"b1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFirewallTag: pulumi.String(\"test-firewall-tag\"),\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.aviatrix.AviatrixFirewallTag;\nimport com.pulumi.aviatrix.AviatrixFirewallTagArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixFirewallTagCidrListArgs;\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 testFirewallTag = new AviatrixFirewallTag(\"testFirewallTag\", AviatrixFirewallTagArgs.builder()        \n            .cidrLists(            \n                AviatrixFirewallTagCidrListArgs.builder()\n                    .cidr(\"10.1.0.0/24\")\n                    .cidrTagName(\"a1\")\n                    .build(),\n                AviatrixFirewallTagCidrListArgs.builder()\n                    .cidr(\"10.2.0.0/24\")\n                    .cidrTagName(\"b1\")\n                    .build())\n            .firewallTag(\"test-firewall-tag\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Firewall Tag\n  testFirewallTag:\n    type: aviatrix:AviatrixFirewallTag\n    properties:\n      cidrLists:\n        - cidr: 10.1.0.0/24\n          cidrTagName: a1\n        - cidr: 10.2.0.0/24\n          cidrTagName: b1\n      firewallTag: test-firewall-tag\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**firewall_tag** can be imported using the `firewall_tag`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFirewallTag:AviatrixFirewallTag test firewall_tag\n```\n\n ",
      "properties": {
        "cidrLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFirewallTagCidrList:AviatrixFirewallTagCidrList"
          },
          "description": "Dynamic block representing a CIDR to filter, and a name to identify it:\n"
        },
        "firewallTag": {
          "type": "string",
          "description": "Name of the stateful firewall tag to be created.\n"
        }
      },
      "type": "object",
      "required": [
        "firewallTag"
      ],
      "inputProperties": {
        "cidrLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFirewallTagCidrList:AviatrixFirewallTagCidrList"
          },
          "description": "Dynamic block representing a CIDR to filter, and a name to identify it:\n"
        },
        "firewallTag": {
          "type": "string",
          "description": "Name of the stateful firewall tag to be created.\n"
        }
      },
      "requiredInputs": [
        "firewallTag"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFirewallTag resources.\n",
        "properties": {
          "cidrLists": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixFirewallTagCidrList:AviatrixFirewallTagCidrList"
            },
            "description": "Dynamic block representing a CIDR to filter, and a name to identify it:\n"
          },
          "firewallTag": {
            "type": "string",
            "description": "Name of the stateful firewall tag to be created.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFqdn:AviatrixFqdn": {
      "description": "\n\n\n## Import\n\n**fqdn** can be imported using the `fqdn_tag`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFqdn:AviatrixFqdn test fqdn_tag\n```\n\n ",
      "properties": {
        "domainNames": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFqdnDomainName:AviatrixFqdnDomainName"
          },
          "description": "One or more domain names in a list with details as listed below:\n"
        },
        "fqdnEnabled": {
          "type": "boolean",
          "description": "FQDN Filter tag status. Valid values: true, false.\n"
        },
        "fqdnMode": {
          "type": "string",
          "description": "Specify FQDN mode: whitelist or blacklist. Valid values: \"white\", \"black\".\n"
        },
        "fqdnTag": {
          "type": "string",
          "description": "FQDN Filter tag name.\n"
        },
        "gwFilterTagLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFqdnGwFilterTagList:AviatrixFqdnGwFilterTagList"
          },
          "description": "A list of gateways to attach to the specific tag.\n"
        },
        "manageDomainNames": {
          "type": "boolean",
          "description": "Enable to manage domain name rules in-line. If false, domain name rules must be managed using `aviatrix.AviatrixFqdnTagRule` resources. Default: true. Valid values: true, false. Available in provider version R2.17+.\n"
        }
      },
      "type": "object",
      "required": [
        "fqdnTag"
      ],
      "inputProperties": {
        "domainNames": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFqdnDomainName:AviatrixFqdnDomainName"
          },
          "description": "One or more domain names in a list with details as listed below:\n"
        },
        "fqdnEnabled": {
          "type": "boolean",
          "description": "FQDN Filter tag status. Valid values: true, false.\n"
        },
        "fqdnMode": {
          "type": "string",
          "description": "Specify FQDN mode: whitelist or blacklist. Valid values: \"white\", \"black\".\n"
        },
        "fqdnTag": {
          "type": "string",
          "description": "FQDN Filter tag name.\n"
        },
        "gwFilterTagLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixFqdnGwFilterTagList:AviatrixFqdnGwFilterTagList"
          },
          "description": "A list of gateways to attach to the specific tag.\n"
        },
        "manageDomainNames": {
          "type": "boolean",
          "description": "Enable to manage domain name rules in-line. If false, domain name rules must be managed using `aviatrix.AviatrixFqdnTagRule` resources. Default: true. Valid values: true, false. Available in provider version R2.17+.\n"
        }
      },
      "requiredInputs": [
        "fqdnTag"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFqdn resources.\n",
        "properties": {
          "domainNames": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixFqdnDomainName:AviatrixFqdnDomainName"
            },
            "description": "One or more domain names in a list with details as listed below:\n"
          },
          "fqdnEnabled": {
            "type": "boolean",
            "description": "FQDN Filter tag status. Valid values: true, false.\n"
          },
          "fqdnMode": {
            "type": "string",
            "description": "Specify FQDN mode: whitelist or blacklist. Valid values: \"white\", \"black\".\n"
          },
          "fqdnTag": {
            "type": "string",
            "description": "FQDN Filter tag name.\n"
          },
          "gwFilterTagLists": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixFqdnGwFilterTagList:AviatrixFqdnGwFilterTagList"
            },
            "description": "A list of gateways to attach to the specific tag.\n"
          },
          "manageDomainNames": {
            "type": "boolean",
            "description": "Enable to manage domain name rules in-line. If false, domain name rules must be managed using `aviatrix.AviatrixFqdnTagRule` resources. Default: true. Valid values: true, false. Available in provider version R2.17+.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFqdnPassThrough:AviatrixFqdnPassThrough": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\n\n// Create an Aviatrix Gateway FQDN filter pass-through\nconst testFqdnPassThrough = new aviatrix.AviatrixFqdnPassThrough(\"testFqdnPassThrough\", {\n    gwName: aviatrix_gateway.test_gw_aws.gw_name,\n    passThroughCidrs: [\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n        \"10.0.2.0/24\",\n    ],\n}, {\n    dependsOn: [aviatrix_fqdn.test_fqdn],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Gateway FQDN filter pass-through\ntest_fqdn_pass_through = aviatrix.AviatrixFqdnPassThrough(\"testFqdnPassThrough\",\n    gw_name=aviatrix_gateway[\"test_gw_aws\"][\"gw_name\"],\n    pass_through_cidrs=[\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n        \"10.0.2.0/24\",\n    ],\n    opts=pulumi.ResourceOptions(depends_on=[aviatrix_fqdn[\"test_fqdn\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Gateway FQDN filter pass-through\n    var testFqdnPassThrough = new Aviatrix.AviatrixFqdnPassThrough(\"testFqdnPassThrough\", new()\n    {\n        GwName = aviatrix_gateway.Test_gw_aws.Gw_name,\n        PassThroughCidrs = new[]\n        {\n            \"10.0.0.0/24\",\n            \"10.0.1.0/24\",\n            \"10.0.2.0/24\",\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn = new[]\n        {\n            aviatrix_fqdn.Test_fqdn,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFqdnPassThrough(ctx, \"testFqdnPassThrough\", &aviatrix.AviatrixFqdnPassThroughArgs{\n\t\t\tGwName: pulumi.Any(aviatrix_gateway.Test_gw_aws.Gw_name),\n\t\t\tPassThroughCidrs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\taviatrix_fqdn.Test_fqdn,\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.aviatrix.AviatrixFqdnPassThrough;\nimport com.pulumi.aviatrix.AviatrixFqdnPassThroughArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 testFqdnPassThrough = new AviatrixFqdnPassThrough(\"testFqdnPassThrough\", AviatrixFqdnPassThroughArgs.builder()        \n            .gwName(aviatrix_gateway.test_gw_aws().gw_name())\n            .passThroughCidrs(            \n                \"10.0.0.0/24\",\n                \"10.0.1.0/24\",\n                \"10.0.2.0/24\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(aviatrix_fqdn.test_fqdn())\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Gateway FQDN filter pass-through\n  testFqdnPassThrough:\n    type: aviatrix:AviatrixFqdnPassThrough\n    properties:\n      gwName: ${aviatrix_gateway.test_gw_aws.gw_name}\n      passThroughCidrs:\n        - 10.0.0.0/24\n        - 10.0.1.0/24\n        - 10.0.2.0/24\n    options:\n      dependson:\n        - ${aviatrix_fqdn.test_fqdn}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**fqdn_pass_through** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFqdnPassThrough:AviatrixFqdnPassThrough test gw_name\n```\n\n ",
      "properties": {
        "gwName": {
          "type": "string",
          "description": "Gateway name to apply pass-through rules to.\n"
        },
        "passThroughCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of origin CIDR's to allow to pass-through FQDN filtering rules. Minimum list length: 1.\n"
        }
      },
      "type": "object",
      "required": [
        "gwName",
        "passThroughCidrs"
      ],
      "inputProperties": {
        "gwName": {
          "type": "string",
          "description": "Gateway name to apply pass-through rules to.\n",
          "willReplaceOnChanges": true
        },
        "passThroughCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of origin CIDR's to allow to pass-through FQDN filtering rules. Minimum list length: 1.\n"
        }
      },
      "requiredInputs": [
        "gwName",
        "passThroughCidrs"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFqdnPassThrough resources.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Gateway name to apply pass-through rules to.\n",
            "willReplaceOnChanges": true
          },
          "passThroughCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of origin CIDR's to allow to pass-through FQDN filtering rules. Minimum list length: 1.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixFqdnTagRule:AviatrixFqdnTagRule": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Gateway FQDN Tag Rule filter rule\nconst testFqdn = new aviatrix.AviatrixFqdnTagRule(\"test_fqdn\", {\n    fqdn: \"reddit.com\",\n    fqdnTagName: \"my_tag\",\n    port: \"443\",\n    protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Gateway FQDN Tag Rule filter rule\ntest_fqdn = aviatrix.AviatrixFqdnTagRule(\"testFqdn\",\n    fqdn=\"reddit.com\",\n    fqdn_tag_name=\"my_tag\",\n    port=\"443\",\n    protocol=\"tcp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Gateway FQDN Tag Rule filter rule\n    var testFqdn = new Aviatrix.AviatrixFqdnTagRule(\"testFqdn\", new()\n    {\n        Fqdn = \"reddit.com\",\n        FqdnTagName = \"my_tag\",\n        Port = \"443\",\n        Protocol = \"tcp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixFqdnTagRule(ctx, \"testFqdn\", &aviatrix.AviatrixFqdnTagRuleArgs{\n\t\t\tFqdn:        pulumi.String(\"reddit.com\"),\n\t\t\tFqdnTagName: pulumi.String(\"my_tag\"),\n\t\t\tPort:        pulumi.String(\"443\"),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\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.aviatrix.AviatrixFqdnTagRule;\nimport com.pulumi.aviatrix.AviatrixFqdnTagRuleArgs;\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 testFqdn = new AviatrixFqdnTagRule(\"testFqdn\", AviatrixFqdnTagRuleArgs.builder()        \n            .fqdn(\"reddit.com\")\n            .fqdnTagName(\"my_tag\")\n            .port(\"443\")\n            .protocol(\"tcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Gateway FQDN Tag Rule filter rule\n  testFqdn:\n    type: aviatrix:AviatrixFqdnTagRule\n    properties:\n      fqdn: reddit.com\n      fqdnTagName: my_tag\n      port: '443'\n      protocol: tcp\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**fqdn_tag_rule** can be imported using the `fqdn_tag_name`, `fqdn`, `protocol`, `port` and `action` separated by `~`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixFqdnTagRule:AviatrixFqdnTagRule test \"fqdn_tag_name~fqdn~protocol~port~action\"\n```\n\n ",
      "properties": {
        "action": {
          "type": "string",
          "description": "What action should happen to matching requests. Possible values are: 'Base Policy', 'Allow' or 'Deny'. Defaults to 'Base Policy' if no value provided.\n* For protocol \"all\", port must be set to \"all\".\n* For protocol “icmp”, port must be set to “ping”.\n"
        },
        "fqdn": {
          "type": "string",
          "description": "FQDN. Example: \"facebook.com\".\n"
        },
        "fqdnTagName": {
          "type": "string",
          "description": "FQDN Filter tag name.\n"
        },
        "port": {
          "type": "string",
          "description": "Port. Example \"25\".\n"
        },
        "protocol": {
          "type": "string",
          "description": "Protocol. Valid values: \"all\", \"tcp\", \"udp\", \"icmp\".\n"
        }
      },
      "type": "object",
      "required": [
        "fqdn",
        "fqdnTagName",
        "port",
        "protocol"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "What action should happen to matching requests. Possible values are: 'Base Policy', 'Allow' or 'Deny'. Defaults to 'Base Policy' if no value provided.\n* For protocol \"all\", port must be set to \"all\".\n* For protocol “icmp”, port must be set to “ping”.\n",
          "willReplaceOnChanges": true
        },
        "fqdn": {
          "type": "string",
          "description": "FQDN. Example: \"facebook.com\".\n",
          "willReplaceOnChanges": true
        },
        "fqdnTagName": {
          "type": "string",
          "description": "FQDN Filter tag name.\n",
          "willReplaceOnChanges": true
        },
        "port": {
          "type": "string",
          "description": "Port. Example \"25\".\n",
          "willReplaceOnChanges": true
        },
        "protocol": {
          "type": "string",
          "description": "Protocol. Valid values: \"all\", \"tcp\", \"udp\", \"icmp\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "fqdn",
        "fqdnTagName",
        "port",
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixFqdnTagRule resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "What action should happen to matching requests. Possible values are: 'Base Policy', 'Allow' or 'Deny'. Defaults to 'Base Policy' if no value provided.\n* For protocol \"all\", port must be set to \"all\".\n* For protocol “icmp”, port must be set to “ping”.\n",
            "willReplaceOnChanges": true
          },
          "fqdn": {
            "type": "string",
            "description": "FQDN. Example: \"facebook.com\".\n",
            "willReplaceOnChanges": true
          },
          "fqdnTagName": {
            "type": "string",
            "description": "FQDN Filter tag name.\n",
            "willReplaceOnChanges": true
          },
          "port": {
            "type": "string",
            "description": "Port. Example \"25\".\n",
            "willReplaceOnChanges": true
          },
          "protocol": {
            "type": "string",
            "description": "Protocol. Valid values: \"all\", \"tcp\", \"udp\", \"icmp\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixGateway:AviatrixGateway": {
      "description": "\n\n\n## Import\n\n**gateway** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixGateway:AviatrixGateway test gw_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Account name. This account will be used to launch Aviatrix gateway.\n"
        },
        "additionalCidrs": {
          "type": "string",
          "description": "A list of destination CIDR ranges that will also go through the VPN tunnel when Split Tunnel Mode is enabled.\n"
        },
        "additionalCidrsDesignatedGateway": {
          "type": "string",
          "description": "A list of CIDR ranges separated by comma to configure when \"Designated Gateway\" feature is enabled. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
        },
        "allocateNewEip": {
          "type": "boolean",
          "description": "If set to false, use an available address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 2.7+. Valid values: true, false. Default: true.\n"
        },
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "azureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required when `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "cloudInstanceId": {
          "type": "string",
          "description": "Cloud instance ID of the gateway.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Cloud service provider to use to launch the gateway. Requires an integer value. Currently supports AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud (8192), AWS Top Secret (16384) and AWS Secret (32768).\n"
        },
        "customerManagedKeys": {
          "type": "string",
          "description": "Customer-managed key ID.\n",
          "secret": true
        },
        "duoApiHostname": {
          "type": "string",
          "description": "API hostname for DUO auth mode. Required: Yes if `otp_mode` is \"2\".\n"
        },
        "duoIntegrationKey": {
          "type": "string",
          "description": "Integration key for DUO auth mode. Required if `otp_mode` is \"2\".\n"
        },
        "duoPushMode": {
          "type": "string",
          "description": "Push mode for DUO auth. Required if `otp_mode` is \"2\". Valid values: \"auto\", \"selective\" and \"token\".\n"
        },
        "duoSecretKey": {
          "type": "string",
          "description": "Secret key for DUO auth mode. Required if `otp_mode` is \"2\".\n",
          "secret": true
        },
        "eip": {
          "type": "string",
          "description": "Specified EIP to use for gateway creation. Required when `allocate_new_eip` is false.  Available in Controller version 3.5+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "elbDnsName": {
          "type": "string",
          "description": "ELB DNS name.\n"
        },
        "elbName": {
          "type": "string",
          "description": "A name for the ELB that is created. If it is not specified, a name is generated automatically.\n"
        },
        "enableDesignatedGateway": {
          "type": "boolean",
          "description": "Enable Designated Gateway feature for Gateway. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false. Please view documentation [here](https://docs.aviatrix.com/HowTos/gateway.html#designated-gateway) for more information on this feature.\n"
        },
        "enableElb": {
          "type": "boolean",
          "description": "Specify whether to enable ELB or not. Not supported for OCI gateways. Valid values: true, false.\n"
        },
        "enableEncryptVolume": {
          "type": "boolean",
          "description": "Enable EBS volume encryption for the gateway. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable jumbo frames for this gateway. Default value is true.\n"
        },
        "enableLdap": {
          "type": "boolean",
          "description": "Enable/disable LDAP. Valid values: true, false. Default value: false.\n"
        },
        "enableMonitorGatewaySubnets": {
          "type": "boolean",
          "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.17.1+.\n"
        },
        "enablePublicSubnetFiltering": {
          "type": "boolean",
          "description": "Create a [Public Subnet Filtering gateway](https://docs.aviatrix.com/HowTos/public_subnet_filtering_faq.html).\n"
        },
        "enableSpotInstance": {
          "type": "boolean",
          "description": "Enable spot instance. NOT supported for production deployment.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC DNS Server for gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "enableVpnNat": {
          "type": "boolean",
          "description": "Enable/disable VPN NAT. Only supported for VPN gateway. Valid values: true, false. Default value: true.\n"
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "fqdnLanCidr": {
          "type": "string",
          "description": "If `fqdn_lan_cidr` is set, the FQDN gateway will be created with an additional LAN interface using the provided CIDR. This attribute is required when enabling FQDN gateway FireNet in Azure or GCP. Available in provider version R2.17.1+.\n"
        },
        "fqdnLanInterface": {
          "type": "string",
          "description": "The lan interface id of the of FQDN gateway with additional LAN interface. This attribute will be exported when enabling FQDN gateway firenet in Azure. Available in provider version R2.17.1+.\n"
        },
        "fqdnLanVpcId": {
          "type": "string",
          "description": "FQDN LAN VPC ID. This attribute is required when enabling FQDN gateway FireNet in GCP. Available as of provider version R2.18.1+.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Aviatrix gateway to be created.\n"
        },
        "gwSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS/AWSGov/AWSChina: \"t2.large\", GCP: \"n1-standard-1\", Azure/AzureGov/AzureChina: \"Standard_B1s\", OCI: \"VM.Standard2.2\".\n"
        },
        "idleTimeout": {
          "type": "integer",
          "description": "It sets the value (seconds) of the [idle timeout](https://docs.aviatrix.com/HowTos/openvpn_faq.html#how-do-i-fix-the-aviatrix-vpn-timing-out-too-quickly). This idle timeout feature is enable only if this attribute is set, otherwise it is disabled. The entered value must be an integer number greater than 300.  Available in provider version R2.17.1+.\n"
        },
        "imageVersion": {
          "type": "string",
          "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Enable [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) for Gateway. Insane Mode gateway size must be at least c5 series (AWS) or Standard_D3_v2 (Azure/AzureGov). If enabled, a valid /26 CIDR segment of the VPC must be specified to create a new subnet. Only supported for AWS, AWSGov, Azure, AzureGov, AWS China, Azure China, AWS Top Secret or AWS Secret.  Valid values: true, false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "Region + Availability Zone of subnet being created for Insane Mode gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "ldapBaseDn": {
          "type": "string",
          "description": "LDAP base DN. Required if `enable_ldap` is true.\n"
        },
        "ldapBindDn": {
          "type": "string",
          "description": "LDAP bind DN. Required if `enable_ldap` is true.\n"
        },
        "ldapPassword": {
          "type": "string",
          "description": "LDAP password. Required if `enable_ldap` is true.\n",
          "secret": true
        },
        "ldapServer": {
          "type": "string",
          "description": "LDAP server address. Required if `enable_ldap` is true.\n"
        },
        "ldapUsernameAttribute": {
          "type": "string",
          "description": "LDAP user attribute. Required if `enable_ldap` is true.\n"
        },
        "maxVpnConn": {
          "type": "string",
          "description": "Maximum number of active VPN users allowed to be connected to this gateway. Required if `vpn_access` is true. Make sure the number is smaller than the VPN CIDR block. Example: 100. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.14.**\n"
        },
        "monitorExcludeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.17.1+.\n"
        },
        "nameServers": {
          "type": "string",
          "description": "A list of DNS servers used to resolve domain names by a connected VPN user when Split Tunnel Mode is enabled.\n"
        },
        "oktaToken": {
          "type": "string",
          "description": "Token for Okta auth mode. Required if `otp_mode` is \"3\".\n",
          "secret": true
        },
        "oktaUrl": {
          "type": "string",
          "description": "URL for Okta auth mode. Required if `otp_mode` is \"3\".\n"
        },
        "oktaUsernameSuffix": {
          "type": "string",
          "description": "Username suffix for Okta auth mode. Example: \"aviatrix.com\".\n"
        },
        "otpMode": {
          "type": "string",
          "description": "Two step authentication mode. Valid values: \"2\" for DUO, \"3\" for Okta.\n"
        },
        "peeringHaAvailabilityDomain": {
          "type": "string",
          "description": "Peering HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "peeringHaAzureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP address resource and its resource group in Azure to be assigned to the HA peering instance. Example: \"IP_Name:Resource_Group_Name\". Required if `peering_ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "peeringHaCloudInstanceId": {
          "type": "string",
          "description": "Cloud instance ID of the HA gateway.\n"
        },
        "peeringHaEip": {
          "type": "string",
          "description": "Public IP address to be assigned to the HA peering instance. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "peeringHaFaultDomain": {
          "type": "string",
          "description": "Peering HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "peeringHaGwName": {
          "type": "string",
          "description": "Aviatrix gateway unique name of HA gateway.\n"
        },
        "peeringHaGwSize": {
          "type": "string",
          "description": "Size of the Peering HA Gateway to be created. Required if enabling Peering HA. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.8.**\n"
        },
        "peeringHaImageVersion": {
          "type": "string",
          "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "peeringHaInsaneModeAz": {
          "type": "string",
          "description": "Region + Availability Zone of subnet being created for Insane Mode-enabled Peering HA Gateway. Required for AWS only if `insane_mode` is set and `peering_ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "peeringHaPrivateIp": {
          "type": "string",
          "description": "Private IP address of HA gateway.\n"
        },
        "peeringHaSecurityGroupId": {
          "type": "string",
          "description": "HA security group used for the gateway.\n"
        },
        "peeringHaSoftwareVersion": {
          "type": "string",
          "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "peeringHaSubnet": {
          "type": "string",
          "description": "Public subnet CIDR to create Peering HA Gateway in. Required if enabling Peering HA for AWS/AWSGov/AWS Top Secret/AWS Secret/Azure/AzureGov/Alibaba Cloud. Optional if enabling Peering HA for GCP. Example: AWS: \"10.0.0.0/16\".\n"
        },
        "peeringHaZone": {
          "type": "string",
          "description": "Zone to create Peering HA Gateway in. Required if enabling Peering HA for GCP. Example: GCP: \"us-west1-c\". Optional for Azure. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Private IP address of the gateway created.\n"
        },
        "publicDnsServer": {
          "type": "string",
          "description": "DNS server used by the gateway. Default is \"8.8.8.8\", can be overridden with the VPC's setting.\n"
        },
        "publicSubnetFilteringGuardDutyEnforced": {
          "type": "boolean",
          "description": "Whether to enforce Guard Duty IP blocking.  Only valid when `enable_public_subnet_filtering` attribute is true. Valid values: true or false. Default value: true. Available as of provider version R2.18+.\n"
        },
        "publicSubnetFilteringHaRouteTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Route tables whose associated public subnets are protected for the HA PSF gateway. Required when `enable_public_subnet_filtering` and `peering_ha_subnet` are set. Available as of provider version R2.18+.\n"
        },
        "publicSubnetFilteringRouteTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Route tables whose associated public subnets are protected. Only valid when `enable_public_subnet_filtering` attribute is true. Available as of provider version R2.18+.\n"
        },
        "renegotiationInterval": {
          "type": "integer",
          "description": "It sets the value (seconds) of the [renegotiation interval](https://docs.aviatrix.com/HowTos/openvpn_faq.html#how-do-i-fix-the-aviatrix-vpn-timing-out-too-quickly). This renegotiation interval feature is enable only if this attribute is set, otherwise it is disabled. The entered value must be an integer number greater than 300. Available in provider version R2.17.1+.\n"
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
        },
        "samlEnabled": {
          "type": "boolean",
          "description": "Enable/disable SAML. This field is available in Controller version 3.3 or later release. Valid values: true, false. Default value: false.\n"
        },
        "searchDomains": {
          "type": "string",
          "description": "A list of domain names that will use the NameServer when a specific name is not in the destination when Split Tunnel Mode is enabled.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Security group used for the gateway.\n"
        },
        "singleAzHa": {
          "type": "boolean",
          "description": "If enabled, Controller monitors the health of the gateway and restarts the gateway if it becomes unreachable. Valid values: true, false. Default value: false.\n"
        },
        "singleIpSnat": {
          "type": "boolean",
          "description": "Enable Source NAT in \"single ip\" mode for this gateway. Valid values: true, false. Default value: false. **NOTE: If using SNAT for FQDN use-case, please see notes here.**\n"
        },
        "softwareVersion": {
          "type": "string",
          "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "splitTunnel": {
          "type": "boolean",
          "description": "Enable/disable Split Tunnel Mode. Valid values: true, false. Default value: true. Please see [here](https://docs.aviatrix.com/HowTos/gateway.html#split-tunnel-mode) for more information on split tunnel.\n"
        },
        "spotPrice": {
          "type": "string",
          "description": "Price for spot instance. NOT supported for production deployment.\n"
        },
        "subnet": {
          "type": "string",
          "description": "A VPC network address range selected from one of the available network ranges. Example: \"172.31.0.0/20\". **NOTE: If using `insane_mode`, please see notes here.**\n"
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) Tag list of the gateway instance. Only available for AWS, AWSGov, AWSChina, Azure, AzureGov and AzureChina gateways. Example: [\"key1:value1\", \"key2:value2\"].\n* `storage_name` (Optional) Specify a storage account. Required if `cloud_type` is 2048 (AzureChina). Removed in Provider version 2.21.0+.\n",
          "deprecationMessage": "Use tags instead."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags to assign to the gateway. Only available for AWS, AWSGov, AWSChina, Azure, AzureGov, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character.  Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
        },
        "tunnelDetectionTime": {
          "type": "integer",
          "description": "The IPSec tunnel down detection time for the Gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID/VNet name of cloud provider. Example: AWS/AWSGov/AWSChina: \"vpc-abcd1234\", GCP: \"vpc-gcp-test~-~project-id\", Azure/AzureGov/AzureChina: \"vnet_name:rg_name:resource_guid\", OCI: \"ocid1.vcn.oc1.iad.aaaaaaaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdsq\".\n"
        },
        "vpcReg": {
          "type": "string",
          "description": "VPC region the gateway will be created in. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1\", AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n"
        },
        "vpnAccess": {
          "type": "boolean",
          "description": "Enable [user access through VPN](https://docs.aviatrix.com/HowTos/gateway.html#vpn-access) to this gateway. Valid values: true, false.\n"
        },
        "vpnCidr": {
          "type": "string",
          "description": "VPN CIDR block for the gateway. Required if `vpn_access` is true. Example: \"192.168.43.0/24\".\n"
        },
        "vpnProtocol": {
          "type": "string",
          "description": "Transport mode for VPN connection. All `cloud_types` support TCP with ELB, and UDP without ELB. AWS(1) additionally supports UDP with ELB. Valid values: \"TCP\", \"UDP\". If not specified, \"TCP\" will be used.\n"
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Only available for Azure and Public Subnet Filtering gateway. Available for Azure as of provider version R2.17+.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "availabilityDomain",
        "azureEipNameResourceGroup",
        "cloudInstanceId",
        "cloudType",
        "eip",
        "elbDnsName",
        "elbName",
        "faultDomain",
        "fqdnLanInterface",
        "gwName",
        "gwSize",
        "imageVersion",
        "peeringHaAvailabilityDomain",
        "peeringHaAzureEipNameResourceGroup",
        "peeringHaCloudInstanceId",
        "peeringHaEip",
        "peeringHaFaultDomain",
        "peeringHaGwName",
        "peeringHaImageVersion",
        "peeringHaPrivateIp",
        "peeringHaSecurityGroupId",
        "peeringHaSoftwareVersion",
        "privateIp",
        "publicDnsServer",
        "securityGroupId",
        "softwareVersion",
        "subnet",
        "tunnelDetectionTime",
        "vpcId",
        "vpcReg",
        "vpnProtocol"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Account name. This account will be used to launch Aviatrix gateway.\n"
        },
        "additionalCidrs": {
          "type": "string",
          "description": "A list of destination CIDR ranges that will also go through the VPN tunnel when Split Tunnel Mode is enabled.\n"
        },
        "additionalCidrsDesignatedGateway": {
          "type": "string",
          "description": "A list of CIDR ranges separated by comma to configure when \"Designated Gateway\" feature is enabled. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
        },
        "allocateNewEip": {
          "type": "boolean",
          "description": "If set to false, use an available address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 2.7+. Valid values: true, false. Default: true.\n"
        },
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "azureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required when `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Cloud service provider to use to launch the gateway. Requires an integer value. Currently supports AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud (8192), AWS Top Secret (16384) and AWS Secret (32768).\n"
        },
        "customerManagedKeys": {
          "type": "string",
          "description": "Customer-managed key ID.\n",
          "secret": true
        },
        "duoApiHostname": {
          "type": "string",
          "description": "API hostname for DUO auth mode. Required: Yes if `otp_mode` is \"2\".\n"
        },
        "duoIntegrationKey": {
          "type": "string",
          "description": "Integration key for DUO auth mode. Required if `otp_mode` is \"2\".\n"
        },
        "duoPushMode": {
          "type": "string",
          "description": "Push mode for DUO auth. Required if `otp_mode` is \"2\". Valid values: \"auto\", \"selective\" and \"token\".\n"
        },
        "duoSecretKey": {
          "type": "string",
          "description": "Secret key for DUO auth mode. Required if `otp_mode` is \"2\".\n",
          "secret": true
        },
        "eip": {
          "type": "string",
          "description": "Specified EIP to use for gateway creation. Required when `allocate_new_eip` is false.  Available in Controller version 3.5+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "elbName": {
          "type": "string",
          "description": "A name for the ELB that is created. If it is not specified, a name is generated automatically.\n"
        },
        "enableDesignatedGateway": {
          "type": "boolean",
          "description": "Enable Designated Gateway feature for Gateway. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false. Please view documentation [here](https://docs.aviatrix.com/HowTos/gateway.html#designated-gateway) for more information on this feature.\n"
        },
        "enableElb": {
          "type": "boolean",
          "description": "Specify whether to enable ELB or not. Not supported for OCI gateways. Valid values: true, false.\n"
        },
        "enableEncryptVolume": {
          "type": "boolean",
          "description": "Enable EBS volume encryption for the gateway. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable jumbo frames for this gateway. Default value is true.\n"
        },
        "enableLdap": {
          "type": "boolean",
          "description": "Enable/disable LDAP. Valid values: true, false. Default value: false.\n"
        },
        "enableMonitorGatewaySubnets": {
          "type": "boolean",
          "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.17.1+.\n"
        },
        "enablePublicSubnetFiltering": {
          "type": "boolean",
          "description": "Create a [Public Subnet Filtering gateway](https://docs.aviatrix.com/HowTos/public_subnet_filtering_faq.html).\n"
        },
        "enableSpotInstance": {
          "type": "boolean",
          "description": "Enable spot instance. NOT supported for production deployment.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC DNS Server for gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "enableVpnNat": {
          "type": "boolean",
          "description": "Enable/disable VPN NAT. Only supported for VPN gateway. Valid values: true, false. Default value: true.\n"
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "fqdnLanCidr": {
          "type": "string",
          "description": "If `fqdn_lan_cidr` is set, the FQDN gateway will be created with an additional LAN interface using the provided CIDR. This attribute is required when enabling FQDN gateway FireNet in Azure or GCP. Available in provider version R2.17.1+.\n",
          "willReplaceOnChanges": true
        },
        "fqdnLanVpcId": {
          "type": "string",
          "description": "FQDN LAN VPC ID. This attribute is required when enabling FQDN gateway FireNet in GCP. Available as of provider version R2.18.1+.\n",
          "willReplaceOnChanges": true
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Aviatrix gateway to be created.\n",
          "willReplaceOnChanges": true
        },
        "gwSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS/AWSGov/AWSChina: \"t2.large\", GCP: \"n1-standard-1\", Azure/AzureGov/AzureChina: \"Standard_B1s\", OCI: \"VM.Standard2.2\".\n"
        },
        "idleTimeout": {
          "type": "integer",
          "description": "It sets the value (seconds) of the [idle timeout](https://docs.aviatrix.com/HowTos/openvpn_faq.html#how-do-i-fix-the-aviatrix-vpn-timing-out-too-quickly). This idle timeout feature is enable only if this attribute is set, otherwise it is disabled. The entered value must be an integer number greater than 300.  Available in provider version R2.17.1+.\n"
        },
        "imageVersion": {
          "type": "string",
          "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Enable [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) for Gateway. Insane Mode gateway size must be at least c5 series (AWS) or Standard_D3_v2 (Azure/AzureGov). If enabled, a valid /26 CIDR segment of the VPC must be specified to create a new subnet. Only supported for AWS, AWSGov, Azure, AzureGov, AWS China, Azure China, AWS Top Secret or AWS Secret.  Valid values: true, false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "Region + Availability Zone of subnet being created for Insane Mode gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "ldapBaseDn": {
          "type": "string",
          "description": "LDAP base DN. Required if `enable_ldap` is true.\n"
        },
        "ldapBindDn": {
          "type": "string",
          "description": "LDAP bind DN. Required if `enable_ldap` is true.\n"
        },
        "ldapPassword": {
          "type": "string",
          "description": "LDAP password. Required if `enable_ldap` is true.\n",
          "secret": true
        },
        "ldapServer": {
          "type": "string",
          "description": "LDAP server address. Required if `enable_ldap` is true.\n"
        },
        "ldapUsernameAttribute": {
          "type": "string",
          "description": "LDAP user attribute. Required if `enable_ldap` is true.\n"
        },
        "maxVpnConn": {
          "type": "string",
          "description": "Maximum number of active VPN users allowed to be connected to this gateway. Required if `vpn_access` is true. Make sure the number is smaller than the VPN CIDR block. Example: 100. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.14.**\n"
        },
        "monitorExcludeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.17.1+.\n"
        },
        "nameServers": {
          "type": "string",
          "description": "A list of DNS servers used to resolve domain names by a connected VPN user when Split Tunnel Mode is enabled.\n"
        },
        "oktaToken": {
          "type": "string",
          "description": "Token for Okta auth mode. Required if `otp_mode` is \"3\".\n",
          "secret": true
        },
        "oktaUrl": {
          "type": "string",
          "description": "URL for Okta auth mode. Required if `otp_mode` is \"3\".\n"
        },
        "oktaUsernameSuffix": {
          "type": "string",
          "description": "Username suffix for Okta auth mode. Example: \"aviatrix.com\".\n"
        },
        "otpMode": {
          "type": "string",
          "description": "Two step authentication mode. Valid values: \"2\" for DUO, \"3\" for Okta.\n"
        },
        "peeringHaAvailabilityDomain": {
          "type": "string",
          "description": "Peering HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "peeringHaAzureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP address resource and its resource group in Azure to be assigned to the HA peering instance. Example: \"IP_Name:Resource_Group_Name\". Required if `peering_ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "peeringHaEip": {
          "type": "string",
          "description": "Public IP address to be assigned to the HA peering instance. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "peeringHaFaultDomain": {
          "type": "string",
          "description": "Peering HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "peeringHaGwSize": {
          "type": "string",
          "description": "Size of the Peering HA Gateway to be created. Required if enabling Peering HA. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.8.**\n"
        },
        "peeringHaImageVersion": {
          "type": "string",
          "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "peeringHaInsaneModeAz": {
          "type": "string",
          "description": "Region + Availability Zone of subnet being created for Insane Mode-enabled Peering HA Gateway. Required for AWS only if `insane_mode` is set and `peering_ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "peeringHaSoftwareVersion": {
          "type": "string",
          "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "peeringHaSubnet": {
          "type": "string",
          "description": "Public subnet CIDR to create Peering HA Gateway in. Required if enabling Peering HA for AWS/AWSGov/AWS Top Secret/AWS Secret/Azure/AzureGov/Alibaba Cloud. Optional if enabling Peering HA for GCP. Example: AWS: \"10.0.0.0/16\".\n"
        },
        "peeringHaZone": {
          "type": "string",
          "description": "Zone to create Peering HA Gateway in. Required if enabling Peering HA for GCP. Example: GCP: \"us-west1-c\". Optional for Azure. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
        },
        "publicSubnetFilteringGuardDutyEnforced": {
          "type": "boolean",
          "description": "Whether to enforce Guard Duty IP blocking.  Only valid when `enable_public_subnet_filtering` attribute is true. Valid values: true or false. Default value: true. Available as of provider version R2.18+.\n"
        },
        "publicSubnetFilteringHaRouteTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Route tables whose associated public subnets are protected for the HA PSF gateway. Required when `enable_public_subnet_filtering` and `peering_ha_subnet` are set. Available as of provider version R2.18+.\n"
        },
        "publicSubnetFilteringRouteTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Route tables whose associated public subnets are protected. Only valid when `enable_public_subnet_filtering` attribute is true. Available as of provider version R2.18+.\n"
        },
        "renegotiationInterval": {
          "type": "integer",
          "description": "It sets the value (seconds) of the [renegotiation interval](https://docs.aviatrix.com/HowTos/openvpn_faq.html#how-do-i-fix-the-aviatrix-vpn-timing-out-too-quickly). This renegotiation interval feature is enable only if this attribute is set, otherwise it is disabled. The entered value must be an integer number greater than 300. Available in provider version R2.17.1+.\n"
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
        },
        "samlEnabled": {
          "type": "boolean",
          "description": "Enable/disable SAML. This field is available in Controller version 3.3 or later release. Valid values: true, false. Default value: false.\n"
        },
        "searchDomains": {
          "type": "string",
          "description": "A list of domain names that will use the NameServer when a specific name is not in the destination when Split Tunnel Mode is enabled.\n"
        },
        "singleAzHa": {
          "type": "boolean",
          "description": "If enabled, Controller monitors the health of the gateway and restarts the gateway if it becomes unreachable. Valid values: true, false. Default value: false.\n"
        },
        "singleIpSnat": {
          "type": "boolean",
          "description": "Enable Source NAT in \"single ip\" mode for this gateway. Valid values: true, false. Default value: false. **NOTE: If using SNAT for FQDN use-case, please see notes here.**\n"
        },
        "softwareVersion": {
          "type": "string",
          "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "splitTunnel": {
          "type": "boolean",
          "description": "Enable/disable Split Tunnel Mode. Valid values: true, false. Default value: true. Please see [here](https://docs.aviatrix.com/HowTos/gateway.html#split-tunnel-mode) for more information on split tunnel.\n"
        },
        "spotPrice": {
          "type": "string",
          "description": "Price for spot instance. NOT supported for production deployment.\n"
        },
        "subnet": {
          "type": "string",
          "description": "A VPC network address range selected from one of the available network ranges. Example: \"172.31.0.0/20\". **NOTE: If using `insane_mode`, please see notes here.**\n",
          "willReplaceOnChanges": true
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) Tag list of the gateway instance. Only available for AWS, AWSGov, AWSChina, Azure, AzureGov and AzureChina gateways. Example: [\"key1:value1\", \"key2:value2\"].\n* `storage_name` (Optional) Specify a storage account. Required if `cloud_type` is 2048 (AzureChina). Removed in Provider version 2.21.0+.\n",
          "deprecationMessage": "Use tags instead."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags to assign to the gateway. Only available for AWS, AWSGov, AWSChina, Azure, AzureGov, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character.  Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
        },
        "tunnelDetectionTime": {
          "type": "integer",
          "description": "The IPSec tunnel down detection time for the Gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID/VNet name of cloud provider. Example: AWS/AWSGov/AWSChina: \"vpc-abcd1234\", GCP: \"vpc-gcp-test~-~project-id\", Azure/AzureGov/AzureChina: \"vnet_name:rg_name:resource_guid\", OCI: \"ocid1.vcn.oc1.iad.aaaaaaaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdsq\".\n",
          "willReplaceOnChanges": true
        },
        "vpcReg": {
          "type": "string",
          "description": "VPC region the gateway will be created in. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1\", AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n",
          "willReplaceOnChanges": true
        },
        "vpnAccess": {
          "type": "boolean",
          "description": "Enable [user access through VPN](https://docs.aviatrix.com/HowTos/gateway.html#vpn-access) to this gateway. Valid values: true, false.\n"
        },
        "vpnCidr": {
          "type": "string",
          "description": "VPN CIDR block for the gateway. Required if `vpn_access` is true. Example: \"192.168.43.0/24\".\n"
        },
        "vpnProtocol": {
          "type": "string",
          "description": "Transport mode for VPN connection. All `cloud_types` support TCP with ELB, and UDP without ELB. AWS(1) additionally supports UDP with ELB. Valid values: \"TCP\", \"UDP\". If not specified, \"TCP\" will be used.\n"
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Only available for Azure and Public Subnet Filtering gateway. Available for Azure as of provider version R2.17+.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType",
        "gwName",
        "gwSize",
        "subnet",
        "vpcId",
        "vpcReg"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixGateway resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Account name. This account will be used to launch Aviatrix gateway.\n"
          },
          "additionalCidrs": {
            "type": "string",
            "description": "A list of destination CIDR ranges that will also go through the VPN tunnel when Split Tunnel Mode is enabled.\n"
          },
          "additionalCidrsDesignatedGateway": {
            "type": "string",
            "description": "A list of CIDR ranges separated by comma to configure when \"Designated Gateway\" feature is enabled. Example: \"10.8.0.0/16,10.9.0.0/16,10.10.0.0/16\".\n"
          },
          "allocateNewEip": {
            "type": "boolean",
            "description": "If set to false, use an available address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 2.7+. Valid values: true, false. Default: true.\n"
          },
          "availabilityDomain": {
            "type": "string",
            "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "azureEipNameResourceGroup": {
            "type": "string",
            "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required when `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
          },
          "cloudInstanceId": {
            "type": "string",
            "description": "Cloud instance ID of the gateway.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Cloud service provider to use to launch the gateway. Requires an integer value. Currently supports AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud (8192), AWS Top Secret (16384) and AWS Secret (32768).\n"
          },
          "customerManagedKeys": {
            "type": "string",
            "description": "Customer-managed key ID.\n",
            "secret": true
          },
          "duoApiHostname": {
            "type": "string",
            "description": "API hostname for DUO auth mode. Required: Yes if `otp_mode` is \"2\".\n"
          },
          "duoIntegrationKey": {
            "type": "string",
            "description": "Integration key for DUO auth mode. Required if `otp_mode` is \"2\".\n"
          },
          "duoPushMode": {
            "type": "string",
            "description": "Push mode for DUO auth. Required if `otp_mode` is \"2\". Valid values: \"auto\", \"selective\" and \"token\".\n"
          },
          "duoSecretKey": {
            "type": "string",
            "description": "Secret key for DUO auth mode. Required if `otp_mode` is \"2\".\n",
            "secret": true
          },
          "eip": {
            "type": "string",
            "description": "Specified EIP to use for gateway creation. Required when `allocate_new_eip` is false.  Available in Controller version 3.5+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
          },
          "elbDnsName": {
            "type": "string",
            "description": "ELB DNS name.\n"
          },
          "elbName": {
            "type": "string",
            "description": "A name for the ELB that is created. If it is not specified, a name is generated automatically.\n"
          },
          "enableDesignatedGateway": {
            "type": "boolean",
            "description": "Enable Designated Gateway feature for Gateway. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false. Please view documentation [here](https://docs.aviatrix.com/HowTos/gateway.html#designated-gateway) for more information on this feature.\n"
          },
          "enableElb": {
            "type": "boolean",
            "description": "Specify whether to enable ELB or not. Not supported for OCI gateways. Valid values: true, false.\n"
          },
          "enableEncryptVolume": {
            "type": "boolean",
            "description": "Enable EBS volume encryption for the gateway. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
          },
          "enableJumboFrame": {
            "type": "boolean",
            "description": "Enable jumbo frames for this gateway. Default value is true.\n"
          },
          "enableLdap": {
            "type": "boolean",
            "description": "Enable/disable LDAP. Valid values: true, false. Default value: false.\n"
          },
          "enableMonitorGatewaySubnets": {
            "type": "boolean",
            "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.17.1+.\n"
          },
          "enablePublicSubnetFiltering": {
            "type": "boolean",
            "description": "Create a [Public Subnet Filtering gateway](https://docs.aviatrix.com/HowTos/public_subnet_filtering_faq.html).\n"
          },
          "enableSpotInstance": {
            "type": "boolean",
            "description": "Enable spot instance. NOT supported for production deployment.\n"
          },
          "enableVpcDnsServer": {
            "type": "boolean",
            "description": "Enable VPC DNS Server for gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
          },
          "enableVpnNat": {
            "type": "boolean",
            "description": "Enable/disable VPN NAT. Only supported for VPN gateway. Valid values: true, false. Default value: true.\n"
          },
          "faultDomain": {
            "type": "string",
            "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "fqdnLanCidr": {
            "type": "string",
            "description": "If `fqdn_lan_cidr` is set, the FQDN gateway will be created with an additional LAN interface using the provided CIDR. This attribute is required when enabling FQDN gateway FireNet in Azure or GCP. Available in provider version R2.17.1+.\n",
            "willReplaceOnChanges": true
          },
          "fqdnLanInterface": {
            "type": "string",
            "description": "The lan interface id of the of FQDN gateway with additional LAN interface. This attribute will be exported when enabling FQDN gateway firenet in Azure. Available in provider version R2.17.1+.\n"
          },
          "fqdnLanVpcId": {
            "type": "string",
            "description": "FQDN LAN VPC ID. This attribute is required when enabling FQDN gateway FireNet in GCP. Available as of provider version R2.18.1+.\n",
            "willReplaceOnChanges": true
          },
          "gwName": {
            "type": "string",
            "description": "Name of the Aviatrix gateway to be created.\n",
            "willReplaceOnChanges": true
          },
          "gwSize": {
            "type": "string",
            "description": "Size of the gateway instance. Example: AWS/AWSGov/AWSChina: \"t2.large\", GCP: \"n1-standard-1\", Azure/AzureGov/AzureChina: \"Standard_B1s\", OCI: \"VM.Standard2.2\".\n"
          },
          "idleTimeout": {
            "type": "integer",
            "description": "It sets the value (seconds) of the [idle timeout](https://docs.aviatrix.com/HowTos/openvpn_faq.html#how-do-i-fix-the-aviatrix-vpn-timing-out-too-quickly). This idle timeout feature is enable only if this attribute is set, otherwise it is disabled. The entered value must be an integer number greater than 300.  Available in provider version R2.17.1+.\n"
          },
          "imageVersion": {
            "type": "string",
            "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
          },
          "insaneMode": {
            "type": "boolean",
            "description": "Enable [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) for Gateway. Insane Mode gateway size must be at least c5 series (AWS) or Standard_D3_v2 (Azure/AzureGov). If enabled, a valid /26 CIDR segment of the VPC must be specified to create a new subnet. Only supported for AWS, AWSGov, Azure, AzureGov, AWS China, Azure China, AWS Top Secret or AWS Secret.  Valid values: true, false.\n"
          },
          "insaneModeAz": {
            "type": "string",
            "description": "Region + Availability Zone of subnet being created for Insane Mode gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is set. Example: AWS: \"us-west-1a\".\n"
          },
          "ldapBaseDn": {
            "type": "string",
            "description": "LDAP base DN. Required if `enable_ldap` is true.\n"
          },
          "ldapBindDn": {
            "type": "string",
            "description": "LDAP bind DN. Required if `enable_ldap` is true.\n"
          },
          "ldapPassword": {
            "type": "string",
            "description": "LDAP password. Required if `enable_ldap` is true.\n",
            "secret": true
          },
          "ldapServer": {
            "type": "string",
            "description": "LDAP server address. Required if `enable_ldap` is true.\n"
          },
          "ldapUsernameAttribute": {
            "type": "string",
            "description": "LDAP user attribute. Required if `enable_ldap` is true.\n"
          },
          "maxVpnConn": {
            "type": "string",
            "description": "Maximum number of active VPN users allowed to be connected to this gateway. Required if `vpn_access` is true. Make sure the number is smaller than the VPN CIDR block. Example: 100. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.14.**\n"
          },
          "monitorExcludeLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.17.1+.\n"
          },
          "nameServers": {
            "type": "string",
            "description": "A list of DNS servers used to resolve domain names by a connected VPN user when Split Tunnel Mode is enabled.\n"
          },
          "oktaToken": {
            "type": "string",
            "description": "Token for Okta auth mode. Required if `otp_mode` is \"3\".\n",
            "secret": true
          },
          "oktaUrl": {
            "type": "string",
            "description": "URL for Okta auth mode. Required if `otp_mode` is \"3\".\n"
          },
          "oktaUsernameSuffix": {
            "type": "string",
            "description": "Username suffix for Okta auth mode. Example: \"aviatrix.com\".\n"
          },
          "otpMode": {
            "type": "string",
            "description": "Two step authentication mode. Valid values: \"2\" for DUO, \"3\" for Okta.\n"
          },
          "peeringHaAvailabilityDomain": {
            "type": "string",
            "description": "Peering HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
          },
          "peeringHaAzureEipNameResourceGroup": {
            "type": "string",
            "description": "Name of public IP address resource and its resource group in Azure to be assigned to the HA peering instance. Example: \"IP_Name:Resource_Group_Name\". Required if `peering_ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
          },
          "peeringHaCloudInstanceId": {
            "type": "string",
            "description": "Cloud instance ID of the HA gateway.\n"
          },
          "peeringHaEip": {
            "type": "string",
            "description": "Public IP address to be assigned to the HA peering instance. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
          },
          "peeringHaFaultDomain": {
            "type": "string",
            "description": "Peering HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
          },
          "peeringHaGwName": {
            "type": "string",
            "description": "Aviatrix gateway unique name of HA gateway.\n"
          },
          "peeringHaGwSize": {
            "type": "string",
            "description": "Size of the Peering HA Gateway to be created. Required if enabling Peering HA. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.8.**\n"
          },
          "peeringHaImageVersion": {
            "type": "string",
            "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
          },
          "peeringHaInsaneModeAz": {
            "type": "string",
            "description": "Region + Availability Zone of subnet being created for Insane Mode-enabled Peering HA Gateway. Required for AWS only if `insane_mode` is set and `peering_ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
          },
          "peeringHaPrivateIp": {
            "type": "string",
            "description": "Private IP address of HA gateway.\n"
          },
          "peeringHaSecurityGroupId": {
            "type": "string",
            "description": "HA security group used for the gateway.\n"
          },
          "peeringHaSoftwareVersion": {
            "type": "string",
            "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
          },
          "peeringHaSubnet": {
            "type": "string",
            "description": "Public subnet CIDR to create Peering HA Gateway in. Required if enabling Peering HA for AWS/AWSGov/AWS Top Secret/AWS Secret/Azure/AzureGov/Alibaba Cloud. Optional if enabling Peering HA for GCP. Example: AWS: \"10.0.0.0/16\".\n"
          },
          "peeringHaZone": {
            "type": "string",
            "description": "Zone to create Peering HA Gateway in. Required if enabling Peering HA for GCP. Example: GCP: \"us-west1-c\". Optional for Azure. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "Private IP address of the gateway created.\n"
          },
          "publicDnsServer": {
            "type": "string",
            "description": "DNS server used by the gateway. Default is \"8.8.8.8\", can be overridden with the VPC's setting.\n"
          },
          "publicSubnetFilteringGuardDutyEnforced": {
            "type": "boolean",
            "description": "Whether to enforce Guard Duty IP blocking.  Only valid when `enable_public_subnet_filtering` attribute is true. Valid values: true or false. Default value: true. Available as of provider version R2.18+.\n"
          },
          "publicSubnetFilteringHaRouteTables": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Route tables whose associated public subnets are protected for the HA PSF gateway. Required when `enable_public_subnet_filtering` and `peering_ha_subnet` are set. Available as of provider version R2.18+.\n"
          },
          "publicSubnetFilteringRouteTables": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Route tables whose associated public subnets are protected. Only valid when `enable_public_subnet_filtering` attribute is true. Available as of provider version R2.18+.\n"
          },
          "renegotiationInterval": {
            "type": "integer",
            "description": "It sets the value (seconds) of the [renegotiation interval](https://docs.aviatrix.com/HowTos/openvpn_faq.html#how-do-i-fix-the-aviatrix-vpn-timing-out-too-quickly). This renegotiation interval feature is enable only if this attribute is set, otherwise it is disabled. The entered value must be an integer number greater than 300. Available in provider version R2.17.1+.\n"
          },
          "rxQueueSize": {
            "type": "string",
            "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
          },
          "samlEnabled": {
            "type": "boolean",
            "description": "Enable/disable SAML. This field is available in Controller version 3.3 or later release. Valid values: true, false. Default value: false.\n"
          },
          "searchDomains": {
            "type": "string",
            "description": "A list of domain names that will use the NameServer when a specific name is not in the destination when Split Tunnel Mode is enabled.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Security group used for the gateway.\n"
          },
          "singleAzHa": {
            "type": "boolean",
            "description": "If enabled, Controller monitors the health of the gateway and restarts the gateway if it becomes unreachable. Valid values: true, false. Default value: false.\n"
          },
          "singleIpSnat": {
            "type": "boolean",
            "description": "Enable Source NAT in \"single ip\" mode for this gateway. Valid values: true, false. Default value: false. **NOTE: If using SNAT for FQDN use-case, please see notes here.**\n"
          },
          "softwareVersion": {
            "type": "string",
            "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
          },
          "splitTunnel": {
            "type": "boolean",
            "description": "Enable/disable Split Tunnel Mode. Valid values: true, false. Default value: true. Please see [here](https://docs.aviatrix.com/HowTos/gateway.html#split-tunnel-mode) for more information on split tunnel.\n"
          },
          "spotPrice": {
            "type": "string",
            "description": "Price for spot instance. NOT supported for production deployment.\n"
          },
          "subnet": {
            "type": "string",
            "description": "A VPC network address range selected from one of the available network ranges. Example: \"172.31.0.0/20\". **NOTE: If using `insane_mode`, please see notes here.**\n",
            "willReplaceOnChanges": true
          },
          "tagLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "(Optional) Tag list of the gateway instance. Only available for AWS, AWSGov, AWSChina, Azure, AzureGov and AzureChina gateways. Example: [\"key1:value1\", \"key2:value2\"].\n* `storage_name` (Optional) Specify a storage account. Required if `cloud_type` is 2048 (AzureChina). Removed in Provider version 2.21.0+.\n",
            "deprecationMessage": "Use tags instead."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags to assign to the gateway. Only available for AWS, AWSGov, AWSChina, Azure, AzureGov, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character.  Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
          },
          "tunnelDetectionTime": {
            "type": "integer",
            "description": "The IPSec tunnel down detection time for the Gateway.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID/VNet name of cloud provider. Example: AWS/AWSGov/AWSChina: \"vpc-abcd1234\", GCP: \"vpc-gcp-test~-~project-id\", Azure/AzureGov/AzureChina: \"vnet_name:rg_name:resource_guid\", OCI: \"ocid1.vcn.oc1.iad.aaaaaaaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdsq\".\n",
            "willReplaceOnChanges": true
          },
          "vpcReg": {
            "type": "string",
            "description": "VPC region the gateway will be created in. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1\", AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n",
            "willReplaceOnChanges": true
          },
          "vpnAccess": {
            "type": "boolean",
            "description": "Enable [user access through VPN](https://docs.aviatrix.com/HowTos/gateway.html#vpn-access) to this gateway. Valid values: true, false.\n"
          },
          "vpnCidr": {
            "type": "string",
            "description": "VPN CIDR block for the gateway. Required if `vpn_access` is true. Example: \"192.168.43.0/24\".\n"
          },
          "vpnProtocol": {
            "type": "string",
            "description": "Transport mode for VPN connection. All `cloud_types` support TCP with ELB, and UDP without ELB. AWS(1) additionally supports UDP with ELB. Valid values: \"TCP\", \"UDP\". If not specified, \"TCP\" will be used.\n"
          },
          "zone": {
            "type": "string",
            "description": "Availability Zone. Only available for Azure and Public Subnet Filtering gateway. Available for Azure as of provider version R2.17+.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixGatewayCertificateConfig:AviatrixGatewayCertificateConfig": {
      "description": "The **aviatrix_gateway_certificate_config** resource allows the management of Aviatrix [gateway certificate](https://docs.aviatrix.com/HowTos/controller_certificate.html#gateway-certificate-management) configuration. Available as of provider version R2.18.1+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Aviatrix Gateway Certificate Management\nconst testGatewayCert = new aviatrix.AviatrixGatewayCertificateConfig(\"testGatewayCert\", {\n    caCertificate: fs.readFileSync(\"path/to/CA_cert.pem\"),\n    caPrivateKey: fs.readFileSync(\"path/to/CA_private.key\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Aviatrix Gateway Certificate Management\ntest_gateway_cert = aviatrix.AviatrixGatewayCertificateConfig(\"testGatewayCert\",\n    ca_certificate=(lambda path: open(path).read())(\"path/to/CA_cert.pem\"),\n    ca_private_key=(lambda path: open(path).read())(\"path/to/CA_private.key\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Aviatrix Gateway Certificate Management\n    var testGatewayCert = new Aviatrix.AviatrixGatewayCertificateConfig(\"testGatewayCert\", new()\n    {\n        CaCertificate = File.ReadAllText(\"path/to/CA_cert.pem\"),\n        CaPrivateKey = File.ReadAllText(\"path/to/CA_private.key\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixGatewayCertificateConfig(ctx, \"testGatewayCert\", &aviatrix.AviatrixGatewayCertificateConfigArgs{\n\t\t\tCaCertificate: readFileOrPanic(\"path/to/CA_cert.pem\"),\n\t\t\tCaPrivateKey:  readFileOrPanic(\"path/to/CA_private.key\"),\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.aviatrix.AviatrixGatewayCertificateConfig;\nimport com.pulumi.aviatrix.AviatrixGatewayCertificateConfigArgs;\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 testGatewayCert = new AviatrixGatewayCertificateConfig(\"testGatewayCert\", AviatrixGatewayCertificateConfigArgs.builder()        \n            .caCertificate(Files.readString(Paths.get(\"path/to/CA_cert.pem\")))\n            .caPrivateKey(Files.readString(Paths.get(\"path/to/CA_private.key\")))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Aviatrix Gateway Certificate Management\n  testGatewayCert:\n    type: aviatrix:AviatrixGatewayCertificateConfig\n    properties:\n      caCertificate:\n        fn::readFile: path/to/CA_cert.pem\n      caPrivateKey:\n        fn::readFile: path/to/CA_private.key\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n!> **WARNING:** When importing, the provider cannot read your private key or certificate into the state file. After importing, if you do not want to change the values of the CA private key or certificate you must set the attributes `ca_certificate` and `ca_private_key` to the empty string (\"\"). Otherwise, Terraform will see a diff and force replacement. `aviatrix_gateway_certificate_config` can be imported using controller IP with the dots(.) replaces with dashes(-), e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixGatewayCertificateConfig:AviatrixGatewayCertificateConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "CA Certificate in PEM format. To read certificate from a file please use the built-in `file` function.\n"
        },
        "caPrivateKey": {
          "type": "string",
          "description": "CA Private Key. To read the private key from a file please use the built-in `file` function.\n",
          "secret": true
        }
      },
      "type": "object",
      "required": [
        "caCertificate",
        "caPrivateKey"
      ],
      "inputProperties": {
        "caCertificate": {
          "type": "string",
          "description": "CA Certificate in PEM format. To read certificate from a file please use the built-in `file` function.\n",
          "willReplaceOnChanges": true
        },
        "caPrivateKey": {
          "type": "string",
          "description": "CA Private Key. To read the private key from a file please use the built-in `file` function.\n",
          "secret": true,
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "caCertificate",
        "caPrivateKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixGatewayCertificateConfig resources.\n",
        "properties": {
          "caCertificate": {
            "type": "string",
            "description": "CA Certificate in PEM format. To read certificate from a file please use the built-in `file` function.\n",
            "willReplaceOnChanges": true
          },
          "caPrivateKey": {
            "type": "string",
            "description": "CA Private Key. To read the private key from a file please use the built-in `file` function.\n",
            "secret": true,
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixGatewayDnat:AviatrixGatewayDnat": {
      "description": "\n\n\n## Import\n\n**gateway_dnat** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixGatewayDnat:AviatrixGatewayDnat test gw_name\n```\n\n ",
      "properties": {
        "connectionPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewayDnatConnectionPolicy:AviatrixGatewayDnatConnectionPolicy"
          },
          "description": "Computed attribute to store the previous connection policy.\n"
        },
        "dnatPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewayDnatDnatPolicy:AviatrixGatewayDnatDnatPolicy"
          },
          "description": "Policy rule applied for enabling Destination NAT (DNAT), which allows you to change the destination to a virtual address range. Currently only supports AWS(1) and Azure(8).\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Aviatrix gateway the custom DNAT will be configured for.\n"
        },
        "interfacePolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewayDnatInterfacePolicy:AviatrixGatewayDnatInterfacePolicy"
          },
          "description": "Computed attribute to store the previous interface policy.\n"
        },
        "syncToHa": {
          "type": "boolean",
          "description": "Sync the policies to the HA gateway. Valid values: true, false. Default: true.\n"
        }
      },
      "type": "object",
      "required": [
        "connectionPolicies",
        "dnatPolicies",
        "gwName",
        "interfacePolicies"
      ],
      "inputProperties": {
        "dnatPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewayDnatDnatPolicy:AviatrixGatewayDnatDnatPolicy"
          },
          "description": "Policy rule applied for enabling Destination NAT (DNAT), which allows you to change the destination to a virtual address range. Currently only supports AWS(1) and Azure(8).\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Aviatrix gateway the custom DNAT will be configured for.\n",
          "willReplaceOnChanges": true
        },
        "syncToHa": {
          "type": "boolean",
          "description": "Sync the policies to the HA gateway. Valid values: true, false. Default: true.\n"
        }
      },
      "requiredInputs": [
        "dnatPolicies",
        "gwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixGatewayDnat resources.\n",
        "properties": {
          "connectionPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixGatewayDnatConnectionPolicy:AviatrixGatewayDnatConnectionPolicy"
            },
            "description": "Computed attribute to store the previous connection policy.\n"
          },
          "dnatPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixGatewayDnatDnatPolicy:AviatrixGatewayDnatDnatPolicy"
            },
            "description": "Policy rule applied for enabling Destination NAT (DNAT), which allows you to change the destination to a virtual address range. Currently only supports AWS(1) and Azure(8).\n"
          },
          "gwName": {
            "type": "string",
            "description": "Name of the Aviatrix gateway the custom DNAT will be configured for.\n",
            "willReplaceOnChanges": true
          },
          "interfacePolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixGatewayDnatInterfacePolicy:AviatrixGatewayDnatInterfacePolicy"
            },
            "description": "Computed attribute to store the previous interface policy.\n"
          },
          "syncToHa": {
            "type": "boolean",
            "description": "Sync the policies to the HA gateway. Valid values: true, false. Default: true.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixGatewaySnat:AviatrixGatewaySnat": {
      "description": "\n\n\n## Import\n\n**gateway_snat** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixGatewaySnat:AviatrixGatewaySnat test gw_name\n```\n\n ",
      "properties": {
        "connectionPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewaySnatConnectionPolicy:AviatrixGatewaySnatConnectionPolicy"
          },
          "description": "Computed attribute to store the previous connection policy.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Aviatrix gateway the custom SNAT will be configured for.\n"
        },
        "interfacePolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewaySnatInterfacePolicy:AviatrixGatewaySnatInterfacePolicy"
          },
          "description": "Computed attribute to store the previous interface policy.\n"
        },
        "snatMode": {
          "type": "string",
          "description": "NAT mode. Valid values: \"customized_snat\". Default value: \"customized_snat\".\n"
        },
        "snatPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewaySnatSnatPolicy:AviatrixGatewaySnatSnatPolicy"
          },
          "description": "Policy rule applied for enabling source NAT (mode: \"customized_snat\"). Currently only supports AWS(1) and Azure(8).\n"
        },
        "syncToHa": {
          "type": "boolean",
          "description": "Sync the policies to the HA gateway. Valid values: true, false. Default: false.\n"
        }
      },
      "type": "object",
      "required": [
        "connectionPolicies",
        "gwName",
        "interfacePolicies"
      ],
      "inputProperties": {
        "gwName": {
          "type": "string",
          "description": "Name of the Aviatrix gateway the custom SNAT will be configured for.\n",
          "willReplaceOnChanges": true
        },
        "snatMode": {
          "type": "string",
          "description": "NAT mode. Valid values: \"customized_snat\". Default value: \"customized_snat\".\n"
        },
        "snatPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixGatewaySnatSnatPolicy:AviatrixGatewaySnatSnatPolicy"
          },
          "description": "Policy rule applied for enabling source NAT (mode: \"customized_snat\"). Currently only supports AWS(1) and Azure(8).\n"
        },
        "syncToHa": {
          "type": "boolean",
          "description": "Sync the policies to the HA gateway. Valid values: true, false. Default: false.\n"
        }
      },
      "requiredInputs": [
        "gwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixGatewaySnat resources.\n",
        "properties": {
          "connectionPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixGatewaySnatConnectionPolicy:AviatrixGatewaySnatConnectionPolicy"
            },
            "description": "Computed attribute to store the previous connection policy.\n"
          },
          "gwName": {
            "type": "string",
            "description": "Name of the Aviatrix gateway the custom SNAT will be configured for.\n",
            "willReplaceOnChanges": true
          },
          "interfacePolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixGatewaySnatInterfacePolicy:AviatrixGatewaySnatInterfacePolicy"
            },
            "description": "Computed attribute to store the previous interface policy.\n"
          },
          "snatMode": {
            "type": "string",
            "description": "NAT mode. Valid values: \"customized_snat\". Default value: \"customized_snat\".\n"
          },
          "snatPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixGatewaySnatSnatPolicy:AviatrixGatewaySnatSnatPolicy"
            },
            "description": "Policy rule applied for enabling source NAT (mode: \"customized_snat\"). Currently only supports AWS(1) and Azure(8).\n"
          },
          "syncToHa": {
            "type": "boolean",
            "description": "Sync the policies to the HA gateway. Valid values: true, false. Default: false.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixGeoVpn:AviatrixGeoVpn": {
      "description": "The **aviatrix_geo_vpn** resource enables and manages the [Aviatrix Geo VPN feature](https://docs.aviatrix.com/HowTos/GeoVPN.html).\n\n> **NOTE:** If ELBs/gateways are being managed by the Geo VPN, in order to update VPN configurations of the Geo VPN, all the VPN configurations of the ELBs/gateways must be updated simultaneously and share the same values. This can be achieved by managing the VPN configurations through variables and updating their values accordingly.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Geo VPN\nconst testGeoVpn = new aviatrix.AviatrixGeoVpn(\"test_geo_vpn\", {\n    accountName: \"devops-aws\",\n    cloudType: 1,\n    domainName: \"aviatrix.live\",\n    elbDnsNames: [\n        \"elb-test1-497f5e89.elb.us-west-1.amazonaws.com\",\n        \"elb-test2-974f895e.elb.us-east-2.amazonaws.com\",\n    ],\n    serviceName: \"vpn\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Geo VPN\ntest_geo_vpn = aviatrix.AviatrixGeoVpn(\"testGeoVpn\",\n    account_name=\"devops-aws\",\n    cloud_type=1,\n    domain_name=\"aviatrix.live\",\n    elb_dns_names=[\n        \"elb-test1-497f5e89.elb.us-west-1.amazonaws.com\",\n        \"elb-test2-974f895e.elb.us-east-2.amazonaws.com\",\n    ],\n    service_name=\"vpn\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Geo VPN\n    var testGeoVpn = new Aviatrix.AviatrixGeoVpn(\"testGeoVpn\", new()\n    {\n        AccountName = \"devops-aws\",\n        CloudType = 1,\n        DomainName = \"aviatrix.live\",\n        ElbDnsNames = new[]\n        {\n            \"elb-test1-497f5e89.elb.us-west-1.amazonaws.com\",\n            \"elb-test2-974f895e.elb.us-east-2.amazonaws.com\",\n        },\n        ServiceName = \"vpn\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixGeoVpn(ctx, \"testGeoVpn\", &aviatrix.AviatrixGeoVpnArgs{\n\t\t\tAccountName: pulumi.String(\"devops-aws\"),\n\t\t\tCloudType:   pulumi.Int(1),\n\t\t\tDomainName:  pulumi.String(\"aviatrix.live\"),\n\t\t\tElbDnsNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"elb-test1-497f5e89.elb.us-west-1.amazonaws.com\"),\n\t\t\t\tpulumi.String(\"elb-test2-974f895e.elb.us-east-2.amazonaws.com\"),\n\t\t\t},\n\t\t\tServiceName: pulumi.String(\"vpn\"),\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.aviatrix.AviatrixGeoVpn;\nimport com.pulumi.aviatrix.AviatrixGeoVpnArgs;\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 testGeoVpn = new AviatrixGeoVpn(\"testGeoVpn\", AviatrixGeoVpnArgs.builder()        \n            .accountName(\"devops-aws\")\n            .cloudType(1)\n            .domainName(\"aviatrix.live\")\n            .elbDnsNames(            \n                \"elb-test1-497f5e89.elb.us-west-1.amazonaws.com\",\n                \"elb-test2-974f895e.elb.us-east-2.amazonaws.com\")\n            .serviceName(\"vpn\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Geo VPN\n  testGeoVpn:\n    type: aviatrix:AviatrixGeoVpn\n    properties:\n      accountName: devops-aws\n      cloudType: 1\n      domainName: aviatrix.live\n      elbDnsNames:\n        - elb-test1-497f5e89.elb.us-west-1.amazonaws.com\n        - elb-test2-974f895e.elb.us-east-2.amazonaws.com\n      serviceName: vpn\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**geo_vpn** can be imported using the `service_name` and `domain_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixGeoVpn:AviatrixGeoVpn test service_name~domain_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1) is supported.\n"
        },
        "domainName": {
          "type": "string",
          "description": "The hosted domain name. It must be hosted by AWS Route53 or Azure DNS in the selected account.\n"
        },
        "elbDnsNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of ELB names to attach to this Geo VPN name.\n"
        },
        "serviceName": {
          "type": "string",
          "description": "The hostname that users will connect to. A DNS record will be created for this name in the specified domain name.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "cloudType",
        "domainName",
        "elbDnsNames",
        "serviceName"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n",
          "willReplaceOnChanges": true
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1) is supported.\n",
          "willReplaceOnChanges": true
        },
        "domainName": {
          "type": "string",
          "description": "The hosted domain name. It must be hosted by AWS Route53 or Azure DNS in the selected account.\n",
          "willReplaceOnChanges": true
        },
        "elbDnsNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of ELB names to attach to this Geo VPN name.\n"
        },
        "serviceName": {
          "type": "string",
          "description": "The hostname that users will connect to. A DNS record will be created for this name in the specified domain name.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType",
        "domainName",
        "elbDnsNames",
        "serviceName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixGeoVpn resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n",
            "willReplaceOnChanges": true
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1) is supported.\n",
            "willReplaceOnChanges": true
          },
          "domainName": {
            "type": "string",
            "description": "The hosted domain name. It must be hosted by AWS Route53 or Azure DNS in the selected account.\n",
            "willReplaceOnChanges": true
          },
          "elbDnsNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of ELB names to attach to this Geo VPN name.\n"
          },
          "serviceName": {
            "type": "string",
            "description": "The hostname that users will connect to. A DNS record will be created for this name in the specified domain name.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixMicrosegPolicyList:AviatrixMicrosegPolicyList": {
      "description": "!> **WARNING** **aviatrix_microseg_policy_list** is part of the Micro-segmentation private preview feature for R2.22.0. If you wish to enable a private preview mode feature, please contact your sales representative or Aviatrix Support.\n\nThe **aviatrix_microseg_policy_list** resource handles the creation and management of Micro-segmentation Policies. Available as of Provider R2.22.0+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Microseg Policy\nconst test = new aviatrix.AviatrixMicrosegPolicyList(\"test\", {\n    policies: [\n        {\n            action: \"DENY\",\n            dstAppDomains: [\"82e50c85-82bf-4b3b-b9da-aaed34a3aa53\"],\n            logging: false,\n            name: \"microseg-policy-1\",\n            priority: 1,\n            protocol: \"ICMP\",\n            srcAppDomains: [\"f15c9890-c8c4-4c1a-a2b5-ef0ab34d2e30\"],\n            watch: false,\n        },\n        {\n            action: \"PERMIT\",\n            dstAppDomains: [\"f05b0ad7-d2d7-4d16-b2f6-48492319414c\"],\n            name: \"microseg-policy\",\n            portRanges: [{\n                hi: 50000,\n                lo: 49000,\n            }],\n            priority: 0,\n            protocol: \"TCP\",\n            srcAppDomains: [\"7e7d1573-7a7a-4a53-bcb5-1ad5041961e0\"],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Microseg Policy\ntest = aviatrix.AviatrixMicrosegPolicyList(\"test\", policies=[\n    aviatrix.AviatrixMicrosegPolicyListPolicyArgs(\n        action=\"DENY\",\n        dst_app_domains=[\"82e50c85-82bf-4b3b-b9da-aaed34a3aa53\"],\n        logging=False,\n        name=\"microseg-policy-1\",\n        priority=1,\n        protocol=\"ICMP\",\n        src_app_domains=[\"f15c9890-c8c4-4c1a-a2b5-ef0ab34d2e30\"],\n        watch=False,\n    ),\n    aviatrix.AviatrixMicrosegPolicyListPolicyArgs(\n        action=\"PERMIT\",\n        dst_app_domains=[\"f05b0ad7-d2d7-4d16-b2f6-48492319414c\"],\n        name=\"microseg-policy\",\n        port_ranges=[aviatrix.AviatrixMicrosegPolicyListPolicyPortRangeArgs(\n            hi=50000,\n            lo=49000,\n        )],\n        priority=0,\n        protocol=\"TCP\",\n        src_app_domains=[\"7e7d1573-7a7a-4a53-bcb5-1ad5041961e0\"],\n    ),\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Microseg Policy\n    var test = new Aviatrix.AviatrixMicrosegPolicyList(\"test\", new()\n    {\n        Policies = new[]\n        {\n            new Aviatrix.Inputs.AviatrixMicrosegPolicyListPolicyArgs\n            {\n                Action = \"DENY\",\n                DstAppDomains = new[]\n                {\n                    \"82e50c85-82bf-4b3b-b9da-aaed34a3aa53\",\n                },\n                Logging = false,\n                Name = \"microseg-policy-1\",\n                Priority = 1,\n                Protocol = \"ICMP\",\n                SrcAppDomains = new[]\n                {\n                    \"f15c9890-c8c4-4c1a-a2b5-ef0ab34d2e30\",\n                },\n                Watch = false,\n            },\n            new Aviatrix.Inputs.AviatrixMicrosegPolicyListPolicyArgs\n            {\n                Action = \"PERMIT\",\n                DstAppDomains = new[]\n                {\n                    \"f05b0ad7-d2d7-4d16-b2f6-48492319414c\",\n                },\n                Name = \"microseg-policy\",\n                PortRanges = new[]\n                {\n                    new Aviatrix.Inputs.AviatrixMicrosegPolicyListPolicyPortRangeArgs\n                    {\n                        Hi = 50000,\n                        Lo = 49000,\n                    },\n                },\n                Priority = 0,\n                Protocol = \"TCP\",\n                SrcAppDomains = new[]\n                {\n                    \"7e7d1573-7a7a-4a53-bcb5-1ad5041961e0\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixMicrosegPolicyList(ctx, \"test\", &aviatrix.AviatrixMicrosegPolicyListArgs{\n\t\t\tPolicies: AviatrixMicrosegPolicyListPolicyArray{\n\t\t\t\t&AviatrixMicrosegPolicyListPolicyArgs{\n\t\t\t\t\tAction: pulumi.String(\"DENY\"),\n\t\t\t\t\tDstAppDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"82e50c85-82bf-4b3b-b9da-aaed34a3aa53\"),\n\t\t\t\t\t},\n\t\t\t\t\tLogging:  pulumi.Bool(false),\n\t\t\t\t\tName:     pulumi.String(\"microseg-policy-1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"ICMP\"),\n\t\t\t\t\tSrcAppDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"f15c9890-c8c4-4c1a-a2b5-ef0ab34d2e30\"),\n\t\t\t\t\t},\n\t\t\t\t\tWatch: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\t&AviatrixMicrosegPolicyListPolicyArgs{\n\t\t\t\t\tAction: pulumi.String(\"PERMIT\"),\n\t\t\t\t\tDstAppDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"f05b0ad7-d2d7-4d16-b2f6-48492319414c\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"microseg-policy\"),\n\t\t\t\t\tPortRanges: AviatrixMicrosegPolicyListPolicyPortRangeArray{\n\t\t\t\t\t\t&AviatrixMicrosegPolicyListPolicyPortRangeArgs{\n\t\t\t\t\t\t\tHi: pulumi.Int(50000),\n\t\t\t\t\t\t\tLo: pulumi.Int(49000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tPriority: pulumi.Int(0),\n\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\t\t\tSrcAppDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"7e7d1573-7a7a-4a53-bcb5-1ad5041961e0\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixMicrosegPolicyList;\nimport com.pulumi.aviatrix.AviatrixMicrosegPolicyListArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixMicrosegPolicyListPolicyArgs;\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 test = new AviatrixMicrosegPolicyList(\"test\", AviatrixMicrosegPolicyListArgs.builder()        \n            .policies(            \n                AviatrixMicrosegPolicyListPolicyArgs.builder()\n                    .action(\"DENY\")\n                    .dstAppDomains(\"82e50c85-82bf-4b3b-b9da-aaed34a3aa53\")\n                    .logging(false)\n                    .name(\"microseg-policy-1\")\n                    .priority(1)\n                    .protocol(\"ICMP\")\n                    .srcAppDomains(\"f15c9890-c8c4-4c1a-a2b5-ef0ab34d2e30\")\n                    .watch(false)\n                    .build(),\n                AviatrixMicrosegPolicyListPolicyArgs.builder()\n                    .action(\"PERMIT\")\n                    .dstAppDomains(\"f05b0ad7-d2d7-4d16-b2f6-48492319414c\")\n                    .name(\"microseg-policy\")\n                    .portRanges(AviatrixMicrosegPolicyListPolicyPortRangeArgs.builder()\n                        .hi(50000)\n                        .lo(49000)\n                        .build())\n                    .priority(0)\n                    .protocol(\"TCP\")\n                    .srcAppDomains(\"7e7d1573-7a7a-4a53-bcb5-1ad5041961e0\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Microseg Policy\n  test:\n    type: aviatrix:AviatrixMicrosegPolicyList\n    properties:\n      policies:\n        - action: DENY\n          dstAppDomains:\n            - 82e50c85-82bf-4b3b-b9da-aaed34a3aa53\n          logging: false\n          name: microseg-policy-1\n          priority: 1\n          protocol: ICMP\n          srcAppDomains:\n            - f15c9890-c8c4-4c1a-a2b5-ef0ab34d2e30\n          watch: false\n        - action: PERMIT\n          dstAppDomains:\n            - f05b0ad7-d2d7-4d16-b2f6-48492319414c\n          name: microseg-policy\n          portRanges:\n            - hi: 50000\n              lo: 49000\n          priority: 0\n          protocol: TCP\n          srcAppDomains:\n            - 7e7d1573-7a7a-4a53-bcb5-1ad5041961e0\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_microseg_policy_list** can be imported using the controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixMicrosegPolicyList:AviatrixMicrosegPolicyList test 10-11-12-13\n```\n\n ",
      "properties": {
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixMicrosegPolicyListPolicy:AviatrixMicrosegPolicyListPolicy"
          },
          "description": "List of policies.\n"
        }
      },
      "type": "object",
      "required": [
        "policies"
      ],
      "inputProperties": {
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixMicrosegPolicyListPolicy:AviatrixMicrosegPolicyListPolicy"
          },
          "description": "List of policies.\n"
        }
      },
      "requiredInputs": [
        "policies"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixMicrosegPolicyList resources.\n",
        "properties": {
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixMicrosegPolicyListPolicy:AviatrixMicrosegPolicyListPolicy"
            },
            "description": "List of policies.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixNetflowAgent:AviatrixNetflowAgent": {
      "description": "The **aviatrix_netflow_agent** resource allows the enabling and disabling of netflow agent.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable netflow agent\nconst testNetflowAgent = new aviatrix.AviatrixNetflowAgent(\"test_netflow_agent\", {\n    excludedGateways: [\n        \"a\",\n        \"b\",\n    ],\n    port: 10,\n    serverIp: \"1.2.3.4\",\n    version: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable netflow agent\ntest_netflow_agent = aviatrix.AviatrixNetflowAgent(\"testNetflowAgent\",\n    excluded_gateways=[\n        \"a\",\n        \"b\",\n    ],\n    port=10,\n    server_ip=\"1.2.3.4\",\n    version=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable netflow agent\n    var testNetflowAgent = new Aviatrix.AviatrixNetflowAgent(\"testNetflowAgent\", new()\n    {\n        ExcludedGateways = new[]\n        {\n            \"a\",\n            \"b\",\n        },\n        Port = 10,\n        ServerIp = \"1.2.3.4\",\n        Version = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixNetflowAgent(ctx, \"testNetflowAgent\", &aviatrix.AviatrixNetflowAgentArgs{\n\t\t\tExcludedGateways: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\tpulumi.String(\"b\"),\n\t\t\t},\n\t\t\tPort:     pulumi.Int(10),\n\t\t\tServerIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tVersion:  pulumi.Int(5),\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.aviatrix.AviatrixNetflowAgent;\nimport com.pulumi.aviatrix.AviatrixNetflowAgentArgs;\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 testNetflowAgent = new AviatrixNetflowAgent(\"testNetflowAgent\", AviatrixNetflowAgentArgs.builder()        \n            .excludedGateways(            \n                \"a\",\n                \"b\")\n            .port(10)\n            .serverIp(\"1.2.3.4\")\n            .version(5)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable netflow agent\n  testNetflowAgent:\n    type: aviatrix:AviatrixNetflowAgent\n    properties:\n      excludedGateways:\n        - a\n        - b\n      port: 10\n      serverIp: 1.2.3.4\n      version: 5\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**netflow_agent** can be imported using \"netflow_agent\", e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixNetflowAgent:AviatrixNetflowAgent test netflow_agent\n```\n\n ",
      "properties": {
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n"
        },
        "port": {
          "type": "integer",
          "description": "Netflow server port.\n"
        },
        "serverIp": {
          "type": "string",
          "description": "Netflow server IP address.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of netflow agent.\n"
        },
        "version": {
          "type": "integer",
          "description": "Netflow version (5 or 9). 5 by default.\n"
        }
      },
      "type": "object",
      "required": [
        "port",
        "serverIp",
        "status"
      ],
      "inputProperties": {
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
          "willReplaceOnChanges": true
        },
        "port": {
          "type": "integer",
          "description": "Netflow server port.\n",
          "willReplaceOnChanges": true
        },
        "serverIp": {
          "type": "string",
          "description": "Netflow server IP address.\n",
          "willReplaceOnChanges": true
        },
        "version": {
          "type": "integer",
          "description": "Netflow version (5 or 9). 5 by default.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "port",
        "serverIp"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixNetflowAgent resources.\n",
        "properties": {
          "excludedGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
            "willReplaceOnChanges": true
          },
          "port": {
            "type": "integer",
            "description": "Netflow server port.\n",
            "willReplaceOnChanges": true
          },
          "serverIp": {
            "type": "string",
            "description": "Netflow server IP address.\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "The status of netflow agent.\n"
          },
          "version": {
            "type": "integer",
            "description": "Netflow version (5 or 9). 5 by default.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixPeriodicPing:AviatrixPeriodicPing": {
      "description": "The **aviatrix_periodic_ping** resource manages the periodic ping feature for Aviatrix gateways.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable Periodic Ping for a Gateway\nconst testPing = new aviatrix.AviatrixPeriodicPing(\"test_ping\", {\n    gwName: \"test-gw\",\n    interval: 600,\n    ipAddress: \"127.0.0.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable Periodic Ping for a Gateway\ntest_ping = aviatrix.AviatrixPeriodicPing(\"testPing\",\n    gw_name=\"test-gw\",\n    interval=600,\n    ip_address=\"127.0.0.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable Periodic Ping for a Gateway\n    var testPing = new Aviatrix.AviatrixPeriodicPing(\"testPing\", new()\n    {\n        GwName = \"test-gw\",\n        Interval = 600,\n        IpAddress = \"127.0.0.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixPeriodicPing(ctx, \"testPing\", &aviatrix.AviatrixPeriodicPingArgs{\n\t\t\tGwName:    pulumi.String(\"test-gw\"),\n\t\t\tInterval:  pulumi.Int(600),\n\t\t\tIpAddress: pulumi.String(\"127.0.0.1\"),\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.aviatrix.AviatrixPeriodicPing;\nimport com.pulumi.aviatrix.AviatrixPeriodicPingArgs;\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 testPing = new AviatrixPeriodicPing(\"testPing\", AviatrixPeriodicPingArgs.builder()        \n            .gwName(\"test-gw\")\n            .interval(600)\n            .ipAddress(\"127.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable Periodic Ping for a Gateway\n  testPing:\n    type: aviatrix:AviatrixPeriodicPing\n    properties:\n      gwName: test-gw\n      interval: 600\n      ipAddress: 127.0.0.1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_periodic_ping** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixPeriodicPing:AviatrixPeriodicPing test gw_name\n```\n\n ",
      "properties": {
        "gwName": {
          "type": "string",
          "description": "Name of the gateway.\n"
        },
        "interval": {
          "type": "integer",
          "description": "Interval between pings in seconds.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "IP Address to ping.\n"
        }
      },
      "type": "object",
      "required": [
        "gwName",
        "interval",
        "ipAddress"
      ],
      "inputProperties": {
        "gwName": {
          "type": "string",
          "description": "Name of the gateway.\n",
          "willReplaceOnChanges": true
        },
        "interval": {
          "type": "integer",
          "description": "Interval between pings in seconds.\n",
          "willReplaceOnChanges": true
        },
        "ipAddress": {
          "type": "string",
          "description": "IP Address to ping.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "gwName",
        "interval",
        "ipAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixPeriodicPing resources.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Name of the gateway.\n",
            "willReplaceOnChanges": true
          },
          "interval": {
            "type": "integer",
            "description": "Interval between pings in seconds.\n",
            "willReplaceOnChanges": true
          },
          "ipAddress": {
            "type": "string",
            "description": "IP Address to ping.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixPrivateModeLb:AviatrixPrivateModeLb": {
      "description": "The **aviatrix_private_mode_lb** resource allows management of a Private Mode load balancer. This resource is available as of provider version R2.23+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a Private Mode Controller load balancer\nconst test = new aviatrix.AviatrixPrivateModeLb(\"test\", {\n    accountName: \"devops\",\n    lbType: \"controller\",\n    region: \"us-east-1\",\n    vpcId: \"vpc-abcdef\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a Private Mode Controller load balancer\ntest = aviatrix.AviatrixPrivateModeLb(\"test\",\n    account_name=\"devops\",\n    lb_type=\"controller\",\n    region=\"us-east-1\",\n    vpc_id=\"vpc-abcdef\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a Private Mode Controller load balancer\n    var test = new Aviatrix.AviatrixPrivateModeLb(\"test\", new()\n    {\n        AccountName = \"devops\",\n        LbType = \"controller\",\n        Region = \"us-east-1\",\n        VpcId = \"vpc-abcdef\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixPrivateModeLb(ctx, \"test\", &aviatrix.AviatrixPrivateModeLbArgs{\n\t\t\tAccountName: pulumi.String(\"devops\"),\n\t\t\tLbType:      pulumi.String(\"controller\"),\n\t\t\tRegion:      pulumi.String(\"us-east-1\"),\n\t\t\tVpcId:       pulumi.String(\"vpc-abcdef\"),\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.aviatrix.AviatrixPrivateModeLb;\nimport com.pulumi.aviatrix.AviatrixPrivateModeLbArgs;\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 test = new AviatrixPrivateModeLb(\"test\", AviatrixPrivateModeLbArgs.builder()        \n            .accountName(\"devops\")\n            .lbType(\"controller\")\n            .region(\"us-east-1\")\n            .vpcId(\"vpc-abcdef\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a Private Mode Controller load balancer\n  test:\n    type: aviatrix:AviatrixPrivateModeLb\n    properties:\n      accountName: devops\n      lbType: controller\n      region: us-east-1\n      vpcId: vpc-abcdef\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a Private Mode multicloud load balancer\nconst test2 = new aviatrix.AviatrixPrivateModeLb(\"test2\", {\n    accountName: \"devops\",\n    lbType: \"multicloud\",\n    multicloudAccessVpcId: \"vpc-abcdef\",\n    proxies: [{\n        instanceId: \"i-123456\",\n        proxyType: \"multicloud\",\n        vpcId: \"vpc-abcdef\",\n    }],\n    region: \"us-east-1\",\n    vpcId: \"vpc-abcdef\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixPrivateModeLb;\nimport com.pulumi.aviatrix.AviatrixPrivateModeLbArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixPrivateModeLbProxyArgs;\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 test2 = new AviatrixPrivateModeLb(\"test2\", AviatrixPrivateModeLbArgs.builder()        \n            .accountName(\"devops\")\n            .lbType(\"multicloud\")\n            .multicloudAccessVpcId(\"vpc-abcdef\")\n            .proxies(AviatrixPrivateModeLbProxyArgs.builder()\n                .instanceId(\"i-123456\")\n                .proxyType(\"multicloud\")\n                .vpcId(\"vpc-abcdef\")\n                .build())\n            .region(\"us-east-1\")\n            .vpcId(\"vpc-abcdef\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a Private Mode multicloud load balancer\n  test2:\n    type: aviatrix:AviatrixPrivateModeLb\n    properties:\n      accountName: devops\n      lbType: multicloud\n      multicloudAccessVpcId: vpc-abcdef\n      proxies:\n        - instanceId: i-123456\n          proxyType: multicloud\n          vpcId: vpc-abcdef\n      region: us-east-1\n      vpcId: vpc-abcdef\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_private_mode_lb** can be imported using the `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixPrivateModeLb:AviatrixPrivateModeLb test vpc-1234567\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Name of the access account.\n"
        },
        "lbType": {
          "type": "string",
          "description": "Type of load balancer to create. Must be one of controller or multicloud.\n"
        },
        "multicloudAccessVpcId": {
          "type": "string",
          "description": "ID of the VPC with a multicloud endpoint. Required when `lb_type` is multicloud.\n"
        },
        "proxies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixPrivateModeLbProxy:AviatrixPrivateModeLbProxy"
          },
          "description": "List of multicloud proxies. Only valid when `lb_type` is multicloud.\n"
        },
        "region": {
          "type": "string",
          "description": "Name of the region containing the VPC.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the proxy.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "lbType",
        "region",
        "vpcId"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Name of the access account.\n",
          "willReplaceOnChanges": true
        },
        "lbType": {
          "type": "string",
          "description": "Type of load balancer to create. Must be one of controller or multicloud.\n",
          "willReplaceOnChanges": true
        },
        "multicloudAccessVpcId": {
          "type": "string",
          "description": "ID of the VPC with a multicloud endpoint. Required when `lb_type` is multicloud.\n",
          "willReplaceOnChanges": true
        },
        "proxies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixPrivateModeLbProxy:AviatrixPrivateModeLbProxy"
          },
          "description": "List of multicloud proxies. Only valid when `lb_type` is multicloud.\n"
        },
        "region": {
          "type": "string",
          "description": "Name of the region containing the VPC.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the proxy.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "lbType",
        "region",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixPrivateModeLb resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Name of the access account.\n",
            "willReplaceOnChanges": true
          },
          "lbType": {
            "type": "string",
            "description": "Type of load balancer to create. Must be one of controller or multicloud.\n",
            "willReplaceOnChanges": true
          },
          "multicloudAccessVpcId": {
            "type": "string",
            "description": "ID of the VPC with a multicloud endpoint. Required when `lb_type` is multicloud.\n",
            "willReplaceOnChanges": true
          },
          "proxies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixPrivateModeLbProxy:AviatrixPrivateModeLbProxy"
            },
            "description": "List of multicloud proxies. Only valid when `lb_type` is multicloud.\n"
          },
          "region": {
            "type": "string",
            "description": "Name of the region containing the VPC.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the proxy.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixPrivateModeMulticloudEndpoint:AviatrixPrivateModeMulticloudEndpoint": {
      "description": "The **aviatrix_private_mode_multicloud_endpoint** resource allows management of a Private Mode multicloud endpoint. This resource is available as of provider version R2.23+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Controller Private Mode config\nconst test = new aviatrix.AviatrixPrivateModeMulticloudEndpoint(\"test\", {\n    accountName: \"devops\",\n    controllerLbVpcId: \"vpc-abcdefg\",\n    region: \"us-east-1\",\n    vpcId: \"vpc-abcdef\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Private Mode config\ntest = aviatrix.AviatrixPrivateModeMulticloudEndpoint(\"test\",\n    account_name=\"devops\",\n    controller_lb_vpc_id=\"vpc-abcdefg\",\n    region=\"us-east-1\",\n    vpc_id=\"vpc-abcdef\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Private Mode config\n    var test = new Aviatrix.AviatrixPrivateModeMulticloudEndpoint(\"test\", new()\n    {\n        AccountName = \"devops\",\n        ControllerLbVpcId = \"vpc-abcdefg\",\n        Region = \"us-east-1\",\n        VpcId = \"vpc-abcdef\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixPrivateModeMulticloudEndpoint(ctx, \"test\", &aviatrix.AviatrixPrivateModeMulticloudEndpointArgs{\n\t\t\tAccountName:       pulumi.String(\"devops\"),\n\t\t\tControllerLbVpcId: pulumi.String(\"vpc-abcdefg\"),\n\t\t\tRegion:            pulumi.String(\"us-east-1\"),\n\t\t\tVpcId:             pulumi.String(\"vpc-abcdef\"),\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.aviatrix.AviatrixPrivateModeMulticloudEndpoint;\nimport com.pulumi.aviatrix.AviatrixPrivateModeMulticloudEndpointArgs;\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 test = new AviatrixPrivateModeMulticloudEndpoint(\"test\", AviatrixPrivateModeMulticloudEndpointArgs.builder()        \n            .accountName(\"devops\")\n            .controllerLbVpcId(\"vpc-abcdefg\")\n            .region(\"us-east-1\")\n            .vpcId(\"vpc-abcdef\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Private Mode config\n  test:\n    type: aviatrix:AviatrixPrivateModeMulticloudEndpoint\n    properties:\n      accountName: devops\n      controllerLbVpcId: vpc-abcdefg\n      region: us-east-1\n      vpcId: vpc-abcdef\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_private_mode_multicloud_endpoint** can be imported using the `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixPrivateModeMulticloudEndpoint:AviatrixPrivateModeMulticloudEndpoint test vpc-1234567\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Name of the access account.\n"
        },
        "controllerLbVpcId": {
          "type": "string",
          "description": "ID of the VPC containing a Private Mode controller load balancer.\n"
        },
        "dnsEntry": {
          "type": "string",
          "description": "DNS entry of the endpoint.\n"
        },
        "region": {
          "type": "string",
          "description": "Region of the VPC.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "ID of the VPC to create the endpoint in.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "controllerLbVpcId",
        "dnsEntry",
        "region",
        "vpcId"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Name of the access account.\n",
          "willReplaceOnChanges": true
        },
        "controllerLbVpcId": {
          "type": "string",
          "description": "ID of the VPC containing a Private Mode controller load balancer.\n",
          "willReplaceOnChanges": true
        },
        "region": {
          "type": "string",
          "description": "Region of the VPC.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "ID of the VPC to create the endpoint in.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "controllerLbVpcId",
        "region",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixPrivateModeMulticloudEndpoint resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Name of the access account.\n",
            "willReplaceOnChanges": true
          },
          "controllerLbVpcId": {
            "type": "string",
            "description": "ID of the VPC containing a Private Mode controller load balancer.\n",
            "willReplaceOnChanges": true
          },
          "dnsEntry": {
            "type": "string",
            "description": "DNS entry of the endpoint.\n"
          },
          "region": {
            "type": "string",
            "description": "Region of the VPC.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "ID of the VPC to create the endpoint in.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixProxyConfig:AviatrixProxyConfig": {
      "description": "The **aviatrix_proxy_config** resource allows management of an Aviatrix Controller's proxy configurations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Create an Aviatrix Controller Proxy Config\nconst testProxyConfig = new aviatrix.AviatrixProxyConfig(\"testProxyConfig\", {\n    httpProxy: \"172.31.52.145:3127\",\n    httpsProxy: \"172.31.52.145:3129\",\n    proxyCaCertificate: fs.readFileSync(\"/path/to/ca.pem\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Controller Proxy Config\ntest_proxy_config = aviatrix.AviatrixProxyConfig(\"testProxyConfig\",\n    http_proxy=\"172.31.52.145:3127\",\n    https_proxy=\"172.31.52.145:3129\",\n    proxy_ca_certificate=(lambda path: open(path).read())(\"/path/to/ca.pem\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Controller Proxy Config\n    var testProxyConfig = new Aviatrix.AviatrixProxyConfig(\"testProxyConfig\", new()\n    {\n        HttpProxy = \"172.31.52.145:3127\",\n        HttpsProxy = \"172.31.52.145:3129\",\n        ProxyCaCertificate = File.ReadAllText(\"/path/to/ca.pem\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixProxyConfig(ctx, \"testProxyConfig\", &aviatrix.AviatrixProxyConfigArgs{\n\t\t\tHttpProxy:          pulumi.String(\"172.31.52.145:3127\"),\n\t\t\tHttpsProxy:         pulumi.String(\"172.31.52.145:3129\"),\n\t\t\tProxyCaCertificate: readFileOrPanic(\"/path/to/ca.pem\"),\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.aviatrix.AviatrixProxyConfig;\nimport com.pulumi.aviatrix.AviatrixProxyConfigArgs;\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 testProxyConfig = new AviatrixProxyConfig(\"testProxyConfig\", AviatrixProxyConfigArgs.builder()        \n            .httpProxy(\"172.31.52.145:3127\")\n            .httpsProxy(\"172.31.52.145:3129\")\n            .proxyCaCertificate(Files.readString(Paths.get(\"/path/to/ca.pem\")))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Controller Proxy Config\n  testProxyConfig:\n    type: aviatrix:AviatrixProxyConfig\n    properties:\n      httpProxy: 172.31.52.145:3127\n      httpsProxy: 172.31.52.145:3129\n      proxyCaCertificate:\n        fn::readFile: /path/to/ca.pem\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**controller_proxy_config** can be imported using controller IP, e.g. controller IP is 10.11.12.13\n\n```sh\n $ pulumi import aviatrix:index/aviatrixProxyConfig:AviatrixProxyConfig test 10-11-12-13\n```\n\n ",
      "properties": {
        "httpProxy": {
          "type": "string",
          "description": "Http proxy URL.\n"
        },
        "httpsProxy": {
          "type": "string",
          "description": "Https proxy URL.\n"
        },
        "proxyCaCertificate": {
          "type": "string",
          "description": "Server CA Certificate file. Use the `file` function to read from a file.\n"
        }
      },
      "type": "object",
      "required": [
        "httpProxy",
        "httpsProxy"
      ],
      "inputProperties": {
        "httpProxy": {
          "type": "string",
          "description": "Http proxy URL.\n",
          "willReplaceOnChanges": true
        },
        "httpsProxy": {
          "type": "string",
          "description": "Https proxy URL.\n",
          "willReplaceOnChanges": true
        },
        "proxyCaCertificate": {
          "type": "string",
          "description": "Server CA Certificate file. Use the `file` function to read from a file.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "httpProxy",
        "httpsProxy"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixProxyConfig resources.\n",
        "properties": {
          "httpProxy": {
            "type": "string",
            "description": "Http proxy URL.\n",
            "willReplaceOnChanges": true
          },
          "httpsProxy": {
            "type": "string",
            "description": "Https proxy URL.\n",
            "willReplaceOnChanges": true
          },
          "proxyCaCertificate": {
            "type": "string",
            "description": "Server CA Certificate file. Use the `file` function to read from a file.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixRbacGroup:AviatrixRbacGroup": {
      "description": "The **aviatrix_rbac_group** resource allows the creation and management of [Aviatrix (Role-Based Access Control) RBAC groups](https://docs.aviatrix.com/HowTos/rbac_faq.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix RBAC Group\nconst testGroup = new aviatrix.AviatrixRbacGroup(\"test_group\", {\n    groupName: \"write_only\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix RBAC Group\ntest_group = aviatrix.AviatrixRbacGroup(\"testGroup\", group_name=\"write_only\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix RBAC Group\n    var testGroup = new Aviatrix.AviatrixRbacGroup(\"testGroup\", new()\n    {\n        GroupName = \"write_only\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixRbacGroup(ctx, \"testGroup\", &aviatrix.AviatrixRbacGroupArgs{\n\t\t\tGroupName: pulumi.String(\"write_only\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixRbacGroup;\nimport com.pulumi.aviatrix.AviatrixRbacGroupArgs;\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 testGroup = new AviatrixRbacGroup(\"testGroup\", AviatrixRbacGroupArgs.builder()        \n            .groupName(\"write_only\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix RBAC Group\n  testGroup:\n    type: aviatrix:AviatrixRbacGroup\n    properties:\n      groupName: write_only\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**rbac_group** can be imported using the `group_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixRbacGroup:AviatrixRbacGroup test group_name\n```\n\n ",
      "properties": {
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group to be created.\n"
        },
        "localLogin": {
          "type": "boolean",
          "description": "Whether to allow members of an RBAC group to bypass LDAP/MFA for Duo login . Supported values: true, false. Default value: false. Available in provider version R2.17.1+.\n"
        }
      },
      "type": "object",
      "required": [
        "groupName"
      ],
      "inputProperties": {
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group to be created.\n",
          "willReplaceOnChanges": true
        },
        "localLogin": {
          "type": "boolean",
          "description": "Whether to allow members of an RBAC group to bypass LDAP/MFA for Duo login . Supported values: true, false. Default value: false. Available in provider version R2.17.1+.\n"
        }
      },
      "requiredInputs": [
        "groupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixRbacGroup resources.\n",
        "properties": {
          "groupName": {
            "type": "string",
            "description": "This parameter represents the name of a RBAC group to be created.\n",
            "willReplaceOnChanges": true
          },
          "localLogin": {
            "type": "boolean",
            "description": "Whether to allow members of an RBAC group to bypass LDAP/MFA for Duo login . Supported values: true, false. Default value: false. Available in provider version R2.17.1+.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixRbacGroupAccessAccountAttachment:AviatrixRbacGroupAccessAccountAttachment": {
      "description": "The **aviatrix_rbac_group_access_account_attachment** resource allows the creation and management of access account attachments to Aviatrix (Role-Based Access Control) RBAC groups.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix RBAC Group Access Account Attachment\nconst testAttachment = new aviatrix.AviatrixRbacGroupAccessAccountAttachment(\"test_attachment\", {\n    accessAccountName: \"account_name\",\n    groupName: \"write_only\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix RBAC Group Access Account Attachment\ntest_attachment = aviatrix.AviatrixRbacGroupAccessAccountAttachment(\"testAttachment\",\n    access_account_name=\"account_name\",\n    group_name=\"write_only\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix RBAC Group Access Account Attachment\n    var testAttachment = new Aviatrix.AviatrixRbacGroupAccessAccountAttachment(\"testAttachment\", new()\n    {\n        AccessAccountName = \"account_name\",\n        GroupName = \"write_only\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixRbacGroupAccessAccountAttachment(ctx, \"testAttachment\", &aviatrix.AviatrixRbacGroupAccessAccountAttachmentArgs{\n\t\t\tAccessAccountName: pulumi.String(\"account_name\"),\n\t\t\tGroupName:         pulumi.String(\"write_only\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixRbacGroupAccessAccountAttachment;\nimport com.pulumi.aviatrix.AviatrixRbacGroupAccessAccountAttachmentArgs;\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 testAttachment = new AviatrixRbacGroupAccessAccountAttachment(\"testAttachment\", AviatrixRbacGroupAccessAccountAttachmentArgs.builder()        \n            .accessAccountName(\"account_name\")\n            .groupName(\"write_only\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix RBAC Group Access Account Attachment\n  testAttachment:\n    type: aviatrix:AviatrixRbacGroupAccessAccountAttachment\n    properties:\n      accessAccountName: account_name\n      groupName: write_only\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**rbac_group_access_account_attachment** can be imported using the `group_name` and `access_account_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixRbacGroupAccessAccountAttachment:AviatrixRbacGroupAccessAccountAttachment test group_name~access_account_name\n```\n\n ",
      "properties": {
        "accessAccountName": {
          "type": "string",
          "description": "Account name. This can be used for logging in to CloudN console or UserConnect controller.\n"
        },
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group.\n"
        }
      },
      "type": "object",
      "required": [
        "accessAccountName",
        "groupName"
      ],
      "inputProperties": {
        "accessAccountName": {
          "type": "string",
          "description": "Account name. This can be used for logging in to CloudN console or UserConnect controller.\n",
          "willReplaceOnChanges": true
        },
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accessAccountName",
        "groupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixRbacGroupAccessAccountAttachment resources.\n",
        "properties": {
          "accessAccountName": {
            "type": "string",
            "description": "Account name. This can be used for logging in to CloudN console or UserConnect controller.\n",
            "willReplaceOnChanges": true
          },
          "groupName": {
            "type": "string",
            "description": "This parameter represents the name of a RBAC group.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixRbacGroupPermissionAttachment:AviatrixRbacGroupPermissionAttachment": {
      "description": "The **aviatrix_rbac_group_permission_attachment** resource allows the creation and management of permission attachments to Aviatrix (Role-Based Access Control) RBAC groups.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Rbac Group Permission Attachment\nconst testAttachment = new aviatrix.AviatrixRbacGroupPermissionAttachment(\"test_attachment\", {\n    groupName: \"write_only\",\n    permissionName: \"all_write\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Rbac Group Permission Attachment\ntest_attachment = aviatrix.AviatrixRbacGroupPermissionAttachment(\"testAttachment\",\n    group_name=\"write_only\",\n    permission_name=\"all_write\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Rbac Group Permission Attachment\n    var testAttachment = new Aviatrix.AviatrixRbacGroupPermissionAttachment(\"testAttachment\", new()\n    {\n        GroupName = \"write_only\",\n        PermissionName = \"all_write\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixRbacGroupPermissionAttachment(ctx, \"testAttachment\", &aviatrix.AviatrixRbacGroupPermissionAttachmentArgs{\n\t\t\tGroupName:      pulumi.String(\"write_only\"),\n\t\t\tPermissionName: pulumi.String(\"all_write\"),\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.aviatrix.AviatrixRbacGroupPermissionAttachment;\nimport com.pulumi.aviatrix.AviatrixRbacGroupPermissionAttachmentArgs;\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 testAttachment = new AviatrixRbacGroupPermissionAttachment(\"testAttachment\", AviatrixRbacGroupPermissionAttachmentArgs.builder()        \n            .groupName(\"write_only\")\n            .permissionName(\"all_write\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Rbac Group Permission Attachment\n  testAttachment:\n    type: aviatrix:AviatrixRbacGroupPermissionAttachment\n    properties:\n      groupName: write_only\n      permissionName: all_write\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**rbac_group_permission_attachment** can be imported using the `group_name` and `permission_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixRbacGroupPermissionAttachment:AviatrixRbacGroupPermissionAttachment test group_name~permission_name\n```\n\n ",
      "properties": {
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group.\n"
        },
        "permissionName": {
          "type": "string",
          "description": "This parameter represents the permission to attach to the RBAC group.\n"
        }
      },
      "type": "object",
      "required": [
        "groupName",
        "permissionName"
      ],
      "inputProperties": {
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group.\n",
          "willReplaceOnChanges": true
        },
        "permissionName": {
          "type": "string",
          "description": "This parameter represents the permission to attach to the RBAC group.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "groupName",
        "permissionName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixRbacGroupPermissionAttachment resources.\n",
        "properties": {
          "groupName": {
            "type": "string",
            "description": "This parameter represents the name of a RBAC group.\n",
            "willReplaceOnChanges": true
          },
          "permissionName": {
            "type": "string",
            "description": "This parameter represents the permission to attach to the RBAC group.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixRbacGroupUserAttachment:AviatrixRbacGroupUserAttachment": {
      "description": "The **aviatrix_rbac_group_user_attachment** resource allows the creation and management of user attachments to Aviatrix (Role-Based Access Control) RBAC groups.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix RBAC Group User Attachment\nconst testAttachment = new aviatrix.AviatrixRbacGroupUserAttachment(\"test_attachment\", {\n    groupName: \"write_only\",\n    userName: \"user_name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix RBAC Group User Attachment\ntest_attachment = aviatrix.AviatrixRbacGroupUserAttachment(\"testAttachment\",\n    group_name=\"write_only\",\n    user_name=\"user_name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix RBAC Group User Attachment\n    var testAttachment = new Aviatrix.AviatrixRbacGroupUserAttachment(\"testAttachment\", new()\n    {\n        GroupName = \"write_only\",\n        UserName = \"user_name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixRbacGroupUserAttachment(ctx, \"testAttachment\", &aviatrix.AviatrixRbacGroupUserAttachmentArgs{\n\t\t\tGroupName: pulumi.String(\"write_only\"),\n\t\t\tUserName:  pulumi.String(\"user_name\"),\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.aviatrix.AviatrixRbacGroupUserAttachment;\nimport com.pulumi.aviatrix.AviatrixRbacGroupUserAttachmentArgs;\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 testAttachment = new AviatrixRbacGroupUserAttachment(\"testAttachment\", AviatrixRbacGroupUserAttachmentArgs.builder()        \n            .groupName(\"write_only\")\n            .userName(\"user_name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix RBAC Group User Attachment\n  testAttachment:\n    type: aviatrix:AviatrixRbacGroupUserAttachment\n    properties:\n      groupName: write_only\n      userName: user_name\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**rbac_group_user_attachment** can be imported using the `group_name` and `user_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixRbacGroupUserAttachment:AviatrixRbacGroupUserAttachment test group_name~user_name\n```\n\n ",
      "properties": {
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group.\n"
        },
        "userName": {
          "type": "string",
          "description": "Username of the account user.\n"
        }
      },
      "type": "object",
      "required": [
        "groupName",
        "userName"
      ],
      "inputProperties": {
        "groupName": {
          "type": "string",
          "description": "This parameter represents the name of a RBAC group.\n",
          "willReplaceOnChanges": true
        },
        "userName": {
          "type": "string",
          "description": "Username of the account user.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "groupName",
        "userName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixRbacGroupUserAttachment resources.\n",
        "properties": {
          "groupName": {
            "type": "string",
            "description": "This parameter represents the name of a RBAC group.\n",
            "willReplaceOnChanges": true
          },
          "userName": {
            "type": "string",
            "description": "Username of the account user.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixRemoteSyslog:AviatrixRemoteSyslog": {
      "description": "The **aviatrix_remote_syslog** resource allows the enabling and disabling of remote syslog.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable remote syslog without TLS\nconst testRemoteSyslog = new aviatrix.AviatrixRemoteSyslog(\"test_remote_syslog\", {\n    index: 0,\n    port: 10,\n    protocol: \"TCP\",\n    server: \"1.2.3.4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable remote syslog without TLS\ntest_remote_syslog = aviatrix.AviatrixRemoteSyslog(\"testRemoteSyslog\",\n    index=0,\n    port=10,\n    protocol=\"TCP\",\n    server=\"1.2.3.4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable remote syslog without TLS\n    var testRemoteSyslog = new Aviatrix.AviatrixRemoteSyslog(\"testRemoteSyslog\", new()\n    {\n        Index = 0,\n        Port = 10,\n        Protocol = \"TCP\",\n        Server = \"1.2.3.4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixRemoteSyslog(ctx, \"testRemoteSyslog\", &aviatrix.AviatrixRemoteSyslogArgs{\n\t\t\tIndex:    pulumi.Int(0),\n\t\t\tPort:     pulumi.Int(10),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tServer:   pulumi.String(\"1.2.3.4\"),\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.aviatrix.AviatrixRemoteSyslog;\nimport com.pulumi.aviatrix.AviatrixRemoteSyslogArgs;\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 testRemoteSyslog = new AviatrixRemoteSyslog(\"testRemoteSyslog\", AviatrixRemoteSyslogArgs.builder()        \n            .index(0)\n            .port(10)\n            .protocol(\"TCP\")\n            .server(\"1.2.3.4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable remote syslog without TLS\n  testRemoteSyslog:\n    type: aviatrix:AviatrixRemoteSyslog\n    properties:\n      index: 0\n      port: 10\n      protocol: TCP\n      server: 1.2.3.4\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Enable remote syslog with TLS\nconst testRemoteSyslog = new aviatrix.AviatrixRemoteSyslog(\"testRemoteSyslog\", {\n    index: 0,\n    server: \"1.2.3.4\",\n    port: 10,\n    protocol: \"TCP\",\n    caCertificateFile: fs.readFileSync(\"/path/to/ca.pem\"),\n    publicCertificateFile: fs.readFileSync(\"/path/to/server.pem\"),\n    privateKeyFile: fs.readFileSync(\"/path/to/client.pem\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable remote syslog with TLS\ntest_remote_syslog = aviatrix.AviatrixRemoteSyslog(\"testRemoteSyslog\",\n    index=0,\n    server=\"1.2.3.4\",\n    port=10,\n    protocol=\"TCP\",\n    ca_certificate_file=(lambda path: open(path).read())(\"/path/to/ca.pem\"),\n    public_certificate_file=(lambda path: open(path).read())(\"/path/to/server.pem\"),\n    private_key_file=(lambda path: open(path).read())(\"/path/to/client.pem\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable remote syslog with TLS\n    var testRemoteSyslog = new Aviatrix.AviatrixRemoteSyslog(\"testRemoteSyslog\", new()\n    {\n        Index = 0,\n        Server = \"1.2.3.4\",\n        Port = 10,\n        Protocol = \"TCP\",\n        CaCertificateFile = File.ReadAllText(\"/path/to/ca.pem\"),\n        PublicCertificateFile = File.ReadAllText(\"/path/to/server.pem\"),\n        PrivateKeyFile = File.ReadAllText(\"/path/to/client.pem\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixRemoteSyslog(ctx, \"testRemoteSyslog\", &aviatrix.AviatrixRemoteSyslogArgs{\n\t\t\tIndex:                 pulumi.Int(0),\n\t\t\tServer:                pulumi.String(\"1.2.3.4\"),\n\t\t\tPort:                  pulumi.Int(10),\n\t\t\tProtocol:              pulumi.String(\"TCP\"),\n\t\t\tCaCertificateFile:     readFileOrPanic(\"/path/to/ca.pem\"),\n\t\t\tPublicCertificateFile: readFileOrPanic(\"/path/to/server.pem\"),\n\t\t\tPrivateKeyFile:        readFileOrPanic(\"/path/to/client.pem\"),\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.aviatrix.AviatrixRemoteSyslog;\nimport com.pulumi.aviatrix.AviatrixRemoteSyslogArgs;\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 testRemoteSyslog = new AviatrixRemoteSyslog(\"testRemoteSyslog\", AviatrixRemoteSyslogArgs.builder()        \n            .index(0)\n            .server(\"1.2.3.4\")\n            .port(10)\n            .protocol(\"TCP\")\n            .caCertificateFile(Files.readString(Paths.get(\"/path/to/ca.pem\")))\n            .publicCertificateFile(Files.readString(Paths.get(\"/path/to/server.pem\")))\n            .privateKeyFile(Files.readString(Paths.get(\"/path/to/client.pem\")))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable remote syslog with TLS\n  testRemoteSyslog:\n    type: aviatrix:AviatrixRemoteSyslog\n    properties:\n      index: 0\n      server: 1.2.3.4\n      port: 10\n      protocol: TCP\n      caCertificateFile:\n        fn::readFile: /path/to/ca.pem\n      publicCertificateFile:\n        fn::readFile: /path/to/server.pem\n      privateKeyFile:\n        fn::readFile: /path/to/client.pem\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**remote_syslog** can be imported using \"remote_syslog_\" + `index`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixRemoteSyslog:AviatrixRemoteSyslog test remote_syslog_0\n```\n\n ",
      "properties": {
        "caCertificateFile": {
          "type": "string",
          "description": "The Certificate Authority (CA) certificate. Use the `file` function to read from a file.\n"
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n"
        },
        "index": {
          "type": "integer",
          "description": "Profile index. An index from 0 to 9 is supported. 0 by default.\n"
        },
        "name": {
          "type": "string",
          "description": "Profile name.\n"
        },
        "notls": {
          "type": "boolean",
          "description": "This attribute is true if the remote syslog is not protected by TLS.\n"
        },
        "port": {
          "type": "integer",
          "description": "Port number.\n"
        },
        "privateKeyFile": {
          "type": "string",
          "description": "The private key of the controller that pairs with the public certificate. Use the `file` function to read from a file.\n"
        },
        "protocol": {
          "type": "string",
          "description": "TCP or UDP. TCP by default.\n"
        },
        "publicCertificateFile": {
          "type": "string",
          "description": "The public certificate of the controller signed by the same CA. Use the `file` function to read from a file.\n"
        },
        "server": {
          "type": "string",
          "description": "Server IP.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of remote syslog.\n"
        },
        "template": {
          "type": "string",
          "description": "Optional custom template.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "notls",
        "port",
        "server",
        "status"
      ],
      "inputProperties": {
        "caCertificateFile": {
          "type": "string",
          "description": "The Certificate Authority (CA) certificate. Use the `file` function to read from a file.\n",
          "willReplaceOnChanges": true
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
          "willReplaceOnChanges": true
        },
        "index": {
          "type": "integer",
          "description": "Profile index. An index from 0 to 9 is supported. 0 by default.\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "Profile name.\n",
          "willReplaceOnChanges": true
        },
        "port": {
          "type": "integer",
          "description": "Port number.\n",
          "willReplaceOnChanges": true
        },
        "privateKeyFile": {
          "type": "string",
          "description": "The private key of the controller that pairs with the public certificate. Use the `file` function to read from a file.\n",
          "willReplaceOnChanges": true
        },
        "protocol": {
          "type": "string",
          "description": "TCP or UDP. TCP by default.\n",
          "willReplaceOnChanges": true
        },
        "publicCertificateFile": {
          "type": "string",
          "description": "The public certificate of the controller signed by the same CA. Use the `file` function to read from a file.\n",
          "willReplaceOnChanges": true
        },
        "server": {
          "type": "string",
          "description": "Server IP.\n",
          "willReplaceOnChanges": true
        },
        "template": {
          "type": "string",
          "description": "Optional custom template.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "port",
        "server"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixRemoteSyslog resources.\n",
        "properties": {
          "caCertificateFile": {
            "type": "string",
            "description": "The Certificate Authority (CA) certificate. Use the `file` function to read from a file.\n",
            "willReplaceOnChanges": true
          },
          "excludedGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
            "willReplaceOnChanges": true
          },
          "index": {
            "type": "integer",
            "description": "Profile index. An index from 0 to 9 is supported. 0 by default.\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "Profile name.\n",
            "willReplaceOnChanges": true
          },
          "notls": {
            "type": "boolean",
            "description": "This attribute is true if the remote syslog is not protected by TLS.\n"
          },
          "port": {
            "type": "integer",
            "description": "Port number.\n",
            "willReplaceOnChanges": true
          },
          "privateKeyFile": {
            "type": "string",
            "description": "The private key of the controller that pairs with the public certificate. Use the `file` function to read from a file.\n",
            "willReplaceOnChanges": true
          },
          "protocol": {
            "type": "string",
            "description": "TCP or UDP. TCP by default.\n",
            "willReplaceOnChanges": true
          },
          "publicCertificateFile": {
            "type": "string",
            "description": "The public certificate of the controller signed by the same CA. Use the `file` function to read from a file.\n",
            "willReplaceOnChanges": true
          },
          "server": {
            "type": "string",
            "description": "Server IP.\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "The status of remote syslog.\n"
          },
          "template": {
            "type": "string",
            "description": "Optional custom template.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSamlEndpoint:AviatrixSamlEndpoint": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Create an Aviatrix AWS SAML Endpoint\nconst testSamlEndpoint = new aviatrix.AviatrixSamlEndpoint(\"testSamlEndpoint\", {\n    endpointName: \"saml-test\",\n    idpMetadataType: \"Text\",\n    idpMetadata: fs.readFileSync(\"idp_metadata.xml\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS SAML Endpoint\ntest_saml_endpoint = aviatrix.AviatrixSamlEndpoint(\"testSamlEndpoint\",\n    endpoint_name=\"saml-test\",\n    idp_metadata_type=\"Text\",\n    idp_metadata=(lambda path: open(path).read())(\"idp_metadata.xml\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS SAML Endpoint\n    var testSamlEndpoint = new Aviatrix.AviatrixSamlEndpoint(\"testSamlEndpoint\", new()\n    {\n        EndpointName = \"saml-test\",\n        IdpMetadataType = \"Text\",\n        IdpMetadata = File.ReadAllText(\"idp_metadata.xml\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixSamlEndpoint(ctx, \"testSamlEndpoint\", &aviatrix.AviatrixSamlEndpointArgs{\n\t\t\tEndpointName:    pulumi.String(\"saml-test\"),\n\t\t\tIdpMetadataType: pulumi.String(\"Text\"),\n\t\t\tIdpMetadata:     readFileOrPanic(\"idp_metadata.xml\"),\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.aviatrix.AviatrixSamlEndpoint;\nimport com.pulumi.aviatrix.AviatrixSamlEndpointArgs;\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 testSamlEndpoint = new AviatrixSamlEndpoint(\"testSamlEndpoint\", AviatrixSamlEndpointArgs.builder()        \n            .endpointName(\"saml-test\")\n            .idpMetadataType(\"Text\")\n            .idpMetadata(Files.readString(Paths.get(\"idp_metadata.xml\")))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS SAML Endpoint\n  testSamlEndpoint:\n    type: aviatrix:AviatrixSamlEndpoint\n    properties:\n      endpointName: saml-test\n      idpMetadataType: Text\n      idpMetadata:\n        fn::readFile: idp_metadata.xml\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS SAML Endpoint using Metadata UDL\nconst testSamlEndpoint = new aviatrix.AviatrixSamlEndpoint(\"test_saml_endpoint\", {\n    endpointName: \"saml-test\",\n    idpMetadataType: \"URL\",\n    idpMetadataUrl: \"https://dev-xyzz.okta.com/app/asdfasdfwfwf/sso/saml/metadata\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS SAML Endpoint using Metadata UDL\ntest_saml_endpoint = aviatrix.AviatrixSamlEndpoint(\"testSamlEndpoint\",\n    endpoint_name=\"saml-test\",\n    idp_metadata_type=\"URL\",\n    idp_metadata_url=\"https://dev-xyzz.okta.com/app/asdfasdfwfwf/sso/saml/metadata\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS SAML Endpoint using Metadata UDL\n    var testSamlEndpoint = new Aviatrix.AviatrixSamlEndpoint(\"testSamlEndpoint\", new()\n    {\n        EndpointName = \"saml-test\",\n        IdpMetadataType = \"URL\",\n        IdpMetadataUrl = \"https://dev-xyzz.okta.com/app/asdfasdfwfwf/sso/saml/metadata\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSamlEndpoint(ctx, \"testSamlEndpoint\", &aviatrix.AviatrixSamlEndpointArgs{\n\t\t\tEndpointName:    pulumi.String(\"saml-test\"),\n\t\t\tIdpMetadataType: pulumi.String(\"URL\"),\n\t\t\tIdpMetadataUrl:  pulumi.String(\"https://dev-xyzz.okta.com/app/asdfasdfwfwf/sso/saml/metadata\"),\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.aviatrix.AviatrixSamlEndpoint;\nimport com.pulumi.aviatrix.AviatrixSamlEndpointArgs;\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 testSamlEndpoint = new AviatrixSamlEndpoint(\"testSamlEndpoint\", AviatrixSamlEndpointArgs.builder()        \n            .endpointName(\"saml-test\")\n            .idpMetadataType(\"URL\")\n            .idpMetadataUrl(\"https://dev-xyzz.okta.com/app/asdfasdfwfwf/sso/saml/metadata\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS SAML Endpoint using Metadata UDL\n  testSamlEndpoint:\n    type: aviatrix:AviatrixSamlEndpoint\n    properties:\n      endpointName: saml-test\n      idpMetadataType: URL\n      idpMetadataUrl: https://dev-xyzz.okta.com/app/asdfasdfwfwf/sso/saml/metadata\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS SAML Endpoint for Controller Login\nconst testSamlEndpoint = new aviatrix.AviatrixSamlEndpoint(\"test_saml_endpoint\", {\n    accessSetBy: \"controller\",\n    controllerLogin: true,\n    endpointName: \"saml-test\",\n    idpMetadata: var_idp_metadata,\n    idpMetadataType: \"Text\",\n    rbacGroups: [\n        \"admin\",\n        \"read_only\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS SAML Endpoint for Controller Login\ntest_saml_endpoint = aviatrix.AviatrixSamlEndpoint(\"testSamlEndpoint\",\n    access_set_by=\"controller\",\n    controller_login=True,\n    endpoint_name=\"saml-test\",\n    idp_metadata=var[\"idp_metadata\"],\n    idp_metadata_type=\"Text\",\n    rbac_groups=[\n        \"admin\",\n        \"read_only\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS SAML Endpoint for Controller Login\n    var testSamlEndpoint = new Aviatrix.AviatrixSamlEndpoint(\"testSamlEndpoint\", new()\n    {\n        AccessSetBy = \"controller\",\n        ControllerLogin = true,\n        EndpointName = \"saml-test\",\n        IdpMetadata = @var.Idp_metadata,\n        IdpMetadataType = \"Text\",\n        RbacGroups = new[]\n        {\n            \"admin\",\n            \"read_only\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSamlEndpoint(ctx, \"testSamlEndpoint\", &aviatrix.AviatrixSamlEndpointArgs{\n\t\t\tAccessSetBy:     pulumi.String(\"controller\"),\n\t\t\tControllerLogin: pulumi.Bool(true),\n\t\t\tEndpointName:    pulumi.String(\"saml-test\"),\n\t\t\tIdpMetadata:     pulumi.Any(_var.Idp_metadata),\n\t\t\tIdpMetadataType: pulumi.String(\"Text\"),\n\t\t\tRbacGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\n\t\t\t\tpulumi.String(\"read_only\"),\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.aviatrix.AviatrixSamlEndpoint;\nimport com.pulumi.aviatrix.AviatrixSamlEndpointArgs;\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 testSamlEndpoint = new AviatrixSamlEndpoint(\"testSamlEndpoint\", AviatrixSamlEndpointArgs.builder()        \n            .accessSetBy(\"controller\")\n            .controllerLogin(true)\n            .endpointName(\"saml-test\")\n            .idpMetadata(var_.idp_metadata())\n            .idpMetadataType(\"Text\")\n            .rbacGroups(            \n                \"admin\",\n                \"read_only\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS SAML Endpoint for Controller Login\n  testSamlEndpoint:\n    type: aviatrix:AviatrixSamlEndpoint\n    properties:\n      accessSetBy: controller\n      controllerLogin: true\n      endpointName: saml-test\n      idpMetadata: ${var.idp_metadata}\n      idpMetadataType: Text\n      rbacGroups:\n        - admin\n        - read_only\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**saml_endpoint** can be imported using the SAML `endpoint_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSamlEndpoint:AviatrixSamlEndpoint test saml-test\n```\n\n ",
      "properties": {
        "accessSetBy": {
          "type": "string",
          "description": "Access type. Valid values: \"controller\", \"profile_attribute\". Default value: \"controller\".\n"
        },
        "controllerLogin": {
          "type": "boolean",
          "description": "Valid values: true, false. Default value: false. Set true for creating a saml endpoint for controller login.\n"
        },
        "customEntityId": {
          "type": "string",
          "description": "Custom Entity ID. Required to be non-empty for 'Custom' Entity ID type, empty for 'Hostname' Entity ID type.\n"
        },
        "customSamlRequestTemplate": {
          "type": "string",
          "description": "Custom SAML Request Template in string.\n"
        },
        "endpointName": {
          "type": "string",
          "description": "The SAML endpoint name.\n"
        },
        "idpMetadata": {
          "type": "string",
          "description": "The IDP Metadata from SAML provider. Required if `idp_metadata_type` is \"Text\" and should be unset if type is \"URL\". Normally the metadata is in XML format which may contain special characters. Best practice is to use the file function to read from a local Metadata XML file.\n"
        },
        "idpMetadataType": {
          "type": "string",
          "description": "The IDP Metadata type. Can be either \"Text\" or \"URL\".\n"
        },
        "idpMetadataUrl": {
          "type": "string",
          "description": "The IDP Metadata URL from SAML provider. Required if `idp_metadata_type` is \"URL\" and should be unset if type is \"Text\".\n"
        },
        "rbacGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of rbac groups. Required for controller login and \"access_set_by\" of \"controller\".\n"
        },
        "signAuthnRequests": {
          "type": "boolean",
          "description": "Whether to sign SAML AuthnRequests\n"
        }
      },
      "type": "object",
      "required": [
        "endpointName",
        "idpMetadataType"
      ],
      "inputProperties": {
        "accessSetBy": {
          "type": "string",
          "description": "Access type. Valid values: \"controller\", \"profile_attribute\". Default value: \"controller\".\n"
        },
        "controllerLogin": {
          "type": "boolean",
          "description": "Valid values: true, false. Default value: false. Set true for creating a saml endpoint for controller login.\n",
          "willReplaceOnChanges": true
        },
        "customEntityId": {
          "type": "string",
          "description": "Custom Entity ID. Required to be non-empty for 'Custom' Entity ID type, empty for 'Hostname' Entity ID type.\n"
        },
        "customSamlRequestTemplate": {
          "type": "string",
          "description": "Custom SAML Request Template in string.\n"
        },
        "endpointName": {
          "type": "string",
          "description": "The SAML endpoint name.\n",
          "willReplaceOnChanges": true
        },
        "idpMetadata": {
          "type": "string",
          "description": "The IDP Metadata from SAML provider. Required if `idp_metadata_type` is \"Text\" and should be unset if type is \"URL\". Normally the metadata is in XML format which may contain special characters. Best practice is to use the file function to read from a local Metadata XML file.\n"
        },
        "idpMetadataType": {
          "type": "string",
          "description": "The IDP Metadata type. Can be either \"Text\" or \"URL\".\n"
        },
        "idpMetadataUrl": {
          "type": "string",
          "description": "The IDP Metadata URL from SAML provider. Required if `idp_metadata_type` is \"URL\" and should be unset if type is \"Text\".\n"
        },
        "rbacGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of rbac groups. Required for controller login and \"access_set_by\" of \"controller\".\n"
        },
        "signAuthnRequests": {
          "type": "boolean",
          "description": "Whether to sign SAML AuthnRequests\n"
        }
      },
      "requiredInputs": [
        "endpointName",
        "idpMetadataType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSamlEndpoint resources.\n",
        "properties": {
          "accessSetBy": {
            "type": "string",
            "description": "Access type. Valid values: \"controller\", \"profile_attribute\". Default value: \"controller\".\n"
          },
          "controllerLogin": {
            "type": "boolean",
            "description": "Valid values: true, false. Default value: false. Set true for creating a saml endpoint for controller login.\n",
            "willReplaceOnChanges": true
          },
          "customEntityId": {
            "type": "string",
            "description": "Custom Entity ID. Required to be non-empty for 'Custom' Entity ID type, empty for 'Hostname' Entity ID type.\n"
          },
          "customSamlRequestTemplate": {
            "type": "string",
            "description": "Custom SAML Request Template in string.\n"
          },
          "endpointName": {
            "type": "string",
            "description": "The SAML endpoint name.\n",
            "willReplaceOnChanges": true
          },
          "idpMetadata": {
            "type": "string",
            "description": "The IDP Metadata from SAML provider. Required if `idp_metadata_type` is \"Text\" and should be unset if type is \"URL\". Normally the metadata is in XML format which may contain special characters. Best practice is to use the file function to read from a local Metadata XML file.\n"
          },
          "idpMetadataType": {
            "type": "string",
            "description": "The IDP Metadata type. Can be either \"Text\" or \"URL\".\n"
          },
          "idpMetadataUrl": {
            "type": "string",
            "description": "The IDP Metadata URL from SAML provider. Required if `idp_metadata_type` is \"URL\" and should be unset if type is \"Text\".\n"
          },
          "rbacGroups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of rbac groups. Required for controller login and \"access_set_by\" of \"controller\".\n"
          },
          "signAuthnRequests": {
            "type": "boolean",
            "description": "Whether to sign SAML AuthnRequests\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSegmentationNetworkDomain:AviatrixSegmentationNetworkDomain": {
      "description": "The **aviatrix_segmentation_network_domain** resource handles creation of [Transit Segmentation](https://docs.aviatrix.com/HowTos/transit_segmentation_faq.html) Network Domains.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Segmentation Network Domain\nconst testSegmentationNetworkDomain = new aviatrix.AviatrixSegmentationNetworkDomain(\"test_segmentation_network_domain\", {\n    domainName: \"domain-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Segmentation Network Domain\ntest_segmentation_network_domain = aviatrix.AviatrixSegmentationNetworkDomain(\"testSegmentationNetworkDomain\", domain_name=\"domain-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Segmentation Network Domain\n    var testSegmentationNetworkDomain = new Aviatrix.AviatrixSegmentationNetworkDomain(\"testSegmentationNetworkDomain\", new()\n    {\n        DomainName = \"domain-a\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSegmentationNetworkDomain(ctx, \"testSegmentationNetworkDomain\", &aviatrix.AviatrixSegmentationNetworkDomainArgs{\n\t\t\tDomainName: pulumi.String(\"domain-a\"),\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.aviatrix.AviatrixSegmentationNetworkDomain;\nimport com.pulumi.aviatrix.AviatrixSegmentationNetworkDomainArgs;\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 testSegmentationNetworkDomain = new AviatrixSegmentationNetworkDomain(\"testSegmentationNetworkDomain\", AviatrixSegmentationNetworkDomainArgs.builder()        \n            .domainName(\"domain-a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Segmentation Network Domain\n  testSegmentationNetworkDomain:\n    type: aviatrix:AviatrixSegmentationNetworkDomain\n    properties:\n      domainName: domain-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_segmentation_network_domain** can be imported using the `domain_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSegmentationNetworkDomain:AviatrixSegmentationNetworkDomain test domain_name\n```\n\n ",
      "properties": {
        "domainName": {
          "type": "string",
          "description": "Name of the Network Domain.\n"
        }
      },
      "type": "object",
      "required": [
        "domainName"
      ],
      "inputProperties": {
        "domainName": {
          "type": "string",
          "description": "Name of the Network Domain.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "domainName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSegmentationNetworkDomain resources.\n",
        "properties": {
          "domainName": {
            "type": "string",
            "description": "Name of the Network Domain.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSegmentationNetworkDomainAssociation:AviatrixSegmentationNetworkDomainAssociation": {
      "description": "The **aviatrix_segmentation_network_domain_association** resource handles creation of [Transit Segmentation](https://docs.aviatrix.com/HowTos/transit_segmentation_faq.html) Network Domain and Transit Gateway Attachment Associations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Segmentation Network Domain Association\nconst testSegmentationNetworkDomainAssociation = new aviatrix.AviatrixSegmentationNetworkDomainAssociation(\"test_segmentation_network_domain_association\", {\n    attachmentName: \"attachment-name\",\n    networkDomainName: \"network-domain-name\",\n    transitGatewayName: \"transit-gw-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Segmentation Network Domain Association\ntest_segmentation_network_domain_association = aviatrix.AviatrixSegmentationNetworkDomainAssociation(\"testSegmentationNetworkDomainAssociation\",\n    attachment_name=\"attachment-name\",\n    network_domain_name=\"network-domain-name\",\n    transit_gateway_name=\"transit-gw-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Segmentation Network Domain Association\n    var testSegmentationNetworkDomainAssociation = new Aviatrix.AviatrixSegmentationNetworkDomainAssociation(\"testSegmentationNetworkDomainAssociation\", new()\n    {\n        AttachmentName = \"attachment-name\",\n        NetworkDomainName = \"network-domain-name\",\n        TransitGatewayName = \"transit-gw-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSegmentationNetworkDomainAssociation(ctx, \"testSegmentationNetworkDomainAssociation\", &aviatrix.AviatrixSegmentationNetworkDomainAssociationArgs{\n\t\t\tAttachmentName:     pulumi.String(\"attachment-name\"),\n\t\t\tNetworkDomainName:  pulumi.String(\"network-domain-name\"),\n\t\t\tTransitGatewayName: pulumi.String(\"transit-gw-name\"),\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.aviatrix.AviatrixSegmentationNetworkDomainAssociation;\nimport com.pulumi.aviatrix.AviatrixSegmentationNetworkDomainAssociationArgs;\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 testSegmentationNetworkDomainAssociation = new AviatrixSegmentationNetworkDomainAssociation(\"testSegmentationNetworkDomainAssociation\", AviatrixSegmentationNetworkDomainAssociationArgs.builder()        \n            .attachmentName(\"attachment-name\")\n            .networkDomainName(\"network-domain-name\")\n            .transitGatewayName(\"transit-gw-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Segmentation Network Domain Association\n  testSegmentationNetworkDomainAssociation:\n    type: aviatrix:AviatrixSegmentationNetworkDomainAssociation\n    properties:\n      attachmentName: attachment-name\n      networkDomainName: network-domain-name\n      transitGatewayName: transit-gw-name\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_segmentation_network_domain_association** can be imported using `transit_gateway_name`, `network_domain_name` and `attachment_name` separated by a `~` e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSegmentationNetworkDomainAssociation:AviatrixSegmentationNetworkDomainAssociation test transit_gateway_name~network_domain_name~attachment_name\n```\n\n ",
      "properties": {
        "attachmentName": {
          "type": "string",
          "description": "Name of the transit gateway attachment, Spoke or Edge, to associate with the network domain.\n"
        },
        "networkDomainName": {
          "type": "string",
          "description": "Name of the Segmentation Network Domain.\n"
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of the Transit Gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "attachmentName",
        "networkDomainName",
        "transitGatewayName"
      ],
      "inputProperties": {
        "attachmentName": {
          "type": "string",
          "description": "Name of the transit gateway attachment, Spoke or Edge, to associate with the network domain.\n",
          "willReplaceOnChanges": true
        },
        "networkDomainName": {
          "type": "string",
          "description": "Name of the Segmentation Network Domain.\n",
          "willReplaceOnChanges": true
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of the Transit Gateway.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "attachmentName",
        "networkDomainName",
        "transitGatewayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSegmentationNetworkDomainAssociation resources.\n",
        "properties": {
          "attachmentName": {
            "type": "string",
            "description": "Name of the transit gateway attachment, Spoke or Edge, to associate with the network domain.\n",
            "willReplaceOnChanges": true
          },
          "networkDomainName": {
            "type": "string",
            "description": "Name of the Segmentation Network Domain.\n",
            "willReplaceOnChanges": true
          },
          "transitGatewayName": {
            "type": "string",
            "description": "Name of the Transit Gateway.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSegmentationNetworkDomainConnectionPolicy:AviatrixSegmentationNetworkDomainConnectionPolicy": {
      "description": "The **aviatrix_segmentation_network_domain_connection_policy** resource handles creation of [Transit Segmentation](https://docs.aviatrix.com/HowTos/transit_segmentation_faq.html) Network Domain Connection Policies.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Segmentation Network Domain\nconst testSegmentationNetworkDomainConnectionPolicy = new aviatrix.AviatrixSegmentationNetworkDomainConnectionPolicy(\"test_segmentation_network_domain_connection_policy\", {\n    domainName1: \"domain-a\",\n    domainName2: \"domain-b\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Segmentation Network Domain\ntest_segmentation_network_domain_connection_policy = aviatrix.AviatrixSegmentationNetworkDomainConnectionPolicy(\"testSegmentationNetworkDomainConnectionPolicy\",\n    domain_name1=\"domain-a\",\n    domain_name2=\"domain-b\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Segmentation Network Domain\n    var testSegmentationNetworkDomainConnectionPolicy = new Aviatrix.AviatrixSegmentationNetworkDomainConnectionPolicy(\"testSegmentationNetworkDomainConnectionPolicy\", new()\n    {\n        DomainName1 = \"domain-a\",\n        DomainName2 = \"domain-b\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSegmentationNetworkDomainConnectionPolicy(ctx, \"testSegmentationNetworkDomainConnectionPolicy\", &aviatrix.AviatrixSegmentationNetworkDomainConnectionPolicyArgs{\n\t\t\tDomainName1: pulumi.String(\"domain-a\"),\n\t\t\tDomainName2: pulumi.String(\"domain-b\"),\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.aviatrix.AviatrixSegmentationNetworkDomainConnectionPolicy;\nimport com.pulumi.aviatrix.AviatrixSegmentationNetworkDomainConnectionPolicyArgs;\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 testSegmentationNetworkDomainConnectionPolicy = new AviatrixSegmentationNetworkDomainConnectionPolicy(\"testSegmentationNetworkDomainConnectionPolicy\", AviatrixSegmentationNetworkDomainConnectionPolicyArgs.builder()        \n            .domainName1(\"domain-a\")\n            .domainName2(\"domain-b\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Segmentation Network Domain\n  testSegmentationNetworkDomainConnectionPolicy:\n    type: aviatrix:AviatrixSegmentationNetworkDomainConnectionPolicy\n    properties:\n      domainName1: domain-a\n      domainName2: domain-b\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_segmentation_network_domain_connection_policy** can be imported using `domain_name_1` and `domain_name_2` separated by a `~`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSegmentationNetworkDomainConnectionPolicy:AviatrixSegmentationNetworkDomainConnectionPolicy test domain_name_1~domain_name_2\n```\n\n ",
      "properties": {
        "domainName1": {
          "type": "string",
          "description": "Name of the Network Domain to connect to Domain 2.\n"
        },
        "domainName2": {
          "type": "string",
          "description": "Name of the Network Domain to connect to Domain 1.\n"
        }
      },
      "type": "object",
      "required": [
        "domainName1",
        "domainName2"
      ],
      "inputProperties": {
        "domainName1": {
          "type": "string",
          "description": "Name of the Network Domain to connect to Domain 2.\n",
          "willReplaceOnChanges": true
        },
        "domainName2": {
          "type": "string",
          "description": "Name of the Network Domain to connect to Domain 1.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "domainName1",
        "domainName2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSegmentationNetworkDomainConnectionPolicy resources.\n",
        "properties": {
          "domainName1": {
            "type": "string",
            "description": "Name of the Network Domain to connect to Domain 2.\n",
            "willReplaceOnChanges": true
          },
          "domainName2": {
            "type": "string",
            "description": "Name of the Network Domain to connect to Domain 1.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSegmentationSecurityDomain:AviatrixSegmentationSecurityDomain": {
      "description": "The **aviatrix_segmentation_security_domain** resource handles creation of [Transit Segmentation](https://docs.aviatrix.com/HowTos/transit_segmentation_faq.html) Security Domains.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Segmentation Security Domain\nconst testSegmentationSecurityDomain = new aviatrix.AviatrixSegmentationSecurityDomain(\"test_segmentation_security_domain\", {\n    domainName: \"domain-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Segmentation Security Domain\ntest_segmentation_security_domain = aviatrix.AviatrixSegmentationSecurityDomain(\"testSegmentationSecurityDomain\", domain_name=\"domain-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Segmentation Security Domain\n    var testSegmentationSecurityDomain = new Aviatrix.AviatrixSegmentationSecurityDomain(\"testSegmentationSecurityDomain\", new()\n    {\n        DomainName = \"domain-a\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSegmentationSecurityDomain(ctx, \"testSegmentationSecurityDomain\", &aviatrix.AviatrixSegmentationSecurityDomainArgs{\n\t\t\tDomainName: pulumi.String(\"domain-a\"),\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.aviatrix.AviatrixSegmentationSecurityDomain;\nimport com.pulumi.aviatrix.AviatrixSegmentationSecurityDomainArgs;\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 testSegmentationSecurityDomain = new AviatrixSegmentationSecurityDomain(\"testSegmentationSecurityDomain\", AviatrixSegmentationSecurityDomainArgs.builder()        \n            .domainName(\"domain-a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Segmentation Security Domain\n  testSegmentationSecurityDomain:\n    type: aviatrix:AviatrixSegmentationSecurityDomain\n    properties:\n      domainName: domain-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_segmentation_security_domain** can be imported using the `domain_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSegmentationSecurityDomain:AviatrixSegmentationSecurityDomain test domain_name\n```\n\n ",
      "properties": {
        "domainName": {
          "type": "string",
          "description": "Name of the Security Domain.\n"
        }
      },
      "type": "object",
      "required": [
        "domainName"
      ],
      "inputProperties": {
        "domainName": {
          "type": "string",
          "description": "Name of the Security Domain.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "domainName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSegmentationSecurityDomain resources.\n",
        "properties": {
          "domainName": {
            "type": "string",
            "description": "Name of the Security Domain.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSegmentationSecurityDomainAssociation:AviatrixSegmentationSecurityDomainAssociation": {
      "description": "The **aviatrix_segmentation_security_domain_association** resource handles creation of [Transit Segmentation](https://docs.aviatrix.com/HowTos/transit_segmentation_faq.html) Security Domain and Transit Gateway Attachment Associations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Segmentation Security Domain Association\nconst testSegmentationSecurityDomainAssociation = new aviatrix.AviatrixSegmentationSecurityDomainAssociation(\"test_segmentation_security_domain_association\", {\n    attachmentName: \"attachment-name\",\n    securityDomainName: \"security-domain-name\",\n    transitGatewayName: \"transit-gw-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Segmentation Security Domain Association\ntest_segmentation_security_domain_association = aviatrix.AviatrixSegmentationSecurityDomainAssociation(\"testSegmentationSecurityDomainAssociation\",\n    attachment_name=\"attachment-name\",\n    security_domain_name=\"security-domain-name\",\n    transit_gateway_name=\"transit-gw-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Segmentation Security Domain Association\n    var testSegmentationSecurityDomainAssociation = new Aviatrix.AviatrixSegmentationSecurityDomainAssociation(\"testSegmentationSecurityDomainAssociation\", new()\n    {\n        AttachmentName = \"attachment-name\",\n        SecurityDomainName = \"security-domain-name\",\n        TransitGatewayName = \"transit-gw-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSegmentationSecurityDomainAssociation(ctx, \"testSegmentationSecurityDomainAssociation\", &aviatrix.AviatrixSegmentationSecurityDomainAssociationArgs{\n\t\t\tAttachmentName:     pulumi.String(\"attachment-name\"),\n\t\t\tSecurityDomainName: pulumi.String(\"security-domain-name\"),\n\t\t\tTransitGatewayName: pulumi.String(\"transit-gw-name\"),\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.aviatrix.AviatrixSegmentationSecurityDomainAssociation;\nimport com.pulumi.aviatrix.AviatrixSegmentationSecurityDomainAssociationArgs;\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 testSegmentationSecurityDomainAssociation = new AviatrixSegmentationSecurityDomainAssociation(\"testSegmentationSecurityDomainAssociation\", AviatrixSegmentationSecurityDomainAssociationArgs.builder()        \n            .attachmentName(\"attachment-name\")\n            .securityDomainName(\"security-domain-name\")\n            .transitGatewayName(\"transit-gw-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Segmentation Security Domain Association\n  testSegmentationSecurityDomainAssociation:\n    type: aviatrix:AviatrixSegmentationSecurityDomainAssociation\n    properties:\n      attachmentName: attachment-name\n      securityDomainName: security-domain-name\n      transitGatewayName: transit-gw-name\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_segmentation_security_domain_association** can be imported using `transit_gateway_name`, `security_domain_name` and `attachment_name` separated by a `~` e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSegmentationSecurityDomainAssociation:AviatrixSegmentationSecurityDomainAssociation test transit_gateway_name~security_domain_name~attachment_name\n```\n\n ",
      "properties": {
        "attachmentName": {
          "type": "string",
          "description": "Name of the transit gateway attachment, Spoke or Edge, to associate with the security domain.\n"
        },
        "securityDomainName": {
          "type": "string",
          "description": "Name of the Segmentation Security Domain.\n"
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of the Transit Gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "attachmentName",
        "securityDomainName",
        "transitGatewayName"
      ],
      "inputProperties": {
        "attachmentName": {
          "type": "string",
          "description": "Name of the transit gateway attachment, Spoke or Edge, to associate with the security domain.\n",
          "willReplaceOnChanges": true
        },
        "securityDomainName": {
          "type": "string",
          "description": "Name of the Segmentation Security Domain.\n",
          "willReplaceOnChanges": true
        },
        "transitGatewayName": {
          "type": "string",
          "description": "Name of the Transit Gateway.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "attachmentName",
        "securityDomainName",
        "transitGatewayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSegmentationSecurityDomainAssociation resources.\n",
        "properties": {
          "attachmentName": {
            "type": "string",
            "description": "Name of the transit gateway attachment, Spoke or Edge, to associate with the security domain.\n",
            "willReplaceOnChanges": true
          },
          "securityDomainName": {
            "type": "string",
            "description": "Name of the Segmentation Security Domain.\n",
            "willReplaceOnChanges": true
          },
          "transitGatewayName": {
            "type": "string",
            "description": "Name of the Transit Gateway.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSegmentationSecurityDomainConnectionPolicy:AviatrixSegmentationSecurityDomainConnectionPolicy": {
      "description": "The **aviatrix_segmentation_security_domain_connection_policy** resource handles creation of [Transit Segmentation](https://docs.aviatrix.com/HowTos/transit_segmentation_faq.html) Security Domain Connection Policies.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Segmentation Security Domain\nconst testSegmentationSecurityDomainConnectionPolicy = new aviatrix.AviatrixSegmentationSecurityDomainConnectionPolicy(\"test_segmentation_security_domain_connection_policy\", {\n    domainName1: \"domain-a\",\n    domainName2: \"domain-b\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Segmentation Security Domain\ntest_segmentation_security_domain_connection_policy = aviatrix.AviatrixSegmentationSecurityDomainConnectionPolicy(\"testSegmentationSecurityDomainConnectionPolicy\",\n    domain_name1=\"domain-a\",\n    domain_name2=\"domain-b\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Segmentation Security Domain\n    var testSegmentationSecurityDomainConnectionPolicy = new Aviatrix.AviatrixSegmentationSecurityDomainConnectionPolicy(\"testSegmentationSecurityDomainConnectionPolicy\", new()\n    {\n        DomainName1 = \"domain-a\",\n        DomainName2 = \"domain-b\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSegmentationSecurityDomainConnectionPolicy(ctx, \"testSegmentationSecurityDomainConnectionPolicy\", &aviatrix.AviatrixSegmentationSecurityDomainConnectionPolicyArgs{\n\t\t\tDomainName1: pulumi.String(\"domain-a\"),\n\t\t\tDomainName2: pulumi.String(\"domain-b\"),\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.aviatrix.AviatrixSegmentationSecurityDomainConnectionPolicy;\nimport com.pulumi.aviatrix.AviatrixSegmentationSecurityDomainConnectionPolicyArgs;\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 testSegmentationSecurityDomainConnectionPolicy = new AviatrixSegmentationSecurityDomainConnectionPolicy(\"testSegmentationSecurityDomainConnectionPolicy\", AviatrixSegmentationSecurityDomainConnectionPolicyArgs.builder()        \n            .domainName1(\"domain-a\")\n            .domainName2(\"domain-b\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Segmentation Security Domain\n  testSegmentationSecurityDomainConnectionPolicy:\n    type: aviatrix:AviatrixSegmentationSecurityDomainConnectionPolicy\n    properties:\n      domainName1: domain-a\n      domainName2: domain-b\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**aviatrix_segmentation_security_domain_connection_policy** can be imported using `domain_name_1` and `domain_name_2` separated by a `~`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSegmentationSecurityDomainConnectionPolicy:AviatrixSegmentationSecurityDomainConnectionPolicy test domain_name_1~domain_name_2\n```\n\n ",
      "properties": {
        "domainName1": {
          "type": "string",
          "description": "Name of the Security Domain to connect to Domain 2.\n"
        },
        "domainName2": {
          "type": "string",
          "description": "Name of the Security Domain to connect to Domain 1.\n"
        }
      },
      "type": "object",
      "required": [
        "domainName1",
        "domainName2"
      ],
      "inputProperties": {
        "domainName1": {
          "type": "string",
          "description": "Name of the Security Domain to connect to Domain 2.\n",
          "willReplaceOnChanges": true
        },
        "domainName2": {
          "type": "string",
          "description": "Name of the Security Domain to connect to Domain 1.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "domainName1",
        "domainName2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSegmentationSecurityDomainConnectionPolicy resources.\n",
        "properties": {
          "domainName1": {
            "type": "string",
            "description": "Name of the Security Domain to connect to Domain 2.\n",
            "willReplaceOnChanges": true
          },
          "domainName2": {
            "type": "string",
            "description": "Name of the Security Domain to connect to Domain 1.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSite2Cloud:AviatrixSite2Cloud": {
      "description": "\n\n\n## Import\n\n**site2cloud** can be imported using the `connection_name` and `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSite2Cloud:AviatrixSite2Cloud test connection_name~vpc_id\n```\n\n ",
      "properties": {
        "authType": {
          "type": "string",
          "description": "Authentication Type. Valid values: 'PSK' and 'Cert'. Default value: 'PSK'.\n"
        },
        "backupGatewayName": {
          "type": "string",
          "description": "Backup gateway name. **NOTE: Please see notes here regarding HA requirements.**\n"
        },
        "backupLocalTunnelIp": {
          "type": "string",
          "description": "Backup local tunnel IP address. Only valid when HA enabled route based connection. Available as of provider version R2.19+.\n"
        },
        "backupPreSharedKey": {
          "type": "string",
          "description": "Backup Pre-Shared Key.\n",
          "secret": true
        },
        "backupRemoteGatewayIp": {
          "type": "string",
          "description": "Backup Remote Gateway IP. **NOTE: Please see notes here regarding HA requirements.**\n"
        },
        "backupRemoteGatewayLatitude": {
          "type": "number",
          "description": "Latitude of backup remote gateway. Does not support refresh.\n"
        },
        "backupRemoteGatewayLongitude": {
          "type": "number",
          "description": "Longitude of backup remote gateway. Does not support refresh.\n"
        },
        "backupRemoteIdentifier": {
          "type": "string",
          "description": "Backup remote identifier. Required for Cert based authentication type with HA enabled. Example: \"gw-10-10-0-116\".\n"
        },
        "backupRemoteTunnelIp": {
          "type": "string",
          "description": "Backup remote tunnel IP address. Only valid when HA enabled route based connection. Available as of provider version R2.19+.\n"
        },
        "caCertTagName": {
          "type": "string",
          "description": "Name of Remote CA Certificate Tag for creating Site2Cloud tunnels. Required for Cert based authentication type.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Site2Cloud connection name.\n"
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid Values: \"mapped\", \"unmapped\".\n"
        },
        "customAlgorithms": {
          "type": "boolean",
          "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n"
        },
        "customMapped": {
          "type": "boolean",
          "description": "Enable custom mapped connection. Default value: false. Valid values: true/false. Available in provider version R2.17.1+.\n"
        },
        "enableActiveActive": {
          "type": "boolean",
          "description": "Enable/disable active active HA for an existing site2cloud connection. Valid values: true, false. Default value: false.\n"
        },
        "enableDeadPeerDetection": {
          "type": "boolean",
          "description": "Enable/disable Deed Peer Detection for an existing site2cloud connection. Default value: true. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.9**\n"
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableIkev2": {
          "type": "boolean",
          "description": "Switch to enable IKEv2. Valid values: true, false. Default value: false.\n"
        },
        "enableSingleIpHa": {
          "type": "boolean",
          "description": "Enable single IP HA feature. Available as of provider version 2.19+.\n"
        },
        "forwardTrafficToTransit": {
          "type": "boolean",
          "description": "Enable spoke gateway with mapped site2cloud configurations to forward traffic from site2cloud connection to Aviatrix Transit Gateway. Default value: false. Valid values: true or false. Available in provider version 2.17.2+.\n"
        },
        "haEnabled": {
          "type": "boolean",
          "description": "Specify whether or not to enable HA. Valid Values: true, false. **NOTE: Please see notes here regarding HA requirements.**\n"
        },
        "localDestinationRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Destination Real CIDRs.\n"
        },
        "localDestinationVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Destination Virtual CIDRs.\n"
        },
        "localSourceRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Source Real CIDRs.\n"
        },
        "localSourceVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Source Virtual CIDRs.\n"
        },
        "localSubnetCidr": {
          "type": "string",
          "description": "Local subnet CIDR. **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
        },
        "localSubnetVirtual": {
          "type": "string",
          "description": "Local subnet CIDR (Virtual). **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
        },
        "localTunnelIp": {
          "type": "string",
          "description": "Local tunnel IP address. Only valid for route based connection. Available as of provider version R2.19+.\n"
        },
        "phase1Authentication": {
          "type": "string",
          "description": "Phase one Authentication. Valid values: \"SHA-1\", \"SHA-256\", \"SHA-384\" and \"SHA-512\". Default value: \"SHA-256\".\n"
        },
        "phase1DhGroups": {
          "type": "string",
          "description": "Phase one DH Groups. Valid values: \"1\", \"2\", \"5\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\" and \"21\". Default value: \"14\".\n"
        },
        "phase1Encryption": {
          "type": "string",
          "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n"
        },
        "phase1RemoteIdentifiers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled. Available as of provider version R2.19+.\n"
        },
        "phase2Authentication": {
          "type": "string",
          "description": "Phase two Authentication. Valid values: \"NO-AUTH\", \"HMAC-SHA-1\", \"HMAC-SHA-256\", \"HMAC-SHA-384\" and \"HMAC-SHA-512\". Default value: \"HMAC-SHA-256\".\n"
        },
        "phase2DhGroups": {
          "type": "string",
          "description": "Phase two DH Groups. Valid values: \"1\", \"2\", \"5\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\" and \"21\". Default value: \"14\".\n"
        },
        "phase2Encryption": {
          "type": "string",
          "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n"
        },
        "preSharedKey": {
          "type": "string",
          "description": "Pre-Shared Key.\n",
          "secret": true
        },
        "primaryCloudGatewayName": {
          "type": "string",
          "description": "Primary cloud gateway name.\n"
        },
        "privateRouteEncryption": {
          "type": "boolean",
          "description": "Private route encryption switch. Valid values: true, false.\n"
        },
        "remoteDestinationRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of  Remote Initiated Traffic Destination Real CIDRs.\n"
        },
        "remoteDestinationVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Remote Initiated Traffic Destination Virtual CIDRs.\n"
        },
        "remoteGatewayIp": {
          "type": "string",
          "description": "Remote gateway IP.\n"
        },
        "remoteGatewayLatitude": {
          "type": "number",
          "description": "Latitude of remote gateway. Does not support refresh.\n"
        },
        "remoteGatewayLongitude": {
          "type": "number",
          "description": "Longitude of remote gateway. Does not support refresh.\n"
        },
        "remoteGatewayType": {
          "type": "string",
          "description": "Remote gateway type. Valid Values: \"generic\", \"avx\", \"aws\", \"azure\", \"sonicwall\", \"oracle\".\n"
        },
        "remoteIdentifier": {
          "type": "string",
          "description": "Remote identifier. Required for Cert based authentication type. Example: \"gw-10-10-0-115\".\n"
        },
        "remoteSourceRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Remote Initiated Traffic Source Real CIDRs.\n"
        },
        "remoteSourceVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Remote Initiated Traffic Source Virtual CIDRs.\n"
        },
        "remoteSubnetCidr": {
          "type": "string",
          "description": "Remote subnet CIDR. **Not required for custom_mapped connection.**\n"
        },
        "remoteSubnetVirtual": {
          "type": "string",
          "description": "Remote subnet CIDR (Virtual). **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
        },
        "remoteTunnelIp": {
          "type": "string",
          "description": "Remote tunnel IP address. Only valid for route based connection. Available as of provider version R2.19+.\n"
        },
        "routeTableLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Route tables to modify.\n"
        },
        "sslServerPool": {
          "type": "string",
          "description": "Specify ssl_server_pool. Default value: \"192.168.44.0/24\". **NOTE: Please see notes here for more information.**\n"
        },
        "tunnelType": {
          "type": "string",
          "description": "Site2Cloud tunnel type. Valid Values: \"policy\", \"route\".\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the cloud gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "backupRemoteGatewayIp",
        "connectionName",
        "connectionType",
        "localSubnetCidr",
        "primaryCloudGatewayName",
        "remoteGatewayIp",
        "remoteGatewayType",
        "tunnelType",
        "vpcId"
      ],
      "inputProperties": {
        "authType": {
          "type": "string",
          "description": "Authentication Type. Valid values: 'PSK' and 'Cert'. Default value: 'PSK'.\n",
          "willReplaceOnChanges": true
        },
        "backupGatewayName": {
          "type": "string",
          "description": "Backup gateway name. **NOTE: Please see notes here regarding HA requirements.**\n",
          "willReplaceOnChanges": true
        },
        "backupLocalTunnelIp": {
          "type": "string",
          "description": "Backup local tunnel IP address. Only valid when HA enabled route based connection. Available as of provider version R2.19+.\n",
          "willReplaceOnChanges": true
        },
        "backupPreSharedKey": {
          "type": "string",
          "description": "Backup Pre-Shared Key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "backupRemoteGatewayIp": {
          "type": "string",
          "description": "Backup Remote Gateway IP. **NOTE: Please see notes here regarding HA requirements.**\n",
          "willReplaceOnChanges": true
        },
        "backupRemoteGatewayLatitude": {
          "type": "number",
          "description": "Latitude of backup remote gateway. Does not support refresh.\n"
        },
        "backupRemoteGatewayLongitude": {
          "type": "number",
          "description": "Longitude of backup remote gateway. Does not support refresh.\n"
        },
        "backupRemoteIdentifier": {
          "type": "string",
          "description": "Backup remote identifier. Required for Cert based authentication type with HA enabled. Example: \"gw-10-10-0-116\".\n"
        },
        "backupRemoteTunnelIp": {
          "type": "string",
          "description": "Backup remote tunnel IP address. Only valid when HA enabled route based connection. Available as of provider version R2.19+.\n",
          "willReplaceOnChanges": true
        },
        "caCertTagName": {
          "type": "string",
          "description": "Name of Remote CA Certificate Tag for creating Site2Cloud tunnels. Required for Cert based authentication type.\n",
          "willReplaceOnChanges": true
        },
        "connectionName": {
          "type": "string",
          "description": "Site2Cloud connection name.\n",
          "willReplaceOnChanges": true
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid Values: \"mapped\", \"unmapped\".\n",
          "willReplaceOnChanges": true
        },
        "customAlgorithms": {
          "type": "boolean",
          "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n",
          "willReplaceOnChanges": true
        },
        "customMapped": {
          "type": "boolean",
          "description": "Enable custom mapped connection. Default value: false. Valid values: true/false. Available in provider version R2.17.1+.\n",
          "willReplaceOnChanges": true
        },
        "enableActiveActive": {
          "type": "boolean",
          "description": "Enable/disable active active HA for an existing site2cloud connection. Valid values: true, false. Default value: false.\n"
        },
        "enableDeadPeerDetection": {
          "type": "boolean",
          "description": "Enable/disable Deed Peer Detection for an existing site2cloud connection. Default value: true. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.9**\n"
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableIkev2": {
          "type": "boolean",
          "description": "Switch to enable IKEv2. Valid values: true, false. Default value: false.\n",
          "willReplaceOnChanges": true
        },
        "enableSingleIpHa": {
          "type": "boolean",
          "description": "Enable single IP HA feature. Available as of provider version 2.19+.\n",
          "willReplaceOnChanges": true
        },
        "forwardTrafficToTransit": {
          "type": "boolean",
          "description": "Enable spoke gateway with mapped site2cloud configurations to forward traffic from site2cloud connection to Aviatrix Transit Gateway. Default value: false. Valid values: true or false. Available in provider version 2.17.2+.\n"
        },
        "haEnabled": {
          "type": "boolean",
          "description": "Specify whether or not to enable HA. Valid Values: true, false. **NOTE: Please see notes here regarding HA requirements.**\n",
          "willReplaceOnChanges": true
        },
        "localDestinationRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Destination Real CIDRs.\n"
        },
        "localDestinationVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Destination Virtual CIDRs.\n"
        },
        "localSourceRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Source Real CIDRs.\n"
        },
        "localSourceVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Local Initiated Traffic Source Virtual CIDRs.\n"
        },
        "localSubnetCidr": {
          "type": "string",
          "description": "Local subnet CIDR. **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
        },
        "localSubnetVirtual": {
          "type": "string",
          "description": "Local subnet CIDR (Virtual). **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
        },
        "localTunnelIp": {
          "type": "string",
          "description": "Local tunnel IP address. Only valid for route based connection. Available as of provider version R2.19+.\n",
          "willReplaceOnChanges": true
        },
        "phase1Authentication": {
          "type": "string",
          "description": "Phase one Authentication. Valid values: \"SHA-1\", \"SHA-256\", \"SHA-384\" and \"SHA-512\". Default value: \"SHA-256\".\n",
          "willReplaceOnChanges": true
        },
        "phase1DhGroups": {
          "type": "string",
          "description": "Phase one DH Groups. Valid values: \"1\", \"2\", \"5\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\" and \"21\". Default value: \"14\".\n",
          "willReplaceOnChanges": true
        },
        "phase1Encryption": {
          "type": "string",
          "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n",
          "willReplaceOnChanges": true
        },
        "phase1RemoteIdentifiers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled. Available as of provider version R2.19+.\n"
        },
        "phase2Authentication": {
          "type": "string",
          "description": "Phase two Authentication. Valid values: \"NO-AUTH\", \"HMAC-SHA-1\", \"HMAC-SHA-256\", \"HMAC-SHA-384\" and \"HMAC-SHA-512\". Default value: \"HMAC-SHA-256\".\n",
          "willReplaceOnChanges": true
        },
        "phase2DhGroups": {
          "type": "string",
          "description": "Phase two DH Groups. Valid values: \"1\", \"2\", \"5\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\" and \"21\". Default value: \"14\".\n",
          "willReplaceOnChanges": true
        },
        "phase2Encryption": {
          "type": "string",
          "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n",
          "willReplaceOnChanges": true
        },
        "preSharedKey": {
          "type": "string",
          "description": "Pre-Shared Key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "primaryCloudGatewayName": {
          "type": "string",
          "description": "Primary cloud gateway name.\n",
          "willReplaceOnChanges": true
        },
        "privateRouteEncryption": {
          "type": "boolean",
          "description": "Private route encryption switch. Valid values: true, false.\n",
          "willReplaceOnChanges": true
        },
        "remoteDestinationRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of  Remote Initiated Traffic Destination Real CIDRs.\n"
        },
        "remoteDestinationVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Remote Initiated Traffic Destination Virtual CIDRs.\n"
        },
        "remoteGatewayIp": {
          "type": "string",
          "description": "Remote gateway IP.\n",
          "willReplaceOnChanges": true
        },
        "remoteGatewayLatitude": {
          "type": "number",
          "description": "Latitude of remote gateway. Does not support refresh.\n"
        },
        "remoteGatewayLongitude": {
          "type": "number",
          "description": "Longitude of remote gateway. Does not support refresh.\n"
        },
        "remoteGatewayType": {
          "type": "string",
          "description": "Remote gateway type. Valid Values: \"generic\", \"avx\", \"aws\", \"azure\", \"sonicwall\", \"oracle\".\n",
          "willReplaceOnChanges": true
        },
        "remoteIdentifier": {
          "type": "string",
          "description": "Remote identifier. Required for Cert based authentication type. Example: \"gw-10-10-0-115\".\n"
        },
        "remoteSourceRealCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Remote Initiated Traffic Source Real CIDRs.\n"
        },
        "remoteSourceVirtualCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Remote Initiated Traffic Source Virtual CIDRs.\n"
        },
        "remoteSubnetCidr": {
          "type": "string",
          "description": "Remote subnet CIDR. **Not required for custom_mapped connection.**\n"
        },
        "remoteSubnetVirtual": {
          "type": "string",
          "description": "Remote subnet CIDR (Virtual). **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
        },
        "remoteTunnelIp": {
          "type": "string",
          "description": "Remote tunnel IP address. Only valid for route based connection. Available as of provider version R2.19+.\n",
          "willReplaceOnChanges": true
        },
        "routeTableLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Route tables to modify.\n",
          "willReplaceOnChanges": true
        },
        "sslServerPool": {
          "type": "string",
          "description": "Specify ssl_server_pool. Default value: \"192.168.44.0/24\". **NOTE: Please see notes here for more information.**\n",
          "willReplaceOnChanges": true
        },
        "tunnelType": {
          "type": "string",
          "description": "Site2Cloud tunnel type. Valid Values: \"policy\", \"route\".\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the cloud gateway.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "connectionName",
        "connectionType",
        "primaryCloudGatewayName",
        "remoteGatewayIp",
        "remoteGatewayType",
        "tunnelType",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSite2Cloud resources.\n",
        "properties": {
          "authType": {
            "type": "string",
            "description": "Authentication Type. Valid values: 'PSK' and 'Cert'. Default value: 'PSK'.\n",
            "willReplaceOnChanges": true
          },
          "backupGatewayName": {
            "type": "string",
            "description": "Backup gateway name. **NOTE: Please see notes here regarding HA requirements.**\n",
            "willReplaceOnChanges": true
          },
          "backupLocalTunnelIp": {
            "type": "string",
            "description": "Backup local tunnel IP address. Only valid when HA enabled route based connection. Available as of provider version R2.19+.\n",
            "willReplaceOnChanges": true
          },
          "backupPreSharedKey": {
            "type": "string",
            "description": "Backup Pre-Shared Key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "backupRemoteGatewayIp": {
            "type": "string",
            "description": "Backup Remote Gateway IP. **NOTE: Please see notes here regarding HA requirements.**\n",
            "willReplaceOnChanges": true
          },
          "backupRemoteGatewayLatitude": {
            "type": "number",
            "description": "Latitude of backup remote gateway. Does not support refresh.\n"
          },
          "backupRemoteGatewayLongitude": {
            "type": "number",
            "description": "Longitude of backup remote gateway. Does not support refresh.\n"
          },
          "backupRemoteIdentifier": {
            "type": "string",
            "description": "Backup remote identifier. Required for Cert based authentication type with HA enabled. Example: \"gw-10-10-0-116\".\n"
          },
          "backupRemoteTunnelIp": {
            "type": "string",
            "description": "Backup remote tunnel IP address. Only valid when HA enabled route based connection. Available as of provider version R2.19+.\n",
            "willReplaceOnChanges": true
          },
          "caCertTagName": {
            "type": "string",
            "description": "Name of Remote CA Certificate Tag for creating Site2Cloud tunnels. Required for Cert based authentication type.\n",
            "willReplaceOnChanges": true
          },
          "connectionName": {
            "type": "string",
            "description": "Site2Cloud connection name.\n",
            "willReplaceOnChanges": true
          },
          "connectionType": {
            "type": "string",
            "description": "Connection type. Valid Values: \"mapped\", \"unmapped\".\n",
            "willReplaceOnChanges": true
          },
          "customAlgorithms": {
            "type": "boolean",
            "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n",
            "willReplaceOnChanges": true
          },
          "customMapped": {
            "type": "boolean",
            "description": "Enable custom mapped connection. Default value: false. Valid values: true/false. Available in provider version R2.17.1+.\n",
            "willReplaceOnChanges": true
          },
          "enableActiveActive": {
            "type": "boolean",
            "description": "Enable/disable active active HA for an existing site2cloud connection. Valid values: true, false. Default value: false.\n"
          },
          "enableDeadPeerDetection": {
            "type": "boolean",
            "description": "Enable/disable Deed Peer Detection for an existing site2cloud connection. Default value: true. **NOTE: Please see notes here in regards to any deltas found in your state with the addition of this argument in R1.9**\n"
          },
          "enableEventTriggeredHa": {
            "type": "boolean",
            "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
          },
          "enableIkev2": {
            "type": "boolean",
            "description": "Switch to enable IKEv2. Valid values: true, false. Default value: false.\n",
            "willReplaceOnChanges": true
          },
          "enableSingleIpHa": {
            "type": "boolean",
            "description": "Enable single IP HA feature. Available as of provider version 2.19+.\n",
            "willReplaceOnChanges": true
          },
          "forwardTrafficToTransit": {
            "type": "boolean",
            "description": "Enable spoke gateway with mapped site2cloud configurations to forward traffic from site2cloud connection to Aviatrix Transit Gateway. Default value: false. Valid values: true or false. Available in provider version 2.17.2+.\n"
          },
          "haEnabled": {
            "type": "boolean",
            "description": "Specify whether or not to enable HA. Valid Values: true, false. **NOTE: Please see notes here regarding HA requirements.**\n",
            "willReplaceOnChanges": true
          },
          "localDestinationRealCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Local Initiated Traffic Destination Real CIDRs.\n"
          },
          "localDestinationVirtualCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Local Initiated Traffic Destination Virtual CIDRs.\n"
          },
          "localSourceRealCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Local Initiated Traffic Source Real CIDRs.\n"
          },
          "localSourceVirtualCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Local Initiated Traffic Source Virtual CIDRs.\n"
          },
          "localSubnetCidr": {
            "type": "string",
            "description": "Local subnet CIDR. **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
          },
          "localSubnetVirtual": {
            "type": "string",
            "description": "Local subnet CIDR (Virtual). **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
          },
          "localTunnelIp": {
            "type": "string",
            "description": "Local tunnel IP address. Only valid for route based connection. Available as of provider version R2.19+.\n",
            "willReplaceOnChanges": true
          },
          "phase1Authentication": {
            "type": "string",
            "description": "Phase one Authentication. Valid values: \"SHA-1\", \"SHA-256\", \"SHA-384\" and \"SHA-512\". Default value: \"SHA-256\".\n",
            "willReplaceOnChanges": true
          },
          "phase1DhGroups": {
            "type": "string",
            "description": "Phase one DH Groups. Valid values: \"1\", \"2\", \"5\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\" and \"21\". Default value: \"14\".\n",
            "willReplaceOnChanges": true
          },
          "phase1Encryption": {
            "type": "string",
            "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n",
            "willReplaceOnChanges": true
          },
          "phase1RemoteIdentifiers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled. Available as of provider version R2.19+.\n"
          },
          "phase2Authentication": {
            "type": "string",
            "description": "Phase two Authentication. Valid values: \"NO-AUTH\", \"HMAC-SHA-1\", \"HMAC-SHA-256\", \"HMAC-SHA-384\" and \"HMAC-SHA-512\". Default value: \"HMAC-SHA-256\".\n",
            "willReplaceOnChanges": true
          },
          "phase2DhGroups": {
            "type": "string",
            "description": "Phase two DH Groups. Valid values: \"1\", \"2\", \"5\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\" and \"21\". Default value: \"14\".\n",
            "willReplaceOnChanges": true
          },
          "phase2Encryption": {
            "type": "string",
            "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n",
            "willReplaceOnChanges": true
          },
          "preSharedKey": {
            "type": "string",
            "description": "Pre-Shared Key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "primaryCloudGatewayName": {
            "type": "string",
            "description": "Primary cloud gateway name.\n",
            "willReplaceOnChanges": true
          },
          "privateRouteEncryption": {
            "type": "boolean",
            "description": "Private route encryption switch. Valid values: true, false.\n",
            "willReplaceOnChanges": true
          },
          "remoteDestinationRealCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of  Remote Initiated Traffic Destination Real CIDRs.\n"
          },
          "remoteDestinationVirtualCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Remote Initiated Traffic Destination Virtual CIDRs.\n"
          },
          "remoteGatewayIp": {
            "type": "string",
            "description": "Remote gateway IP.\n",
            "willReplaceOnChanges": true
          },
          "remoteGatewayLatitude": {
            "type": "number",
            "description": "Latitude of remote gateway. Does not support refresh.\n"
          },
          "remoteGatewayLongitude": {
            "type": "number",
            "description": "Longitude of remote gateway. Does not support refresh.\n"
          },
          "remoteGatewayType": {
            "type": "string",
            "description": "Remote gateway type. Valid Values: \"generic\", \"avx\", \"aws\", \"azure\", \"sonicwall\", \"oracle\".\n",
            "willReplaceOnChanges": true
          },
          "remoteIdentifier": {
            "type": "string",
            "description": "Remote identifier. Required for Cert based authentication type. Example: \"gw-10-10-0-115\".\n"
          },
          "remoteSourceRealCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Remote Initiated Traffic Source Real CIDRs.\n"
          },
          "remoteSourceVirtualCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of Remote Initiated Traffic Source Virtual CIDRs.\n"
          },
          "remoteSubnetCidr": {
            "type": "string",
            "description": "Remote subnet CIDR. **Not required for custom_mapped connection.**\n"
          },
          "remoteSubnetVirtual": {
            "type": "string",
            "description": "Remote subnet CIDR (Virtual). **Required for connection type \"mapped\", except for `custom_mapped` connection.**\n"
          },
          "remoteTunnelIp": {
            "type": "string",
            "description": "Remote tunnel IP address. Only valid for route based connection. Available as of provider version R2.19+.\n",
            "willReplaceOnChanges": true
          },
          "routeTableLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Route tables to modify.\n",
            "willReplaceOnChanges": true
          },
          "sslServerPool": {
            "type": "string",
            "description": "Specify ssl_server_pool. Default value: \"192.168.44.0/24\". **NOTE: Please see notes here for more information.**\n",
            "willReplaceOnChanges": true
          },
          "tunnelType": {
            "type": "string",
            "description": "Site2Cloud tunnel type. Valid Values: \"policy\", \"route\".\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the cloud gateway.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSite2CloudCaCertTag:AviatrixSite2CloudCaCertTag": {
      "description": "The **aviatrix_site2cloud_ca_cert_tag** resource creates and manages Aviatrix-created Site2Cloud CA Cert Tags.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Create an Aviatrix Site2cloud CA Cert Tag Containing One Cert\nconst test = new aviatrix.AviatrixSite2CloudCaCertTag(\"test\", {\n    tagName: \"test\",\n    caCertificates: [{\n        certContent: fs.readFileSync(\"/home/ubuntu/avx_gw_ca_cert_in_ui_root_only.crt\"),\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Site2cloud CA Cert Tag Containing One Cert\ntest = aviatrix.AviatrixSite2CloudCaCertTag(\"test\",\n    tag_name=\"test\",\n    ca_certificates=[aviatrix.AviatrixSite2CloudCaCertTagCaCertificateArgs(\n        cert_content=(lambda path: open(path).read())(\"/home/ubuntu/avx_gw_ca_cert_in_ui_root_only.crt\"),\n    )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Site2cloud CA Cert Tag Containing One Cert\n    var test = new Aviatrix.AviatrixSite2CloudCaCertTag(\"test\", new()\n    {\n        TagName = \"test\",\n        CaCertificates = new[]\n        {\n            new Aviatrix.Inputs.AviatrixSite2CloudCaCertTagCaCertificateArgs\n            {\n                CertContent = File.ReadAllText(\"/home/ubuntu/avx_gw_ca_cert_in_ui_root_only.crt\"),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixSite2CloudCaCertTag(ctx, \"test\", &aviatrix.AviatrixSite2CloudCaCertTagArgs{\n\t\t\tTagName: pulumi.String(\"test\"),\n\t\t\tCaCertificates: AviatrixSite2CloudCaCertTagCaCertificateArray{\n\t\t\t\t&AviatrixSite2CloudCaCertTagCaCertificateArgs{\n\t\t\t\t\tCertContent: readFileOrPanic(\"/home/ubuntu/avx_gw_ca_cert_in_ui_root_only.crt\"),\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.aviatrix.AviatrixSite2CloudCaCertTag;\nimport com.pulumi.aviatrix.AviatrixSite2CloudCaCertTagArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixSite2CloudCaCertTagCaCertificateArgs;\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 test = new AviatrixSite2CloudCaCertTag(\"test\", AviatrixSite2CloudCaCertTagArgs.builder()        \n            .tagName(\"test\")\n            .caCertificates(AviatrixSite2CloudCaCertTagCaCertificateArgs.builder()\n                .certContent(Files.readString(Paths.get(\"/home/ubuntu/avx_gw_ca_cert_in_ui_root_only.crt\")))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Site2cloud CA Cert Tag Containing One Cert\n  test:\n    type: aviatrix:AviatrixSite2CloudCaCertTag\n    properties:\n      tagName: test\n      caCertificates:\n        - certContent:\n            fn::readFile: /home/ubuntu/avx_gw_ca_cert_in_ui_root_only.crt\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Create an Aviatrix Site2cloud CA Cert Tag Containing Multiple Certs\nconst test = new aviatrix.AviatrixSite2CloudCaCertTag(\"test\", {\n    tagName: \"test\",\n    caCertificates: [\n        {\n            certContent: fs.readFileSync(\"/home/ubuntu/avx_gw_ca_cert_root.crt\"),\n        },\n        {\n            certContent: fs.readFileSync(\"/home/ubuntu/avx_gw_ca_cert_intermediate.crt\"),\n        },\n        {\n            certContent: fs.readFileSync(\"/home/ubuntu/avx_gw_ca_cert_intermediate2.crt\"),\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Site2cloud CA Cert Tag Containing Multiple Certs\ntest = aviatrix.AviatrixSite2CloudCaCertTag(\"test\",\n    tag_name=\"test\",\n    ca_certificates=[\n        aviatrix.AviatrixSite2CloudCaCertTagCaCertificateArgs(\n            cert_content=(lambda path: open(path).read())(\"/home/ubuntu/avx_gw_ca_cert_root.crt\"),\n        ),\n        aviatrix.AviatrixSite2CloudCaCertTagCaCertificateArgs(\n            cert_content=(lambda path: open(path).read())(\"/home/ubuntu/avx_gw_ca_cert_intermediate.crt\"),\n        ),\n        aviatrix.AviatrixSite2CloudCaCertTagCaCertificateArgs(\n            cert_content=(lambda path: open(path).read())(\"/home/ubuntu/avx_gw_ca_cert_intermediate2.crt\"),\n        ),\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Site2cloud CA Cert Tag Containing Multiple Certs\n    var test = new Aviatrix.AviatrixSite2CloudCaCertTag(\"test\", new()\n    {\n        TagName = \"test\",\n        CaCertificates = new[]\n        {\n            new Aviatrix.Inputs.AviatrixSite2CloudCaCertTagCaCertificateArgs\n            {\n                CertContent = File.ReadAllText(\"/home/ubuntu/avx_gw_ca_cert_root.crt\"),\n            },\n            new Aviatrix.Inputs.AviatrixSite2CloudCaCertTagCaCertificateArgs\n            {\n                CertContent = File.ReadAllText(\"/home/ubuntu/avx_gw_ca_cert_intermediate.crt\"),\n            },\n            new Aviatrix.Inputs.AviatrixSite2CloudCaCertTagCaCertificateArgs\n            {\n                CertContent = File.ReadAllText(\"/home/ubuntu/avx_gw_ca_cert_intermediate2.crt\"),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixSite2CloudCaCertTag(ctx, \"test\", &aviatrix.AviatrixSite2CloudCaCertTagArgs{\n\t\t\tTagName: pulumi.String(\"test\"),\n\t\t\tCaCertificates: AviatrixSite2CloudCaCertTagCaCertificateArray{\n\t\t\t\t&AviatrixSite2CloudCaCertTagCaCertificateArgs{\n\t\t\t\t\tCertContent: readFileOrPanic(\"/home/ubuntu/avx_gw_ca_cert_root.crt\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixSite2CloudCaCertTagCaCertificateArgs{\n\t\t\t\t\tCertContent: readFileOrPanic(\"/home/ubuntu/avx_gw_ca_cert_intermediate.crt\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixSite2CloudCaCertTagCaCertificateArgs{\n\t\t\t\t\tCertContent: readFileOrPanic(\"/home/ubuntu/avx_gw_ca_cert_intermediate2.crt\"),\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.aviatrix.AviatrixSite2CloudCaCertTag;\nimport com.pulumi.aviatrix.AviatrixSite2CloudCaCertTagArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixSite2CloudCaCertTagCaCertificateArgs;\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 test = new AviatrixSite2CloudCaCertTag(\"test\", AviatrixSite2CloudCaCertTagArgs.builder()        \n            .tagName(\"test\")\n            .caCertificates(            \n                AviatrixSite2CloudCaCertTagCaCertificateArgs.builder()\n                    .certContent(Files.readString(Paths.get(\"/home/ubuntu/avx_gw_ca_cert_root.crt\")))\n                    .build(),\n                AviatrixSite2CloudCaCertTagCaCertificateArgs.builder()\n                    .certContent(Files.readString(Paths.get(\"/home/ubuntu/avx_gw_ca_cert_intermediate.crt\")))\n                    .build(),\n                AviatrixSite2CloudCaCertTagCaCertificateArgs.builder()\n                    .certContent(Files.readString(Paths.get(\"/home/ubuntu/avx_gw_ca_cert_intermediate2.crt\")))\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Site2cloud CA Cert Tag Containing Multiple Certs\n  test:\n    type: aviatrix:AviatrixSite2CloudCaCertTag\n    properties:\n      tagName: test\n      caCertificates:\n        - certContent:\n            fn::readFile: /home/ubuntu/avx_gw_ca_cert_root.crt\n        - certContent:\n            fn::readFile: /home/ubuntu/avx_gw_ca_cert_intermediate.crt\n        - certContent:\n            fn::readFile: /home/ubuntu/avx_gw_ca_cert_intermediate2.crt\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**site2cloud_ca_cert_tag** can be imported using the `tag_name` and, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSite2CloudCaCertTag:AviatrixSite2CloudCaCertTag test tag_name\n```\n\n ",
      "properties": {
        "caCertificates": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixSite2CloudCaCertTagCaCertificate:AviatrixSite2CloudCaCertTagCaCertificate"
          },
          "description": "A set of CA certificates.\n"
        },
        "tagName": {
          "type": "string",
          "description": "Site2Cloud ca cert tag name.\n"
        }
      },
      "type": "object",
      "required": [
        "caCertificates",
        "tagName"
      ],
      "inputProperties": {
        "caCertificates": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixSite2CloudCaCertTagCaCertificate:AviatrixSite2CloudCaCertTagCaCertificate"
          },
          "description": "A set of CA certificates.\n"
        },
        "tagName": {
          "type": "string",
          "description": "Site2Cloud ca cert tag name.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "caCertificates",
        "tagName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSite2CloudCaCertTag resources.\n",
        "properties": {
          "caCertificates": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixSite2CloudCaCertTagCaCertificate:AviatrixSite2CloudCaCertTagCaCertificate"
            },
            "description": "A set of CA certificates.\n"
          },
          "tagName": {
            "type": "string",
            "description": "Site2Cloud ca cert tag name.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSplunkLogging:AviatrixSplunkLogging": {
      "description": "The **aviatrix_splunk_logging** resource allows the enabling and disabling of splunk logging.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable splunk logging using server and port combination\nconst testSplunkLogging = new aviatrix.AviatrixSplunkLogging(\"test_splunk_logging\", {\n    port: 10,\n    server: \"1.2.3.4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable splunk logging using server and port combination\ntest_splunk_logging = aviatrix.AviatrixSplunkLogging(\"testSplunkLogging\",\n    port=10,\n    server=\"1.2.3.4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable splunk logging using server and port combination\n    var testSplunkLogging = new Aviatrix.AviatrixSplunkLogging(\"testSplunkLogging\", new()\n    {\n        Port = 10,\n        Server = \"1.2.3.4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSplunkLogging(ctx, \"testSplunkLogging\", &aviatrix.AviatrixSplunkLoggingArgs{\n\t\t\tPort:   pulumi.Int(10),\n\t\t\tServer: pulumi.String(\"1.2.3.4\"),\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.aviatrix.AviatrixSplunkLogging;\nimport com.pulumi.aviatrix.AviatrixSplunkLoggingArgs;\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 testSplunkLogging = new AviatrixSplunkLogging(\"testSplunkLogging\", AviatrixSplunkLoggingArgs.builder()        \n            .port(10)\n            .server(\"1.2.3.4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable splunk logging using server and port combination\n  testSplunkLogging:\n    type: aviatrix:AviatrixSplunkLogging\n    properties:\n      port: 10\n      server: 1.2.3.4\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@astipkovits/aviatrix\";\nimport * as fs from \"fs\";\n\n// Enable splunk logging using configuration file\nconst testSplunkLogging = new aviatrix.AviatrixSplunkLogging(\"testSplunkLogging\", {customOutputConfigFile: Buffer.from(fs.readFileSync(\"/path/to/configuration.spl\"), 'binary').toString('base64')});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_aviatrix as aviatrix\n\n# Enable splunk logging using configuration file\ntest_splunk_logging = aviatrix.AviatrixSplunkLogging(\"testSplunkLogging\", custom_output_config_file=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"/path/to/configuration.spl\"))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\n\tprivate static string ReadFileBase64(string path) {\n\t\treturn Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)))\n\t}\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable splunk logging using configuration file\n    var testSplunkLogging = new Aviatrix.AviatrixSplunkLogging(\"testSplunkLogging\", new()\n    {\n        CustomOutputConfigFile = ReadFileBase64(\"/path/to/configuration.spl\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"io/ioutil\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := ioutil.ReadFile(path); err == nil {\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aviatrix.NewAviatrixSplunkLogging(ctx, \"testSplunkLogging\", &aviatrix.AviatrixSplunkLoggingArgs{\n\t\t\tCustomOutputConfigFile: filebase64OrPanic(\"/path/to/configuration.spl\"),\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.aviatrix.AviatrixSplunkLogging;\nimport com.pulumi.aviatrix.AviatrixSplunkLoggingArgs;\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 testSplunkLogging = new AviatrixSplunkLogging(\"testSplunkLogging\", AviatrixSplunkLoggingArgs.builder()        \n            .customOutputConfigFile(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"/path/to/configuration.spl\"))))\n            .build());\n\n    }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**splunk_logging** can be imported using `splunk_logging`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSplunkLogging:AviatrixSplunkLogging test splunk_logging\n```\n\n ",
      "properties": {
        "customInputConfig": {
          "type": "string",
          "description": "Custom configuration.\n"
        },
        "customOutputConfigFile": {
          "type": "string",
          "description": "Configuration file. Use the `filebase64` function to read from a file.\n"
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n"
        },
        "port": {
          "type": "integer",
          "description": "Port number.\n"
        },
        "server": {
          "type": "string",
          "description": "Server IP.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of splunk logging.\n"
        }
      },
      "type": "object",
      "required": [
        "status"
      ],
      "inputProperties": {
        "customInputConfig": {
          "type": "string",
          "description": "Custom configuration.\n",
          "willReplaceOnChanges": true
        },
        "customOutputConfigFile": {
          "type": "string",
          "description": "Configuration file. Use the `filebase64` function to read from a file.\n",
          "willReplaceOnChanges": true
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
          "willReplaceOnChanges": true
        },
        "port": {
          "type": "integer",
          "description": "Port number.\n",
          "willReplaceOnChanges": true
        },
        "server": {
          "type": "string",
          "description": "Server IP.\n",
          "willReplaceOnChanges": true
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSplunkLogging resources.\n",
        "properties": {
          "customInputConfig": {
            "type": "string",
            "description": "Custom configuration.\n",
            "willReplaceOnChanges": true
          },
          "customOutputConfigFile": {
            "type": "string",
            "description": "Configuration file. Use the `filebase64` function to read from a file.\n",
            "willReplaceOnChanges": true
          },
          "excludedGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
            "willReplaceOnChanges": true
          },
          "port": {
            "type": "integer",
            "description": "Port number.\n",
            "willReplaceOnChanges": true
          },
          "server": {
            "type": "string",
            "description": "Server IP.\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "The status of splunk logging.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSpokeGateway:AviatrixSpokeGateway": {
      "description": "\n\n\n## Import\n\n**spoke_gateway** can be imported using the `gw_name`, e.g. ****\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSpokeGateway:AviatrixSpokeGateway test gw_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "allocateNewEip": {
          "type": "boolean",
          "description": "When value is false, reuse an idle address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 4.7+. Valid values: true, false. Default: true.\n"
        },
        "approvedLearnedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of approved learned CIDRs. Only valid when `enable_learned_cidrs_approval` is set to true. Example: [\"10.250.0.0/16\", \"10.251.0.0/16\"]. Available as of provider version R2.21+.\n"
        },
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "azureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the Spoke Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "bgpEcmp": {
          "type": "boolean",
          "description": "Enable Equal Cost Multi Path (ECMP) routing for the next hop. Default value: false.\n"
        },
        "bgpHoldTime": {
          "type": "integer",
          "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
        },
        "bgpPollingTime": {
          "type": "integer",
          "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: \"50\".\n"
        },
        "cloudInstanceId": {
          "type": "string",
          "description": "Cloud instance ID of the spoke gateway.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently, only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192), AWS Top Secret(16384) and AWS Secret (32768) are supported.\n"
        },
        "customerManagedKeys": {
          "type": "string",
          "description": "Customer managed key ID.\n",
          "secret": true
        },
        "customizedSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be customized for the spoke VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. It applies to this spoke gateway only. Example: \"10.0.0.0/116,10.2.0.0/16\".\n"
        },
        "disableRoutePropagation": {
          "type": "boolean",
          "description": "Disables route propagation on BGP Spoke to attached Transit Gateway. Default value: false.\n"
        },
        "eip": {
          "type": "string",
          "description": "Required when `allocate_new_eip` is false. It uses the specified EIP for this gateway. Available in Controller 4.7+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "enableActiveStandby": {
          "type": "boolean",
          "description": "Enables [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby). Available only with HA enabled. Valid values: true, false. Default value: false.\n"
        },
        "enableActiveStandbyPreemptive": {
          "type": "boolean",
          "description": "Enables Preemptive Mode for Active-Standby. Available only with BGP enabled, HA enabled and Active-Standby enabled. Valid values: true, false. Default value: false.\n"
        },
        "enableAutoAdvertiseS2cCidrs": {
          "type": "boolean",
          "description": "Auto Advertise Spoke Site2Cloud CIDRs. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableBgp": {
          "type": "boolean",
          "description": "Enable BGP for this spoke gateway. Only available for AWS and Azure. Valid values: true, false. Default value: false. Available in provider R2.21.0+.\n"
        },
        "enableEncryptVolume": {
          "type": "boolean",
          "description": "Enable EBS volume encryption for Gateway. Only supports AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret providers. Valid values: true, false. Default value: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable jumbo frames for this spoke gateway. Default value is true.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable learned CIDR approval for BGP Spoke Gateway. Valid values: true, false. Default value: false.\n"
        },
        "enableMonitorGatewaySubnets": {
          "type": "boolean",
          "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.18+.\n"
        },
        "enablePreserveAsPath": {
          "type": "boolean",
          "description": "Enable preserve as_path when advertising manual summary cidrs on BGP spoke gateway. Valid values: true, false. Default value: false. Available as of provider version R.2.22.1+\n"
        },
        "enablePrivateOob": {
          "type": "boolean",
          "description": "Enable Private OOB feature. Only available for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "enablePrivateVpcDefaultRoute": {
          "type": "boolean",
          "description": "Program default route in VPC private route table. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableSkipPublicRouteTableUpdate": {
          "type": "boolean",
          "description": "Skip programming VPC public route table. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableSpotInstance": {
          "type": "boolean",
          "description": "Enable spot instance. NOT supported for production deployment.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC DNS Server for Gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "filteredSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be filtered from the spoke VPC route table. When configured, filtering CIDR(s) or it’s subnet will be deleted from VPC routing tables as well as from spoke gateway’s routing table. It applies to this spoke gateway only. Example: \"10.2.0.0/116,10.3.0.0/16\".\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n"
        },
        "gwSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS/AWSGov/AWSChina: \"t2.large\", Azure/AzureGov/AzureChina: \"Standard_B1s\", OCI: \"VM.Standard2.2\", GCP: \"n1-standard-1\".\n"
        },
        "haAvailabilityDomain": {
          "type": "string",
          "description": "HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haAzureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the HA Spoke Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "haCloudInstanceId": {
          "type": "string",
          "description": "Cloud instance ID of the HA spoke gateway.\n"
        },
        "haEip": {
          "type": "string",
          "description": "Public IP address that you want to assign to the HA peering instance. If no value is given, a new EIP will automatically be allocated. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "haFaultDomain": {
          "type": "string",
          "description": "HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haGwName": {
          "type": "string",
          "description": "Aviatrix spoke gateway unique name of HA spoke gateway.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if enabling HA.\n"
        },
        "haImageVersion": {
          "type": "string",
          "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "haInsaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Spoke HA Gateway. Required for AWS, AzureGov, AWSGov, AWS Top Secret and AWS Secret if `insane_mode` is enabled and `ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "haOobAvailabilityZone": {
          "type": "string",
          "description": "HA OOB availability zone. Required if enabling Private OOB and HA. Example: \"us-west-1b\".\n"
        },
        "haOobManagementSubnet": {
          "type": "string",
          "description": "HA OOB management subnet. Required if enabling Private OOB and HA. Example: \"11.0.0.48/28\".\n"
        },
        "haPrivateIp": {
          "type": "string",
          "description": "Private IP address of HA spoke gateway.\n"
        },
        "haPrivateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the HA subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov with HA. Available in Provider version R2.23+.\n"
        },
        "haPublicIp": {
          "type": "string",
          "description": "Public IP address of the HA Spoke Gateway.\n"
        },
        "haSecurityGroupId": {
          "type": "string",
          "description": "HA security group used for the spoke gateway.\n"
        },
        "haSoftwareVersion": {
          "type": "string",
          "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet. Required if enabling HA for AWS, AWSGov, AWSChina, Azure, AzureGov, AzureChina, OCI, Alibaba Cloud, AWS Top Secret or AWS Secret gateways. Optional for GCP. Setting to empty/unsetting will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet. Example: \"10.12.0.0/24\"\n"
        },
        "haZone": {
          "type": "string",
          "description": "HA Zone. Required if enabling HA for GCP gateway. Optional for Azure. For GCP, setting to empty/unsetting will disable HA and setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\". For Azure, this is an optional parameter to place the HA gateway in a specific availability zone. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
        },
        "imageVersion": {
          "type": "string",
          "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "includedAdvertisedSpokeRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be advertised to on-prem as 'Included CIDR List'. When configured, it will replace all advertised routes from this VPC. Example: \"10.4.0.0/116,10.5.0.0/16\".\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Enable [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) for Spoke Gateway. Insane Mode gateway size must be at least c5 size (AWS, AWSGov, AWS China, AWS Top Secret and AWS Secret) or Standard_D3_v2 (Azure and AzureGov); for GCP only four size are supported: \"n1-highcpu-4\", \"n1-highcpu-8\", \"n1-highcpu-16\" and \"n1-highcpu-32\". If enabled, you must specify a valid /26 CIDR segment of the VPC to create a new subnet for AWS, Azure, AzureGov, AWSGov, AWS Top Secret and AWS Secret. Only available for AWS, GCP/OCI, Azure, AzureGov, AzureChina, AWSGov, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Spoke Gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is enabled. Example: AWS: \"us-west-1a\".\n"
        },
        "learnedCidrsApprovalMode": {
          "type": "string",
          "description": "Learned CIDRs approval mode. Either \"gateway\" (approval on a per-gateway basis) or \"connection\" (approval on a per-connection basis). Only \"gateway\" is supported for BGP SPOKE Gateway. Default value: \"gateway\". Available as of provider version R2.21+.\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "Changes the Aviatrix Spoke Gateway ASN number before you setup Aviatrix Spoke Gateway connection configurations.\n"
        },
        "manageTransitGatewayAttachment": {
          "type": "boolean",
          "description": "Enable to manage spoke-to-Aviatrix transit gateway attachments using the **aviatrix_spoke_gateway** resource with the below `transit_gw` attribute. If this is set to false, attaching this spoke to transit gateways must be done using the **aviatrix_spoke_transit_attachment** resource. Valid values: true, false. Default value: true. Available in provider R2.17+.\n"
        },
        "monitorExcludeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.18+.\n"
        },
        "oobAvailabilityZone": {
          "type": "string",
          "description": "OOB availability zone. Required if enabling Private OOB. Example: \"us-west-1a\".\n"
        },
        "oobManagementSubnet": {
          "type": "string",
          "description": "OOB management subnet. Required if enabling Private OOB. Example: \"11.0.2.0/24\".\n"
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of AS numbers to populate BGP AS_PATH field when it advertises to VGW or peer devices.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Private IP address of the spoke gateway created.\n"
        },
        "privateModeLbVpcId": {
          "type": "string",
          "description": "VPC ID of Private Mode load balancer. Required when Private Mode is enabled on the Controller. Available in provider version R2.23+.\n"
        },
        "privateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov. Available in Provider version R2.23+.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Public IP address of the Spoke Gateway created.\n"
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Security group used for the spoke gateway.\n"
        },
        "singleAzHa": {
          "type": "boolean",
          "description": "Set to true if this [feature](https://docs.aviatrix.com/Solutions/gateway_ha.html#single-az-gateway) is desired. Valid values: true, false.\n"
        },
        "singleIpSnat": {
          "type": "boolean",
          "description": "Specify whether to enable Source NAT feature in \"single_ip\" mode on the gateway or not. Please disable AWS NAT instance before enabling this feature. Currently only supports AWS(1) and Azure(8). Valid values: true, false.\n"
        },
        "softwareVersion": {
          "type": "string",
          "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "spokeBgpManualAdvertiseCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Intended CIDR list to be advertised to external BGP router. Empty list is not valid. Example: [\"10.2.0.0/16\", \"10.4.0.0/16\"].\n"
        },
        "spotPrice": {
          "type": "string",
          "description": "Price for spot instance. NOT supported for production deployment.\n"
        },
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges. Example: \"172.31.0.0/20\". **NOTE: If using `insane_mode`, please see notes here.**\n"
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) Instance tag of cloud provider. Only supported for AWS, Azure, AzureGov, AWSGov, AWSChina and AzureChina. Example: [\"key1:value1\", \"key2:value2\"].\n",
          "deprecationMessage": "Use tags instead."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags to assign to the gateway. Only available for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character. Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
        },
        "transitGw": {
          "type": "string",
          "description": "Specify the Aviatrix transit gateways to attach this spoke gateway to. Format is a comma separated list of transit gateway names. For example: \"transit-gw1,transit-gw2\".\n",
          "deprecationMessage": "Please set `manage_transit_gateway_attachment` to false, and use the standalone aviatrix_spoke_transit_attachment resource instead."
        },
        "tunnelDetectionTime": {
          "type": "integer",
          "description": "The IPSec tunnel down detection time for the Spoke Gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider. Example: AWS/AWSGov/AWSChina: \"vpc-abcd1234\", GCP: \"vpc-gcp-test~-~project-id\", Azure/AzureGov/AzureChina: \"vnet_name:rg_name:resource_guid\", OCI: \"ocid1.vcn.oc1.iad.aaaaaaaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdsq\".\n"
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1, AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n"
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Only available for cloud_type = 8 (Azure). Must be in the form 'az-n', for example, 'az-2'. Available in provider version R2.17+.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "availabilityDomain",
        "azureEipNameResourceGroup",
        "cloudInstanceId",
        "cloudType",
        "eip",
        "faultDomain",
        "gwName",
        "gwSize",
        "haAvailabilityDomain",
        "haAzureEipNameResourceGroup",
        "haCloudInstanceId",
        "haEip",
        "haFaultDomain",
        "haGwName",
        "haImageVersion",
        "haPrivateIp",
        "haPublicIp",
        "haSecurityGroupId",
        "haSoftwareVersion",
        "imageVersion",
        "localAsNumber",
        "privateIp",
        "publicIp",
        "securityGroupId",
        "softwareVersion",
        "subnet",
        "tunnelDetectionTime",
        "vpcId",
        "vpcReg"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "allocateNewEip": {
          "type": "boolean",
          "description": "When value is false, reuse an idle address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 4.7+. Valid values: true, false. Default: true.\n"
        },
        "approvedLearnedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of approved learned CIDRs. Only valid when `enable_learned_cidrs_approval` is set to true. Example: [\"10.250.0.0/16\", \"10.251.0.0/16\"]. Available as of provider version R2.21+.\n"
        },
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "azureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the Spoke Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "bgpEcmp": {
          "type": "boolean",
          "description": "Enable Equal Cost Multi Path (ECMP) routing for the next hop. Default value: false.\n"
        },
        "bgpHoldTime": {
          "type": "integer",
          "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
        },
        "bgpPollingTime": {
          "type": "integer",
          "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: \"50\".\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently, only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192), AWS Top Secret(16384) and AWS Secret (32768) are supported.\n"
        },
        "customerManagedKeys": {
          "type": "string",
          "description": "Customer managed key ID.\n",
          "secret": true
        },
        "customizedSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be customized for the spoke VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. It applies to this spoke gateway only. Example: \"10.0.0.0/116,10.2.0.0/16\".\n"
        },
        "disableRoutePropagation": {
          "type": "boolean",
          "description": "Disables route propagation on BGP Spoke to attached Transit Gateway. Default value: false.\n"
        },
        "eip": {
          "type": "string",
          "description": "Required when `allocate_new_eip` is false. It uses the specified EIP for this gateway. Available in Controller 4.7+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "enableActiveStandby": {
          "type": "boolean",
          "description": "Enables [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby). Available only with HA enabled. Valid values: true, false. Default value: false.\n"
        },
        "enableActiveStandbyPreemptive": {
          "type": "boolean",
          "description": "Enables Preemptive Mode for Active-Standby. Available only with BGP enabled, HA enabled and Active-Standby enabled. Valid values: true, false. Default value: false.\n"
        },
        "enableAutoAdvertiseS2cCidrs": {
          "type": "boolean",
          "description": "Auto Advertise Spoke Site2Cloud CIDRs. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableBgp": {
          "type": "boolean",
          "description": "Enable BGP for this spoke gateway. Only available for AWS and Azure. Valid values: true, false. Default value: false. Available in provider R2.21.0+.\n",
          "willReplaceOnChanges": true
        },
        "enableEncryptVolume": {
          "type": "boolean",
          "description": "Enable EBS volume encryption for Gateway. Only supports AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret providers. Valid values: true, false. Default value: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable jumbo frames for this spoke gateway. Default value is true.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable learned CIDR approval for BGP Spoke Gateway. Valid values: true, false. Default value: false.\n"
        },
        "enableMonitorGatewaySubnets": {
          "type": "boolean",
          "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.18+.\n"
        },
        "enablePreserveAsPath": {
          "type": "boolean",
          "description": "Enable preserve as_path when advertising manual summary cidrs on BGP spoke gateway. Valid values: true, false. Default value: false. Available as of provider version R.2.22.1+\n"
        },
        "enablePrivateOob": {
          "type": "boolean",
          "description": "Enable Private OOB feature. Only available for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "enablePrivateVpcDefaultRoute": {
          "type": "boolean",
          "description": "Program default route in VPC private route table. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableSkipPublicRouteTableUpdate": {
          "type": "boolean",
          "description": "Skip programming VPC public route table. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableSpotInstance": {
          "type": "boolean",
          "description": "Enable spot instance. NOT supported for production deployment.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC DNS Server for Gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "filteredSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be filtered from the spoke VPC route table. When configured, filtering CIDR(s) or it’s subnet will be deleted from VPC routing tables as well as from spoke gateway’s routing table. It applies to this spoke gateway only. Example: \"10.2.0.0/116,10.3.0.0/16\".\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n",
          "willReplaceOnChanges": true
        },
        "gwSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS/AWSGov/AWSChina: \"t2.large\", Azure/AzureGov/AzureChina: \"Standard_B1s\", OCI: \"VM.Standard2.2\", GCP: \"n1-standard-1\".\n"
        },
        "haAvailabilityDomain": {
          "type": "string",
          "description": "HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haAzureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the HA Spoke Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "haEip": {
          "type": "string",
          "description": "Public IP address that you want to assign to the HA peering instance. If no value is given, a new EIP will automatically be allocated. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "haFaultDomain": {
          "type": "string",
          "description": "HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if enabling HA.\n"
        },
        "haImageVersion": {
          "type": "string",
          "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "haInsaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Spoke HA Gateway. Required for AWS, AzureGov, AWSGov, AWS Top Secret and AWS Secret if `insane_mode` is enabled and `ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "haOobAvailabilityZone": {
          "type": "string",
          "description": "HA OOB availability zone. Required if enabling Private OOB and HA. Example: \"us-west-1b\".\n"
        },
        "haOobManagementSubnet": {
          "type": "string",
          "description": "HA OOB management subnet. Required if enabling Private OOB and HA. Example: \"11.0.0.48/28\".\n"
        },
        "haPrivateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the HA subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov with HA. Available in Provider version R2.23+.\n"
        },
        "haSoftwareVersion": {
          "type": "string",
          "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet. Required if enabling HA for AWS, AWSGov, AWSChina, Azure, AzureGov, AzureChina, OCI, Alibaba Cloud, AWS Top Secret or AWS Secret gateways. Optional for GCP. Setting to empty/unsetting will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet. Example: \"10.12.0.0/24\"\n"
        },
        "haZone": {
          "type": "string",
          "description": "HA Zone. Required if enabling HA for GCP gateway. Optional for Azure. For GCP, setting to empty/unsetting will disable HA and setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\". For Azure, this is an optional parameter to place the HA gateway in a specific availability zone. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
        },
        "imageVersion": {
          "type": "string",
          "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "includedAdvertisedSpokeRoutes": {
          "type": "string",
          "description": "A list of comma separated CIDRs to be advertised to on-prem as 'Included CIDR List'. When configured, it will replace all advertised routes from this VPC. Example: \"10.4.0.0/116,10.5.0.0/16\".\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Enable [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) for Spoke Gateway. Insane Mode gateway size must be at least c5 size (AWS, AWSGov, AWS China, AWS Top Secret and AWS Secret) or Standard_D3_v2 (Azure and AzureGov); for GCP only four size are supported: \"n1-highcpu-4\", \"n1-highcpu-8\", \"n1-highcpu-16\" and \"n1-highcpu-32\". If enabled, you must specify a valid /26 CIDR segment of the VPC to create a new subnet for AWS, Azure, AzureGov, AWSGov, AWS Top Secret and AWS Secret. Only available for AWS, GCP/OCI, Azure, AzureGov, AzureChina, AWSGov, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Spoke Gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is enabled. Example: AWS: \"us-west-1a\".\n"
        },
        "learnedCidrsApprovalMode": {
          "type": "string",
          "description": "Learned CIDRs approval mode. Either \"gateway\" (approval on a per-gateway basis) or \"connection\" (approval on a per-connection basis). Only \"gateway\" is supported for BGP SPOKE Gateway. Default value: \"gateway\". Available as of provider version R2.21+.\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "Changes the Aviatrix Spoke Gateway ASN number before you setup Aviatrix Spoke Gateway connection configurations.\n"
        },
        "manageTransitGatewayAttachment": {
          "type": "boolean",
          "description": "Enable to manage spoke-to-Aviatrix transit gateway attachments using the **aviatrix_spoke_gateway** resource with the below `transit_gw` attribute. If this is set to false, attaching this spoke to transit gateways must be done using the **aviatrix_spoke_transit_attachment** resource. Valid values: true, false. Default value: true. Available in provider R2.17+.\n"
        },
        "monitorExcludeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.18+.\n"
        },
        "oobAvailabilityZone": {
          "type": "string",
          "description": "OOB availability zone. Required if enabling Private OOB. Example: \"us-west-1a\".\n",
          "willReplaceOnChanges": true
        },
        "oobManagementSubnet": {
          "type": "string",
          "description": "OOB management subnet. Required if enabling Private OOB. Example: \"11.0.2.0/24\".\n",
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of AS numbers to populate BGP AS_PATH field when it advertises to VGW or peer devices.\n"
        },
        "privateModeLbVpcId": {
          "type": "string",
          "description": "VPC ID of Private Mode load balancer. Required when Private Mode is enabled on the Controller. Available in provider version R2.23+.\n",
          "willReplaceOnChanges": true
        },
        "privateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov. Available in Provider version R2.23+.\n",
          "willReplaceOnChanges": true
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
        },
        "singleAzHa": {
          "type": "boolean",
          "description": "Set to true if this [feature](https://docs.aviatrix.com/Solutions/gateway_ha.html#single-az-gateway) is desired. Valid values: true, false.\n"
        },
        "singleIpSnat": {
          "type": "boolean",
          "description": "Specify whether to enable Source NAT feature in \"single_ip\" mode on the gateway or not. Please disable AWS NAT instance before enabling this feature. Currently only supports AWS(1) and Azure(8). Valid values: true, false.\n"
        },
        "softwareVersion": {
          "type": "string",
          "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "spokeBgpManualAdvertiseCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Intended CIDR list to be advertised to external BGP router. Empty list is not valid. Example: [\"10.2.0.0/16\", \"10.4.0.0/16\"].\n"
        },
        "spotPrice": {
          "type": "string",
          "description": "Price for spot instance. NOT supported for production deployment.\n"
        },
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges. Example: \"172.31.0.0/20\". **NOTE: If using `insane_mode`, please see notes here.**\n",
          "willReplaceOnChanges": true
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) Instance tag of cloud provider. Only supported for AWS, Azure, AzureGov, AWSGov, AWSChina and AzureChina. Example: [\"key1:value1\", \"key2:value2\"].\n",
          "deprecationMessage": "Use tags instead."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags to assign to the gateway. Only available for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character. Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
        },
        "transitGw": {
          "type": "string",
          "description": "Specify the Aviatrix transit gateways to attach this spoke gateway to. Format is a comma separated list of transit gateway names. For example: \"transit-gw1,transit-gw2\".\n",
          "deprecationMessage": "Please set `manage_transit_gateway_attachment` to false, and use the standalone aviatrix_spoke_transit_attachment resource instead."
        },
        "tunnelDetectionTime": {
          "type": "integer",
          "description": "The IPSec tunnel down detection time for the Spoke Gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider. Example: AWS/AWSGov/AWSChina: \"vpc-abcd1234\", GCP: \"vpc-gcp-test~-~project-id\", Azure/AzureGov/AzureChina: \"vnet_name:rg_name:resource_guid\", OCI: \"ocid1.vcn.oc1.iad.aaaaaaaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdsq\".\n",
          "willReplaceOnChanges": true
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1, AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n",
          "willReplaceOnChanges": true
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Only available for cloud_type = 8 (Azure). Must be in the form 'az-n', for example, 'az-2'. Available in provider version R2.17+.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType",
        "gwName",
        "gwSize",
        "subnet",
        "vpcId",
        "vpcReg"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSpokeGateway resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
          },
          "allocateNewEip": {
            "type": "boolean",
            "description": "When value is false, reuse an idle address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 4.7+. Valid values: true, false. Default: true.\n"
          },
          "approvedLearnedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of approved learned CIDRs. Only valid when `enable_learned_cidrs_approval` is set to true. Example: [\"10.250.0.0/16\", \"10.251.0.0/16\"]. Available as of provider version R2.21+.\n"
          },
          "availabilityDomain": {
            "type": "string",
            "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "azureEipNameResourceGroup": {
            "type": "string",
            "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the Spoke Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
          },
          "bgpEcmp": {
            "type": "boolean",
            "description": "Enable Equal Cost Multi Path (ECMP) routing for the next hop. Default value: false.\n"
          },
          "bgpHoldTime": {
            "type": "integer",
            "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
          },
          "bgpPollingTime": {
            "type": "integer",
            "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: \"50\".\n"
          },
          "cloudInstanceId": {
            "type": "string",
            "description": "Cloud instance ID of the spoke gateway.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider, requires an integer value. Currently, only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192), AWS Top Secret(16384) and AWS Secret (32768) are supported.\n"
          },
          "customerManagedKeys": {
            "type": "string",
            "description": "Customer managed key ID.\n",
            "secret": true
          },
          "customizedSpokeVpcRoutes": {
            "type": "string",
            "description": "A list of comma separated CIDRs to be customized for the spoke VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. It applies to this spoke gateway only. Example: \"10.0.0.0/116,10.2.0.0/16\".\n"
          },
          "disableRoutePropagation": {
            "type": "boolean",
            "description": "Disables route propagation on BGP Spoke to attached Transit Gateway. Default value: false.\n"
          },
          "eip": {
            "type": "string",
            "description": "Required when `allocate_new_eip` is false. It uses the specified EIP for this gateway. Available in Controller 4.7+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
          },
          "enableActiveStandby": {
            "type": "boolean",
            "description": "Enables [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby). Available only with HA enabled. Valid values: true, false. Default value: false.\n"
          },
          "enableActiveStandbyPreemptive": {
            "type": "boolean",
            "description": "Enables Preemptive Mode for Active-Standby. Available only with BGP enabled, HA enabled and Active-Standby enabled. Valid values: true, false. Default value: false.\n"
          },
          "enableAutoAdvertiseS2cCidrs": {
            "type": "boolean",
            "description": "Auto Advertise Spoke Site2Cloud CIDRs. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
          },
          "enableBgp": {
            "type": "boolean",
            "description": "Enable BGP for this spoke gateway. Only available for AWS and Azure. Valid values: true, false. Default value: false. Available in provider R2.21.0+.\n",
            "willReplaceOnChanges": true
          },
          "enableEncryptVolume": {
            "type": "boolean",
            "description": "Enable EBS volume encryption for Gateway. Only supports AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret providers. Valid values: true, false. Default value: false.\n"
          },
          "enableJumboFrame": {
            "type": "boolean",
            "description": "Enable jumbo frames for this spoke gateway. Default value is true.\n"
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Switch to enable/disable learned CIDR approval for BGP Spoke Gateway. Valid values: true, false. Default value: false.\n"
          },
          "enableMonitorGatewaySubnets": {
            "type": "boolean",
            "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.18+.\n"
          },
          "enablePreserveAsPath": {
            "type": "boolean",
            "description": "Enable preserve as_path when advertising manual summary cidrs on BGP spoke gateway. Valid values: true, false. Default value: false. Available as of provider version R.2.22.1+\n"
          },
          "enablePrivateOob": {
            "type": "boolean",
            "description": "Enable Private OOB feature. Only available for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
          },
          "enablePrivateVpcDefaultRoute": {
            "type": "boolean",
            "description": "Program default route in VPC private route table. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
          },
          "enableSkipPublicRouteTableUpdate": {
            "type": "boolean",
            "description": "Skip programming VPC public route table. Default: false. Valid values: true or false. Available as of provider version R2.19+.\n"
          },
          "enableSpotInstance": {
            "type": "boolean",
            "description": "Enable spot instance. NOT supported for production deployment.\n"
          },
          "enableVpcDnsServer": {
            "type": "boolean",
            "description": "Enable VPC DNS Server for Gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
          },
          "faultDomain": {
            "type": "string",
            "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "filteredSpokeVpcRoutes": {
            "type": "string",
            "description": "A list of comma separated CIDRs to be filtered from the spoke VPC route table. When configured, filtering CIDR(s) or it’s subnet will be deleted from VPC routing tables as well as from spoke gateway’s routing table. It applies to this spoke gateway only. Example: \"10.2.0.0/116,10.3.0.0/16\".\n"
          },
          "gwName": {
            "type": "string",
            "description": "Name of the gateway which is going to be created.\n",
            "willReplaceOnChanges": true
          },
          "gwSize": {
            "type": "string",
            "description": "Size of the gateway instance. Example: AWS/AWSGov/AWSChina: \"t2.large\", Azure/AzureGov/AzureChina: \"Standard_B1s\", OCI: \"VM.Standard2.2\", GCP: \"n1-standard-1\".\n"
          },
          "haAvailabilityDomain": {
            "type": "string",
            "description": "HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
          },
          "haAzureEipNameResourceGroup": {
            "type": "string",
            "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the HA Spoke Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
          },
          "haCloudInstanceId": {
            "type": "string",
            "description": "Cloud instance ID of the HA spoke gateway.\n"
          },
          "haEip": {
            "type": "string",
            "description": "Public IP address that you want to assign to the HA peering instance. If no value is given, a new EIP will automatically be allocated. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
          },
          "haFaultDomain": {
            "type": "string",
            "description": "HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
          },
          "haGwName": {
            "type": "string",
            "description": "Aviatrix spoke gateway unique name of HA spoke gateway.\n"
          },
          "haGwSize": {
            "type": "string",
            "description": "HA Gateway Size. Mandatory if enabling HA.\n"
          },
          "haImageVersion": {
            "type": "string",
            "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
          },
          "haInsaneModeAz": {
            "type": "string",
            "description": "AZ of subnet being created for Insane Mode Spoke HA Gateway. Required for AWS, AzureGov, AWSGov, AWS Top Secret and AWS Secret if `insane_mode` is enabled and `ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
          },
          "haOobAvailabilityZone": {
            "type": "string",
            "description": "HA OOB availability zone. Required if enabling Private OOB and HA. Example: \"us-west-1b\".\n"
          },
          "haOobManagementSubnet": {
            "type": "string",
            "description": "HA OOB management subnet. Required if enabling Private OOB and HA. Example: \"11.0.0.48/28\".\n"
          },
          "haPrivateIp": {
            "type": "string",
            "description": "Private IP address of HA spoke gateway.\n"
          },
          "haPrivateModeSubnetZone": {
            "type": "string",
            "description": "Availability Zone of the HA subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov with HA. Available in Provider version R2.23+.\n"
          },
          "haPublicIp": {
            "type": "string",
            "description": "Public IP address of the HA Spoke Gateway.\n"
          },
          "haSecurityGroupId": {
            "type": "string",
            "description": "HA security group used for the spoke gateway.\n"
          },
          "haSoftwareVersion": {
            "type": "string",
            "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
          },
          "haSubnet": {
            "type": "string",
            "description": "HA Subnet. Required if enabling HA for AWS, AWSGov, AWSChina, Azure, AzureGov, AzureChina, OCI, Alibaba Cloud, AWS Top Secret or AWS Secret gateways. Optional for GCP. Setting to empty/unsetting will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet. Example: \"10.12.0.0/24\"\n"
          },
          "haZone": {
            "type": "string",
            "description": "HA Zone. Required if enabling HA for GCP gateway. Optional for Azure. For GCP, setting to empty/unsetting will disable HA and setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\". For Azure, this is an optional parameter to place the HA gateway in a specific availability zone. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
          },
          "imageVersion": {
            "type": "string",
            "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
          },
          "includedAdvertisedSpokeRoutes": {
            "type": "string",
            "description": "A list of comma separated CIDRs to be advertised to on-prem as 'Included CIDR List'. When configured, it will replace all advertised routes from this VPC. Example: \"10.4.0.0/116,10.5.0.0/16\".\n"
          },
          "insaneMode": {
            "type": "boolean",
            "description": "Enable [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) for Spoke Gateway. Insane Mode gateway size must be at least c5 size (AWS, AWSGov, AWS China, AWS Top Secret and AWS Secret) or Standard_D3_v2 (Azure and AzureGov); for GCP only four size are supported: \"n1-highcpu-4\", \"n1-highcpu-8\", \"n1-highcpu-16\" and \"n1-highcpu-32\". If enabled, you must specify a valid /26 CIDR segment of the VPC to create a new subnet for AWS, Azure, AzureGov, AWSGov, AWS Top Secret and AWS Secret. Only available for AWS, GCP/OCI, Azure, AzureGov, AzureChina, AWSGov, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
          },
          "insaneModeAz": {
            "type": "string",
            "description": "AZ of subnet being created for Insane Mode Spoke Gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is enabled. Example: AWS: \"us-west-1a\".\n"
          },
          "learnedCidrsApprovalMode": {
            "type": "string",
            "description": "Learned CIDRs approval mode. Either \"gateway\" (approval on a per-gateway basis) or \"connection\" (approval on a per-connection basis). Only \"gateway\" is supported for BGP SPOKE Gateway. Default value: \"gateway\". Available as of provider version R2.21+.\n"
          },
          "localAsNumber": {
            "type": "string",
            "description": "Changes the Aviatrix Spoke Gateway ASN number before you setup Aviatrix Spoke Gateway connection configurations.\n"
          },
          "manageTransitGatewayAttachment": {
            "type": "boolean",
            "description": "Enable to manage spoke-to-Aviatrix transit gateway attachments using the **aviatrix_spoke_gateway** resource with the below `transit_gw` attribute. If this is set to false, attaching this spoke to transit gateways must be done using the **aviatrix_spoke_transit_attachment** resource. Valid values: true, false. Default value: true. Available in provider R2.17+.\n"
          },
          "monitorExcludeLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.18+.\n"
          },
          "oobAvailabilityZone": {
            "type": "string",
            "description": "OOB availability zone. Required if enabling Private OOB. Example: \"us-west-1a\".\n",
            "willReplaceOnChanges": true
          },
          "oobManagementSubnet": {
            "type": "string",
            "description": "OOB management subnet. Required if enabling Private OOB. Example: \"11.0.2.0/24\".\n",
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of AS numbers to populate BGP AS_PATH field when it advertises to VGW or peer devices.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "Private IP address of the spoke gateway created.\n"
          },
          "privateModeLbVpcId": {
            "type": "string",
            "description": "VPC ID of Private Mode load balancer. Required when Private Mode is enabled on the Controller. Available in provider version R2.23+.\n",
            "willReplaceOnChanges": true
          },
          "privateModeSubnetZone": {
            "type": "string",
            "description": "Availability Zone of the subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov. Available in Provider version R2.23+.\n",
            "willReplaceOnChanges": true
          },
          "publicIp": {
            "type": "string",
            "description": "Public IP address of the Spoke Gateway created.\n"
          },
          "rxQueueSize": {
            "type": "string",
            "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Security group used for the spoke gateway.\n"
          },
          "singleAzHa": {
            "type": "boolean",
            "description": "Set to true if this [feature](https://docs.aviatrix.com/Solutions/gateway_ha.html#single-az-gateway) is desired. Valid values: true, false.\n"
          },
          "singleIpSnat": {
            "type": "boolean",
            "description": "Specify whether to enable Source NAT feature in \"single_ip\" mode on the gateway or not. Please disable AWS NAT instance before enabling this feature. Currently only supports AWS(1) and Azure(8). Valid values: true, false.\n"
          },
          "softwareVersion": {
            "type": "string",
            "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
          },
          "spokeBgpManualAdvertiseCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Intended CIDR list to be advertised to external BGP router. Empty list is not valid. Example: [\"10.2.0.0/16\", \"10.4.0.0/16\"].\n"
          },
          "spotPrice": {
            "type": "string",
            "description": "Price for spot instance. NOT supported for production deployment.\n"
          },
          "subnet": {
            "type": "string",
            "description": "A VPC Network address range selected from one of the available network ranges. Example: \"172.31.0.0/20\". **NOTE: If using `insane_mode`, please see notes here.**\n",
            "willReplaceOnChanges": true
          },
          "tagLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "(Optional) Instance tag of cloud provider. Only supported for AWS, Azure, AzureGov, AWSGov, AWSChina and AzureChina. Example: [\"key1:value1\", \"key2:value2\"].\n",
            "deprecationMessage": "Use tags instead."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags to assign to the gateway. Only available for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character. Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
          },
          "transitGw": {
            "type": "string",
            "description": "Specify the Aviatrix transit gateways to attach this spoke gateway to. Format is a comma separated list of transit gateway names. For example: \"transit-gw1,transit-gw2\".\n",
            "deprecationMessage": "Please set `manage_transit_gateway_attachment` to false, and use the standalone aviatrix_spoke_transit_attachment resource instead."
          },
          "tunnelDetectionTime": {
            "type": "integer",
            "description": "The IPSec tunnel down detection time for the Spoke Gateway.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC-ID/VNet-Name of cloud provider. Example: AWS/AWSGov/AWSChina: \"vpc-abcd1234\", GCP: \"vpc-gcp-test~-~project-id\", Azure/AzureGov/AzureChina: \"vnet_name:rg_name:resource_guid\", OCI: \"ocid1.vcn.oc1.iad.aaaaaaaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdsq\".\n",
            "willReplaceOnChanges": true
          },
          "vpcReg": {
            "type": "string",
            "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1, AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n",
            "willReplaceOnChanges": true
          },
          "zone": {
            "type": "string",
            "description": "Availability Zone. Only available for cloud_type = 8 (Azure). Must be in the form 'az-n', for example, 'az-2'. Available in provider version R2.17+.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSpokeGatewaySubnetGroup:AviatrixSpokeGatewaySubnetGroup": {
      "description": "The **aviatrix_spoke_gateway_subnet_group** resource creates and manages the spoke gateway subnet groups.\n\n> **NOTE:** This feature is only valid for Azure.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Spoke Inspection Subnet Group\nconst test = new aviatrix.AviatrixSpokeGatewaySubnetGroup(\"test\", {\n    gwName: \"spoke\",\n    subnets: [\n        \"10.2.48.0/20~~subnet1\",\n        \"10.2.64.0/20~~subnet2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Spoke Inspection Subnet Group\ntest = aviatrix.AviatrixSpokeGatewaySubnetGroup(\"test\",\n    gw_name=\"spoke\",\n    subnets=[\n        \"10.2.48.0/20~~subnet1\",\n        \"10.2.64.0/20~~subnet2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Spoke Inspection Subnet Group\n    var test = new Aviatrix.AviatrixSpokeGatewaySubnetGroup(\"test\", new()\n    {\n        GwName = \"spoke\",\n        Subnets = new[]\n        {\n            \"10.2.48.0/20~~subnet1\",\n            \"10.2.64.0/20~~subnet2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSpokeGatewaySubnetGroup(ctx, \"test\", &aviatrix.AviatrixSpokeGatewaySubnetGroupArgs{\n\t\t\tGwName: pulumi.String(\"spoke\"),\n\t\t\tSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.48.0/20~~subnet1\"),\n\t\t\t\tpulumi.String(\"10.2.64.0/20~~subnet2\"),\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.aviatrix.AviatrixSpokeGatewaySubnetGroup;\nimport com.pulumi.aviatrix.AviatrixSpokeGatewaySubnetGroupArgs;\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 test = new AviatrixSpokeGatewaySubnetGroup(\"test\", AviatrixSpokeGatewaySubnetGroupArgs.builder()        \n            .gwName(\"spoke\")\n            .subnets(            \n                \"10.2.48.0/20~~subnet1\",\n                \"10.2.64.0/20~~subnet2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Spoke Inspection Subnet Group\n  test:\n    type: aviatrix:AviatrixSpokeGatewaySubnetGroup\n    properties:\n      gwName: spoke\n      subnets:\n        - 10.2.48.0/20~~subnet1\n        - 10.2.64.0/20~~subnet2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**spoke_gateway_subnet_group** can be imported using the `gw_name` and `name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSpokeGatewaySubnetGroup:AviatrixSpokeGatewaySubnetGroup test gw_name~name\n```\n\n ",
      "properties": {
        "gwName": {
          "type": "string",
          "description": "Aviatrix spoke gateway name.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of spoke gateway subnet group.\n"
        },
        "subnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of subnets in the subnet group. The format of each subnet must be \"CIDR~~subnet name\". Example: `[\"10.2.48.0/20~~subnet1\", \"10.2.64.0/20~~subnet2\"]`\n"
        }
      },
      "type": "object",
      "required": [
        "gwName",
        "name"
      ],
      "inputProperties": {
        "gwName": {
          "type": "string",
          "description": "Aviatrix spoke gateway name.\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "Name of spoke gateway subnet group.\n",
          "willReplaceOnChanges": true
        },
        "subnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of subnets in the subnet group. The format of each subnet must be \"CIDR~~subnet name\". Example: `[\"10.2.48.0/20~~subnet1\", \"10.2.64.0/20~~subnet2\"]`\n"
        }
      },
      "requiredInputs": [
        "gwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSpokeGatewaySubnetGroup resources.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Aviatrix spoke gateway name.\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "Name of spoke gateway subnet group.\n",
            "willReplaceOnChanges": true
          },
          "subnets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of subnets in the subnet group. The format of each subnet must be \"CIDR~~subnet name\". Example: `[\"10.2.48.0/20~~subnet1\", \"10.2.64.0/20~~subnet2\"]`\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSpokeTransitAttachment:AviatrixSpokeTransitAttachment": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Spoke Transit Attachment\nconst testAttachment = new aviatrix.AviatrixSpokeTransitAttachment(\"test_attachment\", {\n    routeTables: [\n        \"rtb-737d540c\",\n        \"rtb-626d045c\",\n    ],\n    spokeGwName: \"spoke-gw\",\n    transitGwName: \"transit-gw\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Spoke Transit Attachment\ntest_attachment = aviatrix.AviatrixSpokeTransitAttachment(\"testAttachment\",\n    route_tables=[\n        \"rtb-737d540c\",\n        \"rtb-626d045c\",\n    ],\n    spoke_gw_name=\"spoke-gw\",\n    transit_gw_name=\"transit-gw\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Spoke Transit Attachment\n    var testAttachment = new Aviatrix.AviatrixSpokeTransitAttachment(\"testAttachment\", new()\n    {\n        RouteTables = new[]\n        {\n            \"rtb-737d540c\",\n            \"rtb-626d045c\",\n        },\n        SpokeGwName = \"spoke-gw\",\n        TransitGwName = \"transit-gw\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSpokeTransitAttachment(ctx, \"testAttachment\", &aviatrix.AviatrixSpokeTransitAttachmentArgs{\n\t\t\tRouteTables: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"rtb-737d540c\"),\n\t\t\t\tpulumi.String(\"rtb-626d045c\"),\n\t\t\t},\n\t\t\tSpokeGwName:   pulumi.String(\"spoke-gw\"),\n\t\t\tTransitGwName: pulumi.String(\"transit-gw\"),\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.aviatrix.AviatrixSpokeTransitAttachment;\nimport com.pulumi.aviatrix.AviatrixSpokeTransitAttachmentArgs;\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 testAttachment = new AviatrixSpokeTransitAttachment(\"testAttachment\", AviatrixSpokeTransitAttachmentArgs.builder()        \n            .routeTables(            \n                \"rtb-737d540c\",\n                \"rtb-626d045c\")\n            .spokeGwName(\"spoke-gw\")\n            .transitGwName(\"transit-gw\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Spoke Transit Attachment\n  testAttachment:\n    type: aviatrix:AviatrixSpokeTransitAttachment\n    properties:\n      routeTables:\n        - rtb-737d540c\n        - rtb-626d045c\n      spokeGwName: spoke-gw\n      transitGwName: transit-gw\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**spoke_transit_attachment** can be imported using the `spoke_gw_name` and `transit_gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSpokeTransitAttachment:AviatrixSpokeTransitAttachment test spoke_gw_name~transit_gw_name\n```\n\n ",
      "properties": {
        "enableMaxPerformance": {
          "type": "boolean",
          "description": "Indicates whether the maximum amount of HPE tunnels will be created. Only valid when transit and spoke gateways are each launched in Insane Mode and in the same cloud type. Default value: true. Available as of provider version R2.22.2+.\n"
        },
        "routeTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Learned routes will be propagated to these route tables. Example: [\"rtb-212ff547\",\"rtb-04539787\"].\n"
        },
        "spokeBgpEnabled": {
          "type": "boolean",
          "description": "Indicates whether the spoke gateway is BGP enabled or not.\n"
        },
        "spokeGwName": {
          "type": "string",
          "description": "Name of the spoke gateway to attach to transit network.\n"
        },
        "spokePrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Valid only for BGP connection. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on spoke_gateway_name. Available as of provider version R2.23+.\n"
        },
        "transitGwName": {
          "type": "string",
          "description": "Name of the transit gateway to attach the spoke gateway to.\n"
        },
        "transitPrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Valid only for BGP connection. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on transit_gateway_name. Available as of provider version R2.23+.\n"
        }
      },
      "type": "object",
      "required": [
        "spokeBgpEnabled",
        "spokeGwName",
        "transitGwName"
      ],
      "inputProperties": {
        "enableMaxPerformance": {
          "type": "boolean",
          "description": "Indicates whether the maximum amount of HPE tunnels will be created. Only valid when transit and spoke gateways are each launched in Insane Mode and in the same cloud type. Default value: true. Available as of provider version R2.22.2+.\n",
          "willReplaceOnChanges": true
        },
        "routeTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Learned routes will be propagated to these route tables. Example: [\"rtb-212ff547\",\"rtb-04539787\"].\n",
          "willReplaceOnChanges": true
        },
        "spokeGwName": {
          "type": "string",
          "description": "Name of the spoke gateway to attach to transit network.\n",
          "willReplaceOnChanges": true
        },
        "spokePrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Valid only for BGP connection. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on spoke_gateway_name. Available as of provider version R2.23+.\n"
        },
        "transitGwName": {
          "type": "string",
          "description": "Name of the transit gateway to attach the spoke gateway to.\n",
          "willReplaceOnChanges": true
        },
        "transitPrependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection based AS Path Prepend. Valid only for BGP connection. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on transit_gateway_name. Available as of provider version R2.23+.\n"
        }
      },
      "requiredInputs": [
        "spokeGwName",
        "transitGwName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSpokeTransitAttachment resources.\n",
        "properties": {
          "enableMaxPerformance": {
            "type": "boolean",
            "description": "Indicates whether the maximum amount of HPE tunnels will be created. Only valid when transit and spoke gateways are each launched in Insane Mode and in the same cloud type. Default value: true. Available as of provider version R2.22.2+.\n",
            "willReplaceOnChanges": true
          },
          "routeTables": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Learned routes will be propagated to these route tables. Example: [\"rtb-212ff547\",\"rtb-04539787\"].\n",
            "willReplaceOnChanges": true
          },
          "spokeBgpEnabled": {
            "type": "boolean",
            "description": "Indicates whether the spoke gateway is BGP enabled or not.\n"
          },
          "spokeGwName": {
            "type": "string",
            "description": "Name of the spoke gateway to attach to transit network.\n",
            "willReplaceOnChanges": true
          },
          "spokePrependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection based AS Path Prepend. Valid only for BGP connection. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on spoke_gateway_name. Available as of provider version R2.23+.\n"
          },
          "transitGwName": {
            "type": "string",
            "description": "Name of the transit gateway to attach the spoke gateway to.\n",
            "willReplaceOnChanges": true
          },
          "transitPrependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection based AS Path Prepend. Valid only for BGP connection. Can only use the gateway's own local AS number, repeated up to 25 times. Applies on transit_gateway_name. Available as of provider version R2.23+.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSpokeVpc:AviatrixSpokeVpc": {
      "description": "The aviatrix.AviatrixSpokeVpc resource allows to create and manage Aviatrix Spoke Gateways.\n\n!> **WARNING:** The `aviatrix.AviatrixSpokeVpc` resource is deprecated as of **Release 2.0**. It is currently kept for backward-compatibility and will be removed in the future. Please use the spoke gateway resource instead. If this is already in the state, please remove it from the state file and import as `aviatrix.AviatrixSpokeGateway`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Set Aviatrix aws spoke_vpc\nconst testSpokeVpcAws = new aviatrix.AviatrixSpokeVpc(\"test_spoke_vpc_aws\", {\n    accountName: \"my-aws\",\n    cloudType: 1,\n    dnsServer: \"8.8.8.8\",\n    enableNat: \"no\",\n    gwName: \"spoke-gw-aws\",\n    subnet: \"10.11.0.0/24~~us-west-1b~~spoke-vpc-01-pubsub\",\n    tagLists: [\n        \"k1:v1\",\n        \"k2:v2\",\n    ],\n    vpcId: \"vpc-abcd123~~spoke-vpc-01\",\n    vpcReg: \"us-west-1\",\n    vpcSize: \"t2.micro\",\n});\n// Set Aviatrix gcp spoke_vpc\nconst testSpokeVpcGcp = new aviatrix.AviatrixSpokeVpc(\"test_spoke_vpc_gcp\", {\n    accountName: \"my-gcp\",\n    cloudType: 4,\n    enableNat: \"no\",\n    gwName: \"spoke-gw-gcp\",\n    subnet: \"10.12.0.0/24\",\n    vpcId: \"gcp-spoke-vpc\",\n    vpcReg: \"us-west1-b\",\n    vpcSize: \"t2.micro\",\n});\n// Set Aviatrix arm spoke_vpc\nconst testSpokeVpcArm = new aviatrix.AviatrixSpokeVpc(\"test_spoke_vpc_arm\", {\n    accountName: \"my-arm\",\n    cloudType: 8,\n    enableNat: \"no\",\n    gwName: \"spoke-gw-01\",\n    subnet: \"10.13.0.0/24\",\n    vpcId: \"spoke:test-spoke-gw-123\",\n    vpcReg: \"West US\",\n    vpcSize: \"t2.micro\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixSpokeVpc;\nimport com.pulumi.aviatrix.AviatrixSpokeVpcArgs;\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 testSpokeVpcAws = new AviatrixSpokeVpc(\"testSpokeVpcAws\", AviatrixSpokeVpcArgs.builder()        \n            .accountName(\"my-aws\")\n            .cloudType(1)\n            .dnsServer(\"8.8.8.8\")\n            .enableNat(\"no\")\n            .gwName(\"spoke-gw-aws\")\n            .subnet(\"10.11.0.0/24~~us-west-1b~~spoke-vpc-01-pubsub\")\n            .tagLists(            \n                \"k1:v1\",\n                \"k2:v2\")\n            .vpcId(\"vpc-abcd123~~spoke-vpc-01\")\n            .vpcReg(\"us-west-1\")\n            .vpcSize(\"t2.micro\")\n            .build());\n\n        var testSpokeVpcGcp = new AviatrixSpokeVpc(\"testSpokeVpcGcp\", AviatrixSpokeVpcArgs.builder()        \n            .accountName(\"my-gcp\")\n            .cloudType(4)\n            .enableNat(\"no\")\n            .gwName(\"spoke-gw-gcp\")\n            .subnet(\"10.12.0.0/24\")\n            .vpcId(\"gcp-spoke-vpc\")\n            .vpcReg(\"us-west1-b\")\n            .vpcSize(\"t2.micro\")\n            .build());\n\n        var testSpokeVpcArm = new AviatrixSpokeVpc(\"testSpokeVpcArm\", AviatrixSpokeVpcArgs.builder()        \n            .accountName(\"my-arm\")\n            .cloudType(8)\n            .enableNat(\"no\")\n            .gwName(\"spoke-gw-01\")\n            .subnet(\"10.13.0.0/24\")\n            .vpcId(\"spoke:test-spoke-gw-123\")\n            .vpcReg(\"West US\")\n            .vpcSize(\"t2.micro\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Set Aviatrix aws spoke_vpc\n  testSpokeVpcAws:\n    type: aviatrix:AviatrixSpokeVpc\n    properties:\n      accountName: my-aws\n      cloudType: 1\n      dnsServer: 8.8.8.8\n      enableNat: no\n      gwName: spoke-gw-aws\n      subnet: 10.11.0.0/24~~us-west-1b~~spoke-vpc-01-pubsub\n      tagLists:\n        - k1:v1\n        - k2:v2\n      vpcId: vpc-abcd123~~spoke-vpc-01\n      vpcReg: us-west-1\n      vpcSize: t2.micro\n  # Set Aviatrix gcp spoke_vpc\n  testSpokeVpcGcp:\n    type: aviatrix:AviatrixSpokeVpc\n    properties:\n      accountName: my-gcp\n      cloudType: 4\n      enableNat: no\n      gwName: spoke-gw-gcp\n      subnet: 10.12.0.0/24\n      vpcId: gcp-spoke-vpc\n      vpcReg: us-west1-b\n      vpcSize: t2.micro\n  # Set Aviatrix arm spoke_vpc\n  testSpokeVpcArm:\n    type: aviatrix:AviatrixSpokeVpc\n    properties:\n      accountName: my-arm\n      cloudType: 8\n      enableNat: no\n      gwName: spoke-gw-01\n      subnet: 10.13.0.0/24\n      vpcId: spoke:test-spoke-gw-123\n      vpcReg: West US\n      vpcSize: t2.micro\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance spoke_vpc can be imported using the gw_name, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSpokeVpc:AviatrixSpokeVpc test gw_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "cloudInstanceId": {
          "type": "string",
          "description": "Cloud instance ID.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider. AWS=1, GCP=4, ARM=8.\n"
        },
        "enableNat": {
          "type": "string",
          "description": "Specify whether enabling NAT feature on the gateway or not.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if HA is enabled (ha_subnet is set). Example: \"t2.micro\".\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet. Required for enabling HA for AWS/ARM gateways. Setting to empty/unset will disable HA. Setting to a valid subnet (Example: 10.12.0.0/24) will create an HA gateway on the subnet.\n"
        },
        "haZone": {
          "type": "string",
          "description": "HA Zone. Required for enabling HA for GCP gateway. Setting to empty/unset will disable HA. Setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\".\n"
        },
        "singleAzHa": {
          "type": "string",
          "description": "Set to \"enabled\" if this feature is desired.\n"
        },
        "subnet": {
          "type": "string",
          "description": "Public Subnet Info. Example: AWS: \"CIDRZONESubnetName\", etc...\n"
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Instance tag of cloud provider. Example: key1:value1,key002:value002, etc... Only AWS (cloud_type is \"1\") is supported\n"
        },
        "transitGw": {
          "type": "string",
          "description": "Specify the transit Gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider. Required if cloud_type is \"1\" or \"4\". Example: AWS: \"vpc-abcd1234\", etc...\n"
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west1-b\", ARM: \"East US 2\", etc...\n"
        },
        "vpcSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS: \"t2.large\", GCP: \"f1.micro\", ARM: \"StandardD2\", etc...\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "cloudInstanceId",
        "cloudType",
        "gwName",
        "subnet",
        "vpcId",
        "vpcReg",
        "vpcSize"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider. AWS=1, GCP=4, ARM=8.\n"
        },
        "enableNat": {
          "type": "string",
          "description": "Specify whether enabling NAT feature on the gateway or not.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if HA is enabled (ha_subnet is set). Example: \"t2.micro\".\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet. Required for enabling HA for AWS/ARM gateways. Setting to empty/unset will disable HA. Setting to a valid subnet (Example: 10.12.0.0/24) will create an HA gateway on the subnet.\n"
        },
        "haZone": {
          "type": "string",
          "description": "HA Zone. Required for enabling HA for GCP gateway. Setting to empty/unset will disable HA. Setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\".\n"
        },
        "singleAzHa": {
          "type": "string",
          "description": "Set to \"enabled\" if this feature is desired.\n"
        },
        "subnet": {
          "type": "string",
          "description": "Public Subnet Info. Example: AWS: \"CIDRZONESubnetName\", etc...\n"
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Instance tag of cloud provider. Example: key1:value1,key002:value002, etc... Only AWS (cloud_type is \"1\") is supported\n"
        },
        "transitGw": {
          "type": "string",
          "description": "Specify the transit Gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider. Required if cloud_type is \"1\" or \"4\". Example: AWS: \"vpc-abcd1234\", etc...\n"
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west1-b\", ARM: \"East US 2\", etc...\n"
        },
        "vpcSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS: \"t2.large\", GCP: \"f1.micro\", ARM: \"StandardD2\", etc...\n"
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType",
        "gwName",
        "subnet",
        "vpcId",
        "vpcReg",
        "vpcSize"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSpokeVpc resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
          },
          "cloudInstanceId": {
            "type": "string",
            "description": "Cloud instance ID.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider. AWS=1, GCP=4, ARM=8.\n"
          },
          "enableNat": {
            "type": "string",
            "description": "Specify whether enabling NAT feature on the gateway or not.\n"
          },
          "gwName": {
            "type": "string",
            "description": "Name of the gateway which is going to be created.\n"
          },
          "haGwSize": {
            "type": "string",
            "description": "HA Gateway Size. Mandatory if HA is enabled (ha_subnet is set). Example: \"t2.micro\".\n"
          },
          "haSubnet": {
            "type": "string",
            "description": "HA Subnet. Required for enabling HA for AWS/ARM gateways. Setting to empty/unset will disable HA. Setting to a valid subnet (Example: 10.12.0.0/24) will create an HA gateway on the subnet.\n"
          },
          "haZone": {
            "type": "string",
            "description": "HA Zone. Required for enabling HA for GCP gateway. Setting to empty/unset will disable HA. Setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\".\n"
          },
          "singleAzHa": {
            "type": "string",
            "description": "Set to \"enabled\" if this feature is desired.\n"
          },
          "subnet": {
            "type": "string",
            "description": "Public Subnet Info. Example: AWS: \"CIDRZONESubnetName\", etc...\n"
          },
          "tagLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Instance tag of cloud provider. Example: key1:value1,key002:value002, etc... Only AWS (cloud_type is \"1\") is supported\n"
          },
          "transitGw": {
            "type": "string",
            "description": "Specify the transit Gateway.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC-ID/VNet-Name of cloud provider. Required if cloud_type is \"1\" or \"4\". Example: AWS: \"vpc-abcd1234\", etc...\n"
          },
          "vpcReg": {
            "type": "string",
            "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west1-b\", ARM: \"East US 2\", etc...\n"
          },
          "vpcSize": {
            "type": "string",
            "description": "Size of the gateway instance. Example: AWS: \"t2.large\", GCP: \"f1.micro\", ARM: \"StandardD2\", etc...\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixSumologicForwarder:AviatrixSumologicForwarder": {
      "description": "The **aviatrix_sumologic_forwarder** resource allows the enabling and disabling of sumologic forwarder.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Enable sumologic forwarder\nconst testSumologicForwarder = new aviatrix.AviatrixSumologicForwarder(\"test_sumologic_forwarder\", {\n    accessId: \"0\",\n    accessKey: \"1.2.3.4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Enable sumologic forwarder\ntest_sumologic_forwarder = aviatrix.AviatrixSumologicForwarder(\"testSumologicForwarder\",\n    access_id=\"0\",\n    access_key=\"1.2.3.4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Enable sumologic forwarder\n    var testSumologicForwarder = new Aviatrix.AviatrixSumologicForwarder(\"testSumologicForwarder\", new()\n    {\n        AccessId = \"0\",\n        AccessKey = \"1.2.3.4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixSumologicForwarder(ctx, \"testSumologicForwarder\", &aviatrix.AviatrixSumologicForwarderArgs{\n\t\t\tAccessId:  pulumi.String(\"0\"),\n\t\t\tAccessKey: pulumi.String(\"1.2.3.4\"),\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.aviatrix.AviatrixSumologicForwarder;\nimport com.pulumi.aviatrix.AviatrixSumologicForwarderArgs;\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 testSumologicForwarder = new AviatrixSumologicForwarder(\"testSumologicForwarder\", AviatrixSumologicForwarderArgs.builder()        \n            .accessId(0)\n            .accessKey(\"1.2.3.4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Enable sumologic forwarder\n  testSumologicForwarder:\n    type: aviatrix:AviatrixSumologicForwarder\n    properties:\n      accessId: 0\n      accessKey: 1.2.3.4\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**sumologic_forwarder** can be imported using \"sumologic_forwarder\", e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixSumologicForwarder:AviatrixSumologicForwarder test sumologic_forwarder\n```\n\n ",
      "properties": {
        "accessId": {
          "type": "string",
          "description": "Access ID.\n"
        },
        "accessKey": {
          "type": "string",
          "description": "Access Key.\n",
          "secret": true
        },
        "customConfiguration": {
          "type": "string",
          "description": "Custom configuration. The format should be key=value pairs.\n"
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n"
        },
        "sourceCategory": {
          "type": "string",
          "description": "Source category. \"Aviatrix_syslog\" by default.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of sumologic forwarder.\n"
        }
      },
      "type": "object",
      "required": [
        "accessId",
        "accessKey",
        "status"
      ],
      "inputProperties": {
        "accessId": {
          "type": "string",
          "description": "Access ID.\n",
          "willReplaceOnChanges": true
        },
        "accessKey": {
          "type": "string",
          "description": "Access Key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "customConfiguration": {
          "type": "string",
          "description": "Custom configuration. The format should be key=value pairs.\n",
          "willReplaceOnChanges": true
        },
        "excludedGateways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
          "willReplaceOnChanges": true
        },
        "sourceCategory": {
          "type": "string",
          "description": "Source category. \"Aviatrix_syslog\" by default.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accessId",
        "accessKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixSumologicForwarder resources.\n",
        "properties": {
          "accessId": {
            "type": "string",
            "description": "Access ID.\n",
            "willReplaceOnChanges": true
          },
          "accessKey": {
            "type": "string",
            "description": "Access Key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "customConfiguration": {
            "type": "string",
            "description": "Custom configuration. The format should be key=value pairs.\n",
            "willReplaceOnChanges": true
          },
          "excludedGateways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways to be excluded from logging. e.g.: [\"gateway01\", \"gateway02\", \"gateway01-hagw\"].\n",
            "willReplaceOnChanges": true
          },
          "sourceCategory": {
            "type": "string",
            "description": "Source category. \"Aviatrix_syslog\" by default.\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "The status of sumologic forwarder.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTransPeer:AviatrixTransPeer": {
      "description": "The **aviatrix_trans_peer** resource allows the creation and management of Aviatrix [Encrypted Transitive Peering](https://docs.aviatrix.com/HowTos/TransPeering.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS Transitive Peering\nconst testTransPeer = new aviatrix.AviatrixTransPeer(\"test_trans_peer\", {\n    nexthop: \"avtx-us-east-gw2\",\n    reachableCidr: \"10.152.0.0/16\",\n    source: \"avtx-us-east-gw1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS Transitive Peering\ntest_trans_peer = aviatrix.AviatrixTransPeer(\"testTransPeer\",\n    nexthop=\"avtx-us-east-gw2\",\n    reachable_cidr=\"10.152.0.0/16\",\n    source=\"avtx-us-east-gw1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS Transitive Peering\n    var testTransPeer = new Aviatrix.AviatrixTransPeer(\"testTransPeer\", new()\n    {\n        Nexthop = \"avtx-us-east-gw2\",\n        ReachableCidr = \"10.152.0.0/16\",\n        Source = \"avtx-us-east-gw1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixTransPeer(ctx, \"testTransPeer\", &aviatrix.AviatrixTransPeerArgs{\n\t\t\tNexthop:       pulumi.String(\"avtx-us-east-gw2\"),\n\t\t\tReachableCidr: pulumi.String(\"10.152.0.0/16\"),\n\t\t\tSource:        pulumi.String(\"avtx-us-east-gw1\"),\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.aviatrix.AviatrixTransPeer;\nimport com.pulumi.aviatrix.AviatrixTransPeerArgs;\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 testTransPeer = new AviatrixTransPeer(\"testTransPeer\", AviatrixTransPeerArgs.builder()        \n            .nexthop(\"avtx-us-east-gw2\")\n            .reachableCidr(\"10.152.0.0/16\")\n            .source(\"avtx-us-east-gw1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS Transitive Peering\n  testTransPeer:\n    type: aviatrix:AviatrixTransPeer\n    properties:\n      nexthop: avtx-us-east-gw2\n      reachableCidr: 10.152.0.0/16\n      source: avtx-us-east-gw1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**trans_peer** can be imported using the `source`, `nexthop` and `reachable_cidr`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTransPeer:AviatrixTransPeer test source~nexthop~reachable_cidr\n```\n\n ",
      "properties": {
        "nexthop": {
          "type": "string",
          "description": "Name of nexthop gateway.\n"
        },
        "reachableCidr": {
          "type": "string",
          "description": "Destination CIDR.\n"
        },
        "source": {
          "type": "string",
          "description": "Name of Source gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "nexthop",
        "reachableCidr",
        "source"
      ],
      "inputProperties": {
        "nexthop": {
          "type": "string",
          "description": "Name of nexthop gateway.\n",
          "willReplaceOnChanges": true
        },
        "reachableCidr": {
          "type": "string",
          "description": "Destination CIDR.\n",
          "willReplaceOnChanges": true
        },
        "source": {
          "type": "string",
          "description": "Name of Source gateway.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "nexthop",
        "reachableCidr",
        "source"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTransPeer resources.\n",
        "properties": {
          "nexthop": {
            "type": "string",
            "description": "Name of nexthop gateway.\n",
            "willReplaceOnChanges": true
          },
          "reachableCidr": {
            "type": "string",
            "description": "Destination CIDR.\n",
            "willReplaceOnChanges": true
          },
          "source": {
            "type": "string",
            "description": "Name of Source gateway.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTransitCloudnConn:AviatrixTransitCloudnConn": {
      "description": "The **aviatrix_transit_cloudn_conn** resource creates and manages the connection between an Aviatrix Transit Gateway and an Aviatrix CloudN device. Available as of provider version R2.21.0+.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Transit Gateway to CloudN Connection\nconst test = new aviatrix.AviatrixTransitCloudnConn(\"test\", {\n    bgpLocalAsNum: \"123\",\n    cloudnAsNum: \"345\",\n    cloudnNeighborAsNum: \"65005\",\n    cloudnNeighborIp: \"182.1.2.3\",\n    cloudnRemoteIp: \"172.12.13.14\",\n    connectionName: \"my_conn\",\n    gwName: \"transitGw\",\n    vpcId: \"vpc-abcd1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Transit Gateway to CloudN Connection\ntest = aviatrix.AviatrixTransitCloudnConn(\"test\",\n    bgp_local_as_num=\"123\",\n    cloudn_as_num=\"345\",\n    cloudn_neighbor_as_num=\"65005\",\n    cloudn_neighbor_ip=\"182.1.2.3\",\n    cloudn_remote_ip=\"172.12.13.14\",\n    connection_name=\"my_conn\",\n    gw_name=\"transitGw\",\n    vpc_id=\"vpc-abcd1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Transit Gateway to CloudN Connection\n    var test = new Aviatrix.AviatrixTransitCloudnConn(\"test\", new()\n    {\n        BgpLocalAsNum = \"123\",\n        CloudnAsNum = \"345\",\n        CloudnNeighborAsNum = \"65005\",\n        CloudnNeighborIp = \"182.1.2.3\",\n        CloudnRemoteIp = \"172.12.13.14\",\n        ConnectionName = \"my_conn\",\n        GwName = \"transitGw\",\n        VpcId = \"vpc-abcd1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixTransitCloudnConn(ctx, \"test\", &aviatrix.AviatrixTransitCloudnConnArgs{\n\t\t\tBgpLocalAsNum:       pulumi.String(\"123\"),\n\t\t\tCloudnAsNum:         pulumi.String(\"345\"),\n\t\t\tCloudnNeighborAsNum: pulumi.String(\"65005\"),\n\t\t\tCloudnNeighborIp:    pulumi.String(\"182.1.2.3\"),\n\t\t\tCloudnRemoteIp:      pulumi.String(\"172.12.13.14\"),\n\t\t\tConnectionName:      pulumi.String(\"my_conn\"),\n\t\t\tGwName:              pulumi.String(\"transitGw\"),\n\t\t\tVpcId:               pulumi.String(\"vpc-abcd1234\"),\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.aviatrix.AviatrixTransitCloudnConn;\nimport com.pulumi.aviatrix.AviatrixTransitCloudnConnArgs;\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 test = new AviatrixTransitCloudnConn(\"test\", AviatrixTransitCloudnConnArgs.builder()        \n            .bgpLocalAsNum(\"123\")\n            .cloudnAsNum(\"345\")\n            .cloudnNeighborAsNum(\"65005\")\n            .cloudnNeighborIp(\"182.1.2.3\")\n            .cloudnRemoteIp(\"172.12.13.14\")\n            .connectionName(\"my_conn\")\n            .gwName(\"transitGw\")\n            .vpcId(\"vpc-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Transit Gateway to CloudN Connection\n  test:\n    type: aviatrix:AviatrixTransitCloudnConn\n    properties:\n      bgpLocalAsNum: '123'\n      cloudnAsNum: '345'\n      cloudnNeighborAsNum: '65005'\n      cloudnNeighborIp: 182.1.2.3\n      cloudnRemoteIp: 172.12.13.14\n      connectionName: my_conn\n      gwName: transitGw\n      vpcId: vpc-abcd1234\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Transit Gateway to CloudN Connection with HA\nconst test = new aviatrix.AviatrixTransitCloudnConn(\"test\", {\n    backupCloudnAsNum: \"123\",\n    backupCloudnIp: \"1.2.3.6\",\n    backupCloudnNeighborAsNum: \"345\",\n    backupCloudnNeighborIp: \"1.2.3.7\",\n    bgpLocalAsNum: \"123\",\n    cloudnAsNum: \"345\",\n    cloudnNeighborAsNum: \"65005\",\n    cloudnNeighborIp: \"1.2.3.5\",\n    cloudnRemoteIp: \"1.2.3.4\",\n    connectionName: \"my_conn\",\n    enableHa: true,\n    gwName: \"transitGw\",\n    vpcId: \"vpc-abcd1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Transit Gateway to CloudN Connection with HA\ntest = aviatrix.AviatrixTransitCloudnConn(\"test\",\n    backup_cloudn_as_num=\"123\",\n    backup_cloudn_ip=\"1.2.3.6\",\n    backup_cloudn_neighbor_as_num=\"345\",\n    backup_cloudn_neighbor_ip=\"1.2.3.7\",\n    bgp_local_as_num=\"123\",\n    cloudn_as_num=\"345\",\n    cloudn_neighbor_as_num=\"65005\",\n    cloudn_neighbor_ip=\"1.2.3.5\",\n    cloudn_remote_ip=\"1.2.3.4\",\n    connection_name=\"my_conn\",\n    enable_ha=True,\n    gw_name=\"transitGw\",\n    vpc_id=\"vpc-abcd1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Transit Gateway to CloudN Connection with HA\n    var test = new Aviatrix.AviatrixTransitCloudnConn(\"test\", new()\n    {\n        BackupCloudnAsNum = \"123\",\n        BackupCloudnIp = \"1.2.3.6\",\n        BackupCloudnNeighborAsNum = \"345\",\n        BackupCloudnNeighborIp = \"1.2.3.7\",\n        BgpLocalAsNum = \"123\",\n        CloudnAsNum = \"345\",\n        CloudnNeighborAsNum = \"65005\",\n        CloudnNeighborIp = \"1.2.3.5\",\n        CloudnRemoteIp = \"1.2.3.4\",\n        ConnectionName = \"my_conn\",\n        EnableHa = true,\n        GwName = \"transitGw\",\n        VpcId = \"vpc-abcd1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixTransitCloudnConn(ctx, \"test\", &aviatrix.AviatrixTransitCloudnConnArgs{\n\t\t\tBackupCloudnAsNum:         pulumi.String(\"123\"),\n\t\t\tBackupCloudnIp:            pulumi.String(\"1.2.3.6\"),\n\t\t\tBackupCloudnNeighborAsNum: pulumi.String(\"345\"),\n\t\t\tBackupCloudnNeighborIp:    pulumi.String(\"1.2.3.7\"),\n\t\t\tBgpLocalAsNum:             pulumi.String(\"123\"),\n\t\t\tCloudnAsNum:               pulumi.String(\"345\"),\n\t\t\tCloudnNeighborAsNum:       pulumi.String(\"65005\"),\n\t\t\tCloudnNeighborIp:          pulumi.String(\"1.2.3.5\"),\n\t\t\tCloudnRemoteIp:            pulumi.String(\"1.2.3.4\"),\n\t\t\tConnectionName:            pulumi.String(\"my_conn\"),\n\t\t\tEnableHa:                  pulumi.Bool(true),\n\t\t\tGwName:                    pulumi.String(\"transitGw\"),\n\t\t\tVpcId:                     pulumi.String(\"vpc-abcd1234\"),\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.aviatrix.AviatrixTransitCloudnConn;\nimport com.pulumi.aviatrix.AviatrixTransitCloudnConnArgs;\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 test = new AviatrixTransitCloudnConn(\"test\", AviatrixTransitCloudnConnArgs.builder()        \n            .backupCloudnAsNum(\"123\")\n            .backupCloudnIp(\"1.2.3.6\")\n            .backupCloudnNeighborAsNum(\"345\")\n            .backupCloudnNeighborIp(\"1.2.3.7\")\n            .bgpLocalAsNum(\"123\")\n            .cloudnAsNum(\"345\")\n            .cloudnNeighborAsNum(\"65005\")\n            .cloudnNeighborIp(\"1.2.3.5\")\n            .cloudnRemoteIp(\"1.2.3.4\")\n            .connectionName(\"my_conn\")\n            .enableHa(true)\n            .gwName(\"transitGw\")\n            .vpcId(\"vpc-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Transit Gateway to CloudN Connection with HA\n  test:\n    type: aviatrix:AviatrixTransitCloudnConn\n    properties:\n      backupCloudnAsNum: '123'\n      backupCloudnIp: 1.2.3.6\n      backupCloudnNeighborAsNum: '345'\n      backupCloudnNeighborIp: 1.2.3.7\n      bgpLocalAsNum: '123'\n      cloudnAsNum: '345'\n      cloudnNeighborAsNum: '65005'\n      cloudnNeighborIp: 1.2.3.5\n      cloudnRemoteIp: 1.2.3.4\n      connectionName: my_conn\n      enableHa: true\n      gwName: transitGw\n      vpcId: vpc-abcd1234\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**transit_cloudn_conn** can be imported using the `connection_name` and `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTransitCloudnConn:AviatrixTransitCloudnConn test connection_name~vpc_id\n```\n\n ",
      "properties": {
        "approvedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
        },
        "backupCloudnAsNum": {
          "type": "string",
          "description": "BGP AS Number of HA CloudN. Type: String.\n"
        },
        "backupCloudnIp": {
          "type": "string",
          "description": "IP Address of HA CloudN. Required when `enable_ha` is true. Type: String.\n"
        },
        "backupCloudnNeighborAsNum": {
          "type": "string",
          "description": "BGP AS Number of HA CloudN Neighbor. Type: String.\n"
        },
        "backupCloudnNeighborIp": {
          "type": "string",
          "description": "IP Address of HA CloudN Neighbor. Type: String.\n"
        },
        "backupDirectConnect": {
          "type": "boolean",
          "description": "Flag to enable direct connect over private network to HA CloudN. Type: Boolean.\n"
        },
        "backupInsaneMode": {
          "type": "boolean",
          "description": "Flag to enable insane mode connection to HA CloudN. Type: Boolean.\n"
        },
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP AS Number of the Transit Gateway. Type: String.\n"
        },
        "cloudnAsNum": {
          "type": "string",
          "description": "BGP AS Number of the Aviatrix CloudN. Type: String.\n"
        },
        "cloudnNeighborAsNum": {
          "type": "string",
          "description": "BGP AS Number of the Aviatrix CloudN neighbor. Type: String.\n"
        },
        "cloudnNeighborIp": {
          "type": "string",
          "description": "IP Address of Aviatrix CloudN neighbor. Type: String.\n"
        },
        "cloudnRemoteIp": {
          "type": "string",
          "description": "IP Address of Aviatrix CloudN. Type: String.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Name of the Transit Gateway to CloudN Connection. Type: String.\n"
        },
        "directConnect": {
          "type": "boolean",
          "description": "Enable direct connect over private network. Type: Boolean. Default: true.\n"
        },
        "enableHa": {
          "type": "boolean",
          "description": "Enable connection to HA CloudN. Type: Boolean.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable encrypted transit approval for connection. Type: Boolean.\n"
        },
        "enableLoadBalancing": {
          "type": "boolean",
          "description": "Flag to enable load balancing between CloudN and HA CloudN. Type: Boolean.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Transit Gateway. Type: String.\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Enable insane mode connection. Type: Boolean.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Aviatrix Transit Gateway. Type: String.\n"
        }
      },
      "type": "object",
      "required": [
        "approvedCidrs",
        "bgpLocalAsNum",
        "cloudnAsNum",
        "cloudnNeighborAsNum",
        "cloudnNeighborIp",
        "cloudnRemoteIp",
        "connectionName",
        "gwName",
        "vpcId"
      ],
      "inputProperties": {
        "approvedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
        },
        "backupCloudnAsNum": {
          "type": "string",
          "description": "BGP AS Number of HA CloudN. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "backupCloudnIp": {
          "type": "string",
          "description": "IP Address of HA CloudN. Required when `enable_ha` is true. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "backupCloudnNeighborAsNum": {
          "type": "string",
          "description": "BGP AS Number of HA CloudN Neighbor. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "backupCloudnNeighborIp": {
          "type": "string",
          "description": "IP Address of HA CloudN Neighbor. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "backupDirectConnect": {
          "type": "boolean",
          "description": "Flag to enable direct connect over private network to HA CloudN. Type: Boolean.\n",
          "willReplaceOnChanges": true
        },
        "backupInsaneMode": {
          "type": "boolean",
          "description": "Flag to enable insane mode connection to HA CloudN. Type: Boolean.\n",
          "willReplaceOnChanges": true
        },
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP AS Number of the Transit Gateway. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "cloudnAsNum": {
          "type": "string",
          "description": "BGP AS Number of the Aviatrix CloudN. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "cloudnNeighborAsNum": {
          "type": "string",
          "description": "BGP AS Number of the Aviatrix CloudN neighbor. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "cloudnNeighborIp": {
          "type": "string",
          "description": "IP Address of Aviatrix CloudN neighbor. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "cloudnRemoteIp": {
          "type": "string",
          "description": "IP Address of Aviatrix CloudN. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "connectionName": {
          "type": "string",
          "description": "Name of the Transit Gateway to CloudN Connection. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "directConnect": {
          "type": "boolean",
          "description": "Enable direct connect over private network. Type: Boolean. Default: true.\n",
          "willReplaceOnChanges": true
        },
        "enableHa": {
          "type": "boolean",
          "description": "Enable connection to HA CloudN. Type: Boolean.\n",
          "willReplaceOnChanges": true
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable encrypted transit approval for connection. Type: Boolean.\n"
        },
        "enableLoadBalancing": {
          "type": "boolean",
          "description": "Flag to enable load balancing between CloudN and HA CloudN. Type: Boolean.\n",
          "willReplaceOnChanges": true
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Transit Gateway. Type: String.\n",
          "willReplaceOnChanges": true
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Enable insane mode connection. Type: Boolean.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Aviatrix Transit Gateway. Type: String.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "bgpLocalAsNum",
        "cloudnAsNum",
        "cloudnNeighborAsNum",
        "cloudnNeighborIp",
        "cloudnRemoteIp",
        "connectionName",
        "gwName",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTransitCloudnConn resources.\n",
        "properties": {
          "approvedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
          },
          "backupCloudnAsNum": {
            "type": "string",
            "description": "BGP AS Number of HA CloudN. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "backupCloudnIp": {
            "type": "string",
            "description": "IP Address of HA CloudN. Required when `enable_ha` is true. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "backupCloudnNeighborAsNum": {
            "type": "string",
            "description": "BGP AS Number of HA CloudN Neighbor. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "backupCloudnNeighborIp": {
            "type": "string",
            "description": "IP Address of HA CloudN Neighbor. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "backupDirectConnect": {
            "type": "boolean",
            "description": "Flag to enable direct connect over private network to HA CloudN. Type: Boolean.\n",
            "willReplaceOnChanges": true
          },
          "backupInsaneMode": {
            "type": "boolean",
            "description": "Flag to enable insane mode connection to HA CloudN. Type: Boolean.\n",
            "willReplaceOnChanges": true
          },
          "bgpLocalAsNum": {
            "type": "string",
            "description": "BGP AS Number of the Transit Gateway. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "cloudnAsNum": {
            "type": "string",
            "description": "BGP AS Number of the Aviatrix CloudN. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "cloudnNeighborAsNum": {
            "type": "string",
            "description": "BGP AS Number of the Aviatrix CloudN neighbor. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "cloudnNeighborIp": {
            "type": "string",
            "description": "IP Address of Aviatrix CloudN neighbor. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "cloudnRemoteIp": {
            "type": "string",
            "description": "IP Address of Aviatrix CloudN. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "connectionName": {
            "type": "string",
            "description": "Name of the Transit Gateway to CloudN Connection. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "directConnect": {
            "type": "boolean",
            "description": "Enable direct connect over private network. Type: Boolean. Default: true.\n",
            "willReplaceOnChanges": true
          },
          "enableHa": {
            "type": "boolean",
            "description": "Enable connection to HA CloudN. Type: Boolean.\n",
            "willReplaceOnChanges": true
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Enable encrypted transit approval for connection. Type: Boolean.\n"
          },
          "enableLoadBalancing": {
            "type": "boolean",
            "description": "Flag to enable load balancing between CloudN and HA CloudN. Type: Boolean.\n",
            "willReplaceOnChanges": true
          },
          "gwName": {
            "type": "string",
            "description": "Name of the Transit Gateway. Type: String.\n",
            "willReplaceOnChanges": true
          },
          "insaneMode": {
            "type": "boolean",
            "description": "Enable insane mode connection. Type: Boolean.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the Aviatrix Transit Gateway. Type: String.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTransitExternalDeviceConn:AviatrixTransitExternalDeviceConn": {
      "description": "\n\n\n## Import\n\n**transit_external_device_conn** can be imported using the `connection_name` and `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTransitExternalDeviceConn:AviatrixTransitExternalDeviceConn test connection_name~vpc_id\n```\n\n ",
      "properties": {
        "approvedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
        },
        "backupBgpMd5Key": {
          "type": "string",
          "description": "Backup BGP MD5 Authentication Key. Valid with HA enabled for connection. Example: 'avx03,avx04'. For BGP LAN ActiveMesh mode disabled, example: 'avx03'.\n",
          "secret": true
        },
        "backupBgpRemoteAsNum": {
          "type": "string",
          "description": "Backup BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required if HA enabled for 'bgp' connection.\n"
        },
        "backupDirectConnect": {
          "type": "boolean",
          "description": "Backup direct connect for backup external device.\n"
        },
        "backupLocalLanIp": {
          "type": "string",
          "description": "Backup Local LAN IP. Required for GCP HA BGP over LAN connection.\n"
        },
        "backupLocalTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the backup Aviatrix transit gateway.\n"
        },
        "backupPreSharedKey": {
          "type": "string",
          "description": "Backup Pre-Shared Key.\n",
          "secret": true
        },
        "backupRemoteGatewayIp": {
          "type": "string",
          "description": "Backup remote gateway IP.\n"
        },
        "backupRemoteLanIp": {
          "type": "string",
          "description": "Backup Remote LAN IP. Required for HA BGP over LAN connection.\n"
        },
        "backupRemoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the backup external device.\n"
        },
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP local ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n"
        },
        "bgpMd5Key": {
          "type": "string",
          "description": "BGP MD5 Authentication Key. Example: 'avx01,avx02'. For BGP LAN ActiveMesh mode disabled, example: 'avx01'.\n",
          "secret": true
        },
        "bgpRemoteAsNum": {
          "type": "string",
          "description": "BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Transit external device connection name.\n"
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid values: 'bgp', 'static'. Default value: 'bgp'.\n"
        },
        "customAlgorithms": {
          "type": "boolean",
          "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n"
        },
        "directConnect": {
          "type": "boolean",
          "description": "Set true for private network infrastructure.\n"
        },
        "enableBgpLanActivemesh": {
          "type": "boolean",
          "description": "Switch to enable BGP LAN ActiveMesh mode. Only valid for GCP with Remote Gateway HA enabled. Default: false. Available as of provider version R2.21+.\n"
        },
        "enableEdgeSegmentation": {
          "type": "boolean",
          "description": "Switch to allow this connection to communicate with a Network Domain via Connection Policy.\n"
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableIkev2": {
          "type": "boolean",
          "description": "Set as true to enable IKEv2 protocol.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable Jumbo Frame for the transit external device connection. Only valid with 'GRE' tunnels under 'bgp' connection. Requires transit to be jumbo frame and insane mode enabled. Valid values: true, false. Default value: false. Available as of provider version R2.22.2+.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable learned CIDRs approval for the connection. Only valid with `connection_type` = 'bgp'. Requires the transit_gateway's `learned_cidrs_approval_mode` attribute be set to 'connection'. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Aviatrix transit gateway name.\n"
        },
        "haEnabled": {
          "type": "boolean",
          "description": "Set as true if there are two external devices.\n* `backup_remote_gateway_ip ` - (Optional) Backup remote gateway IP. Required if HA enabled.\n"
        },
        "localLanIp": {
          "type": "string",
          "description": "Local LAN IP. Required for GCP BGP over LAN connection.\n"
        },
        "localTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the Aviatrix transit gateway.\n"
        },
        "manualBgpAdvertisedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Configure manual BGP advertised CIDRs for this connection. Only valid with `connection_type`= 'bgp'. Available as of provider version R2.18+.\n"
        },
        "phase1Authentication": {
          "type": "string",
          "description": "Phase one Authentication. Valid values: 'SHA-1', 'SHA-256', 'SHA-384' and 'SHA-512'. Default value: 'SHA-256'.\n"
        },
        "phase1DhGroups": {
          "type": "string",
          "description": "Phase one DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n"
        },
        "phase1Encryption": {
          "type": "string",
          "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n"
        },
        "phase1RemoteIdentifiers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled. Available as of provider version R2.19+.\n"
        },
        "phase2Authentication": {
          "type": "string",
          "description": "Phase two Authentication. Valid values: 'NO-AUTH', 'HMAC-SHA-1', 'HMAC-SHA-256', 'HMAC-SHA-384' and 'HMAC-SHA-512'. Default value: 'HMAC-SHA-256'.\n"
        },
        "phase2DhGroups": {
          "type": "string",
          "description": "Phase two DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n"
        },
        "phase2Encryption": {
          "type": "string",
          "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n"
        },
        "preSharedKey": {
          "type": "string",
          "description": "Pre-Shared Key.\n",
          "secret": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Available as of provider version R2.19.2.\n"
        },
        "remoteGatewayIp": {
          "type": "string",
          "description": "Remote gateway IP. Required when `tunnel_protocol` != 'LAN'.\n"
        },
        "remoteLanIp": {
          "type": "string",
          "description": "Remote LAN IP. Required for BGP over LAN connection.\n"
        },
        "remoteSubnet": {
          "type": "string",
          "description": "Remote CIDRs joined as a string with ','. Required for a 'static' type connection.\n"
        },
        "remoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the external device.\n"
        },
        "remoteVpcName": {
          "type": "string",
          "description": "Name of the remote VPC for a LAN BGP connection with an Azure Transit Gateway. Required when `connection_type` = 'bgp' and `tunnel_protocol` = 'LAN' with an Azure transit gateway. Must be in the format \"<vnet-name>:<resource-group-name>:<subscription-id>\". Available as of provider version R2.18+.\n"
        },
        "switchToHaStandbyGateway": {
          "type": "boolean",
          "description": "Switch to HA Standby Transit Gateway connection. Only valid with Transit Gateway that has [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby) enabled and for non-HA external device. Valid values: true, false. Default: false. Available in provider version R2.17.1+.\n"
        },
        "tunnelProtocol": {
          "type": "string",
          "description": "Tunnel protocol, only valid with `connection_type` = 'bgp'. Valid values: 'IPsec', 'GRE' or 'LAN'. Default value: 'IPsec'. Case insensitive. Available as of provider version R2.18+.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Aviatrix transit gateway. For GCP BGP over LAN connection, it is in the format of \"vpc_name~-~project_name\".\n"
        }
      },
      "type": "object",
      "required": [
        "approvedCidrs",
        "backupLocalLanIp",
        "backupLocalTunnelCidr",
        "backupRemoteTunnelCidr",
        "connectionName",
        "gwName",
        "localLanIp",
        "localTunnelCidr",
        "remoteTunnelCidr",
        "vpcId"
      ],
      "inputProperties": {
        "approvedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
        },
        "backupBgpMd5Key": {
          "type": "string",
          "description": "Backup BGP MD5 Authentication Key. Valid with HA enabled for connection. Example: 'avx03,avx04'. For BGP LAN ActiveMesh mode disabled, example: 'avx03'.\n",
          "secret": true
        },
        "backupBgpRemoteAsNum": {
          "type": "string",
          "description": "Backup BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required if HA enabled for 'bgp' connection.\n",
          "willReplaceOnChanges": true
        },
        "backupDirectConnect": {
          "type": "boolean",
          "description": "Backup direct connect for backup external device.\n",
          "willReplaceOnChanges": true
        },
        "backupLocalLanIp": {
          "type": "string",
          "description": "Backup Local LAN IP. Required for GCP HA BGP over LAN connection.\n",
          "willReplaceOnChanges": true
        },
        "backupLocalTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the backup Aviatrix transit gateway.\n",
          "willReplaceOnChanges": true
        },
        "backupPreSharedKey": {
          "type": "string",
          "description": "Backup Pre-Shared Key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "backupRemoteGatewayIp": {
          "type": "string",
          "description": "Backup remote gateway IP.\n",
          "willReplaceOnChanges": true
        },
        "backupRemoteLanIp": {
          "type": "string",
          "description": "Backup Remote LAN IP. Required for HA BGP over LAN connection.\n",
          "willReplaceOnChanges": true
        },
        "backupRemoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the backup external device.\n",
          "willReplaceOnChanges": true
        },
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP local ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
          "willReplaceOnChanges": true
        },
        "bgpMd5Key": {
          "type": "string",
          "description": "BGP MD5 Authentication Key. Example: 'avx01,avx02'. For BGP LAN ActiveMesh mode disabled, example: 'avx01'.\n",
          "secret": true
        },
        "bgpRemoteAsNum": {
          "type": "string",
          "description": "BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
          "willReplaceOnChanges": true
        },
        "connectionName": {
          "type": "string",
          "description": "Transit external device connection name.\n",
          "willReplaceOnChanges": true
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid values: 'bgp', 'static'. Default value: 'bgp'.\n",
          "willReplaceOnChanges": true
        },
        "customAlgorithms": {
          "type": "boolean",
          "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n",
          "willReplaceOnChanges": true
        },
        "directConnect": {
          "type": "boolean",
          "description": "Set true for private network infrastructure.\n",
          "willReplaceOnChanges": true
        },
        "enableBgpLanActivemesh": {
          "type": "boolean",
          "description": "Switch to enable BGP LAN ActiveMesh mode. Only valid for GCP with Remote Gateway HA enabled. Default: false. Available as of provider version R2.21+.\n",
          "willReplaceOnChanges": true
        },
        "enableEdgeSegmentation": {
          "type": "boolean",
          "description": "Switch to allow this connection to communicate with a Network Domain via Connection Policy.\n",
          "willReplaceOnChanges": true
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableIkev2": {
          "type": "boolean",
          "description": "Set as true to enable IKEv2 protocol.\n",
          "willReplaceOnChanges": true
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable Jumbo Frame for the transit external device connection. Only valid with 'GRE' tunnels under 'bgp' connection. Requires transit to be jumbo frame and insane mode enabled. Valid values: true, false. Default value: false. Available as of provider version R2.22.2+.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable learned CIDRs approval for the connection. Only valid with `connection_type` = 'bgp'. Requires the transit_gateway's `learned_cidrs_approval_mode` attribute be set to 'connection'. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Aviatrix transit gateway name.\n",
          "willReplaceOnChanges": true
        },
        "haEnabled": {
          "type": "boolean",
          "description": "Set as true if there are two external devices.\n* `backup_remote_gateway_ip ` - (Optional) Backup remote gateway IP. Required if HA enabled.\n",
          "willReplaceOnChanges": true
        },
        "localLanIp": {
          "type": "string",
          "description": "Local LAN IP. Required for GCP BGP over LAN connection.\n",
          "willReplaceOnChanges": true
        },
        "localTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the Aviatrix transit gateway.\n",
          "willReplaceOnChanges": true
        },
        "manualBgpAdvertisedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Configure manual BGP advertised CIDRs for this connection. Only valid with `connection_type`= 'bgp'. Available as of provider version R2.18+.\n"
        },
        "phase1Authentication": {
          "type": "string",
          "description": "Phase one Authentication. Valid values: 'SHA-1', 'SHA-256', 'SHA-384' and 'SHA-512'. Default value: 'SHA-256'.\n",
          "willReplaceOnChanges": true
        },
        "phase1DhGroups": {
          "type": "string",
          "description": "Phase one DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
          "willReplaceOnChanges": true
        },
        "phase1Encryption": {
          "type": "string",
          "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n",
          "willReplaceOnChanges": true
        },
        "phase1RemoteIdentifiers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled. Available as of provider version R2.19+.\n"
        },
        "phase2Authentication": {
          "type": "string",
          "description": "Phase two Authentication. Valid values: 'NO-AUTH', 'HMAC-SHA-1', 'HMAC-SHA-256', 'HMAC-SHA-384' and 'HMAC-SHA-512'. Default value: 'HMAC-SHA-256'.\n",
          "willReplaceOnChanges": true
        },
        "phase2DhGroups": {
          "type": "string",
          "description": "Phase two DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
          "willReplaceOnChanges": true
        },
        "phase2Encryption": {
          "type": "string",
          "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n",
          "willReplaceOnChanges": true
        },
        "preSharedKey": {
          "type": "string",
          "description": "Pre-Shared Key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Available as of provider version R2.19.2.\n"
        },
        "remoteGatewayIp": {
          "type": "string",
          "description": "Remote gateway IP. Required when `tunnel_protocol` != 'LAN'.\n",
          "willReplaceOnChanges": true
        },
        "remoteLanIp": {
          "type": "string",
          "description": "Remote LAN IP. Required for BGP over LAN connection.\n",
          "willReplaceOnChanges": true
        },
        "remoteSubnet": {
          "type": "string",
          "description": "Remote CIDRs joined as a string with ','. Required for a 'static' type connection.\n"
        },
        "remoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the external device.\n",
          "willReplaceOnChanges": true
        },
        "remoteVpcName": {
          "type": "string",
          "description": "Name of the remote VPC for a LAN BGP connection with an Azure Transit Gateway. Required when `connection_type` = 'bgp' and `tunnel_protocol` = 'LAN' with an Azure transit gateway. Must be in the format \"<vnet-name>:<resource-group-name>:<subscription-id>\". Available as of provider version R2.18+.\n",
          "willReplaceOnChanges": true
        },
        "switchToHaStandbyGateway": {
          "type": "boolean",
          "description": "Switch to HA Standby Transit Gateway connection. Only valid with Transit Gateway that has [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby) enabled and for non-HA external device. Valid values: true, false. Default: false. Available in provider version R2.17.1+.\n"
        },
        "tunnelProtocol": {
          "type": "string",
          "description": "Tunnel protocol, only valid with `connection_type` = 'bgp'. Valid values: 'IPsec', 'GRE' or 'LAN'. Default value: 'IPsec'. Case insensitive. Available as of provider version R2.18+.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Aviatrix transit gateway. For GCP BGP over LAN connection, it is in the format of \"vpc_name~-~project_name\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "connectionName",
        "gwName",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTransitExternalDeviceConn resources.\n",
        "properties": {
          "approvedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
          },
          "backupBgpMd5Key": {
            "type": "string",
            "description": "Backup BGP MD5 Authentication Key. Valid with HA enabled for connection. Example: 'avx03,avx04'. For BGP LAN ActiveMesh mode disabled, example: 'avx03'.\n",
            "secret": true
          },
          "backupBgpRemoteAsNum": {
            "type": "string",
            "description": "Backup BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required if HA enabled for 'bgp' connection.\n",
            "willReplaceOnChanges": true
          },
          "backupDirectConnect": {
            "type": "boolean",
            "description": "Backup direct connect for backup external device.\n",
            "willReplaceOnChanges": true
          },
          "backupLocalLanIp": {
            "type": "string",
            "description": "Backup Local LAN IP. Required for GCP HA BGP over LAN connection.\n",
            "willReplaceOnChanges": true
          },
          "backupLocalTunnelCidr": {
            "type": "string",
            "description": "Source CIDR for the tunnel from the backup Aviatrix transit gateway.\n",
            "willReplaceOnChanges": true
          },
          "backupPreSharedKey": {
            "type": "string",
            "description": "Backup Pre-Shared Key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "backupRemoteGatewayIp": {
            "type": "string",
            "description": "Backup remote gateway IP.\n",
            "willReplaceOnChanges": true
          },
          "backupRemoteLanIp": {
            "type": "string",
            "description": "Backup Remote LAN IP. Required for HA BGP over LAN connection.\n",
            "willReplaceOnChanges": true
          },
          "backupRemoteTunnelCidr": {
            "type": "string",
            "description": "Destination CIDR for the tunnel to the backup external device.\n",
            "willReplaceOnChanges": true
          },
          "bgpLocalAsNum": {
            "type": "string",
            "description": "BGP local ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
            "willReplaceOnChanges": true
          },
          "bgpMd5Key": {
            "type": "string",
            "description": "BGP MD5 Authentication Key. Example: 'avx01,avx02'. For BGP LAN ActiveMesh mode disabled, example: 'avx01'.\n",
            "secret": true
          },
          "bgpRemoteAsNum": {
            "type": "string",
            "description": "BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
            "willReplaceOnChanges": true
          },
          "connectionName": {
            "type": "string",
            "description": "Transit external device connection name.\n",
            "willReplaceOnChanges": true
          },
          "connectionType": {
            "type": "string",
            "description": "Connection type. Valid values: 'bgp', 'static'. Default value: 'bgp'.\n",
            "willReplaceOnChanges": true
          },
          "customAlgorithms": {
            "type": "boolean",
            "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n",
            "willReplaceOnChanges": true
          },
          "directConnect": {
            "type": "boolean",
            "description": "Set true for private network infrastructure.\n",
            "willReplaceOnChanges": true
          },
          "enableBgpLanActivemesh": {
            "type": "boolean",
            "description": "Switch to enable BGP LAN ActiveMesh mode. Only valid for GCP with Remote Gateway HA enabled. Default: false. Available as of provider version R2.21+.\n",
            "willReplaceOnChanges": true
          },
          "enableEdgeSegmentation": {
            "type": "boolean",
            "description": "Switch to allow this connection to communicate with a Network Domain via Connection Policy.\n",
            "willReplaceOnChanges": true
          },
          "enableEventTriggeredHa": {
            "type": "boolean",
            "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
          },
          "enableIkev2": {
            "type": "boolean",
            "description": "Set as true to enable IKEv2 protocol.\n",
            "willReplaceOnChanges": true
          },
          "enableJumboFrame": {
            "type": "boolean",
            "description": "Enable Jumbo Frame for the transit external device connection. Only valid with 'GRE' tunnels under 'bgp' connection. Requires transit to be jumbo frame and insane mode enabled. Valid values: true, false. Default value: false. Available as of provider version R2.22.2+.\n"
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Enable learned CIDRs approval for the connection. Only valid with `connection_type` = 'bgp'. Requires the transit_gateway's `learned_cidrs_approval_mode` attribute be set to 'connection'. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n"
          },
          "gwName": {
            "type": "string",
            "description": "Aviatrix transit gateway name.\n",
            "willReplaceOnChanges": true
          },
          "haEnabled": {
            "type": "boolean",
            "description": "Set as true if there are two external devices.\n* `backup_remote_gateway_ip ` - (Optional) Backup remote gateway IP. Required if HA enabled.\n",
            "willReplaceOnChanges": true
          },
          "localLanIp": {
            "type": "string",
            "description": "Local LAN IP. Required for GCP BGP over LAN connection.\n",
            "willReplaceOnChanges": true
          },
          "localTunnelCidr": {
            "type": "string",
            "description": "Source CIDR for the tunnel from the Aviatrix transit gateway.\n",
            "willReplaceOnChanges": true
          },
          "manualBgpAdvertisedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Configure manual BGP advertised CIDRs for this connection. Only valid with `connection_type`= 'bgp'. Available as of provider version R2.18+.\n"
          },
          "phase1Authentication": {
            "type": "string",
            "description": "Phase one Authentication. Valid values: 'SHA-1', 'SHA-256', 'SHA-384' and 'SHA-512'. Default value: 'SHA-256'.\n",
            "willReplaceOnChanges": true
          },
          "phase1DhGroups": {
            "type": "string",
            "description": "Phase one DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
            "willReplaceOnChanges": true
          },
          "phase1Encryption": {
            "type": "string",
            "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n",
            "willReplaceOnChanges": true
          },
          "phase1RemoteIdentifiers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled. Available as of provider version R2.19+.\n"
          },
          "phase2Authentication": {
            "type": "string",
            "description": "Phase two Authentication. Valid values: 'NO-AUTH', 'HMAC-SHA-1', 'HMAC-SHA-256', 'HMAC-SHA-384' and 'HMAC-SHA-512'. Default value: 'HMAC-SHA-256'.\n",
            "willReplaceOnChanges": true
          },
          "phase2DhGroups": {
            "type": "string",
            "description": "Phase two DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
            "willReplaceOnChanges": true
          },
          "phase2Encryption": {
            "type": "string",
            "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n",
            "willReplaceOnChanges": true
          },
          "preSharedKey": {
            "type": "string",
            "description": "Pre-Shared Key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Available as of provider version R2.19.2.\n"
          },
          "remoteGatewayIp": {
            "type": "string",
            "description": "Remote gateway IP. Required when `tunnel_protocol` != 'LAN'.\n",
            "willReplaceOnChanges": true
          },
          "remoteLanIp": {
            "type": "string",
            "description": "Remote LAN IP. Required for BGP over LAN connection.\n",
            "willReplaceOnChanges": true
          },
          "remoteSubnet": {
            "type": "string",
            "description": "Remote CIDRs joined as a string with ','. Required for a 'static' type connection.\n"
          },
          "remoteTunnelCidr": {
            "type": "string",
            "description": "Destination CIDR for the tunnel to the external device.\n",
            "willReplaceOnChanges": true
          },
          "remoteVpcName": {
            "type": "string",
            "description": "Name of the remote VPC for a LAN BGP connection with an Azure Transit Gateway. Required when `connection_type` = 'bgp' and `tunnel_protocol` = 'LAN' with an Azure transit gateway. Must be in the format \"<vnet-name>:<resource-group-name>:<subscription-id>\". Available as of provider version R2.18+.\n",
            "willReplaceOnChanges": true
          },
          "switchToHaStandbyGateway": {
            "type": "boolean",
            "description": "Switch to HA Standby Transit Gateway connection. Only valid with Transit Gateway that has [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby) enabled and for non-HA external device. Valid values: true, false. Default: false. Available in provider version R2.17.1+.\n"
          },
          "tunnelProtocol": {
            "type": "string",
            "description": "Tunnel protocol, only valid with `connection_type` = 'bgp'. Valid values: 'IPsec', 'GRE' or 'LAN'. Default value: 'IPsec'. Case insensitive. Available as of provider version R2.18+.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the Aviatrix transit gateway. For GCP BGP over LAN connection, it is in the format of \"vpc_name~-~project_name\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTransitFirenetPolicy:AviatrixTransitFirenetPolicy": {
      "description": "The **aviatrix_transit_firenet_policy** resource allows the creation and management of Aviatrix Transit FireNet policies that determine which resources should be inspected in the Transit FireNet solution.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Transit FireNet Policy\nconst testTransitFirenetPolicy = new aviatrix.AviatrixTransitFirenetPolicy(\"test_transit_firenet_policy\", {\n    inspectedResourceName: \"SPOKE:spokeGw1\",\n    transitFirenetGatewayName: \"transitGw1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Transit FireNet Policy\ntest_transit_firenet_policy = aviatrix.AviatrixTransitFirenetPolicy(\"testTransitFirenetPolicy\",\n    inspected_resource_name=\"SPOKE:spokeGw1\",\n    transit_firenet_gateway_name=\"transitGw1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Transit FireNet Policy\n    var testTransitFirenetPolicy = new Aviatrix.AviatrixTransitFirenetPolicy(\"testTransitFirenetPolicy\", new()\n    {\n        InspectedResourceName = \"SPOKE:spokeGw1\",\n        TransitFirenetGatewayName = \"transitGw1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixTransitFirenetPolicy(ctx, \"testTransitFirenetPolicy\", &aviatrix.AviatrixTransitFirenetPolicyArgs{\n\t\t\tInspectedResourceName:     pulumi.String(\"SPOKE:spokeGw1\"),\n\t\t\tTransitFirenetGatewayName: pulumi.String(\"transitGw1\"),\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.aviatrix.AviatrixTransitFirenetPolicy;\nimport com.pulumi.aviatrix.AviatrixTransitFirenetPolicyArgs;\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 testTransitFirenetPolicy = new AviatrixTransitFirenetPolicy(\"testTransitFirenetPolicy\", AviatrixTransitFirenetPolicyArgs.builder()        \n            .inspectedResourceName(\"SPOKE:spokeGw1\")\n            .transitFirenetGatewayName(\"transitGw1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Transit FireNet Policy\n  testTransitFirenetPolicy:\n    type: aviatrix:AviatrixTransitFirenetPolicy\n    properties:\n      inspectedResourceName: SPOKE:spokeGw1\n      transitFirenetGatewayName: transitGw1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**transit_firenet_policy** can be imported using the `transit_firenet_gateway_name` and `inspected_resource_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTransitFirenetPolicy:AviatrixTransitFirenetPolicy test transit_firenet_gateway_name~inspected_resource_name\n```\n\n ",
      "properties": {
        "inspectedResourceName": {
          "type": "string",
          "description": "The name of the resource which will be inspected.\n"
        },
        "transitFirenetGatewayName": {
          "type": "string",
          "description": "Name of the Transit FireNet-enabled transit gateway. Currently supports AWS and Azure.\n"
        }
      },
      "type": "object",
      "required": [
        "inspectedResourceName",
        "transitFirenetGatewayName"
      ],
      "inputProperties": {
        "inspectedResourceName": {
          "type": "string",
          "description": "The name of the resource which will be inspected.\n",
          "willReplaceOnChanges": true
        },
        "transitFirenetGatewayName": {
          "type": "string",
          "description": "Name of the Transit FireNet-enabled transit gateway. Currently supports AWS and Azure.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "inspectedResourceName",
        "transitFirenetGatewayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTransitFirenetPolicy resources.\n",
        "properties": {
          "inspectedResourceName": {
            "type": "string",
            "description": "The name of the resource which will be inspected.\n",
            "willReplaceOnChanges": true
          },
          "transitFirenetGatewayName": {
            "type": "string",
            "description": "Name of the Transit FireNet-enabled transit gateway. Currently supports AWS and Azure.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTransitGateway:AviatrixTransitGateway": {
      "description": "\n\n\n## Import\n\n**transit_gateway** can be imported using the `gw_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTransitGateway:AviatrixTransitGateway test gw_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "allocateNewEip": {
          "type": "boolean",
          "description": "When value is false, reuse an idle address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 4.7+. Valid values: true, false. Default: true.\n"
        },
        "approvedLearnedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of approved learned CIDRs. Only valid when `enable_learned_cidrs_approval` is set to true. Example: [\"10.250.0.0/16\", \"10.251.0.0/16\"]. Available as of provider version R2.21+.\n"
        },
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "azureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the Transit Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "bgpEcmp": {
          "type": "boolean",
          "description": "Enable Equal Cost Multi Path (ECMP) routing for the next hop. Default value: false.\n"
        },
        "bgpHoldTime": {
          "type": "integer",
          "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
        },
        "bgpLanInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixTransitGatewayBgpLanInterface:AviatrixTransitGatewayBgpLanInterface"
          },
          "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP Transit. Each interface has the following attributes:\n"
        },
        "bgpLanInterfacesCount": {
          "type": "integer",
          "description": "Number of interfaces that will be created for BGP over LAN enabled Azure transit. Valid value: 1~5 for FireNet case, 1~7 for Non-FireNet case. Default value: 1. Available as of provider version R2.22+.\n"
        },
        "bgpLanIpLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of available BGP LAN interface IPs for transit external device connection creation. Only supports GCP and Azure. Available as of provider version R2.21.0+.\n"
        },
        "bgpManualSpokeAdvertiseCidrs": {
          "type": "string",
          "description": "Intended CIDR list to be advertised to external BGP router. Example: \"10.2.0.0/16,10.4.0.0/16\". Available as of R2.6. **NOTE: If previously enabled through vgw_conn resource prior to provider version R2.6, please see notes here.**\n"
        },
        "bgpPollingTime": {
          "type": "string",
          "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: \"50\".\n"
        },
        "cloudInstanceId": {
          "type": "string",
          "description": "Cloud instance ID of the transit gateway.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192), AWS Top Secret(16384) and AWS Secret (32768) are supported.\n"
        },
        "connectedTransit": {
          "type": "boolean",
          "description": "Specify Connected Transit status. If enabled, it allows spokes to run traffics to other spokes via transit gateway. Valid values: true, false. Default value: false.\n"
        },
        "customerManagedKeys": {
          "type": "string",
          "description": "Customer managed key ID.\n",
          "secret": true
        },
        "customizedSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma-separated CIDRs to be customized for the spoke VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. It applies to all spoke gateways attached to this transit gateway. Example: \"10.0.0.0/16,10.2.0.0/16\".\n"
        },
        "customizedTransitVpcRoutes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of CIDRs to be customized for the transit VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. To be effective, `enable_advertise_transit_cidr` or firewall management access for a Transit FireNet gateway must be enabled. Example: [\"10.0.0.0/16\", \"10.2.0.0/16\"].\n"
        },
        "eip": {
          "type": "string",
          "description": "Required when `allocate_new_eip` is false. It uses the specified EIP for this gateway. Available in Controller version 4.7+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "enableActiveStandby": {
          "type": "boolean",
          "description": "Enables [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby). Available only with HA enabled. Valid values: true, false. Default value: false. Available in provider version R2.17.1+.\n"
        },
        "enableActiveStandbyPreemptive": {
          "type": "boolean",
          "description": "Enables Preemptive Mode for Active-Standby. Available only with BGP enabled, HA enabled and Active-Standby enabled. Valid values: true, false. Default value: false.\n"
        },
        "enableAdvertiseTransitCidr": {
          "type": "boolean",
          "description": "Switch to enable/disable advertise transit VPC network CIDR for a VGW connection. Available as of R2.6. **NOTE: If previously enabled through vgw_conn resource prior to provider version R2.6, please see notes here.**\n"
        },
        "enableBgpOverLan": {
          "type": "boolean",
          "description": "Pre-allocate a network interface(eth4) for \"BGP over LAN\" functionality. Must be enabled to create a BGP over LAN `aviatrix.AviatrixTransitExternalDeviceConn` resource with this Transit Gateway. Only valid for GCP (4), Azure (8), AzureGov (32) or AzureChina (2048). Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "enableEgressTransitFirenet": {
          "type": "boolean",
          "description": "Enable [Egress Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_workflow.html#b-enable-transit-firenet-on-aviatrix-egress-transit-gateway). Valid values: true, false. Default value: false. Available in provider version R2.16.3+.\n"
        },
        "enableEncryptVolume": {
          "type": "boolean",
          "description": "Enable EBS volume encryption for Gateway. Only supports AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "enableFirenet": {
          "type": "boolean",
          "description": "Set to true to use gateway for legacy [AWS TGW-based FireNet](https://docs.aviatrix.com/HowTos/firewall_network_faq.html) connection. Valid values: true, false. Default value: false. **NOTE: If previously using an older provider version R2.5 where attribute name was `enable_firenet_interfaces`, please see notes here.**\n"
        },
        "enableGatewayLoadBalancer": {
          "type": "boolean",
          "description": "Enable FireNet interfaces with AWS Gateway Load Balancer. Only valid when `enable_firenet` or `enable_transit_firenet` are set to true and `cloud_type` = 1 (AWS). Currently, AWS Gateway Load Balancer is only supported in AWS regions: us-west-2, us-east-1, eu-west-1, ap-southeast-2 and sa-east-1. Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "enableHybridConnection": {
          "type": "boolean",
          "description": "Sign of readiness for AWS TGW connection. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Example: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable jumbo frames for this transit gateway. Default value is true.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable encrypted transit approval for transit gateway. Valid values: true, false. Default value: false.\n"
        },
        "enableMonitorGatewaySubnets": {
          "type": "boolean",
          "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.18+.\n"
        },
        "enableMultiTierTransit": {
          "type": "boolean",
          "description": "Enable Multi-tier Transit mode on transit gateway. When enabled, transit gateway will propagate routes it receives from its transit peering peer to other transit peering peers. `local_as_number` is required. Default value: false. Available as of provider version R2.19+.\n"
        },
        "enablePreserveAsPath": {
          "type": "boolean",
          "description": "Enable preserve as_path when advertising manual summary cidrs on transit gateway. Valid values: true, false. Default value: false. Available as of provider version R.2.22.1+\n},\n"
        },
        "enablePrivateOob": {
          "type": "boolean",
          "description": "Enable Private OOB feature. Only available for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "enableS2cRxBalancing": {
          "type": "boolean",
          "description": "Enable S2C receive packet CPU re-balancing on transit gateway. Valid values: true, false. Default value: false. Available in provider version R2.21.2+.\n"
        },
        "enableSegmentation": {
          "type": "boolean",
          "description": "Enable transit gateway for segmentation. Valid values: true, false. Default: false.\n"
        },
        "enableSpotInstance": {
          "type": "boolean",
          "description": "Enable spot instance. NOT supported for production deployment.\n"
        },
        "enableTransitFirenet": {
          "type": "boolean",
          "description": "Set to true to use gateway for [Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_faq.html) connection. Valid values: true, false. Default value: false. Available in provider version R2.12+.\n"
        },
        "enableTransitSummarizeCidrToTgw": {
          "type": "boolean",
          "description": "Enable summarize CIDR to TGW. Valid values: true, false. Default value: false.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC DNS Server for Gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "excludedAdvertisedSpokeRoutes": {
          "type": "string",
          "description": "A list of comma-separated CIDRs to be advertised to on-prem as 'Excluded CIDR List'. When configured, it inspects all the advertised CIDRs from its spoke gateways and remove those included in the 'Excluded CIDR List'. Example: \"10.4.0.0/16,10.5.0.0/16\".\n"
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "filteredSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma-separated CIDRs to be filtered from the spoke VPC route table. When configured, filtering CIDR(s) or it’s subnet will be deleted from VPC routing tables as well as from spoke gateway’s routing table. It applies to all spoke gateways attached to this transit gateway. Example: \"10.2.0.0/16,10.3.0.0/16\".\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n"
        },
        "gwSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS: \"t2.large\", Azure/AzureGov: \"Standard_B1s\", OCI: \"VM.Standard2.2\", GCP: \"n1-standard-1\", AWSGov: \"t2.large\", AWSChina: \"t2.large\", AzureChina: \"Standard_A0\".\n"
        },
        "haAvailabilityDomain": {
          "type": "string",
          "description": "HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haAzureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the HA Transit Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "haBgpLanInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixTransitGatewayHaBgpLanInterface:AviatrixTransitGatewayHaBgpLanInterface"
          },
          "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP Transit HA. Each interface has the following attributes:\n"
        },
        "haBgpLanIpLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of available BGP LAN interface IPs for transit external device HA connection creation. Only supports GCP and Azure. Available as of provider version R2.21.0+.\n"
        },
        "haCloudInstanceId": {
          "type": "string",
          "description": "Cloud instance ID of the HA transit gateway.\n"
        },
        "haEip": {
          "type": "string",
          "description": "Public IP address that you want to assign to the HA peering instance. If no value is given, a new EIP will automatically be allocated. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "haFaultDomain": {
          "type": "string",
          "description": "HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haGwName": {
          "type": "string",
          "description": "Aviatrix transit gateway unique name of HA transit gateway.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if enabling HA. Example: \"t2.micro\".\n"
        },
        "haImageVersion": {
          "type": "string",
          "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "haInsaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit HA Gateway. Required for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret if `insane_mode` is enabled and `ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "haLanInterfaceCidr": {
          "type": "string",
          "description": "LAN interface CIDR of the HA transit gateway created (will be used when enabling FQDN Firenet in Azure). Available in provider version R2.18+.\n"
        },
        "haOobAvailabilityZone": {
          "type": "string",
          "description": "HA OOB availability zone. Required if enabling Private OOB and HA. Example: \"us-west-1b\".\n"
        },
        "haOobManagementSubnet": {
          "type": "string",
          "description": "HA OOB management subnet. Required if enabling Private OOB and HA. Example: \"11.0.0.48/28\".\n"
        },
        "haPrivateIp": {
          "type": "string",
          "description": "Private IP address of the HA transit gateway created.\n"
        },
        "haPrivateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the HA subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov with HA. Available in Provider version R2.23+.\n"
        },
        "haPublicIp": {
          "type": "string",
          "description": "Public IP address of the HA Transit Gateway.\n"
        },
        "haSecurityGroupId": {
          "type": "string",
          "description": "HA security group used for the transit gateway.\n"
        },
        "haSoftwareVersion": {
          "type": "string",
          "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet CIDR. Required only if enabling HA for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, OCI, Alibaba Cloud, AWS Top Secret or AWS Secret gateways. Optional for GCP. Setting to empty/unsetting will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet. Example: \"10.12.0.0/24\".\n"
        },
        "haZone": {
          "type": "string",
          "description": "HA Zone. Required if enabling HA for GCP gateway. Optional if enabling HA for Azure gateway. For GCP, setting to empty/unsetting will disable HA and setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\". For Azure, this is an optional parameter to place the HA gateway in a specific availability zone. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
        },
        "imageVersion": {
          "type": "string",
          "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Specify true for [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) high performance gateway. Insane Mode gateway size must be at least c5 size (AWS, AWSGov, AWS China, AWS Top Secret and AWS Secret) or Standard_D3_v2 (Azure and AzureGov); for GCP only four size are supported: \"n1-highcpu-4\", \"n1-highcpu-8\", \"n1-highcpu-16\" and \"n1-highcpu-32\". If enabled, you must specify a valid /26 CIDR segment of the VPC to create a new subnet for AWS, Azure, AzureGov, AWSGov, AWS Top Secret and AWS Secret. Only available for AWS, GCP/OCI, Azure, AzureGov, AzureChina, AWSGov, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit Gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is enabled. Example: AWS: \"us-west-1a\".\n"
        },
        "lanInterfaceCidr": {
          "type": "string",
          "description": "LAN interface CIDR of the transit gateway created (will be used when enabling FQDN Firenet in Azure). Available in provider version R2.17.1+.\n"
        },
        "lanPrivateSubnet": {
          "type": "string",
          "description": "LAN Private Subnet. Only valid when enabling Transit FireNet on GCP. Available as of provider version R2.18.1+.\n"
        },
        "lanVpcId": {
          "type": "string",
          "description": "LAN VPC ID. Only valid when enabling Transit FireNet on GCP. Available as of provider version R2.18.1+.\n"
        },
        "learnedCidrsApprovalMode": {
          "type": "string",
          "description": "Learned CIDRs approval mode. Either \"gateway\" (approval on a per gateway basis) or \"connection\" (approval on a per connection basis). Default value: \"gateway\". Available as of provider version R2.18+.\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "Changes the Aviatrix Transit Gateway ASN number before you setup Aviatrix Transit Gateway connection configurations.\n"
        },
        "monitorExcludeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.18+.\n"
        },
        "oobAvailabilityZone": {
          "type": "string",
          "description": "OOB availability zone. Required if enabling Private OOB. Example: \"us-west-1a\".\n"
        },
        "oobManagementSubnet": {
          "type": "string",
          "description": "OOB management subnet. Required if enabling Private OOB. Example: \"11.0.2.0/24\".\n"
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of AS numbers to populate BGP AP_PATH field when it advertises to VGW or peer devices.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Private IP address of the transit gateway created.\n"
        },
        "privateModeLbVpcId": {
          "type": "string",
          "description": "VPC ID of Private Mode load balancer. Required when Private Mode is enabled on the Controller. Available in Provider version R2.23+.\n"
        },
        "privateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov. Available in Provider version R2.23+.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Public IP address of the Transit Gateway created.\n"
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Security group used for the transit gateway.\n"
        },
        "singleAzHa": {
          "type": "boolean",
          "description": "Set to true if this [feature](https://docs.aviatrix.com/Solutions/gateway_ha.html#single-az-gateway) is desired. Valid values: true, false.\n"
        },
        "singleIpSnat": {
          "type": "boolean",
          "description": "Enable \"single_ip\" mode Source NAT for this container. Valid values: true, false. **NOTE: Please see notes here in regards to changes to this argument in R2.10.**\n"
        },
        "softwareVersion": {
          "type": "string",
          "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "spotPrice": {
          "type": "string",
          "description": "Price for spot instance. NOT supported for production deployment.\n"
        },
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges.\n"
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) Instance tag of cloud provider. Only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina. Example: [\"key1:value1\",\"key2:value2\"].\n",
          "deprecationMessage": "Use tags instead."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags to assign to the gateway. Only available for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character.  Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
        },
        "tunnelDetectionTime": {
          "type": "integer",
          "description": "The IPSec tunnel down detection time for the transit gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider.\n"
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1\", AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n"
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Only available for cloud_type = 8 (Azure). Must be in the form 'az-n', for example, 'az-2'. Available in provider version R2.17+.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "availabilityDomain",
        "azureEipNameResourceGroup",
        "bgpLanIpLists",
        "cloudInstanceId",
        "cloudType",
        "eip",
        "faultDomain",
        "gwName",
        "gwSize",
        "haAvailabilityDomain",
        "haAzureEipNameResourceGroup",
        "haBgpLanIpLists",
        "haCloudInstanceId",
        "haEip",
        "haFaultDomain",
        "haGwName",
        "haImageVersion",
        "haLanInterfaceCidr",
        "haPrivateIp",
        "haPublicIp",
        "haSecurityGroupId",
        "haSoftwareVersion",
        "imageVersion",
        "lanInterfaceCidr",
        "localAsNumber",
        "privateIp",
        "publicIp",
        "securityGroupId",
        "softwareVersion",
        "subnet",
        "tunnelDetectionTime",
        "vpcId",
        "vpcReg"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "allocateNewEip": {
          "type": "boolean",
          "description": "When value is false, reuse an idle address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 4.7+. Valid values: true, false. Default: true.\n"
        },
        "approvedLearnedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of approved learned CIDRs. Only valid when `enable_learned_cidrs_approval` is set to true. Example: [\"10.250.0.0/16\", \"10.251.0.0/16\"]. Available as of provider version R2.21+.\n"
        },
        "availabilityDomain": {
          "type": "string",
          "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "azureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the Transit Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "bgpEcmp": {
          "type": "boolean",
          "description": "Enable Equal Cost Multi Path (ECMP) routing for the next hop. Default value: false.\n"
        },
        "bgpHoldTime": {
          "type": "integer",
          "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
        },
        "bgpLanInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixTransitGatewayBgpLanInterface:AviatrixTransitGatewayBgpLanInterface"
          },
          "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP Transit. Each interface has the following attributes:\n",
          "willReplaceOnChanges": true
        },
        "bgpLanInterfacesCount": {
          "type": "integer",
          "description": "Number of interfaces that will be created for BGP over LAN enabled Azure transit. Valid value: 1~5 for FireNet case, 1~7 for Non-FireNet case. Default value: 1. Available as of provider version R2.22+.\n",
          "willReplaceOnChanges": true
        },
        "bgpManualSpokeAdvertiseCidrs": {
          "type": "string",
          "description": "Intended CIDR list to be advertised to external BGP router. Example: \"10.2.0.0/16,10.4.0.0/16\". Available as of R2.6. **NOTE: If previously enabled through vgw_conn resource prior to provider version R2.6, please see notes here.**\n"
        },
        "bgpPollingTime": {
          "type": "string",
          "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: \"50\".\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192), AWS Top Secret(16384) and AWS Secret (32768) are supported.\n"
        },
        "connectedTransit": {
          "type": "boolean",
          "description": "Specify Connected Transit status. If enabled, it allows spokes to run traffics to other spokes via transit gateway. Valid values: true, false. Default value: false.\n"
        },
        "customerManagedKeys": {
          "type": "string",
          "description": "Customer managed key ID.\n",
          "secret": true
        },
        "customizedSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma-separated CIDRs to be customized for the spoke VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. It applies to all spoke gateways attached to this transit gateway. Example: \"10.0.0.0/16,10.2.0.0/16\".\n"
        },
        "customizedTransitVpcRoutes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of CIDRs to be customized for the transit VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. To be effective, `enable_advertise_transit_cidr` or firewall management access for a Transit FireNet gateway must be enabled. Example: [\"10.0.0.0/16\", \"10.2.0.0/16\"].\n"
        },
        "eip": {
          "type": "string",
          "description": "Required when `allocate_new_eip` is false. It uses the specified EIP for this gateway. Available in Controller version 4.7+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "enableActiveStandby": {
          "type": "boolean",
          "description": "Enables [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby). Available only with HA enabled. Valid values: true, false. Default value: false. Available in provider version R2.17.1+.\n"
        },
        "enableActiveStandbyPreemptive": {
          "type": "boolean",
          "description": "Enables Preemptive Mode for Active-Standby. Available only with BGP enabled, HA enabled and Active-Standby enabled. Valid values: true, false. Default value: false.\n"
        },
        "enableAdvertiseTransitCidr": {
          "type": "boolean",
          "description": "Switch to enable/disable advertise transit VPC network CIDR for a VGW connection. Available as of R2.6. **NOTE: If previously enabled through vgw_conn resource prior to provider version R2.6, please see notes here.**\n"
        },
        "enableBgpOverLan": {
          "type": "boolean",
          "description": "Pre-allocate a network interface(eth4) for \"BGP over LAN\" functionality. Must be enabled to create a BGP over LAN `aviatrix.AviatrixTransitExternalDeviceConn` resource with this Transit Gateway. Only valid for GCP (4), Azure (8), AzureGov (32) or AzureChina (2048). Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n",
          "willReplaceOnChanges": true
        },
        "enableEgressTransitFirenet": {
          "type": "boolean",
          "description": "Enable [Egress Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_workflow.html#b-enable-transit-firenet-on-aviatrix-egress-transit-gateway). Valid values: true, false. Default value: false. Available in provider version R2.16.3+.\n"
        },
        "enableEncryptVolume": {
          "type": "boolean",
          "description": "Enable EBS volume encryption for Gateway. Only supports AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "enableFirenet": {
          "type": "boolean",
          "description": "Set to true to use gateway for legacy [AWS TGW-based FireNet](https://docs.aviatrix.com/HowTos/firewall_network_faq.html) connection. Valid values: true, false. Default value: false. **NOTE: If previously using an older provider version R2.5 where attribute name was `enable_firenet_interfaces`, please see notes here.**\n"
        },
        "enableGatewayLoadBalancer": {
          "type": "boolean",
          "description": "Enable FireNet interfaces with AWS Gateway Load Balancer. Only valid when `enable_firenet` or `enable_transit_firenet` are set to true and `cloud_type` = 1 (AWS). Currently, AWS Gateway Load Balancer is only supported in AWS regions: us-west-2, us-east-1, eu-west-1, ap-southeast-2 and sa-east-1. Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "enableHybridConnection": {
          "type": "boolean",
          "description": "Sign of readiness for AWS TGW connection. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Example: false.\n"
        },
        "enableJumboFrame": {
          "type": "boolean",
          "description": "Enable jumbo frames for this transit gateway. Default value is true.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Switch to enable/disable encrypted transit approval for transit gateway. Valid values: true, false. Default value: false.\n"
        },
        "enableMonitorGatewaySubnets": {
          "type": "boolean",
          "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.18+.\n"
        },
        "enableMultiTierTransit": {
          "type": "boolean",
          "description": "Enable Multi-tier Transit mode on transit gateway. When enabled, transit gateway will propagate routes it receives from its transit peering peer to other transit peering peers. `local_as_number` is required. Default value: false. Available as of provider version R2.19+.\n"
        },
        "enablePreserveAsPath": {
          "type": "boolean",
          "description": "Enable preserve as_path when advertising manual summary cidrs on transit gateway. Valid values: true, false. Default value: false. Available as of provider version R.2.22.1+\n},\n"
        },
        "enablePrivateOob": {
          "type": "boolean",
          "description": "Enable Private OOB feature. Only available for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "enableS2cRxBalancing": {
          "type": "boolean",
          "description": "Enable S2C receive packet CPU re-balancing on transit gateway. Valid values: true, false. Default value: false. Available in provider version R2.21.2+.\n"
        },
        "enableSegmentation": {
          "type": "boolean",
          "description": "Enable transit gateway for segmentation. Valid values: true, false. Default: false.\n"
        },
        "enableSpotInstance": {
          "type": "boolean",
          "description": "Enable spot instance. NOT supported for production deployment.\n"
        },
        "enableTransitFirenet": {
          "type": "boolean",
          "description": "Set to true to use gateway for [Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_faq.html) connection. Valid values: true, false. Default value: false. Available in provider version R2.12+.\n"
        },
        "enableTransitSummarizeCidrToTgw": {
          "type": "boolean",
          "description": "Enable summarize CIDR to TGW. Valid values: true, false. Default value: false.\n"
        },
        "enableVpcDnsServer": {
          "type": "boolean",
          "description": "Enable VPC DNS Server for Gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
        },
        "excludedAdvertisedSpokeRoutes": {
          "type": "string",
          "description": "A list of comma-separated CIDRs to be advertised to on-prem as 'Excluded CIDR List'. When configured, it inspects all the advertised CIDRs from its spoke gateways and remove those included in the 'Excluded CIDR List'. Example: \"10.4.0.0/16,10.5.0.0/16\".\n"
        },
        "faultDomain": {
          "type": "string",
          "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
          "willReplaceOnChanges": true
        },
        "filteredSpokeVpcRoutes": {
          "type": "string",
          "description": "A list of comma-separated CIDRs to be filtered from the spoke VPC route table. When configured, filtering CIDR(s) or it’s subnet will be deleted from VPC routing tables as well as from spoke gateway’s routing table. It applies to all spoke gateways attached to this transit gateway. Example: \"10.2.0.0/16,10.3.0.0/16\".\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n",
          "willReplaceOnChanges": true
        },
        "gwSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS: \"t2.large\", Azure/AzureGov: \"Standard_B1s\", OCI: \"VM.Standard2.2\", GCP: \"n1-standard-1\", AWSGov: \"t2.large\", AWSChina: \"t2.large\", AzureChina: \"Standard_A0\".\n"
        },
        "haAvailabilityDomain": {
          "type": "string",
          "description": "HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haAzureEipNameResourceGroup": {
          "type": "string",
          "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the HA Transit Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
        },
        "haBgpLanInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixTransitGatewayHaBgpLanInterface:AviatrixTransitGatewayHaBgpLanInterface"
          },
          "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP Transit HA. Each interface has the following attributes:\n"
        },
        "haEip": {
          "type": "string",
          "description": "Public IP address that you want to assign to the HA peering instance. If no value is given, a new EIP will automatically be allocated. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
        },
        "haFaultDomain": {
          "type": "string",
          "description": "HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if enabling HA. Example: \"t2.micro\".\n"
        },
        "haImageVersion": {
          "type": "string",
          "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "haInsaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit HA Gateway. Required for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret if `insane_mode` is enabled and `ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
        },
        "haOobAvailabilityZone": {
          "type": "string",
          "description": "HA OOB availability zone. Required if enabling Private OOB and HA. Example: \"us-west-1b\".\n"
        },
        "haOobManagementSubnet": {
          "type": "string",
          "description": "HA OOB management subnet. Required if enabling Private OOB and HA. Example: \"11.0.0.48/28\".\n"
        },
        "haPrivateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the HA subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov with HA. Available in Provider version R2.23+.\n"
        },
        "haSoftwareVersion": {
          "type": "string",
          "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet CIDR. Required only if enabling HA for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, OCI, Alibaba Cloud, AWS Top Secret or AWS Secret gateways. Optional for GCP. Setting to empty/unsetting will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet. Example: \"10.12.0.0/24\".\n"
        },
        "haZone": {
          "type": "string",
          "description": "HA Zone. Required if enabling HA for GCP gateway. Optional if enabling HA for Azure gateway. For GCP, setting to empty/unsetting will disable HA and setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\". For Azure, this is an optional parameter to place the HA gateway in a specific availability zone. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
        },
        "imageVersion": {
          "type": "string",
          "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Specify true for [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) high performance gateway. Insane Mode gateway size must be at least c5 size (AWS, AWSGov, AWS China, AWS Top Secret and AWS Secret) or Standard_D3_v2 (Azure and AzureGov); for GCP only four size are supported: \"n1-highcpu-4\", \"n1-highcpu-8\", \"n1-highcpu-16\" and \"n1-highcpu-32\". If enabled, you must specify a valid /26 CIDR segment of the VPC to create a new subnet for AWS, Azure, AzureGov, AWSGov, AWS Top Secret and AWS Secret. Only available for AWS, GCP/OCI, Azure, AzureGov, AzureChina, AWSGov, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit Gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is enabled. Example: AWS: \"us-west-1a\".\n"
        },
        "lanPrivateSubnet": {
          "type": "string",
          "description": "LAN Private Subnet. Only valid when enabling Transit FireNet on GCP. Available as of provider version R2.18.1+.\n"
        },
        "lanVpcId": {
          "type": "string",
          "description": "LAN VPC ID. Only valid when enabling Transit FireNet on GCP. Available as of provider version R2.18.1+.\n"
        },
        "learnedCidrsApprovalMode": {
          "type": "string",
          "description": "Learned CIDRs approval mode. Either \"gateway\" (approval on a per gateway basis) or \"connection\" (approval on a per connection basis). Default value: \"gateway\". Available as of provider version R2.18+.\n"
        },
        "localAsNumber": {
          "type": "string",
          "description": "Changes the Aviatrix Transit Gateway ASN number before you setup Aviatrix Transit Gateway connection configurations.\n"
        },
        "monitorExcludeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.18+.\n"
        },
        "oobAvailabilityZone": {
          "type": "string",
          "description": "OOB availability zone. Required if enabling Private OOB. Example: \"us-west-1a\".\n",
          "willReplaceOnChanges": true
        },
        "oobManagementSubnet": {
          "type": "string",
          "description": "OOB management subnet. Required if enabling Private OOB. Example: \"11.0.2.0/24\".\n",
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of AS numbers to populate BGP AP_PATH field when it advertises to VGW or peer devices.\n"
        },
        "privateModeLbVpcId": {
          "type": "string",
          "description": "VPC ID of Private Mode load balancer. Required when Private Mode is enabled on the Controller. Available in Provider version R2.23+.\n",
          "willReplaceOnChanges": true
        },
        "privateModeSubnetZone": {
          "type": "string",
          "description": "Availability Zone of the subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov. Available in Provider version R2.23+.\n",
          "willReplaceOnChanges": true
        },
        "rxQueueSize": {
          "type": "string",
          "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
        },
        "singleAzHa": {
          "type": "boolean",
          "description": "Set to true if this [feature](https://docs.aviatrix.com/Solutions/gateway_ha.html#single-az-gateway) is desired. Valid values: true, false.\n"
        },
        "singleIpSnat": {
          "type": "boolean",
          "description": "Enable \"single_ip\" mode Source NAT for this container. Valid values: true, false. **NOTE: Please see notes here in regards to changes to this argument in R2.10.**\n"
        },
        "softwareVersion": {
          "type": "string",
          "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
        },
        "spotPrice": {
          "type": "string",
          "description": "Price for spot instance. NOT supported for production deployment.\n"
        },
        "subnet": {
          "type": "string",
          "description": "A VPC Network address range selected from one of the available network ranges.\n",
          "willReplaceOnChanges": true
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) Instance tag of cloud provider. Only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina. Example: [\"key1:value1\",\"key2:value2\"].\n",
          "deprecationMessage": "Use tags instead."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags to assign to the gateway. Only available for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character.  Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
        },
        "tunnelDetectionTime": {
          "type": "integer",
          "description": "The IPSec tunnel down detection time for the transit gateway.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider.\n",
          "willReplaceOnChanges": true
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1\", AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n",
          "willReplaceOnChanges": true
        },
        "zone": {
          "type": "string",
          "description": "Availability Zone. Only available for cloud_type = 8 (Azure). Must be in the form 'az-n', for example, 'az-2'. Available in provider version R2.17+.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType",
        "gwName",
        "gwSize",
        "subnet",
        "vpcId",
        "vpcReg"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTransitGateway resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
          },
          "allocateNewEip": {
            "type": "boolean",
            "description": "When value is false, reuse an idle address in Elastic IP pool for this gateway. Otherwise, allocate a new Elastic IP and use it for this gateway. Available in Controller 4.7+. Valid values: true, false. Default: true.\n"
          },
          "approvedLearnedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of approved learned CIDRs. Only valid when `enable_learned_cidrs_approval` is set to true. Example: [\"10.250.0.0/16\", \"10.251.0.0/16\"]. Available as of provider version R2.21+.\n"
          },
          "availabilityDomain": {
            "type": "string",
            "description": "Availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "azureEipNameResourceGroup": {
            "type": "string",
            "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the Transit Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `allocate_new_eip` is false and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
          },
          "bgpEcmp": {
            "type": "boolean",
            "description": "Enable Equal Cost Multi Path (ECMP) routing for the next hop. Default value: false.\n"
          },
          "bgpHoldTime": {
            "type": "integer",
            "description": "BGP hold time. Unit is in seconds. Valid values are between 12 and 360. Default value: 180.\n"
          },
          "bgpLanInterfaces": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixTransitGatewayBgpLanInterface:AviatrixTransitGatewayBgpLanInterface"
            },
            "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP Transit. Each interface has the following attributes:\n",
            "willReplaceOnChanges": true
          },
          "bgpLanInterfacesCount": {
            "type": "integer",
            "description": "Number of interfaces that will be created for BGP over LAN enabled Azure transit. Valid value: 1~5 for FireNet case, 1~7 for Non-FireNet case. Default value: 1. Available as of provider version R2.22+.\n",
            "willReplaceOnChanges": true
          },
          "bgpLanIpLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of available BGP LAN interface IPs for transit external device connection creation. Only supports GCP and Azure. Available as of provider version R2.21.0+.\n"
          },
          "bgpManualSpokeAdvertiseCidrs": {
            "type": "string",
            "description": "Intended CIDR list to be advertised to external BGP router. Example: \"10.2.0.0/16,10.4.0.0/16\". Available as of R2.6. **NOTE: If previously enabled through vgw_conn resource prior to provider version R2.6, please see notes here.**\n"
          },
          "bgpPollingTime": {
            "type": "string",
            "description": "BGP route polling time. Unit is in seconds. Valid values are between 10 and 50. Default value: \"50\".\n"
          },
          "cloudInstanceId": {
            "type": "string",
            "description": "Cloud instance ID of the transit gateway.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192), AWS Top Secret(16384) and AWS Secret (32768) are supported.\n"
          },
          "connectedTransit": {
            "type": "boolean",
            "description": "Specify Connected Transit status. If enabled, it allows spokes to run traffics to other spokes via transit gateway. Valid values: true, false. Default value: false.\n"
          },
          "customerManagedKeys": {
            "type": "string",
            "description": "Customer managed key ID.\n",
            "secret": true
          },
          "customizedSpokeVpcRoutes": {
            "type": "string",
            "description": "A list of comma-separated CIDRs to be customized for the spoke VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. It applies to all spoke gateways attached to this transit gateway. Example: \"10.0.0.0/16,10.2.0.0/16\".\n"
          },
          "customizedTransitVpcRoutes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of CIDRs to be customized for the transit VPC routes. When configured, it will replace all learned routes in VPC routing tables, including RFC1918 and non-RFC1918 CIDRs. To be effective, `enable_advertise_transit_cidr` or firewall management access for a Transit FireNet gateway must be enabled. Example: [\"10.0.0.0/16\", \"10.2.0.0/16\"].\n"
          },
          "eip": {
            "type": "string",
            "description": "Required when `allocate_new_eip` is false. It uses the specified EIP for this gateway. Available in Controller version 4.7+. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
          },
          "enableActiveStandby": {
            "type": "boolean",
            "description": "Enables [Active-Standby Mode](https://docs.aviatrix.com/HowTos/transit_advanced.html#active-standby). Available only with HA enabled. Valid values: true, false. Default value: false. Available in provider version R2.17.1+.\n"
          },
          "enableActiveStandbyPreemptive": {
            "type": "boolean",
            "description": "Enables Preemptive Mode for Active-Standby. Available only with BGP enabled, HA enabled and Active-Standby enabled. Valid values: true, false. Default value: false.\n"
          },
          "enableAdvertiseTransitCidr": {
            "type": "boolean",
            "description": "Switch to enable/disable advertise transit VPC network CIDR for a VGW connection. Available as of R2.6. **NOTE: If previously enabled through vgw_conn resource prior to provider version R2.6, please see notes here.**\n"
          },
          "enableBgpOverLan": {
            "type": "boolean",
            "description": "Pre-allocate a network interface(eth4) for \"BGP over LAN\" functionality. Must be enabled to create a BGP over LAN `aviatrix.AviatrixTransitExternalDeviceConn` resource with this Transit Gateway. Only valid for GCP (4), Azure (8), AzureGov (32) or AzureChina (2048). Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n",
            "willReplaceOnChanges": true
          },
          "enableEgressTransitFirenet": {
            "type": "boolean",
            "description": "Enable [Egress Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_workflow.html#b-enable-transit-firenet-on-aviatrix-egress-transit-gateway). Valid values: true, false. Default value: false. Available in provider version R2.16.3+.\n"
          },
          "enableEncryptVolume": {
            "type": "boolean",
            "description": "Enable EBS volume encryption for Gateway. Only supports AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
          },
          "enableFirenet": {
            "type": "boolean",
            "description": "Set to true to use gateway for legacy [AWS TGW-based FireNet](https://docs.aviatrix.com/HowTos/firewall_network_faq.html) connection. Valid values: true, false. Default value: false. **NOTE: If previously using an older provider version R2.5 where attribute name was `enable_firenet_interfaces`, please see notes here.**\n"
          },
          "enableGatewayLoadBalancer": {
            "type": "boolean",
            "description": "Enable FireNet interfaces with AWS Gateway Load Balancer. Only valid when `enable_firenet` or `enable_transit_firenet` are set to true and `cloud_type` = 1 (AWS). Currently, AWS Gateway Load Balancer is only supported in AWS regions: us-west-2, us-east-1, eu-west-1, ap-southeast-2 and sa-east-1. Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n"
          },
          "enableHybridConnection": {
            "type": "boolean",
            "description": "Sign of readiness for AWS TGW connection. Only supported for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Example: false.\n"
          },
          "enableJumboFrame": {
            "type": "boolean",
            "description": "Enable jumbo frames for this transit gateway. Default value is true.\n"
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Switch to enable/disable encrypted transit approval for transit gateway. Valid values: true, false. Default value: false.\n"
          },
          "enableMonitorGatewaySubnets": {
            "type": "boolean",
            "description": "If set to true, the [Monitor Gateway Subnets](https://docs.aviatrix.com/HowTos/gateway.html#monitor-gateway-subnet) feature is enabled. Default value is false. Available in provider version R2.18+.\n"
          },
          "enableMultiTierTransit": {
            "type": "boolean",
            "description": "Enable Multi-tier Transit mode on transit gateway. When enabled, transit gateway will propagate routes it receives from its transit peering peer to other transit peering peers. `local_as_number` is required. Default value: false. Available as of provider version R2.19+.\n"
          },
          "enablePreserveAsPath": {
            "type": "boolean",
            "description": "Enable preserve as_path when advertising manual summary cidrs on transit gateway. Valid values: true, false. Default value: false. Available as of provider version R.2.22.1+\n},\n"
          },
          "enablePrivateOob": {
            "type": "boolean",
            "description": "Enable Private OOB feature. Only available for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
          },
          "enableS2cRxBalancing": {
            "type": "boolean",
            "description": "Enable S2C receive packet CPU re-balancing on transit gateway. Valid values: true, false. Default value: false. Available in provider version R2.21.2+.\n"
          },
          "enableSegmentation": {
            "type": "boolean",
            "description": "Enable transit gateway for segmentation. Valid values: true, false. Default: false.\n"
          },
          "enableSpotInstance": {
            "type": "boolean",
            "description": "Enable spot instance. NOT supported for production deployment.\n"
          },
          "enableTransitFirenet": {
            "type": "boolean",
            "description": "Set to true to use gateway for [Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_faq.html) connection. Valid values: true, false. Default value: false. Available in provider version R2.12+.\n"
          },
          "enableTransitSummarizeCidrToTgw": {
            "type": "boolean",
            "description": "Enable summarize CIDR to TGW. Valid values: true, false. Default value: false.\n"
          },
          "enableVpcDnsServer": {
            "type": "boolean",
            "description": "Enable VPC DNS Server for Gateway. Currently only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, Alibaba Cloud, AWS Top Secret and AWS Secret gateways. Valid values: true, false. Default value: false.\n"
          },
          "excludedAdvertisedSpokeRoutes": {
            "type": "string",
            "description": "A list of comma-separated CIDRs to be advertised to on-prem as 'Excluded CIDR List'. When configured, it inspects all the advertised CIDRs from its spoke gateways and remove those included in the 'Excluded CIDR List'. Example: \"10.4.0.0/16,10.5.0.0/16\".\n"
          },
          "faultDomain": {
            "type": "string",
            "description": "Fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n",
            "willReplaceOnChanges": true
          },
          "filteredSpokeVpcRoutes": {
            "type": "string",
            "description": "A list of comma-separated CIDRs to be filtered from the spoke VPC route table. When configured, filtering CIDR(s) or it’s subnet will be deleted from VPC routing tables as well as from spoke gateway’s routing table. It applies to all spoke gateways attached to this transit gateway. Example: \"10.2.0.0/16,10.3.0.0/16\".\n"
          },
          "gwName": {
            "type": "string",
            "description": "Name of the gateway which is going to be created.\n",
            "willReplaceOnChanges": true
          },
          "gwSize": {
            "type": "string",
            "description": "Size of the gateway instance. Example: AWS: \"t2.large\", Azure/AzureGov: \"Standard_B1s\", OCI: \"VM.Standard2.2\", GCP: \"n1-standard-1\", AWSGov: \"t2.large\", AWSChina: \"t2.large\", AzureChina: \"Standard_A0\".\n"
          },
          "haAvailabilityDomain": {
            "type": "string",
            "description": "HA gateway availability domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
          },
          "haAzureEipNameResourceGroup": {
            "type": "string",
            "description": "Name of public IP Address resource and its resource group in Azure to be assigned to the HA Transit Gateway instance. Example: \"IP_Name:Resource_Group_Name\". Required if `ha_eip` is set and `cloud_type` is Azure, AzureGov or AzureChina. Available as of provider version 2.20+.\n"
          },
          "haBgpLanInterfaces": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixTransitGatewayHaBgpLanInterface:AviatrixTransitGatewayHaBgpLanInterface"
            },
            "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP Transit HA. Each interface has the following attributes:\n"
          },
          "haBgpLanIpLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of available BGP LAN interface IPs for transit external device HA connection creation. Only supports GCP and Azure. Available as of provider version R2.21.0+.\n"
          },
          "haCloudInstanceId": {
            "type": "string",
            "description": "Cloud instance ID of the HA transit gateway.\n"
          },
          "haEip": {
            "type": "string",
            "description": "Public IP address that you want to assign to the HA peering instance. If no value is given, a new EIP will automatically be allocated. Only available for AWS, GCP, Azure, OCI, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret.\n"
          },
          "haFaultDomain": {
            "type": "string",
            "description": "HA gateway fault domain. Required and valid only for OCI. Available as of provider version R2.19.3.\n"
          },
          "haGwName": {
            "type": "string",
            "description": "Aviatrix transit gateway unique name of HA transit gateway.\n"
          },
          "haGwSize": {
            "type": "string",
            "description": "HA Gateway Size. Mandatory if enabling HA. Example: \"t2.micro\".\n"
          },
          "haImageVersion": {
            "type": "string",
            "description": "The image version of the HA gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `ha_software_version`. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
          },
          "haInsaneModeAz": {
            "type": "string",
            "description": "AZ of subnet being created for Insane Mode Transit HA Gateway. Required for AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret if `insane_mode` is enabled and `ha_subnet` is set. Example: AWS: \"us-west-1a\".\n"
          },
          "haLanInterfaceCidr": {
            "type": "string",
            "description": "LAN interface CIDR of the HA transit gateway created (will be used when enabling FQDN Firenet in Azure). Available in provider version R2.18+.\n"
          },
          "haOobAvailabilityZone": {
            "type": "string",
            "description": "HA OOB availability zone. Required if enabling Private OOB and HA. Example: \"us-west-1b\".\n"
          },
          "haOobManagementSubnet": {
            "type": "string",
            "description": "HA OOB management subnet. Required if enabling Private OOB and HA. Example: \"11.0.0.48/28\".\n"
          },
          "haPrivateIp": {
            "type": "string",
            "description": "Private IP address of the HA transit gateway created.\n"
          },
          "haPrivateModeSubnetZone": {
            "type": "string",
            "description": "Availability Zone of the HA subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov with HA. Available in Provider version R2.23+.\n"
          },
          "haPublicIp": {
            "type": "string",
            "description": "Public IP address of the HA Transit Gateway.\n"
          },
          "haSecurityGroupId": {
            "type": "string",
            "description": "HA security group used for the transit gateway.\n"
          },
          "haSoftwareVersion": {
            "type": "string",
            "description": "The software version of the HA gateway. If set, we will attempt to update the HA gateway to the specified version if current version is different. If left blank, the HA gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
          },
          "haSubnet": {
            "type": "string",
            "description": "HA Subnet CIDR. Required only if enabling HA for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, OCI, Alibaba Cloud, AWS Top Secret or AWS Secret gateways. Optional for GCP. Setting to empty/unsetting will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet. Example: \"10.12.0.0/24\".\n"
          },
          "haZone": {
            "type": "string",
            "description": "HA Zone. Required if enabling HA for GCP gateway. Optional if enabling HA for Azure gateway. For GCP, setting to empty/unsetting will disable HA and setting to a valid zone will create an HA gateway in the zone. Example: \"us-west1-c\". For Azure, this is an optional parameter to place the HA gateway in a specific availability zone. Valid values for Azure gateways are in the form \"az-n\". Example: \"az-2\". Available for Azure as of provider version R2.17+.\n"
          },
          "imageVersion": {
            "type": "string",
            "description": "The image version of the gateway. Use `aviatrix.getAviatrixGatewayImage` data source to programmatically retrieve this value for the desired `software_version`. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrades can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"hvm-cloudx-aws-022021\". Available as of provider version R2.20.0.\n"
          },
          "insaneMode": {
            "type": "boolean",
            "description": "Specify true for [Insane Mode](https://docs.aviatrix.com/HowTos/insane_mode.html) high performance gateway. Insane Mode gateway size must be at least c5 size (AWS, AWSGov, AWS China, AWS Top Secret and AWS Secret) or Standard_D3_v2 (Azure and AzureGov); for GCP only four size are supported: \"n1-highcpu-4\", \"n1-highcpu-8\", \"n1-highcpu-16\" and \"n1-highcpu-32\". If enabled, you must specify a valid /26 CIDR segment of the VPC to create a new subnet for AWS, Azure, AzureGov, AWSGov, AWS Top Secret and AWS Secret. Only available for AWS, GCP/OCI, Azure, AzureGov, AzureChina, AWSGov, AWS Top Secret and AWS Secret. Valid values: true, false. Default value: false.\n"
          },
          "insaneModeAz": {
            "type": "string",
            "description": "AZ of subnet being created for Insane Mode Transit Gateway. Required for AWS, AWSGov, AWS China, AWS Top Secret or AWS Secret if `insane_mode` is enabled. Example: AWS: \"us-west-1a\".\n"
          },
          "lanInterfaceCidr": {
            "type": "string",
            "description": "LAN interface CIDR of the transit gateway created (will be used when enabling FQDN Firenet in Azure). Available in provider version R2.17.1+.\n"
          },
          "lanPrivateSubnet": {
            "type": "string",
            "description": "LAN Private Subnet. Only valid when enabling Transit FireNet on GCP. Available as of provider version R2.18.1+.\n"
          },
          "lanVpcId": {
            "type": "string",
            "description": "LAN VPC ID. Only valid when enabling Transit FireNet on GCP. Available as of provider version R2.18.1+.\n"
          },
          "learnedCidrsApprovalMode": {
            "type": "string",
            "description": "Learned CIDRs approval mode. Either \"gateway\" (approval on a per gateway basis) or \"connection\" (approval on a per connection basis). Default value: \"gateway\". Available as of provider version R2.18+.\n"
          },
          "localAsNumber": {
            "type": "string",
            "description": "Changes the Aviatrix Transit Gateway ASN number before you setup Aviatrix Transit Gateway connection configurations.\n"
          },
          "monitorExcludeLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of monitored instance ids. Only valid when 'enable_monitor_gateway_subnets' = true. Available in provider version R2.18+.\n"
          },
          "oobAvailabilityZone": {
            "type": "string",
            "description": "OOB availability zone. Required if enabling Private OOB. Example: \"us-west-1a\".\n",
            "willReplaceOnChanges": true
          },
          "oobManagementSubnet": {
            "type": "string",
            "description": "OOB management subnet. Required if enabling Private OOB. Example: \"11.0.2.0/24\".\n",
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of AS numbers to populate BGP AP_PATH field when it advertises to VGW or peer devices.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "Private IP address of the transit gateway created.\n"
          },
          "privateModeLbVpcId": {
            "type": "string",
            "description": "VPC ID of Private Mode load balancer. Required when Private Mode is enabled on the Controller. Available in Provider version R2.23+.\n",
            "willReplaceOnChanges": true
          },
          "privateModeSubnetZone": {
            "type": "string",
            "description": "Availability Zone of the subnet. Required when Private Mode is enabled on the Controller and `cloud_type` is AWS or AWSGov. Available in Provider version R2.23+.\n",
            "willReplaceOnChanges": true
          },
          "publicIp": {
            "type": "string",
            "description": "Public IP address of the Transit Gateway created.\n"
          },
          "rxQueueSize": {
            "type": "string",
            "description": "Gateway ethernet interface RX queue size. Once set, can't be deleted or disabled. Available for AWS as of provider version R2.22+.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Security group used for the transit gateway.\n"
          },
          "singleAzHa": {
            "type": "boolean",
            "description": "Set to true if this [feature](https://docs.aviatrix.com/Solutions/gateway_ha.html#single-az-gateway) is desired. Valid values: true, false.\n"
          },
          "singleIpSnat": {
            "type": "boolean",
            "description": "Enable \"single_ip\" mode Source NAT for this container. Valid values: true, false. **NOTE: Please see notes here in regards to changes to this argument in R2.10.**\n"
          },
          "softwareVersion": {
            "type": "string",
            "description": "The software version of the gateway. If set, we will attempt to update the gateway to the specified version if current version is different. If left blank, the gateway upgrade can be managed with the `aviatrix.AviatrixControllerConfig` resource. Type: String. Example: \"6.5.821\". Available as of provider version R2.20.0.\n"
          },
          "spotPrice": {
            "type": "string",
            "description": "Price for spot instance. NOT supported for production deployment.\n"
          },
          "subnet": {
            "type": "string",
            "description": "A VPC Network address range selected from one of the available network ranges.\n",
            "willReplaceOnChanges": true
          },
          "tagLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "(Optional) Instance tag of cloud provider. Only supported for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina. Example: [\"key1:value1\",\"key2:value2\"].\n",
            "deprecationMessage": "Use tags instead."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags to assign to the gateway. Only available for AWS, Azure, AzureGov, AWSGov, AWSChina, AzureChina, AWS Top Secret and AWS Secret gateways. Allowed characters vary by cloud type but always include: letters, spaces, and numbers. AWS, AWSGov, AWSChina, AWS Top Secret and AWS Secret allow the use of any character.  Azure, AzureGov and AzureChina allows the following special characters: + - = . _ : @. Example: {\"key1\" = \"value1\", \"key2\" = \"value2\"}.\n"
          },
          "tunnelDetectionTime": {
            "type": "integer",
            "description": "The IPSec tunnel down detection time for the transit gateway.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC-ID/VNet-Name of cloud provider.\n",
            "willReplaceOnChanges": true
          },
          "vpcReg": {
            "type": "string",
            "description": "Region of cloud provider. Example: AWS: \"us-east-1\", GCP: \"us-west2-a\", Azure: \"East US 2\", OCI: \"us-ashburn-1\", AzureGov: \"USGov Arizona\", AWSGov: \"us-gov-west-1\", AWSChina: \"cn-north-1\", AzureChina: \"China North\", AWS Top Secret: \"us-iso-east-1\", AWS Secret: \"us-isob-east-1\".\n",
            "willReplaceOnChanges": true
          },
          "zone": {
            "type": "string",
            "description": "Availability Zone. Only available for cloud_type = 8 (Azure). Must be in the form 'az-n', for example, 'az-2'. Available in provider version R2.17+.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTransitGatewayPeering:AviatrixTransitGatewayPeering": {
      "description": "The **aviatrix_transit_gateway_peering** resource allows the creation and management of peerings between Aviatrix transit gateways.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Transit Gateway Peering\nconst testTransitGatewayPeering = new aviatrix.AviatrixTransitGatewayPeering(\"test_transit_gateway_peering\", {\n    enableInsaneModeEncryptionOverInternet: false,\n    enablePeeringOverPrivateNetwork: false,\n    gateway1ExcludedNetworkCidrs: [\"10.0.0.48/28\"],\n    gateway1ExcludedTgwConnections: [\"vpn_connection_a\"],\n    gateway2ExcludedNetworkCidrs: [\"10.0.0.48/28\"],\n    gateway2ExcludedTgwConnections: [\"vpn_connection_b\"],\n    prependAsPath1s: [\n        \"65001\",\n        \"65001\",\n        \"65001\",\n    ],\n    prependAsPath2s: [\"65002\"],\n    transitGatewayName1: \"transit-Gw1\",\n    transitGatewayName2: \"transit-Gw2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Transit Gateway Peering\ntest_transit_gateway_peering = aviatrix.AviatrixTransitGatewayPeering(\"testTransitGatewayPeering\",\n    enable_insane_mode_encryption_over_internet=False,\n    enable_peering_over_private_network=False,\n    gateway1_excluded_network_cidrs=[\"10.0.0.48/28\"],\n    gateway1_excluded_tgw_connections=[\"vpn_connection_a\"],\n    gateway2_excluded_network_cidrs=[\"10.0.0.48/28\"],\n    gateway2_excluded_tgw_connections=[\"vpn_connection_b\"],\n    prepend_as_path1s=[\n        \"65001\",\n        \"65001\",\n        \"65001\",\n    ],\n    prepend_as_path2s=[\"65002\"],\n    transit_gateway_name1=\"transit-Gw1\",\n    transit_gateway_name2=\"transit-Gw2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Transit Gateway Peering\n    var testTransitGatewayPeering = new Aviatrix.AviatrixTransitGatewayPeering(\"testTransitGatewayPeering\", new()\n    {\n        EnableInsaneModeEncryptionOverInternet = false,\n        EnablePeeringOverPrivateNetwork = false,\n        Gateway1ExcludedNetworkCidrs = new[]\n        {\n            \"10.0.0.48/28\",\n        },\n        Gateway1ExcludedTgwConnections = new[]\n        {\n            \"vpn_connection_a\",\n        },\n        Gateway2ExcludedNetworkCidrs = new[]\n        {\n            \"10.0.0.48/28\",\n        },\n        Gateway2ExcludedTgwConnections = new[]\n        {\n            \"vpn_connection_b\",\n        },\n        PrependAsPath1s = new[]\n        {\n            \"65001\",\n            \"65001\",\n            \"65001\",\n        },\n        PrependAsPath2s = new[]\n        {\n            \"65002\",\n        },\n        TransitGatewayName1 = \"transit-Gw1\",\n        TransitGatewayName2 = \"transit-Gw2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixTransitGatewayPeering(ctx, \"testTransitGatewayPeering\", &aviatrix.AviatrixTransitGatewayPeeringArgs{\n\t\t\tEnableInsaneModeEncryptionOverInternet: pulumi.Bool(false),\n\t\t\tEnablePeeringOverPrivateNetwork:        pulumi.Bool(false),\n\t\t\tGateway1ExcludedNetworkCidrs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.48/28\"),\n\t\t\t},\n\t\t\tGateway1ExcludedTgwConnections: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"vpn_connection_a\"),\n\t\t\t},\n\t\t\tGateway2ExcludedNetworkCidrs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.48/28\"),\n\t\t\t},\n\t\t\tGateway2ExcludedTgwConnections: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"vpn_connection_b\"),\n\t\t\t},\n\t\t\tPrependAsPath1s: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65001\"),\n\t\t\t\tpulumi.String(\"65001\"),\n\t\t\t\tpulumi.String(\"65001\"),\n\t\t\t},\n\t\t\tPrependAsPath2s: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65002\"),\n\t\t\t},\n\t\t\tTransitGatewayName1: pulumi.String(\"transit-Gw1\"),\n\t\t\tTransitGatewayName2: pulumi.String(\"transit-Gw2\"),\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.aviatrix.AviatrixTransitGatewayPeering;\nimport com.pulumi.aviatrix.AviatrixTransitGatewayPeeringArgs;\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 testTransitGatewayPeering = new AviatrixTransitGatewayPeering(\"testTransitGatewayPeering\", AviatrixTransitGatewayPeeringArgs.builder()        \n            .enableInsaneModeEncryptionOverInternet(false)\n            .enablePeeringOverPrivateNetwork(false)\n            .gateway1ExcludedNetworkCidrs(\"10.0.0.48/28\")\n            .gateway1ExcludedTgwConnections(\"vpn_connection_a\")\n            .gateway2ExcludedNetworkCidrs(\"10.0.0.48/28\")\n            .gateway2ExcludedTgwConnections(\"vpn_connection_b\")\n            .prependAsPath1s(            \n                \"65001\",\n                \"65001\",\n                \"65001\")\n            .prependAsPath2s(\"65002\")\n            .transitGatewayName1(\"transit-Gw1\")\n            .transitGatewayName2(\"transit-Gw2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Transit Gateway Peering\n  testTransitGatewayPeering:\n    type: aviatrix:AviatrixTransitGatewayPeering\n    properties:\n      enableInsaneModeEncryptionOverInternet: false\n      enablePeeringOverPrivateNetwork: false\n      gateway1ExcludedNetworkCidrs:\n        - 10.0.0.48/28\n      gateway1ExcludedTgwConnections:\n        - vpn_connection_a\n      gateway2ExcludedNetworkCidrs:\n        - 10.0.0.48/28\n      gateway2ExcludedTgwConnections:\n        - vpn_connection_b\n      prependAsPath1s:\n        - '65001'\n        - '65001'\n        - '65001'\n      prependAsPath2s:\n        - '65002'\n      transitGatewayName1: transit-Gw1\n      transitGatewayName2: transit-Gw2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**transit_gateway_peering** can be imported using the `transit_gateway_name1` and `transit_gateway_name2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTransitGatewayPeering:AviatrixTransitGatewayPeering test transit_gateway_name1~transit_gateway_name2\n```\n\n ",
      "properties": {
        "enableInsaneModeEncryptionOverInternet": {
          "type": "boolean",
          "description": "Advanced option. Enable Insane Mode Encryption over Internet. Transit gateways must be in Insane Mode. Currently, only inter-cloud connections between AWS and Azure are supported. Required with valid `tunnel_count`. Conflicts with `enable_peering_over_private_network` and `enable_single_tunnel_mode`. Type: Boolean. Default: false. Available as of provider version R2.19+.\n"
        },
        "enableMaxPerformance": {
          "type": "boolean",
          "description": "Indicates whether the maximum amount of HPE tunnels will be created. Only valid when the two transit gateways are each launched in Insane Mode and in the same cloud type. Default value: true. Available as of provider version R2.22.2+.\n"
        },
        "enablePeeringOverPrivateNetwork": {
          "type": "boolean",
          "description": "Advanced option. Enable peering over private network. Only appears and applies to when the two Multi-cloud Transit Gateways are each launched in Insane Mode and in a different cloud type. Conflicts with `enable_insane_mode_encryption_over_internet` and `tunnel_count`. Type: Boolean. Default: false. Available in provider version R2.17.1+.\n"
        },
        "enableSingleTunnelMode": {
          "type": "boolean",
          "description": "Advanced option. Enable peering with Single-Tunnel mode. Only appears and applies to when the two Multi-cloud Transit Gateways are each launched in Insane Mode and in a different cloud type. Required with `enable_peering_over_private_network`. Conflicts with `enable_insane_mode_encryption_over_internet` and `tunnel_count`. Type: Boolean. Default: false. Available as of provider version R2.18+.\n"
        },
        "gateway1ExcludedNetworkCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded network CIDRs for the first transit gateway.\n"
        },
        "gateway1ExcludedTgwConnections": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded TGW connections for the first transit gateway.\n"
        },
        "gateway2ExcludedNetworkCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded network CIDRs for the second transit gateway.\n"
        },
        "gateway2ExcludedTgwConnections": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded TGW connections for the second transit gateway.\n"
        },
        "prependAsPath1s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "AS Path Prepend for BGP connection. Can only use the transit's own local AS number, repeated up to 25 times. Applies on transit_gateway_name1. Available in provider version R2.17.2+.\n"
        },
        "prependAsPath2s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "AS Path Prepend for BGP connection. Can only use the transit's own local AS number, repeated up to 25 times. Applies on transit_gateway_name2. Available in provider version R2.17.2+.\n"
        },
        "transitGatewayName1": {
          "type": "string",
          "description": "The first transit gateway name to make a peer pair.\n"
        },
        "transitGatewayName2": {
          "type": "string",
          "description": "The second transit gateway name to make a peer pair.\n"
        },
        "tunnelCount": {
          "type": "integer",
          "description": "Advanced option. Number of public tunnels. Required with `enable_insane_mode_encryption_over_internet`. Conflicts with `enable_peering_over_private_network` and `enable_single_tunnel_mode`. Type: Integer. Valid Range: 2-20. Available as of provider version R2.19+.\n"
        }
      },
      "type": "object",
      "required": [
        "transitGatewayName1",
        "transitGatewayName2"
      ],
      "inputProperties": {
        "enableInsaneModeEncryptionOverInternet": {
          "type": "boolean",
          "description": "Advanced option. Enable Insane Mode Encryption over Internet. Transit gateways must be in Insane Mode. Currently, only inter-cloud connections between AWS and Azure are supported. Required with valid `tunnel_count`. Conflicts with `enable_peering_over_private_network` and `enable_single_tunnel_mode`. Type: Boolean. Default: false. Available as of provider version R2.19+.\n",
          "willReplaceOnChanges": true
        },
        "enableMaxPerformance": {
          "type": "boolean",
          "description": "Indicates whether the maximum amount of HPE tunnels will be created. Only valid when the two transit gateways are each launched in Insane Mode and in the same cloud type. Default value: true. Available as of provider version R2.22.2+.\n",
          "willReplaceOnChanges": true
        },
        "enablePeeringOverPrivateNetwork": {
          "type": "boolean",
          "description": "Advanced option. Enable peering over private network. Only appears and applies to when the two Multi-cloud Transit Gateways are each launched in Insane Mode and in a different cloud type. Conflicts with `enable_insane_mode_encryption_over_internet` and `tunnel_count`. Type: Boolean. Default: false. Available in provider version R2.17.1+.\n",
          "willReplaceOnChanges": true
        },
        "enableSingleTunnelMode": {
          "type": "boolean",
          "description": "Advanced option. Enable peering with Single-Tunnel mode. Only appears and applies to when the two Multi-cloud Transit Gateways are each launched in Insane Mode and in a different cloud type. Required with `enable_peering_over_private_network`. Conflicts with `enable_insane_mode_encryption_over_internet` and `tunnel_count`. Type: Boolean. Default: false. Available as of provider version R2.18+.\n",
          "willReplaceOnChanges": true
        },
        "gateway1ExcludedNetworkCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded network CIDRs for the first transit gateway.\n"
        },
        "gateway1ExcludedTgwConnections": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded TGW connections for the first transit gateway.\n"
        },
        "gateway2ExcludedNetworkCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded network CIDRs for the second transit gateway.\n"
        },
        "gateway2ExcludedTgwConnections": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of excluded TGW connections for the second transit gateway.\n"
        },
        "prependAsPath1s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "AS Path Prepend for BGP connection. Can only use the transit's own local AS number, repeated up to 25 times. Applies on transit_gateway_name1. Available in provider version R2.17.2+.\n"
        },
        "prependAsPath2s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "AS Path Prepend for BGP connection. Can only use the transit's own local AS number, repeated up to 25 times. Applies on transit_gateway_name2. Available in provider version R2.17.2+.\n"
        },
        "transitGatewayName1": {
          "type": "string",
          "description": "The first transit gateway name to make a peer pair.\n",
          "willReplaceOnChanges": true
        },
        "transitGatewayName2": {
          "type": "string",
          "description": "The second transit gateway name to make a peer pair.\n",
          "willReplaceOnChanges": true
        },
        "tunnelCount": {
          "type": "integer",
          "description": "Advanced option. Number of public tunnels. Required with `enable_insane_mode_encryption_over_internet`. Conflicts with `enable_peering_over_private_network` and `enable_single_tunnel_mode`. Type: Integer. Valid Range: 2-20. Available as of provider version R2.19+.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "transitGatewayName1",
        "transitGatewayName2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTransitGatewayPeering resources.\n",
        "properties": {
          "enableInsaneModeEncryptionOverInternet": {
            "type": "boolean",
            "description": "Advanced option. Enable Insane Mode Encryption over Internet. Transit gateways must be in Insane Mode. Currently, only inter-cloud connections between AWS and Azure are supported. Required with valid `tunnel_count`. Conflicts with `enable_peering_over_private_network` and `enable_single_tunnel_mode`. Type: Boolean. Default: false. Available as of provider version R2.19+.\n",
            "willReplaceOnChanges": true
          },
          "enableMaxPerformance": {
            "type": "boolean",
            "description": "Indicates whether the maximum amount of HPE tunnels will be created. Only valid when the two transit gateways are each launched in Insane Mode and in the same cloud type. Default value: true. Available as of provider version R2.22.2+.\n",
            "willReplaceOnChanges": true
          },
          "enablePeeringOverPrivateNetwork": {
            "type": "boolean",
            "description": "Advanced option. Enable peering over private network. Only appears and applies to when the two Multi-cloud Transit Gateways are each launched in Insane Mode and in a different cloud type. Conflicts with `enable_insane_mode_encryption_over_internet` and `tunnel_count`. Type: Boolean. Default: false. Available in provider version R2.17.1+.\n",
            "willReplaceOnChanges": true
          },
          "enableSingleTunnelMode": {
            "type": "boolean",
            "description": "Advanced option. Enable peering with Single-Tunnel mode. Only appears and applies to when the two Multi-cloud Transit Gateways are each launched in Insane Mode and in a different cloud type. Required with `enable_peering_over_private_network`. Conflicts with `enable_insane_mode_encryption_over_internet` and `tunnel_count`. Type: Boolean. Default: false. Available as of provider version R2.18+.\n",
            "willReplaceOnChanges": true
          },
          "gateway1ExcludedNetworkCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of excluded network CIDRs for the first transit gateway.\n"
          },
          "gateway1ExcludedTgwConnections": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of excluded TGW connections for the first transit gateway.\n"
          },
          "gateway2ExcludedNetworkCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of excluded network CIDRs for the second transit gateway.\n"
          },
          "gateway2ExcludedTgwConnections": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of excluded TGW connections for the second transit gateway.\n"
          },
          "prependAsPath1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "AS Path Prepend for BGP connection. Can only use the transit's own local AS number, repeated up to 25 times. Applies on transit_gateway_name1. Available in provider version R2.17.2+.\n"
          },
          "prependAsPath2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "AS Path Prepend for BGP connection. Can only use the transit's own local AS number, repeated up to 25 times. Applies on transit_gateway_name2. Available in provider version R2.17.2+.\n"
          },
          "transitGatewayName1": {
            "type": "string",
            "description": "The first transit gateway name to make a peer pair.\n",
            "willReplaceOnChanges": true
          },
          "transitGatewayName2": {
            "type": "string",
            "description": "The second transit gateway name to make a peer pair.\n",
            "willReplaceOnChanges": true
          },
          "tunnelCount": {
            "type": "integer",
            "description": "Advanced option. Number of public tunnels. Required with `enable_insane_mode_encryption_over_internet`. Conflicts with `enable_peering_over_private_network` and `enable_single_tunnel_mode`. Type: Integer. Valid Range: 2-20. Available as of provider version R2.19+.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTransitVpc:AviatrixTransitVpc": {
      "description": "The aviatrix.AviatrixTransitVpc resource creates and manages the Aviatrix Transit Network Gateways.\n\n!> **WARNING:** The `aviatrix.AviatrixTransitVpc` resource is deprecated as of **Release 2.0**. It is currently kept for backward-compatibility and will be removed in the future. Please use the transit gateway resource instead. If this is already in the state, please remove it from state file and import as `aviatrix.AviatrixTransitGateway`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Manage Aviatrix Transit Network Gateways in aws\nconst testTransitGwAws = new aviatrix.AviatrixTransitVpc(\"test_transit_gw_aws\", {\n    accountName: \"devops_aws\",\n    cloudType: 1,\n    connectedTransit: \"yes\",\n    enableHybridConnection: true,\n    gwName: \"transit\",\n    haGwSize: \"t2.micro\",\n    haSubnet: \"10.1.0.0/24\",\n    subnet: \"10.1.0.0/24\",\n    tagLists: [\n        \"name:value\",\n        \"name1:value1\",\n        \"name2:value2\",\n    ],\n    vpcId: \"vpc-abcd1234\",\n    vpcReg: \"us-east-1\",\n    vpcSize: \"t2.micro\",\n});\n// Manage Aviatrix Transit Network Gateways in azure\nconst testTransitGwAzure = new aviatrix.AviatrixTransitVpc(\"test_transit_gw_azure\", {\n    accountName: \"devops_azure\",\n    cloudType: 8,\n    connectedTransit: \"yes\",\n    gwName: \"transit\",\n    haGwSize: \"Standard_B1s\",\n    haSubnet: \"10.30.0.0/24\",\n    subnet: \"10.30.0.0/24\",\n    vpcId: \"vnet1:hello\",\n    vpcReg: \"West US\",\n    vpcSize: \"Standard_B1s\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Manage Aviatrix Transit Network Gateways in aws\ntest_transit_gw_aws = aviatrix.AviatrixTransitVpc(\"testTransitGwAws\",\n    account_name=\"devops_aws\",\n    cloud_type=1,\n    connected_transit=\"yes\",\n    enable_hybrid_connection=True,\n    gw_name=\"transit\",\n    ha_gw_size=\"t2.micro\",\n    ha_subnet=\"10.1.0.0/24\",\n    subnet=\"10.1.0.0/24\",\n    tag_lists=[\n        \"name:value\",\n        \"name1:value1\",\n        \"name2:value2\",\n    ],\n    vpc_id=\"vpc-abcd1234\",\n    vpc_reg=\"us-east-1\",\n    vpc_size=\"t2.micro\")\n# Manage Aviatrix Transit Network Gateways in azure\ntest_transit_gw_azure = aviatrix.AviatrixTransitVpc(\"testTransitGwAzure\",\n    account_name=\"devops_azure\",\n    cloud_type=8,\n    connected_transit=\"yes\",\n    gw_name=\"transit\",\n    ha_gw_size=\"Standard_B1s\",\n    ha_subnet=\"10.30.0.0/24\",\n    subnet=\"10.30.0.0/24\",\n    vpc_id=\"vnet1:hello\",\n    vpc_reg=\"West US\",\n    vpc_size=\"Standard_B1s\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Manage Aviatrix Transit Network Gateways in aws\n    var testTransitGwAws = new Aviatrix.AviatrixTransitVpc(\"testTransitGwAws\", new()\n    {\n        AccountName = \"devops_aws\",\n        CloudType = 1,\n        ConnectedTransit = \"yes\",\n        EnableHybridConnection = true,\n        GwName = \"transit\",\n        HaGwSize = \"t2.micro\",\n        HaSubnet = \"10.1.0.0/24\",\n        Subnet = \"10.1.0.0/24\",\n        TagLists = new[]\n        {\n            \"name:value\",\n            \"name1:value1\",\n            \"name2:value2\",\n        },\n        VpcId = \"vpc-abcd1234\",\n        VpcReg = \"us-east-1\",\n        VpcSize = \"t2.micro\",\n    });\n\n    // Manage Aviatrix Transit Network Gateways in azure\n    var testTransitGwAzure = new Aviatrix.AviatrixTransitVpc(\"testTransitGwAzure\", new()\n    {\n        AccountName = \"devops_azure\",\n        CloudType = 8,\n        ConnectedTransit = \"yes\",\n        GwName = \"transit\",\n        HaGwSize = \"Standard_B1s\",\n        HaSubnet = \"10.30.0.0/24\",\n        Subnet = \"10.30.0.0/24\",\n        VpcId = \"vnet1:hello\",\n        VpcReg = \"West US\",\n        VpcSize = \"Standard_B1s\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixTransitVpc(ctx, \"testTransitGwAws\", &aviatrix.AviatrixTransitVpcArgs{\n\t\t\tAccountName:            pulumi.String(\"devops_aws\"),\n\t\t\tCloudType:              pulumi.Int(1),\n\t\t\tConnectedTransit:       pulumi.String(\"yes\"),\n\t\t\tEnableHybridConnection: pulumi.Bool(true),\n\t\t\tGwName:                 pulumi.String(\"transit\"),\n\t\t\tHaGwSize:               pulumi.String(\"t2.micro\"),\n\t\t\tHaSubnet:               pulumi.String(\"10.1.0.0/24\"),\n\t\t\tSubnet:                 pulumi.String(\"10.1.0.0/24\"),\n\t\t\tTagLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"name:value\"),\n\t\t\t\tpulumi.String(\"name1:value1\"),\n\t\t\t\tpulumi.String(\"name2:value2\"),\n\t\t\t},\n\t\t\tVpcId:   pulumi.String(\"vpc-abcd1234\"),\n\t\t\tVpcReg:  pulumi.String(\"us-east-1\"),\n\t\t\tVpcSize: pulumi.String(\"t2.micro\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aviatrix.NewAviatrixTransitVpc(ctx, \"testTransitGwAzure\", &aviatrix.AviatrixTransitVpcArgs{\n\t\t\tAccountName:      pulumi.String(\"devops_azure\"),\n\t\t\tCloudType:        pulumi.Int(8),\n\t\t\tConnectedTransit: pulumi.String(\"yes\"),\n\t\t\tGwName:           pulumi.String(\"transit\"),\n\t\t\tHaGwSize:         pulumi.String(\"Standard_B1s\"),\n\t\t\tHaSubnet:         pulumi.String(\"10.30.0.0/24\"),\n\t\t\tSubnet:           pulumi.String(\"10.30.0.0/24\"),\n\t\t\tVpcId:            pulumi.String(\"vnet1:hello\"),\n\t\t\tVpcReg:           pulumi.String(\"West US\"),\n\t\t\tVpcSize:          pulumi.String(\"Standard_B1s\"),\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.aviatrix.AviatrixTransitVpc;\nimport com.pulumi.aviatrix.AviatrixTransitVpcArgs;\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 testTransitGwAws = new AviatrixTransitVpc(\"testTransitGwAws\", AviatrixTransitVpcArgs.builder()        \n            .accountName(\"devops_aws\")\n            .cloudType(1)\n            .connectedTransit(\"yes\")\n            .enableHybridConnection(true)\n            .gwName(\"transit\")\n            .haGwSize(\"t2.micro\")\n            .haSubnet(\"10.1.0.0/24\")\n            .subnet(\"10.1.0.0/24\")\n            .tagLists(            \n                \"name:value\",\n                \"name1:value1\",\n                \"name2:value2\")\n            .vpcId(\"vpc-abcd1234\")\n            .vpcReg(\"us-east-1\")\n            .vpcSize(\"t2.micro\")\n            .build());\n\n        var testTransitGwAzure = new AviatrixTransitVpc(\"testTransitGwAzure\", AviatrixTransitVpcArgs.builder()        \n            .accountName(\"devops_azure\")\n            .cloudType(8)\n            .connectedTransit(\"yes\")\n            .gwName(\"transit\")\n            .haGwSize(\"Standard_B1s\")\n            .haSubnet(\"10.30.0.0/24\")\n            .subnet(\"10.30.0.0/24\")\n            .vpcId(\"vnet1:hello\")\n            .vpcReg(\"West US\")\n            .vpcSize(\"Standard_B1s\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Manage Aviatrix Transit Network Gateways in aws\n  testTransitGwAws:\n    type: aviatrix:AviatrixTransitVpc\n    properties:\n      accountName: devops_aws\n      cloudType: 1\n      connectedTransit: yes\n      enableHybridConnection: true\n      gwName: transit\n      haGwSize: t2.micro\n      haSubnet: 10.1.0.0/24\n      subnet: 10.1.0.0/24\n      tagLists:\n        - name:value\n        - name1:value1\n        - name2:value2\n      vpcId: vpc-abcd1234\n      vpcReg: us-east-1\n      vpcSize: t2.micro\n  # Manage Aviatrix Transit Network Gateways in azure\n  testTransitGwAzure:\n    type: aviatrix:AviatrixTransitVpc\n    properties:\n      accountName: devops_azure\n      cloudType: 8\n      connectedTransit: yes\n      gwName: transit\n      haGwSize: Standard_B1s\n      haSubnet: 10.30.0.0/24\n      subnet: 10.30.0.0/24\n      vpcId: vnet1:hello\n      vpcReg: West US\n      vpcSize: Standard_B1s\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance transit_vpc can be imported using the gw_name, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTransitVpc:AviatrixTransitVpc test gw_name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Use 1 for AWS.\n"
        },
        "connectedTransit": {
          "type": "string",
          "description": "Specify Connected Transit status. Supported values: true, false.\n"
        },
        "enableFirenetInterfaces": {
          "type": "boolean",
          "description": "Sign of readiness for FireNet connection. Valid values: true and false. Default: false.\n"
        },
        "enableHybridConnection": {
          "type": "boolean",
          "description": "Sign of readiness for TGW connection. Only supported for aws. Example: false.\n"
        },
        "enableNat": {
          "type": "string",
          "description": "Enable NAT for this container.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if HA is enabled (ha_subnet is set). Example: \"t2.micro\".\n"
        },
        "haInsaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit HA Gateway. Required if insane_mode is enabled and ha_subnet is set.\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet CIDR. Example: \"10.12.0.0/24\".Setting to empty/unset will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet.\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Specify Insane Mode high performance gateway. Insane Mode gateway size must be at least c5 size. If enabled, will look for spare /26 segment to create a new subnet. Only available for AWS. Supported values: true, false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit Gateway. Required if insane_mode is enabled.\n"
        },
        "subnet": {
          "type": "string",
          "description": "Public Subnet CIDR. Example: AWS: \"10.0.0.0/24\". Copy/paste from AWS Console to get the right subnet CIDR.\n"
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Instance tag of cloud provider. Only supported for aws. Example: [\"key1:value1\",\"key002:value002\"]\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider. Required if for aws. Example: AWS: \"vpc-abcd1234\", GCP: \"mygooglecloudvpcname\", etc...\n"
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", ARM: \"East US 2\", etc...\n"
        },
        "vpcSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS: \"t2.large\", etc...\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "cloudType",
        "gwName",
        "subnet",
        "vpcId",
        "vpcReg",
        "vpcSize"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Use 1 for AWS.\n"
        },
        "connectedTransit": {
          "type": "string",
          "description": "Specify Connected Transit status. Supported values: true, false.\n"
        },
        "enableFirenetInterfaces": {
          "type": "boolean",
          "description": "Sign of readiness for FireNet connection. Valid values: true and false. Default: false.\n"
        },
        "enableHybridConnection": {
          "type": "boolean",
          "description": "Sign of readiness for TGW connection. Only supported for aws. Example: false.\n"
        },
        "enableNat": {
          "type": "string",
          "description": "Enable NAT for this container.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the gateway which is going to be created.\n"
        },
        "haGwSize": {
          "type": "string",
          "description": "HA Gateway Size. Mandatory if HA is enabled (ha_subnet is set). Example: \"t2.micro\".\n"
        },
        "haInsaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit HA Gateway. Required if insane_mode is enabled and ha_subnet is set.\n"
        },
        "haSubnet": {
          "type": "string",
          "description": "HA Subnet CIDR. Example: \"10.12.0.0/24\".Setting to empty/unset will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet.\n"
        },
        "insaneMode": {
          "type": "boolean",
          "description": "Specify Insane Mode high performance gateway. Insane Mode gateway size must be at least c5 size. If enabled, will look for spare /26 segment to create a new subnet. Only available for AWS. Supported values: true, false.\n"
        },
        "insaneModeAz": {
          "type": "string",
          "description": "AZ of subnet being created for Insane Mode Transit Gateway. Required if insane_mode is enabled.\n"
        },
        "subnet": {
          "type": "string",
          "description": "Public Subnet CIDR. Example: AWS: \"10.0.0.0/24\". Copy/paste from AWS Console to get the right subnet CIDR.\n"
        },
        "tagLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Instance tag of cloud provider. Only supported for aws. Example: [\"key1:value1\",\"key002:value002\"]\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC-ID/VNet-Name of cloud provider. Required if for aws. Example: AWS: \"vpc-abcd1234\", GCP: \"mygooglecloudvpcname\", etc...\n"
        },
        "vpcReg": {
          "type": "string",
          "description": "Region of cloud provider. Example: AWS: \"us-east-1\", ARM: \"East US 2\", etc...\n"
        },
        "vpcSize": {
          "type": "string",
          "description": "Size of the gateway instance. Example: AWS: \"t2.large\", etc...\n"
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType",
        "gwName",
        "subnet",
        "vpcId",
        "vpcReg",
        "vpcSize"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTransitVpc resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider, requires an integer value. Use 1 for AWS.\n"
          },
          "connectedTransit": {
            "type": "string",
            "description": "Specify Connected Transit status. Supported values: true, false.\n"
          },
          "enableFirenetInterfaces": {
            "type": "boolean",
            "description": "Sign of readiness for FireNet connection. Valid values: true and false. Default: false.\n"
          },
          "enableHybridConnection": {
            "type": "boolean",
            "description": "Sign of readiness for TGW connection. Only supported for aws. Example: false.\n"
          },
          "enableNat": {
            "type": "string",
            "description": "Enable NAT for this container.\n"
          },
          "gwName": {
            "type": "string",
            "description": "Name of the gateway which is going to be created.\n"
          },
          "haGwSize": {
            "type": "string",
            "description": "HA Gateway Size. Mandatory if HA is enabled (ha_subnet is set). Example: \"t2.micro\".\n"
          },
          "haInsaneModeAz": {
            "type": "string",
            "description": "AZ of subnet being created for Insane Mode Transit HA Gateway. Required if insane_mode is enabled and ha_subnet is set.\n"
          },
          "haSubnet": {
            "type": "string",
            "description": "HA Subnet CIDR. Example: \"10.12.0.0/24\".Setting to empty/unset will disable HA. Setting to a valid subnet CIDR will create an HA gateway on the subnet.\n"
          },
          "insaneMode": {
            "type": "boolean",
            "description": "Specify Insane Mode high performance gateway. Insane Mode gateway size must be at least c5 size. If enabled, will look for spare /26 segment to create a new subnet. Only available for AWS. Supported values: true, false.\n"
          },
          "insaneModeAz": {
            "type": "string",
            "description": "AZ of subnet being created for Insane Mode Transit Gateway. Required if insane_mode is enabled.\n"
          },
          "subnet": {
            "type": "string",
            "description": "Public Subnet CIDR. Example: AWS: \"10.0.0.0/24\". Copy/paste from AWS Console to get the right subnet CIDR.\n"
          },
          "tagLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Instance tag of cloud provider. Only supported for aws. Example: [\"key1:value1\",\"key002:value002\"]\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC-ID/VNet-Name of cloud provider. Required if for aws. Example: AWS: \"vpc-abcd1234\", GCP: \"mygooglecloudvpcname\", etc...\n"
          },
          "vpcReg": {
            "type": "string",
            "description": "Region of cloud provider. Example: AWS: \"us-east-1\", ARM: \"East US 2\", etc...\n"
          },
          "vpcSize": {
            "type": "string",
            "description": "Size of the gateway instance. Example: AWS: \"t2.large\", etc...\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixTunnel:AviatrixTunnel": {
      "description": "The **aviatrix_tunnel** resource allows the creation and management of Aviatrix Encrypted Peering tunnels.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS Tunnel\nconst testTunnel = new aviatrix.AviatrixTunnel(\"test_tunnel\", {\n    gwName1: \"avtx-gw1\",\n    gwName2: \"avtx-gw2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS Tunnel\ntest_tunnel = aviatrix.AviatrixTunnel(\"testTunnel\",\n    gw_name1=\"avtx-gw1\",\n    gw_name2=\"avtx-gw2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS Tunnel\n    var testTunnel = new Aviatrix.AviatrixTunnel(\"testTunnel\", new()\n    {\n        GwName1 = \"avtx-gw1\",\n        GwName2 = \"avtx-gw2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixTunnel(ctx, \"testTunnel\", &aviatrix.AviatrixTunnelArgs{\n\t\t\tGwName1: pulumi.String(\"avtx-gw1\"),\n\t\t\tGwName2: pulumi.String(\"avtx-gw2\"),\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.aviatrix.AviatrixTunnel;\nimport com.pulumi.aviatrix.AviatrixTunnelArgs;\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 testTunnel = new AviatrixTunnel(\"testTunnel\", AviatrixTunnelArgs.builder()        \n            .gwName1(\"avtx-gw1\")\n            .gwName2(\"avtx-gw2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS Tunnel\n  testTunnel:\n    type: aviatrix:AviatrixTunnel\n    properties:\n      gwName1: avtx-gw1\n      gwName2: avtx-gw2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**tunnel** can be imported using the `gw_name1` and `gw_name2`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixTunnel:AviatrixTunnel test gw_name1~gw_name2\n```\n\n ",
      "properties": {
        "enableHa": {
          "type": "boolean",
          "description": "Enable this attribute if peering-HA is enabled on the gateways. Valid values: true, false. Default value: false.\n"
        },
        "gwName1": {
          "type": "string",
          "description": "The first VPC Container name to make a peer pair.\n"
        },
        "gwName2": {
          "type": "string",
          "description": "The second VPC Container name to make a peer pair.\n"
        },
        "peeringHastatus": {
          "type": "string",
          "description": "(Computed) Status of the HA tunnel.\n"
        },
        "peeringLink": {
          "type": "string",
          "description": "(Computed) Name of the peering link.\n"
        },
        "peeringState": {
          "type": "string",
          "description": "(Computed) Status of the tunnel.\n"
        }
      },
      "type": "object",
      "required": [
        "gwName1",
        "gwName2",
        "peeringHastatus",
        "peeringLink",
        "peeringState"
      ],
      "inputProperties": {
        "enableHa": {
          "type": "boolean",
          "description": "Enable this attribute if peering-HA is enabled on the gateways. Valid values: true, false. Default value: false.\n"
        },
        "gwName1": {
          "type": "string",
          "description": "The first VPC Container name to make a peer pair.\n"
        },
        "gwName2": {
          "type": "string",
          "description": "The second VPC Container name to make a peer pair.\n"
        }
      },
      "requiredInputs": [
        "gwName1",
        "gwName2"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixTunnel resources.\n",
        "properties": {
          "enableHa": {
            "type": "boolean",
            "description": "Enable this attribute if peering-HA is enabled on the gateways. Valid values: true, false. Default value: false.\n"
          },
          "gwName1": {
            "type": "string",
            "description": "The first VPC Container name to make a peer pair.\n"
          },
          "gwName2": {
            "type": "string",
            "description": "The second VPC Container name to make a peer pair.\n"
          },
          "peeringHastatus": {
            "type": "string",
            "description": "(Computed) Status of the HA tunnel.\n"
          },
          "peeringLink": {
            "type": "string",
            "description": "(Computed) Name of the peering link.\n"
          },
          "peeringState": {
            "type": "string",
            "description": "(Computed) Status of the tunnel.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixVgwConn:AviatrixVgwConn": {
      "description": "The **aviatrix_vgw_conn** resource manages the connection between the Aviatrix transit gateway and AWS VGW for purposes of Transit Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix VGW Connection\nconst testVgwConn = new aviatrix.AviatrixVgwConn(\"test_vgw_conn\", {\n    bgpLocalAsNum: \"65001\",\n    bgpVgwAccount: \"dev-account-1\",\n    bgpVgwId: \"vgw-abcd1234\",\n    bgpVgwRegion: \"us-east-1\",\n    connName: \"my-connection-vgw-to-tgw\",\n    gwName: \"my-transit-gw\",\n    prependAsPaths: [\n        \"65001\",\n        \"65001\",\n    ],\n    vpcId: \"vpc-abcd1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix VGW Connection\ntest_vgw_conn = aviatrix.AviatrixVgwConn(\"testVgwConn\",\n    bgp_local_as_num=\"65001\",\n    bgp_vgw_account=\"dev-account-1\",\n    bgp_vgw_id=\"vgw-abcd1234\",\n    bgp_vgw_region=\"us-east-1\",\n    conn_name=\"my-connection-vgw-to-tgw\",\n    gw_name=\"my-transit-gw\",\n    prepend_as_paths=[\n        \"65001\",\n        \"65001\",\n    ],\n    vpc_id=\"vpc-abcd1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix VGW Connection\n    var testVgwConn = new Aviatrix.AviatrixVgwConn(\"testVgwConn\", new()\n    {\n        BgpLocalAsNum = \"65001\",\n        BgpVgwAccount = \"dev-account-1\",\n        BgpVgwId = \"vgw-abcd1234\",\n        BgpVgwRegion = \"us-east-1\",\n        ConnName = \"my-connection-vgw-to-tgw\",\n        GwName = \"my-transit-gw\",\n        PrependAsPaths = new[]\n        {\n            \"65001\",\n            \"65001\",\n        },\n        VpcId = \"vpc-abcd1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVgwConn(ctx, \"testVgwConn\", &aviatrix.AviatrixVgwConnArgs{\n\t\t\tBgpLocalAsNum: pulumi.String(\"65001\"),\n\t\t\tBgpVgwAccount: pulumi.String(\"dev-account-1\"),\n\t\t\tBgpVgwId:      pulumi.String(\"vgw-abcd1234\"),\n\t\t\tBgpVgwRegion:  pulumi.String(\"us-east-1\"),\n\t\t\tConnName:      pulumi.String(\"my-connection-vgw-to-tgw\"),\n\t\t\tGwName:        pulumi.String(\"my-transit-gw\"),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65001\"),\n\t\t\t\tpulumi.String(\"65001\"),\n\t\t\t},\n\t\t\tVpcId: pulumi.String(\"vpc-abcd1234\"),\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.aviatrix.AviatrixVgwConn;\nimport com.pulumi.aviatrix.AviatrixVgwConnArgs;\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 testVgwConn = new AviatrixVgwConn(\"testVgwConn\", AviatrixVgwConnArgs.builder()        \n            .bgpLocalAsNum(\"65001\")\n            .bgpVgwAccount(\"dev-account-1\")\n            .bgpVgwId(\"vgw-abcd1234\")\n            .bgpVgwRegion(\"us-east-1\")\n            .connName(\"my-connection-vgw-to-tgw\")\n            .gwName(\"my-transit-gw\")\n            .prependAsPaths(            \n                \"65001\",\n                \"65001\")\n            .vpcId(\"vpc-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix VGW Connection\n  testVgwConn:\n    type: aviatrix:AviatrixVgwConn\n    properties:\n      bgpLocalAsNum: '65001'\n      bgpVgwAccount: dev-account-1\n      bgpVgwId: vgw-abcd1234\n      bgpVgwRegion: us-east-1\n      connName: my-connection-vgw-to-tgw\n      gwName: my-transit-gw\n      prependAsPaths:\n        - '65001'\n        - '65001'\n      vpcId: vpc-abcd1234\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**vgw_conn** can be imported using the `conn_name` and `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixVgwConn:AviatrixVgwConn test conn_name~vpc_id\n```\n\n ",
      "properties": {
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP Local ASN (Autonomous System Number). Integer between 1-4294967294. Example: \"65001\".\n"
        },
        "bgpVgwAccount": {
          "type": "string",
          "description": "Cloud Account used to create the AWS VGW that will be used for this connection. Example: \"dev-account-1\".\n"
        },
        "bgpVgwId": {
          "type": "string",
          "description": "ID of AWS VGW that will be used for this connection. Example: \"vgw-abcd1234\".\n"
        },
        "bgpVgwRegion": {
          "type": "string",
          "description": "Region of AWS VGW that will be used for this connection. Example: \"us-east-1\".\n"
        },
        "connName": {
          "type": "string",
          "description": "The name of for Transit GW to VGW connection connection which is going to be created. Example: \"my-connection-vgw-to-tgw\".\n"
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable learned CIDRs approval for the connection. Requires the transit_gateway's 'learned_cidrs_approval_mode' attribute be set to 'connection'. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Transit Gateway. Example: \"my-transit-gw\".\n"
        },
        "manualBgpAdvertisedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Configure manual BGP advertised CIDRs for this connection. Available as of provider version R2.18+.\n"
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Available as of provider version R2.19.2.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID where the Transit Gateway is located. Example: AWS: \"vpc-abcd1234\".\n"
        }
      },
      "type": "object",
      "required": [
        "bgpLocalAsNum",
        "bgpVgwAccount",
        "bgpVgwId",
        "bgpVgwRegion",
        "connName",
        "gwName",
        "vpcId"
      ],
      "inputProperties": {
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP Local ASN (Autonomous System Number). Integer between 1-4294967294. Example: \"65001\".\n",
          "willReplaceOnChanges": true
        },
        "bgpVgwAccount": {
          "type": "string",
          "description": "Cloud Account used to create the AWS VGW that will be used for this connection. Example: \"dev-account-1\".\n",
          "willReplaceOnChanges": true
        },
        "bgpVgwId": {
          "type": "string",
          "description": "ID of AWS VGW that will be used for this connection. Example: \"vgw-abcd1234\".\n",
          "willReplaceOnChanges": true
        },
        "bgpVgwRegion": {
          "type": "string",
          "description": "Region of AWS VGW that will be used for this connection. Example: \"us-east-1\".\n",
          "willReplaceOnChanges": true
        },
        "connName": {
          "type": "string",
          "description": "The name of for Transit GW to VGW connection connection which is going to be created. Example: \"my-connection-vgw-to-tgw\".\n",
          "willReplaceOnChanges": true
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable learned CIDRs approval for the connection. Requires the transit_gateway's 'learned_cidrs_approval_mode' attribute be set to 'connection'. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Name of the Transit Gateway. Example: \"my-transit-gw\".\n",
          "willReplaceOnChanges": true
        },
        "manualBgpAdvertisedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Configure manual BGP advertised CIDRs for this connection. Available as of provider version R2.18+.\n"
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Available as of provider version R2.19.2.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID where the Transit Gateway is located. Example: AWS: \"vpc-abcd1234\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "bgpLocalAsNum",
        "bgpVgwAccount",
        "bgpVgwId",
        "bgpVgwRegion",
        "connName",
        "gwName",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixVgwConn resources.\n",
        "properties": {
          "bgpLocalAsNum": {
            "type": "string",
            "description": "BGP Local ASN (Autonomous System Number). Integer between 1-4294967294. Example: \"65001\".\n",
            "willReplaceOnChanges": true
          },
          "bgpVgwAccount": {
            "type": "string",
            "description": "Cloud Account used to create the AWS VGW that will be used for this connection. Example: \"dev-account-1\".\n",
            "willReplaceOnChanges": true
          },
          "bgpVgwId": {
            "type": "string",
            "description": "ID of AWS VGW that will be used for this connection. Example: \"vgw-abcd1234\".\n",
            "willReplaceOnChanges": true
          },
          "bgpVgwRegion": {
            "type": "string",
            "description": "Region of AWS VGW that will be used for this connection. Example: \"us-east-1\".\n",
            "willReplaceOnChanges": true
          },
          "connName": {
            "type": "string",
            "description": "The name of for Transit GW to VGW connection connection which is going to be created. Example: \"my-connection-vgw-to-tgw\".\n",
            "willReplaceOnChanges": true
          },
          "enableEventTriggeredHa": {
            "type": "boolean",
            "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false. Available as of provider version R2.19+.\n"
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Enable learned CIDRs approval for the connection. Requires the transit_gateway's 'learned_cidrs_approval_mode' attribute be set to 'connection'. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n"
          },
          "gwName": {
            "type": "string",
            "description": "Name of the Transit Gateway. Example: \"my-transit-gw\".\n",
            "willReplaceOnChanges": true
          },
          "manualBgpAdvertisedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Configure manual BGP advertised CIDRs for this connection. Available as of provider version R2.18+.\n"
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection. Available as of provider version R2.19.2.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID where the Transit Gateway is located. Example: AWS: \"vpc-abcd1234\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixVpc:AviatrixVpc": {
      "description": "The **aviatrix_vpc** resource allows the creation and management of Aviatrix-created VPCs of various cloud types.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an AWS VPC\nconst awsVpc = new aviatrix.AviatrixVpc(\"aws_vpc\", {\n    accountName: \"devops\",\n    aviatrixFirenetVpc: false,\n    aviatrixTransitVpc: false,\n    cidr: \"10.0.0.0/16\",\n    cloudType: 1,\n    region: \"us-west-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an AWS VPC\naws_vpc = aviatrix.AviatrixVpc(\"awsVpc\",\n    account_name=\"devops\",\n    aviatrix_firenet_vpc=False,\n    aviatrix_transit_vpc=False,\n    cidr=\"10.0.0.0/16\",\n    cloud_type=1,\n    region=\"us-west-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an AWS VPC\n    var awsVpc = new Aviatrix.AviatrixVpc(\"awsVpc\", new()\n    {\n        AccountName = \"devops\",\n        AviatrixFirenetVpc = false,\n        AviatrixTransitVpc = false,\n        Cidr = \"10.0.0.0/16\",\n        CloudType = 1,\n        Region = \"us-west-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"awsVpc\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName:        pulumi.String(\"devops\"),\n\t\t\tAviatrixFirenetVpc: pulumi.Bool(false),\n\t\t\tAviatrixTransitVpc: pulumi.Bool(false),\n\t\t\tCidr:               pulumi.String(\"10.0.0.0/16\"),\n\t\t\tCloudType:          pulumi.Int(1),\n\t\t\tRegion:             pulumi.String(\"us-west-1\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 awsVpc = new AviatrixVpc(\"awsVpc\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .aviatrixFirenetVpc(false)\n            .aviatrixTransitVpc(false)\n            .cidr(\"10.0.0.0/16\")\n            .cloudType(1)\n            .region(\"us-west-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an AWS VPC\n  awsVpc:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      aviatrixFirenetVpc: false\n      aviatrixTransitVpc: false\n      cidr: 10.0.0.0/16\n      cloudType: 1\n      region: us-west-1\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create a GCP VPC\nconst gcpVpc = new aviatrix.AviatrixVpc(\"gcp_vpc\", {\n    accountName: \"devops\",\n    cloudType: 4,\n    subnets: [\n        {\n            cidr: \"10.10.0.0/24\",\n            name: \"subnet-1\",\n            region: \"us-west1\",\n        },\n        {\n            cidr: \"10.11.0.0/24\",\n            name: \"subnet-2\",\n            region: \"us-west2\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create a GCP VPC\ngcp_vpc = aviatrix.AviatrixVpc(\"gcpVpc\",\n    account_name=\"devops\",\n    cloud_type=4,\n    subnets=[\n        aviatrix.AviatrixVpcSubnetArgs(\n            cidr=\"10.10.0.0/24\",\n            name=\"subnet-1\",\n            region=\"us-west1\",\n        ),\n        aviatrix.AviatrixVpcSubnetArgs(\n            cidr=\"10.11.0.0/24\",\n            name=\"subnet-2\",\n            region=\"us-west2\",\n        ),\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a GCP VPC\n    var gcpVpc = new Aviatrix.AviatrixVpc(\"gcpVpc\", new()\n    {\n        AccountName = \"devops\",\n        CloudType = 4,\n        Subnets = new[]\n        {\n            new Aviatrix.Inputs.AviatrixVpcSubnetArgs\n            {\n                Cidr = \"10.10.0.0/24\",\n                Name = \"subnet-1\",\n                Region = \"us-west1\",\n            },\n            new Aviatrix.Inputs.AviatrixVpcSubnetArgs\n            {\n                Cidr = \"10.11.0.0/24\",\n                Name = \"subnet-2\",\n                Region = \"us-west2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"gcpVpc\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName: pulumi.String(\"devops\"),\n\t\t\tCloudType:   pulumi.Int(4),\n\t\t\tSubnets: AviatrixVpcSubnetArray{\n\t\t\t\t&AviatrixVpcSubnetArgs{\n\t\t\t\t\tCidr:   pulumi.String(\"10.10.0.0/24\"),\n\t\t\t\t\tName:   pulumi.String(\"subnet-1\"),\n\t\t\t\t\tRegion: pulumi.String(\"us-west1\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixVpcSubnetArgs{\n\t\t\t\t\tCidr:   pulumi.String(\"10.11.0.0/24\"),\n\t\t\t\t\tName:   pulumi.String(\"subnet-2\"),\n\t\t\t\t\tRegion: pulumi.String(\"us-west2\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixVpcSubnetArgs;\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 gcpVpc = new AviatrixVpc(\"gcpVpc\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .cloudType(4)\n            .subnets(            \n                AviatrixVpcSubnetArgs.builder()\n                    .cidr(\"10.10.0.0/24\")\n                    .name(\"subnet-1\")\n                    .region(\"us-west1\")\n                    .build(),\n                AviatrixVpcSubnetArgs.builder()\n                    .cidr(\"10.11.0.0/24\")\n                    .name(\"subnet-2\")\n                    .region(\"us-west2\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a GCP VPC\n  gcpVpc:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      cloudType: 4\n      subnets:\n        - cidr: 10.10.0.0/24\n          name: subnet-1\n          region: us-west1\n        - cidr: 10.11.0.0/24\n          name: subnet-2\n          region: us-west2\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Azure VNet\nconst azureVnet = new aviatrix.AviatrixVpc(\"azure_vnet\", {\n    accountName: \"devops\",\n    aviatrixFirenetVpc: false,\n    cidr: \"12.0.0.0/16\",\n    cloudType: 8,\n    region: \"Central US\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Azure VNet\nazure_vnet = aviatrix.AviatrixVpc(\"azureVnet\",\n    account_name=\"devops\",\n    aviatrix_firenet_vpc=False,\n    cidr=\"12.0.0.0/16\",\n    cloud_type=8,\n    region=\"Central US\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Azure VNet\n    var azureVnet = new Aviatrix.AviatrixVpc(\"azureVnet\", new()\n    {\n        AccountName = \"devops\",\n        AviatrixFirenetVpc = false,\n        Cidr = \"12.0.0.0/16\",\n        CloudType = 8,\n        Region = \"Central US\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"azureVnet\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName:        pulumi.String(\"devops\"),\n\t\t\tAviatrixFirenetVpc: pulumi.Bool(false),\n\t\t\tCidr:               pulumi.String(\"12.0.0.0/16\"),\n\t\t\tCloudType:          pulumi.Int(8),\n\t\t\tRegion:             pulumi.String(\"Central US\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 azureVnet = new AviatrixVpc(\"azureVnet\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .aviatrixFirenetVpc(false)\n            .cidr(\"12.0.0.0/16\")\n            .cloudType(8)\n            .region(\"Central US\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Azure VNet\n  azureVnet:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      aviatrixFirenetVpc: false\n      cidr: 12.0.0.0/16\n      cloudType: 8\n      region: Central US\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an OCI VPC\nconst ociVpc = new aviatrix.AviatrixVpc(\"oci_vpc\", {\n    accountName: \"devops\",\n    cidr: \"10.0.0.0/24\",\n    cloudType: 16,\n    region: \"us-ashburn-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an OCI VPC\noci_vpc = aviatrix.AviatrixVpc(\"ociVpc\",\n    account_name=\"devops\",\n    cidr=\"10.0.0.0/24\",\n    cloud_type=16,\n    region=\"us-ashburn-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an OCI VPC\n    var ociVpc = new Aviatrix.AviatrixVpc(\"ociVpc\", new()\n    {\n        AccountName = \"devops\",\n        Cidr = \"10.0.0.0/24\",\n        CloudType = 16,\n        Region = \"us-ashburn-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"ociVpc\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName: pulumi.String(\"devops\"),\n\t\t\tCidr:        pulumi.String(\"10.0.0.0/24\"),\n\t\t\tCloudType:   pulumi.Int(16),\n\t\t\tRegion:      pulumi.String(\"us-ashburn-1\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 ociVpc = new AviatrixVpc(\"ociVpc\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .cidr(\"10.0.0.0/24\")\n            .cloudType(16)\n            .region(\"us-ashburn-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an OCI VPC\n  ociVpc:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      cidr: 10.0.0.0/24\n      cloudType: 16\n      region: us-ashburn-1\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an AzureGov VNet\nconst azureVnet = new aviatrix.AviatrixVpc(\"azure_vnet\", {\n    accountName: \"devops\",\n    aviatrixFirenetVpc: false,\n    cidr: \"12.0.0.0/16\",\n    cloudType: 32,\n    region: \"USGov Arizona\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an AzureGov VNet\nazure_vnet = aviatrix.AviatrixVpc(\"azureVnet\",\n    account_name=\"devops\",\n    aviatrix_firenet_vpc=False,\n    cidr=\"12.0.0.0/16\",\n    cloud_type=32,\n    region=\"USGov Arizona\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an AzureGov VNet\n    var azureVnet = new Aviatrix.AviatrixVpc(\"azureVnet\", new()\n    {\n        AccountName = \"devops\",\n        AviatrixFirenetVpc = false,\n        Cidr = \"12.0.0.0/16\",\n        CloudType = 32,\n        Region = \"USGov Arizona\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"azureVnet\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName:        pulumi.String(\"devops\"),\n\t\t\tAviatrixFirenetVpc: pulumi.Bool(false),\n\t\t\tCidr:               pulumi.String(\"12.0.0.0/16\"),\n\t\t\tCloudType:          pulumi.Int(32),\n\t\t\tRegion:             pulumi.String(\"USGov Arizona\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 azureVnet = new AviatrixVpc(\"azureVnet\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .aviatrixFirenetVpc(false)\n            .cidr(\"12.0.0.0/16\")\n            .cloudType(32)\n            .region(\"USGov Arizona\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an AzureGov VNet\n  azureVnet:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      aviatrixFirenetVpc: false\n      cidr: 12.0.0.0/16\n      cloudType: 32\n      region: USGov Arizona\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an AWSGov VPC\nconst awsgovVnet = new aviatrix.AviatrixVpc(\"awsgov_vnet\", {\n    accountName: \"devops\",\n    aviatrixFirenetVpc: false,\n    aviatrixTransitVpc: false,\n    cidr: \"12.0.0.0/20\",\n    cloudType: 256,\n    region: \"us-gov-west-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an AWSGov VPC\nawsgov_vnet = aviatrix.AviatrixVpc(\"awsgovVnet\",\n    account_name=\"devops\",\n    aviatrix_firenet_vpc=False,\n    aviatrix_transit_vpc=False,\n    cidr=\"12.0.0.0/20\",\n    cloud_type=256,\n    region=\"us-gov-west-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an AWSGov VPC\n    var awsgovVnet = new Aviatrix.AviatrixVpc(\"awsgovVnet\", new()\n    {\n        AccountName = \"devops\",\n        AviatrixFirenetVpc = false,\n        AviatrixTransitVpc = false,\n        Cidr = \"12.0.0.0/20\",\n        CloudType = 256,\n        Region = \"us-gov-west-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"awsgovVnet\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName:        pulumi.String(\"devops\"),\n\t\t\tAviatrixFirenetVpc: pulumi.Bool(false),\n\t\t\tAviatrixTransitVpc: pulumi.Bool(false),\n\t\t\tCidr:               pulumi.String(\"12.0.0.0/20\"),\n\t\t\tCloudType:          pulumi.Int(256),\n\t\t\tRegion:             pulumi.String(\"us-gov-west-1\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 awsgovVnet = new AviatrixVpc(\"awsgovVnet\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .aviatrixFirenetVpc(false)\n            .aviatrixTransitVpc(false)\n            .cidr(\"12.0.0.0/20\")\n            .cloudType(256)\n            .region(\"us-gov-west-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an AWSGov VPC\n  awsgovVnet:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      aviatrixFirenetVpc: false\n      aviatrixTransitVpc: false\n      cidr: 12.0.0.0/20\n      cloudType: 256\n      region: us-gov-west-1\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an AWS China VPC\nconst awsChinaVnet = new aviatrix.AviatrixVpc(\"aws_china_vnet\", {\n    accountName: \"devops\",\n    aviatrixTransitVpc: false,\n    cidr: \"12.0.0.0/20\",\n    cloudType: 1024,\n    region: \"cn-north-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an AWS China VPC\naws_china_vnet = aviatrix.AviatrixVpc(\"awsChinaVnet\",\n    account_name=\"devops\",\n    aviatrix_transit_vpc=False,\n    cidr=\"12.0.0.0/20\",\n    cloud_type=1024,\n    region=\"cn-north-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an AWS China VPC\n    var awsChinaVnet = new Aviatrix.AviatrixVpc(\"awsChinaVnet\", new()\n    {\n        AccountName = \"devops\",\n        AviatrixTransitVpc = false,\n        Cidr = \"12.0.0.0/20\",\n        CloudType = 1024,\n        Region = \"cn-north-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"awsChinaVnet\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName:        pulumi.String(\"devops\"),\n\t\t\tAviatrixTransitVpc: pulumi.Bool(false),\n\t\t\tCidr:               pulumi.String(\"12.0.0.0/20\"),\n\t\t\tCloudType:          pulumi.Int(1024),\n\t\t\tRegion:             pulumi.String(\"cn-north-1\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 awsChinaVnet = new AviatrixVpc(\"awsChinaVnet\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .aviatrixTransitVpc(false)\n            .cidr(\"12.0.0.0/20\")\n            .cloudType(1024)\n            .region(\"cn-north-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an AWS China VPC\n  awsChinaVnet:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      aviatrixTransitVpc: false\n      cidr: 12.0.0.0/20\n      cloudType: 1024\n      region: cn-north-1\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Azure China VNet\nconst azureChinaVnet = new aviatrix.AviatrixVpc(\"azure_china_vnet\", {\n    accountName: \"devops\",\n    cidr: \"12.0.0.0/16\",\n    cloudType: 2048,\n    region: \"China North\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Azure China VNet\nazure_china_vnet = aviatrix.AviatrixVpc(\"azureChinaVnet\",\n    account_name=\"devops\",\n    cidr=\"12.0.0.0/16\",\n    cloud_type=2048,\n    region=\"China North\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Azure China VNet\n    var azureChinaVnet = new Aviatrix.AviatrixVpc(\"azureChinaVnet\", new()\n    {\n        AccountName = \"devops\",\n        Cidr = \"12.0.0.0/16\",\n        CloudType = 2048,\n        Region = \"China North\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"azureChinaVnet\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName: pulumi.String(\"devops\"),\n\t\t\tCidr:        pulumi.String(\"12.0.0.0/16\"),\n\t\t\tCloudType:   pulumi.Int(2048),\n\t\t\tRegion:      pulumi.String(\"China North\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 azureChinaVnet = new AviatrixVpc(\"azureChinaVnet\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .cidr(\"12.0.0.0/16\")\n            .cloudType(2048)\n            .region(\"China North\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Azure China VNet\n  azureChinaVnet:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      cidr: 12.0.0.0/16\n      cloudType: 2048\n      region: China North\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Alibaba Cloud VPC\nconst aliyunVpc = new aviatrix.AviatrixVpc(\"aliyun_vpc\", {\n    accountName: \"devops\",\n    cidr: \"10.0.0.0/20\",\n    cloudType: 8192,\n    region: \"acs-us-west-1 (Silicon Valley)\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Alibaba Cloud VPC\naliyun_vpc = aviatrix.AviatrixVpc(\"aliyunVpc\",\n    account_name=\"devops\",\n    cidr=\"10.0.0.0/20\",\n    cloud_type=8192,\n    region=\"acs-us-west-1 (Silicon Valley)\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Alibaba Cloud VPC\n    var aliyunVpc = new Aviatrix.AviatrixVpc(\"aliyunVpc\", new()\n    {\n        AccountName = \"devops\",\n        Cidr = \"10.0.0.0/20\",\n        CloudType = 8192,\n        Region = \"acs-us-west-1 (Silicon Valley)\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpc(ctx, \"aliyunVpc\", &aviatrix.AviatrixVpcArgs{\n\t\t\tAccountName: pulumi.String(\"devops\"),\n\t\t\tCidr:        pulumi.String(\"10.0.0.0/20\"),\n\t\t\tCloudType:   pulumi.Int(8192),\n\t\t\tRegion:      pulumi.String(\"acs-us-west-1 (Silicon Valley)\"),\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.aviatrix.AviatrixVpc;\nimport com.pulumi.aviatrix.AviatrixVpcArgs;\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 aliyunVpc = new AviatrixVpc(\"aliyunVpc\", AviatrixVpcArgs.builder()        \n            .accountName(\"devops\")\n            .cidr(\"10.0.0.0/20\")\n            .cloudType(8192)\n            .region(\"acs-us-west-1 (Silicon Valley)\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Alibaba Cloud VPC\n  aliyunVpc:\n    type: aviatrix:AviatrixVpc\n    properties:\n      accountName: devops\n      cidr: 10.0.0.0/20\n      cloudType: 8192\n      region: acs-us-west-1 (Silicon Valley)\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**vpc** can be imported using the VPC's `name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixVpc:AviatrixVpc test name\n```\n\n ",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n"
        },
        "availabilityDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of OCI availability domains.\n"
        },
        "aviatrixFirenetVpc": {
          "type": "boolean",
          "description": "Specify whether it is an Aviatrix FireNet VPC to be used for [Aviatrix FireNet](https://docs.aviatrix.com/HowTos/firewall_network_faq.html) and [Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_faq.html) solutions. **Only AWS, Azure, AzureGov, AWSGov, AWSChina and AzureChina are supported. Required to be false for other providers.** Valid values: true, false. Default: false.\n"
        },
        "aviatrixTransitVpc": {
          "type": "boolean",
          "description": "Specify whether it is an [Aviatrix Transit VPC](https://docs.aviatrix.com/HowTos/create_vpc.html#aviatrix-transit-vpc) to be used for [Transit Network](https://docs.aviatrix.com/HowTos/transitvpc_faq.html) or [TGW](https://docs.aviatrix.com/HowTos/tgw_faq.html) solutions. **Only AWS, AWSGov, AWSChina, and Alibaba Cloud are supported. Required to be false for other providers.** Valid values: true, false. Default: false.\n"
        },
        "azureVnetResourceId": {
          "type": "string",
          "description": "Azure VNet resource ID.\n"
        },
        "cidr": {
          "type": "string",
          "description": "CIDR block.\n"
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192) are supported.\n"
        },
        "enableNativeGwlb": {
          "type": "boolean",
          "description": "Enable Native AWS Gateway Load Balancer for FireNet Function. Only valid with cloud_type = 1 (AWS). **This option is only applicable to TGW-integrated FireNet**. Currently, AWS Gateway Load Balancer is only supported in AWS regions: us-west-2, us-east-1, eu-west-1, ap-southeast-2 and sa-east-1. Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "enablePrivateOobSubnet": {
          "type": "boolean",
          "description": "Switch to enable private oob subnet. Only supported for AWS, AWSGov and AWSChina providers. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "faultDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of OCI fault domains.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of this subnet.\n"
        },
        "numOfSubnetPairs": {
          "type": "integer",
          "description": "Number of public subnet and private subnet pair created. Only supported for AWS, Azure provider. Example: 1. Available in provider version R2.17+.\n"
        },
        "privateModeSubnets": {
          "type": "boolean",
          "description": "Switch to only launch private subnets. Only available when Private Mode is enabled on the Controller. Only AWS, Azure, AzureGov and AWSGov are supported. Available in Provider version R2.23+.\n"
        },
        "privateSubnets": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixVpcPrivateSubnet:AviatrixVpcPrivateSubnet"
          },
          "description": "List of private subnet of the VPC(AWS, Azure) to be created.\n"
        },
        "publicSubnets": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixVpcPublicSubnet:AviatrixVpcPublicSubnet"
          },
          "description": "List of public subnet of the VPC(AWS, Azure) to be created.\n"
        },
        "region": {
          "type": "string",
          "description": "Region of this subnet.\n"
        },
        "resourceGroup": {
          "type": "string",
          "description": "The name of an existing resource group or a new resource group to be created for the Azure VNet.  A new resource group will be created if left blank. Only available for Azure, AzureGov and AzureChina providers. Available as of provider version R2.19+.\n"
        },
        "routeTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of route table ids associated with this VPC. Only populated for AWS, AWSGov and Azure VPC.\n"
        },
        "subnetSize": {
          "type": "integer",
          "description": "Subnet size. Only supported for AWS, Azure provider. Example: 24. Available in provider version R2.17+.\n"
        },
        "subnets": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixVpcSubnet:AviatrixVpcSubnet"
          },
          "description": "List of subnets to be specify for GCP provider. Required to be non-empty for GCP provider, and empty for other providers.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "ID of the VPC to be created.\n"
        }
      },
      "type": "object",
      "required": [
        "accountName",
        "availabilityDomains",
        "azureVnetResourceId",
        "cloudType",
        "faultDomains",
        "name",
        "privateSubnets",
        "publicSubnets",
        "resourceGroup",
        "routeTables",
        "subnets",
        "vpcId"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n",
          "willReplaceOnChanges": true
        },
        "aviatrixFirenetVpc": {
          "type": "boolean",
          "description": "Specify whether it is an Aviatrix FireNet VPC to be used for [Aviatrix FireNet](https://docs.aviatrix.com/HowTos/firewall_network_faq.html) and [Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_faq.html) solutions. **Only AWS, Azure, AzureGov, AWSGov, AWSChina and AzureChina are supported. Required to be false for other providers.** Valid values: true, false. Default: false.\n",
          "willReplaceOnChanges": true
        },
        "aviatrixTransitVpc": {
          "type": "boolean",
          "description": "Specify whether it is an [Aviatrix Transit VPC](https://docs.aviatrix.com/HowTos/create_vpc.html#aviatrix-transit-vpc) to be used for [Transit Network](https://docs.aviatrix.com/HowTos/transitvpc_faq.html) or [TGW](https://docs.aviatrix.com/HowTos/tgw_faq.html) solutions. **Only AWS, AWSGov, AWSChina, and Alibaba Cloud are supported. Required to be false for other providers.** Valid values: true, false. Default: false.\n",
          "willReplaceOnChanges": true
        },
        "cidr": {
          "type": "string",
          "description": "CIDR block.\n",
          "willReplaceOnChanges": true
        },
        "cloudType": {
          "type": "integer",
          "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192) are supported.\n",
          "willReplaceOnChanges": true
        },
        "enableNativeGwlb": {
          "type": "boolean",
          "description": "Enable Native AWS Gateway Load Balancer for FireNet Function. Only valid with cloud_type = 1 (AWS). **This option is only applicable to TGW-integrated FireNet**. Currently, AWS Gateway Load Balancer is only supported in AWS regions: us-west-2, us-east-1, eu-west-1, ap-southeast-2 and sa-east-1. Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n"
        },
        "enablePrivateOobSubnet": {
          "type": "boolean",
          "description": "Switch to enable private oob subnet. Only supported for AWS, AWSGov and AWSChina providers. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "Name of this subnet.\n",
          "willReplaceOnChanges": true
        },
        "numOfSubnetPairs": {
          "type": "integer",
          "description": "Number of public subnet and private subnet pair created. Only supported for AWS, Azure provider. Example: 1. Available in provider version R2.17+.\n",
          "willReplaceOnChanges": true
        },
        "privateModeSubnets": {
          "type": "boolean",
          "description": "Switch to only launch private subnets. Only available when Private Mode is enabled on the Controller. Only AWS, Azure, AzureGov and AWSGov are supported. Available in Provider version R2.23+.\n",
          "willReplaceOnChanges": true
        },
        "region": {
          "type": "string",
          "description": "Region of this subnet.\n",
          "willReplaceOnChanges": true
        },
        "resourceGroup": {
          "type": "string",
          "description": "The name of an existing resource group or a new resource group to be created for the Azure VNet.  A new resource group will be created if left blank. Only available for Azure, AzureGov and AzureChina providers. Available as of provider version R2.19+.\n",
          "willReplaceOnChanges": true
        },
        "subnetSize": {
          "type": "integer",
          "description": "Subnet size. Only supported for AWS, Azure provider. Example: 24. Available in provider version R2.17+.\n",
          "willReplaceOnChanges": true
        },
        "subnets": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixVpcSubnet:AviatrixVpcSubnet"
          },
          "description": "List of subnets to be specify for GCP provider. Required to be non-empty for GCP provider, and empty for other providers.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "accountName",
        "cloudType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixVpc resources.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "This parameter represents the name of a Cloud-Account in Aviatrix controller.\n",
            "willReplaceOnChanges": true
          },
          "availabilityDomains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of OCI availability domains.\n"
          },
          "aviatrixFirenetVpc": {
            "type": "boolean",
            "description": "Specify whether it is an Aviatrix FireNet VPC to be used for [Aviatrix FireNet](https://docs.aviatrix.com/HowTos/firewall_network_faq.html) and [Transit FireNet](https://docs.aviatrix.com/HowTos/transit_firenet_faq.html) solutions. **Only AWS, Azure, AzureGov, AWSGov, AWSChina and AzureChina are supported. Required to be false for other providers.** Valid values: true, false. Default: false.\n",
            "willReplaceOnChanges": true
          },
          "aviatrixTransitVpc": {
            "type": "boolean",
            "description": "Specify whether it is an [Aviatrix Transit VPC](https://docs.aviatrix.com/HowTos/create_vpc.html#aviatrix-transit-vpc) to be used for [Transit Network](https://docs.aviatrix.com/HowTos/transitvpc_faq.html) or [TGW](https://docs.aviatrix.com/HowTos/tgw_faq.html) solutions. **Only AWS, AWSGov, AWSChina, and Alibaba Cloud are supported. Required to be false for other providers.** Valid values: true, false. Default: false.\n",
            "willReplaceOnChanges": true
          },
          "azureVnetResourceId": {
            "type": "string",
            "description": "Azure VNet resource ID.\n"
          },
          "cidr": {
            "type": "string",
            "description": "CIDR block.\n",
            "willReplaceOnChanges": true
          },
          "cloudType": {
            "type": "integer",
            "description": "Type of cloud service provider, requires an integer value. Currently only AWS(1), GCP(4), Azure(8), OCI(16), AzureGov(32), AWSGov(256), AWSChina(1024), AzureChina(2048), Alibaba Cloud(8192) are supported.\n",
            "willReplaceOnChanges": true
          },
          "enableNativeGwlb": {
            "type": "boolean",
            "description": "Enable Native AWS Gateway Load Balancer for FireNet Function. Only valid with cloud_type = 1 (AWS). **This option is only applicable to TGW-integrated FireNet**. Currently, AWS Gateway Load Balancer is only supported in AWS regions: us-west-2, us-east-1, eu-west-1, ap-southeast-2 and sa-east-1. Valid values: true or false. Default value: false. Available as of provider version R2.18+.\n"
          },
          "enablePrivateOobSubnet": {
            "type": "boolean",
            "description": "Switch to enable private oob subnet. Only supported for AWS, AWSGov and AWSChina providers. Valid values: true, false. Default value: false. Available as of provider version R2.18+.\n",
            "willReplaceOnChanges": true
          },
          "faultDomains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of OCI fault domains.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of this subnet.\n",
            "willReplaceOnChanges": true
          },
          "numOfSubnetPairs": {
            "type": "integer",
            "description": "Number of public subnet and private subnet pair created. Only supported for AWS, Azure provider. Example: 1. Available in provider version R2.17+.\n",
            "willReplaceOnChanges": true
          },
          "privateModeSubnets": {
            "type": "boolean",
            "description": "Switch to only launch private subnets. Only available when Private Mode is enabled on the Controller. Only AWS, Azure, AzureGov and AWSGov are supported. Available in Provider version R2.23+.\n",
            "willReplaceOnChanges": true
          },
          "privateSubnets": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixVpcPrivateSubnet:AviatrixVpcPrivateSubnet"
            },
            "description": "List of private subnet of the VPC(AWS, Azure) to be created.\n"
          },
          "publicSubnets": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixVpcPublicSubnet:AviatrixVpcPublicSubnet"
            },
            "description": "List of public subnet of the VPC(AWS, Azure) to be created.\n"
          },
          "region": {
            "type": "string",
            "description": "Region of this subnet.\n",
            "willReplaceOnChanges": true
          },
          "resourceGroup": {
            "type": "string",
            "description": "The name of an existing resource group or a new resource group to be created for the Azure VNet.  A new resource group will be created if left blank. Only available for Azure, AzureGov and AzureChina providers. Available as of provider version R2.19+.\n",
            "willReplaceOnChanges": true
          },
          "routeTables": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of route table ids associated with this VPC. Only populated for AWS, AWSGov and Azure VPC.\n"
          },
          "subnetSize": {
            "type": "integer",
            "description": "Subnet size. Only supported for AWS, Azure provider. Example: 24. Available in provider version R2.17+.\n",
            "willReplaceOnChanges": true
          },
          "subnets": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixVpcSubnet:AviatrixVpcSubnet"
            },
            "description": "List of subnets to be specify for GCP provider. Required to be non-empty for GCP provider, and empty for other providers.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "ID of the VPC to be created.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixVpnCertDownload:AviatrixVpnCertDownload": {
      "description": "The **aviatrix_vpn_cert_download** resource manages the VPN Certificate Download configuration for SAML Authentication\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Set up the Aviatrix VPN Certificate Download configuration\nconst testVpnCertDownload = new aviatrix.AviatrixVpnCertDownload(\"test_vpn_cert_download\", {\n    downloadEnabled: true,\n    samlEndpoints: [\"saml_endpoint_name\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Set up the Aviatrix VPN Certificate Download configuration\ntest_vpn_cert_download = aviatrix.AviatrixVpnCertDownload(\"testVpnCertDownload\",\n    download_enabled=True,\n    saml_endpoints=[\"saml_endpoint_name\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Set up the Aviatrix VPN Certificate Download configuration\n    var testVpnCertDownload = new Aviatrix.AviatrixVpnCertDownload(\"testVpnCertDownload\", new()\n    {\n        DownloadEnabled = true,\n        SamlEndpoints = new[]\n        {\n            \"saml_endpoint_name\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpnCertDownload(ctx, \"testVpnCertDownload\", &aviatrix.AviatrixVpnCertDownloadArgs{\n\t\t\tDownloadEnabled: pulumi.Bool(true),\n\t\t\tSamlEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"saml_endpoint_name\"),\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.aviatrix.AviatrixVpnCertDownload;\nimport com.pulumi.aviatrix.AviatrixVpnCertDownloadArgs;\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 testVpnCertDownload = new AviatrixVpnCertDownload(\"testVpnCertDownload\", AviatrixVpnCertDownloadArgs.builder()        \n            .downloadEnabled(true)\n            .samlEndpoints(\"saml_endpoint_name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Set up the Aviatrix VPN Certificate Download configuration\n  testVpnCertDownload:\n    type: aviatrix:AviatrixVpnCertDownload\n    properties:\n      downloadEnabled: true\n      samlEndpoints:\n        - saml_endpoint_name\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**vpn_cert_download** can be imported using the default id `vpn_cert_download`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixVpnCertDownload:AviatrixVpnCertDownload test_vpn_cert_download vpn_cert_download\n```\n\n ",
      "properties": {
        "downloadEnabled": {
          "type": "boolean",
          "description": "Whether the VPN Certificate download is enabled. Supported Values: \"true\", \"false\".\n"
        },
        "samlEndpoints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of SAML endpoint names for which the downloading should be enabled . Currently, only a single endpoint is supported. Example: [\"saml_endpoint_1\"].\n"
        }
      },
      "type": "object",
      "inputProperties": {
        "downloadEnabled": {
          "type": "boolean",
          "description": "Whether the VPN Certificate download is enabled. Supported Values: \"true\", \"false\".\n"
        },
        "samlEndpoints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of SAML endpoint names for which the downloading should be enabled . Currently, only a single endpoint is supported. Example: [\"saml_endpoint_1\"].\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixVpnCertDownload resources.\n",
        "properties": {
          "downloadEnabled": {
            "type": "boolean",
            "description": "Whether the VPN Certificate download is enabled. Supported Values: \"true\", \"false\".\n"
          },
          "samlEndpoints": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of SAML endpoint names for which the downloading should be enabled . Currently, only a single endpoint is supported. Example: [\"saml_endpoint_1\"].\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixVpnProfile:AviatrixVpnProfile": {
      "description": "The **aviatrix_vpn_profile** resource allows the creation and management of Aviatrix VPN user profiles.\n\n> **NOTE:** As of R2.15, management of user/profile attachment can be set using `manage_user_attachment`. This argument must be set to *true* in either **aviatrix_vpn_user** or **aviatrix_vpn_profile**. If attachment is managed in the **aviatrix_vpn_profile** (set to *true*), it must be set to *false* in the **aviatrix_vpn_user** resource and vice versa.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix AWS VPN User Profile\nconst testVpnProfile = new aviatrix.AviatrixVpnProfile(\"test_vpn_profile\", {\n    baseRule: \"allow_all\",\n    policies: [\n        {\n            action: \"deny\",\n            port: \"443\",\n            proto: \"tcp\",\n            target: \"10.0.0.0/32\",\n        },\n        {\n            action: \"deny\",\n            port: \"443\",\n            proto: \"tcp\",\n            target: \"10.0.0.1/32\",\n        },\n    ],\n    users: [\n        \"user1\",\n        \"user2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix AWS VPN User Profile\ntest_vpn_profile = aviatrix.AviatrixVpnProfile(\"testVpnProfile\",\n    base_rule=\"allow_all\",\n    policies=[\n        aviatrix.AviatrixVpnProfilePolicyArgs(\n            action=\"deny\",\n            port=\"443\",\n            proto=\"tcp\",\n            target=\"10.0.0.0/32\",\n        ),\n        aviatrix.AviatrixVpnProfilePolicyArgs(\n            action=\"deny\",\n            port=\"443\",\n            proto=\"tcp\",\n            target=\"10.0.0.1/32\",\n        ),\n    ],\n    users=[\n        \"user1\",\n        \"user2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix AWS VPN User Profile\n    var testVpnProfile = new Aviatrix.AviatrixVpnProfile(\"testVpnProfile\", new()\n    {\n        BaseRule = \"allow_all\",\n        Policies = new[]\n        {\n            new Aviatrix.Inputs.AviatrixVpnProfilePolicyArgs\n            {\n                Action = \"deny\",\n                Port = \"443\",\n                Proto = \"tcp\",\n                Target = \"10.0.0.0/32\",\n            },\n            new Aviatrix.Inputs.AviatrixVpnProfilePolicyArgs\n            {\n                Action = \"deny\",\n                Port = \"443\",\n                Proto = \"tcp\",\n                Target = \"10.0.0.1/32\",\n            },\n        },\n        Users = new[]\n        {\n            \"user1\",\n            \"user2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpnProfile(ctx, \"testVpnProfile\", &aviatrix.AviatrixVpnProfileArgs{\n\t\t\tBaseRule: pulumi.String(\"allow_all\"),\n\t\t\tPolicies: AviatrixVpnProfilePolicyArray{\n\t\t\t\t&AviatrixVpnProfilePolicyArgs{\n\t\t\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\t\t\tPort:   pulumi.String(\"443\"),\n\t\t\t\t\tProto:  pulumi.String(\"tcp\"),\n\t\t\t\t\tTarget: pulumi.String(\"10.0.0.0/32\"),\n\t\t\t\t},\n\t\t\t\t&AviatrixVpnProfilePolicyArgs{\n\t\t\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\t\t\tPort:   pulumi.String(\"443\"),\n\t\t\t\t\tProto:  pulumi.String(\"tcp\"),\n\t\t\t\t\tTarget: pulumi.String(\"10.0.0.1/32\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUsers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user1\"),\n\t\t\t\tpulumi.String(\"user2\"),\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.aviatrix.AviatrixVpnProfile;\nimport com.pulumi.aviatrix.AviatrixVpnProfileArgs;\nimport com.pulumi.aviatrix.inputs.AviatrixVpnProfilePolicyArgs;\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 testVpnProfile = new AviatrixVpnProfile(\"testVpnProfile\", AviatrixVpnProfileArgs.builder()        \n            .baseRule(\"allow_all\")\n            .policies(            \n                AviatrixVpnProfilePolicyArgs.builder()\n                    .action(\"deny\")\n                    .port(\"443\")\n                    .proto(\"tcp\")\n                    .target(\"10.0.0.0/32\")\n                    .build(),\n                AviatrixVpnProfilePolicyArgs.builder()\n                    .action(\"deny\")\n                    .port(\"443\")\n                    .proto(\"tcp\")\n                    .target(\"10.0.0.1/32\")\n                    .build())\n            .users(            \n                \"user1\",\n                \"user2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix AWS VPN User Profile\n  testVpnProfile:\n    type: aviatrix:AviatrixVpnProfile\n    properties:\n      baseRule: allow_all\n      policies:\n        - action: deny\n          port: '443'\n          proto: tcp\n          target: 10.0.0.0/32\n        - action: deny\n          port: '443'\n          proto: tcp\n          target: 10.0.0.1/32\n      users:\n        - user1\n        - user2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**vpn_profile** can be imported using the VPN profile's `name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixVpnProfile:AviatrixVpnProfile test name\n```\n\n ",
      "properties": {
        "baseRule": {
          "type": "string",
          "description": "Base policy rule of the profile to be added. Enter \"allow_all\" or \"deny_all\", based on whether you want a whitelist or blacklist.\n"
        },
        "manageUserAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage VPN user attachments to the VPN profile using this resource. If this is set to false, attachment must be managed using the **aviatrix_vpn_user** resource. Valid values: true, false. Default value: true.\n"
        },
        "name": {
          "type": "string",
          "description": "Enter any name for the VPN profile.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixVpnProfilePolicy:AviatrixVpnProfilePolicy"
          },
          "description": "New security policy for the profile. Each policy has the following attributes:\n"
        },
        "users": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VPN users to attach to this profile. This should be set to null if `manage_user_attachment` is set to false.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "inputProperties": {
        "baseRule": {
          "type": "string",
          "description": "Base policy rule of the profile to be added. Enter \"allow_all\" or \"deny_all\", based on whether you want a whitelist or blacklist.\n"
        },
        "manageUserAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch used to determine whether or not to manage VPN user attachments to the VPN profile using this resource. If this is set to false, attachment must be managed using the **aviatrix_vpn_user** resource. Valid values: true, false. Default value: true.\n"
        },
        "name": {
          "type": "string",
          "description": "Enter any name for the VPN profile.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/aviatrix:index%2FAviatrixVpnProfilePolicy:AviatrixVpnProfilePolicy"
          },
          "description": "New security policy for the profile. Each policy has the following attributes:\n"
        },
        "users": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VPN users to attach to this profile. This should be set to null if `manage_user_attachment` is set to false.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixVpnProfile resources.\n",
        "properties": {
          "baseRule": {
            "type": "string",
            "description": "Base policy rule of the profile to be added. Enter \"allow_all\" or \"deny_all\", based on whether you want a whitelist or blacklist.\n"
          },
          "manageUserAttachment": {
            "type": "boolean",
            "description": "This parameter is a switch used to determine whether or not to manage VPN user attachments to the VPN profile using this resource. If this is set to false, attachment must be managed using the **aviatrix_vpn_user** resource. Valid values: true, false. Default value: true.\n"
          },
          "name": {
            "type": "string",
            "description": "Enter any name for the VPN profile.\n"
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FAviatrixVpnProfilePolicy:AviatrixVpnProfilePolicy"
            },
            "description": "New security policy for the profile. Each policy has the following attributes:\n"
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of VPN users to attach to this profile. This should be set to null if `manage_user_attachment` is set to false.\n"
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixVpnUser:AviatrixVpnUser": {
      "description": "The **aviatrix_vpn_user** resource creates and manages Aviatrix VPN users.\n\n> **NOTE:** As of R2.15, management of user/profile attachment can be set using `manage_user_attachment`. This argument must be to *true* in either **aviatrix_vpn_user** or **aviatrix_vpn_profile**. If attachment is managed in the **aviatrix_vpn_user** (set to *true*), it must be set to *false* in the **aviatrix_vpn_profile** resource and vice versa.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix VPN User\nconst testVpnUser = new aviatrix.AviatrixVpnUser(\"test_vpn_user\", {\n    gwName: \"gw1\",\n    userEmail: \"user@aviatrix.com\",\n    userName: \"username1\",\n    vpcId: \"vpc-abcd1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix VPN User\ntest_vpn_user = aviatrix.AviatrixVpnUser(\"testVpnUser\",\n    gw_name=\"gw1\",\n    user_email=\"user@aviatrix.com\",\n    user_name=\"username1\",\n    vpc_id=\"vpc-abcd1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix VPN User\n    var testVpnUser = new Aviatrix.AviatrixVpnUser(\"testVpnUser\", new()\n    {\n        GwName = \"gw1\",\n        UserEmail = \"user@aviatrix.com\",\n        UserName = \"username1\",\n        VpcId = \"vpc-abcd1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpnUser(ctx, \"testVpnUser\", &aviatrix.AviatrixVpnUserArgs{\n\t\t\tGwName:    pulumi.String(\"gw1\"),\n\t\t\tUserEmail: pulumi.String(\"user@aviatrix.com\"),\n\t\t\tUserName:  pulumi.String(\"username1\"),\n\t\t\tVpcId:     pulumi.String(\"vpc-abcd1234\"),\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.aviatrix.AviatrixVpnUser;\nimport com.pulumi.aviatrix.AviatrixVpnUserArgs;\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 testVpnUser = new AviatrixVpnUser(\"testVpnUser\", AviatrixVpnUserArgs.builder()        \n            .gwName(\"gw1\")\n            .userEmail(\"user@aviatrix.com\")\n            .userName(\"username1\")\n            .vpcId(\"vpc-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix VPN User\n  testVpnUser:\n    type: aviatrix:AviatrixVpnUser\n    properties:\n      gwName: gw1\n      userEmail: user@aviatrix.com\n      userName: username1\n      vpcId: vpc-abcd1234\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix VPN User under Geo VPN\nconst testVpnUser = new aviatrix.AviatrixVpnUser(\"test_vpn_user\", {\n    dnsName: \"vpn.testuser.com\",\n    userEmail: \"user@aviatrix.com\",\n    userName: \"username1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix VPN User under Geo VPN\ntest_vpn_user = aviatrix.AviatrixVpnUser(\"testVpnUser\",\n    dns_name=\"vpn.testuser.com\",\n    user_email=\"user@aviatrix.com\",\n    user_name=\"username1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix VPN User under Geo VPN\n    var testVpnUser = new Aviatrix.AviatrixVpnUser(\"testVpnUser\", new()\n    {\n        DnsName = \"vpn.testuser.com\",\n        UserEmail = \"user@aviatrix.com\",\n        UserName = \"username1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpnUser(ctx, \"testVpnUser\", &aviatrix.AviatrixVpnUserArgs{\n\t\t\tDnsName:   pulumi.String(\"vpn.testuser.com\"),\n\t\t\tUserEmail: pulumi.String(\"user@aviatrix.com\"),\n\t\t\tUserName:  pulumi.String(\"username1\"),\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.aviatrix.AviatrixVpnUser;\nimport com.pulumi.aviatrix.AviatrixVpnUserArgs;\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 testVpnUser = new AviatrixVpnUser(\"testVpnUser\", AviatrixVpnUserArgs.builder()        \n            .dnsName(\"vpn.testuser.com\")\n            .userEmail(\"user@aviatrix.com\")\n            .userName(\"username1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix VPN User under Geo VPN\n  testVpnUser:\n    type: aviatrix:AviatrixVpnUser\n    properties:\n      dnsName: vpn.testuser.com\n      userEmail: user@aviatrix.com\n      userName: username1\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix VPN User on GCP\n// See note below about vpc_id formatting for GCP\nconst testVpnUser = new aviatrix.AviatrixVpnUser(\"test_vpn_user\", {\n    gwName: \"gw1\",\n    userEmail: \"user@aviatrix.com\",\n    userName: \"username1\",\n    vpcId: pulumi.interpolate`${aviatrix_vpc_test_vpc.vpcId}~-~${aviatrix_account_test_account.gcloudProjectId}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix VPN User on GCP\n# See note below about vpc_id formatting for GCP\ntest_vpn_user = aviatrix.AviatrixVpnUser(\"testVpnUser\",\n    gw_name=\"gw1\",\n    user_email=\"user@aviatrix.com\",\n    user_name=\"username1\",\n    vpc_id=f\"{aviatrix_vpc['test_vpc']['vpc_id']}~-~{aviatrix_account['test_account']['gcloud_project_id']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix VPN User on GCP\n    // See note below about vpc_id formatting for GCP\n    var testVpnUser = new Aviatrix.AviatrixVpnUser(\"testVpnUser\", new()\n    {\n        GwName = \"gw1\",\n        UserEmail = \"user@aviatrix.com\",\n        UserName = \"username1\",\n        VpcId = $\"{aviatrix_vpc.Test_vpc.Vpc_id}~-~{aviatrix_account.Test_account.Gcloud_project_id}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpnUser(ctx, \"testVpnUser\", &aviatrix.AviatrixVpnUserArgs{\n\t\t\tGwName:    pulumi.String(\"gw1\"),\n\t\t\tUserEmail: pulumi.String(\"user@aviatrix.com\"),\n\t\t\tUserName:  pulumi.String(\"username1\"),\n\t\t\tVpcId:     pulumi.String(fmt.Sprintf(\"%v~-~%v\", aviatrix_vpc.Test_vpc.Vpc_id, aviatrix_account.Test_account.Gcloud_project_id)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixVpnUser;\nimport com.pulumi.aviatrix.AviatrixVpnUserArgs;\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 testVpnUser = new AviatrixVpnUser(\"testVpnUser\", AviatrixVpnUserArgs.builder()        \n            .gwName(\"gw1\")\n            .userEmail(\"user@aviatrix.com\")\n            .userName(\"username1\")\n            .vpcId(String.format(\"%s~-~%s\", aviatrix_vpc.test_vpc().vpc_id(),aviatrix_account.test_account().gcloud_project_id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix VPN User on GCP\n  # // See note below about vpc_id formatting for GCP\n  testVpnUser:\n    type: aviatrix:AviatrixVpnUser\n    properties:\n      gwName: gw1\n      userEmail: user@aviatrix.com\n      userName: username1\n      vpcId: ${aviatrix_vpc.test_vpc.vpc_id}~-~${aviatrix_account.test_account.gcloud_project_id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**vpn_user** can be imported using the `user_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixVpnUser:AviatrixVpnUser test user_name\n```\n\n ",
      "properties": {
        "dnsName": {
          "type": "string",
          "description": "FQDN of a DNS based VPN service such as GeoVPN or UDP load balancer. Example: \"vpn.testuser.com\".\n"
        },
        "gwName": {
          "type": "string",
          "description": "If ELB is enabled, this will be the name of the ELB, else it will be the name of the Aviatrix VPN gateway. Used together with `vpc_id`. Example: \"gw1\".\n"
        },
        "manageUserAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch to determine whether or not to manage VPN user attachments to the VPN profile using this resource. If this is set to false, attachment must be managed using the **aviatrix_vpn_profile** resource. Valid values: true, false. Default value: false.\n"
        },
        "profiles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VPN profiles for user to attach to. This should be set to null if `manage_user_attachment` is set to false.\n"
        },
        "samlEndpoint": {
          "type": "string",
          "description": "This is the name of the SAML endpoint to which the user is to be associated. This is required if adding user to a SAML gateway/LB.\n"
        },
        "userEmail": {
          "type": "string",
          "description": "VPN user's email. Example: \"abc@xyz.com\".\n"
        },
        "userName": {
          "type": "string",
          "description": "VPN user name. Example: \"user\".\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of Aviatrix VPN gateway. Used together with `gw_name`. Example: \"vpc-abcd1234\".\n"
        }
      },
      "type": "object",
      "required": [
        "userName"
      ],
      "inputProperties": {
        "dnsName": {
          "type": "string",
          "description": "FQDN of a DNS based VPN service such as GeoVPN or UDP load balancer. Example: \"vpn.testuser.com\".\n",
          "willReplaceOnChanges": true
        },
        "gwName": {
          "type": "string",
          "description": "If ELB is enabled, this will be the name of the ELB, else it will be the name of the Aviatrix VPN gateway. Used together with `vpc_id`. Example: \"gw1\".\n",
          "willReplaceOnChanges": true
        },
        "manageUserAttachment": {
          "type": "boolean",
          "description": "This parameter is a switch to determine whether or not to manage VPN user attachments to the VPN profile using this resource. If this is set to false, attachment must be managed using the **aviatrix_vpn_profile** resource. Valid values: true, false. Default value: false.\n"
        },
        "profiles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of VPN profiles for user to attach to. This should be set to null if `manage_user_attachment` is set to false.\n"
        },
        "samlEndpoint": {
          "type": "string",
          "description": "This is the name of the SAML endpoint to which the user is to be associated. This is required if adding user to a SAML gateway/LB.\n",
          "willReplaceOnChanges": true
        },
        "userEmail": {
          "type": "string",
          "description": "VPN user's email. Example: \"abc@xyz.com\".\n",
          "willReplaceOnChanges": true
        },
        "userName": {
          "type": "string",
          "description": "VPN user name. Example: \"user\".\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of Aviatrix VPN gateway. Used together with `gw_name`. Example: \"vpc-abcd1234\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "userName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixVpnUser resources.\n",
        "properties": {
          "dnsName": {
            "type": "string",
            "description": "FQDN of a DNS based VPN service such as GeoVPN or UDP load balancer. Example: \"vpn.testuser.com\".\n",
            "willReplaceOnChanges": true
          },
          "gwName": {
            "type": "string",
            "description": "If ELB is enabled, this will be the name of the ELB, else it will be the name of the Aviatrix VPN gateway. Used together with `vpc_id`. Example: \"gw1\".\n",
            "willReplaceOnChanges": true
          },
          "manageUserAttachment": {
            "type": "boolean",
            "description": "This parameter is a switch to determine whether or not to manage VPN user attachments to the VPN profile using this resource. If this is set to false, attachment must be managed using the **aviatrix_vpn_profile** resource. Valid values: true, false. Default value: false.\n"
          },
          "profiles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of VPN profiles for user to attach to. This should be set to null if `manage_user_attachment` is set to false.\n"
          },
          "samlEndpoint": {
            "type": "string",
            "description": "This is the name of the SAML endpoint to which the user is to be associated. This is required if adding user to a SAML gateway/LB.\n",
            "willReplaceOnChanges": true
          },
          "userEmail": {
            "type": "string",
            "description": "VPN user's email. Example: \"abc@xyz.com\".\n",
            "willReplaceOnChanges": true
          },
          "userName": {
            "type": "string",
            "description": "VPN user name. Example: \"user\".\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of Aviatrix VPN gateway. Used together with `gw_name`. Example: \"vpc-abcd1234\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrixVpnUserAccelerator:AviatrixVpnUserAccelerator": {
      "description": "The **aviatrix_vpn_user_accelerator** resource manages the [Aviatrix VPN User Accelerator](https://docs.aviatrix.com/HowTos/user_accelerator.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Vpn User Accelerator\nconst testVpcAccelerator = new aviatrix.AviatrixVpnUserAccelerator(\"test_vpc_accelerator\", {\n    elbName: \"Aviatrix-vpc-abcd2134\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Vpn User Accelerator\ntest_vpc_accelerator = aviatrix.AviatrixVpnUserAccelerator(\"testVpcAccelerator\", elb_name=\"Aviatrix-vpc-abcd2134\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Vpn User Accelerator\n    var testVpcAccelerator = new Aviatrix.AviatrixVpnUserAccelerator(\"testVpcAccelerator\", new()\n    {\n        ElbName = \"Aviatrix-vpc-abcd2134\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.NewAviatrixVpnUserAccelerator(ctx, \"testVpcAccelerator\", &aviatrix.AviatrixVpnUserAcceleratorArgs{\n\t\t\tElbName: pulumi.String(\"Aviatrix-vpc-abcd2134\"),\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.aviatrix.AviatrixVpnUserAccelerator;\nimport com.pulumi.aviatrix.AviatrixVpnUserAcceleratorArgs;\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 testVpcAccelerator = new AviatrixVpnUserAccelerator(\"testVpcAccelerator\", AviatrixVpnUserAcceleratorArgs.builder()        \n            .elbName(\"Aviatrix-vpc-abcd2134\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Vpn User Accelerator\n  testVpcAccelerator:\n    type: aviatrix:AviatrixVpnUserAccelerator\n    properties:\n      elbName: Aviatrix-vpc-abcd2134\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n**vpn_user_accelerator** can be imported using the `elb_name`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrixVpnUserAccelerator:AviatrixVpnUserAccelerator test Aviatrix-vpc-abcd1234\n```\n\n ",
      "properties": {
        "elbName": {
          "type": "string",
          "description": "Name of ELB to be added to VPN User Accelerator. Example: \"Aviatrix-vpc-abcd2134\".\n"
        }
      },
      "type": "object",
      "required": [
        "elbName"
      ],
      "inputProperties": {
        "elbName": {
          "type": "string",
          "description": "Name of ELB to be added to VPN User Accelerator. Example: \"Aviatrix-vpc-abcd2134\".\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "elbName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AviatrixVpnUserAccelerator resources.\n",
        "properties": {
          "elbName": {
            "type": "string",
            "description": "Name of ELB to be added to VPN User Accelerator. Example: \"Aviatrix-vpc-abcd2134\".\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "aviatrix:index/aviatrix_spoke_external_device_conn:aviatrix_spoke_external_device_conn": {
      "description": "The **aviatrix_spoke_external_device_conn** resource creates and manages the connection between the Aviatrix BGP enabled spoke gateway and an External Device for purposes of Transit Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Spoke External Device Connection\nconst test = new aviatrix.aviatrix_spoke_external_device_conn(\"test\", {\n    bgpLocalAsNum: \"123\",\n    bgpRemoteAsNum: \"345\",\n    connectionName: \"my_conn\",\n    connectionType: \"bgp\",\n    gwName: \"spokeGw\",\n    remoteGatewayIp: \"172.12.13.14\",\n    vpcId: \"vpc-abcd1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Spoke External Device Connection\ntest = aviatrix.Aviatrix_spoke_external_device_conn(\"test\",\n    bgp_local_as_num=\"123\",\n    bgp_remote_as_num=\"345\",\n    connection_name=\"my_conn\",\n    connection_type=\"bgp\",\n    gw_name=\"spokeGw\",\n    remote_gateway_ip=\"172.12.13.14\",\n    vpc_id=\"vpc-abcd1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Spoke External Device Connection\n    var test = new Aviatrix.Aviatrix_spoke_external_device_conn(\"test\", new()\n    {\n        BgpLocalAsNum = \"123\",\n        BgpRemoteAsNum = \"345\",\n        ConnectionName = \"my_conn\",\n        ConnectionType = \"bgp\",\n        GwName = \"spokeGw\",\n        RemoteGatewayIp = \"172.12.13.14\",\n        VpcId = \"vpc-abcd1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.Newaviatrix_spoke_external_device_conn(ctx, \"test\", &aviatrix.aviatrix_spoke_external_device_connArgs{\n\t\t\tBgpLocalAsNum:   pulumi.String(\"123\"),\n\t\t\tBgpRemoteAsNum:  pulumi.String(\"345\"),\n\t\t\tConnectionName:  pulumi.String(\"my_conn\"),\n\t\t\tConnectionType:  pulumi.String(\"bgp\"),\n\t\t\tGwName:          pulumi.String(\"spokeGw\"),\n\t\t\tRemoteGatewayIp: pulumi.String(\"172.12.13.14\"),\n\t\t\tVpcId:           pulumi.String(\"vpc-abcd1234\"),\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.aviatrix.aviatrix_spoke_external_device_conn;\nimport com.pulumi.aviatrix.Aviatrix_spoke_external_device_connArgs;\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 test = new Aviatrix_spoke_external_device_conn(\"test\", Aviatrix_spoke_external_device_connArgs.builder()        \n            .bgpLocalAsNum(\"123\")\n            .bgpRemoteAsNum(\"345\")\n            .connectionName(\"my_conn\")\n            .connectionType(\"bgp\")\n            .gwName(\"spokeGw\")\n            .remoteGatewayIp(\"172.12.13.14\")\n            .vpcId(\"vpc-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Spoke External Device Connection\n  test:\n    type: aviatrix:aviatrix_spoke_external_device_conn\n    properties:\n      bgpLocalAsNum: '123'\n      bgpRemoteAsNum: '345'\n      connectionName: my_conn\n      connectionType: bgp\n      gwName: spokeGw\n      remoteGatewayIp: 172.12.13.14\n      vpcId: vpc-abcd1234\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Spoke External Device Connection with HA enabled\nconst test = new aviatrix.aviatrix_spoke_external_device_conn(\"test\", {\n    backupRemoteGatewayIp: \"172.12.13.15\",\n    connectionName: \"my_conn\",\n    connectionType: \"static\",\n    enableHa: true,\n    gwName: \"spokeGw\",\n    remoteGatewayIp: \"172.12.13.14\",\n    remoteSubnet: \"12.0.0.0/24\",\n    vpcId: \"vpc-abcd1234\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.aviatrix_spoke_external_device_conn;\nimport com.pulumi.aviatrix.Aviatrix_spoke_external_device_connArgs;\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 test = new Aviatrix_spoke_external_device_conn(\"test\", Aviatrix_spoke_external_device_connArgs.builder()        \n            .backupRemoteGatewayIp(\"172.12.13.15\")\n            .connectionName(\"my_conn\")\n            .connectionType(\"static\")\n            .enableHa(true)\n            .gwName(\"spokeGw\")\n            .remoteGatewayIp(\"172.12.13.14\")\n            .remoteSubnet(\"12.0.0.0/24\")\n            .vpcId(\"vpc-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Spoke External Device Connection with HA enabled\n  test:\n    type: aviatrix:aviatrix_spoke_external_device_conn\n    properties:\n      backupRemoteGatewayIp: 172.12.13.15\n      connectionName: my_conn\n      connectionType: static\n      enableHa: true\n      gwName: spokeGw\n      remoteGatewayIp: 172.12.13.14\n      remoteSubnet: 12.0.0.0/24\n      vpcId: vpc-abcd1234\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Create an Aviatrix Spoke External Device Connection with Connection AS Path Prepend set\nconst test = new aviatrix.aviatrix_spoke_external_device_conn(\"test\", {\n    bgpLocalAsNum: \"123\",\n    bgpRemoteAsNum: \"345\",\n    connectionName: \"my_conn\",\n    connectionType: \"bgp\",\n    gwName: \"spokeGw\",\n    prependAsPaths: [\n        \"123\",\n        \"123\",\n    ],\n    remoteGatewayIp: \"172.12.13.14\",\n    vpcId: \"vpc-abcd1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\n# Create an Aviatrix Spoke External Device Connection with Connection AS Path Prepend set\ntest = aviatrix.Aviatrix_spoke_external_device_conn(\"test\",\n    bgp_local_as_num=\"123\",\n    bgp_remote_as_num=\"345\",\n    connection_name=\"my_conn\",\n    connection_type=\"bgp\",\n    gw_name=\"spokeGw\",\n    prepend_as_paths=[\n        \"123\",\n        \"123\",\n    ],\n    remote_gateway_ip=\"172.12.13.14\",\n    vpc_id=\"vpc-abcd1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create an Aviatrix Spoke External Device Connection with Connection AS Path Prepend set\n    var test = new Aviatrix.Aviatrix_spoke_external_device_conn(\"test\", new()\n    {\n        BgpLocalAsNum = \"123\",\n        BgpRemoteAsNum = \"345\",\n        ConnectionName = \"my_conn\",\n        ConnectionType = \"bgp\",\n        GwName = \"spokeGw\",\n        PrependAsPaths = new[]\n        {\n            \"123\",\n            \"123\",\n        },\n        RemoteGatewayIp = \"172.12.13.14\",\n        VpcId = \"vpc-abcd1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 := aviatrix.Newaviatrix_spoke_external_device_conn(ctx, \"test\", &aviatrix.aviatrix_spoke_external_device_connArgs{\n\t\t\tBgpLocalAsNum:  pulumi.String(\"123\"),\n\t\t\tBgpRemoteAsNum: pulumi.String(\"345\"),\n\t\t\tConnectionName: pulumi.String(\"my_conn\"),\n\t\t\tConnectionType: pulumi.String(\"bgp\"),\n\t\t\tGwName:         pulumi.String(\"spokeGw\"),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"123\"),\n\t\t\t\tpulumi.String(\"123\"),\n\t\t\t},\n\t\t\tRemoteGatewayIp: pulumi.String(\"172.12.13.14\"),\n\t\t\tVpcId:           pulumi.String(\"vpc-abcd1234\"),\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.aviatrix.aviatrix_spoke_external_device_conn;\nimport com.pulumi.aviatrix.Aviatrix_spoke_external_device_connArgs;\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 test = new Aviatrix_spoke_external_device_conn(\"test\", Aviatrix_spoke_external_device_connArgs.builder()        \n            .bgpLocalAsNum(\"123\")\n            .bgpRemoteAsNum(\"345\")\n            .connectionName(\"my_conn\")\n            .connectionType(\"bgp\")\n            .gwName(\"spokeGw\")\n            .prependAsPaths(            \n                \"123\",\n                \"123\")\n            .remoteGatewayIp(\"172.12.13.14\")\n            .vpcId(\"vpc-abcd1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Aviatrix Spoke External Device Connection with Connection AS Path Prepend set\n  test:\n    type: aviatrix:aviatrix_spoke_external_device_conn\n    properties:\n      bgpLocalAsNum: '123'\n      bgpRemoteAsNum: '345'\n      connectionName: my_conn\n      connectionType: bgp\n      gwName: spokeGw\n      prependAsPaths:\n        - '123'\n        - '123'\n      remoteGatewayIp: 172.12.13.14\n      vpcId: vpc-abcd1234\n```\n{{% /example %}}\n{{% /examples %}}\n## Notes\n\n### custom_algorithms\nIf set to true, the six algorithm arguments cannot all be default value. If set to false, default values will be used for all six algorithm arguments.\n\n\n## Import\n\n**spoke_external_device_conn** can be imported using the `connection_name` and `vpc_id`, e.g.\n\n```sh\n $ pulumi import aviatrix:index/aviatrix_spoke_external_device_conn:aviatrix_spoke_external_device_conn test connection_name~vpc_id\n```\n\n ",
      "properties": {
        "approvedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
        },
        "backupBgpMd5Key": {
          "type": "string",
          "description": "Backup BGP MD5 Authentication Key. Valid with HA enabled for connection. Example: 'avx03,avx04'.\n",
          "secret": true
        },
        "backupBgpRemoteAsNum": {
          "type": "string",
          "description": "Backup BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required if HA enabled for 'bgp' connection.\n"
        },
        "backupDirectConnect": {
          "type": "boolean",
          "description": "Backup direct connect for backup external device.\n"
        },
        "backupLocalTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the backup Aviatrix spoke gateway.\n"
        },
        "backupPreSharedKey": {
          "type": "string",
          "description": "Backup Pre-Shared Key.\n",
          "secret": true
        },
        "backupRemoteGatewayIp": {
          "type": "string",
          "description": "Backup remote gateway IP.\n"
        },
        "backupRemoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the backup external device.\n"
        },
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP local ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n"
        },
        "bgpMd5Key": {
          "type": "string",
          "description": "BGP MD5 Authentication Key. Example: 'avx01,avx02'.\n",
          "secret": true
        },
        "bgpRemoteAsNum": {
          "type": "string",
          "description": "BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n"
        },
        "connectionName": {
          "type": "string",
          "description": "Spoke external device connection name.\n"
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid values: 'bgp', 'static'. Default value: 'bgp'.\n"
        },
        "customAlgorithms": {
          "type": "boolean",
          "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n"
        },
        "directConnect": {
          "type": "boolean",
          "description": "Set true for private network infrastructure.\n"
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false.\n"
        },
        "enableIkev2": {
          "type": "boolean",
          "description": "Set as true to enable IKEv2 protocol.\n"
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable learned CIDRs approval for the connection. Only valid with `connection_type` = 'bgp'. Requires the spoke_gateway's `learned_cidrs_approval_mode` attribute be set to 'connection'. Valid values: true, false. Default value: false.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Aviatrix spoke gateway name.\n"
        },
        "haEnabled": {
          "type": "boolean",
          "description": "Set as true if there are two external devices.\n* `backup_remote_gateway_ip ` - (Optional) Backup remote gateway IP. Required if HA enabled.\n"
        },
        "localTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the Aviatrix spoke gateway.\n"
        },
        "manualBgpAdvertisedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Configure manual BGP advertised CIDRs for this connection. Only valid with `connection_type`= 'bgp'.\n"
        },
        "phase1Authentication": {
          "type": "string",
          "description": "Phase one Authentication. Valid values: 'SHA-1', 'SHA-256', 'SHA-384' and 'SHA-512'. Default value: 'SHA-256'.\n"
        },
        "phase1DhGroups": {
          "type": "string",
          "description": "Phase one DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n"
        },
        "phase1Encryption": {
          "type": "string",
          "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n"
        },
        "phase1RemoteIdentifiers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled.\n"
        },
        "phase2Authentication": {
          "type": "string",
          "description": "Phase two Authentication. Valid values: 'NO-AUTH', 'HMAC-SHA-1', 'HMAC-SHA-256', 'HMAC-SHA-384' and 'HMAC-SHA-512'. Default value: 'HMAC-SHA-256'.\n"
        },
        "phase2DhGroups": {
          "type": "string",
          "description": "Phase two DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n"
        },
        "phase2Encryption": {
          "type": "string",
          "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n"
        },
        "preSharedKey": {
          "type": "string",
          "description": "Pre-Shared Key.\n",
          "secret": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection.\n"
        },
        "remoteGatewayIp": {
          "type": "string",
          "description": "Remote gateway IP.\n"
        },
        "remoteSubnet": {
          "type": "string",
          "description": "Remote CIDRs joined as a string with ','. Required for a 'static' type connection.\n"
        },
        "remoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the external device.\n"
        },
        "tunnelProtocol": {
          "type": "string",
          "description": "Tunnel protocol, only valid with `connection_type` = 'bgp'. Valid values: 'IPsec'. Default value: 'IPsec'. Case insensitive.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Aviatrix spoke gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "approvedCidrs",
        "backupLocalTunnelCidr",
        "backupRemoteTunnelCidr",
        "connectionName",
        "gwName",
        "localTunnelCidr",
        "remoteGatewayIp",
        "remoteTunnelCidr",
        "vpcId"
      ],
      "inputProperties": {
        "approvedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
        },
        "backupBgpMd5Key": {
          "type": "string",
          "description": "Backup BGP MD5 Authentication Key. Valid with HA enabled for connection. Example: 'avx03,avx04'.\n",
          "secret": true
        },
        "backupBgpRemoteAsNum": {
          "type": "string",
          "description": "Backup BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required if HA enabled for 'bgp' connection.\n",
          "willReplaceOnChanges": true
        },
        "backupDirectConnect": {
          "type": "boolean",
          "description": "Backup direct connect for backup external device.\n",
          "willReplaceOnChanges": true
        },
        "backupLocalTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the backup Aviatrix spoke gateway.\n",
          "willReplaceOnChanges": true
        },
        "backupPreSharedKey": {
          "type": "string",
          "description": "Backup Pre-Shared Key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "backupRemoteGatewayIp": {
          "type": "string",
          "description": "Backup remote gateway IP.\n",
          "willReplaceOnChanges": true
        },
        "backupRemoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the backup external device.\n",
          "willReplaceOnChanges": true
        },
        "bgpLocalAsNum": {
          "type": "string",
          "description": "BGP local ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
          "willReplaceOnChanges": true
        },
        "bgpMd5Key": {
          "type": "string",
          "description": "BGP MD5 Authentication Key. Example: 'avx01,avx02'.\n",
          "secret": true
        },
        "bgpRemoteAsNum": {
          "type": "string",
          "description": "BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
          "willReplaceOnChanges": true
        },
        "connectionName": {
          "type": "string",
          "description": "Spoke external device connection name.\n",
          "willReplaceOnChanges": true
        },
        "connectionType": {
          "type": "string",
          "description": "Connection type. Valid values: 'bgp', 'static'. Default value: 'bgp'.\n",
          "willReplaceOnChanges": true
        },
        "customAlgorithms": {
          "type": "boolean",
          "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n",
          "willReplaceOnChanges": true
        },
        "directConnect": {
          "type": "boolean",
          "description": "Set true for private network infrastructure.\n",
          "willReplaceOnChanges": true
        },
        "enableEventTriggeredHa": {
          "type": "boolean",
          "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false.\n"
        },
        "enableIkev2": {
          "type": "boolean",
          "description": "Set as true to enable IKEv2 protocol.\n",
          "willReplaceOnChanges": true
        },
        "enableLearnedCidrsApproval": {
          "type": "boolean",
          "description": "Enable learned CIDRs approval for the connection. Only valid with `connection_type` = 'bgp'. Requires the spoke_gateway's `learned_cidrs_approval_mode` attribute be set to 'connection'. Valid values: true, false. Default value: false.\n"
        },
        "gwName": {
          "type": "string",
          "description": "Aviatrix spoke gateway name.\n",
          "willReplaceOnChanges": true
        },
        "haEnabled": {
          "type": "boolean",
          "description": "Set as true if there are two external devices.\n* `backup_remote_gateway_ip ` - (Optional) Backup remote gateway IP. Required if HA enabled.\n",
          "willReplaceOnChanges": true
        },
        "localTunnelCidr": {
          "type": "string",
          "description": "Source CIDR for the tunnel from the Aviatrix spoke gateway.\n",
          "willReplaceOnChanges": true
        },
        "manualBgpAdvertisedCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Configure manual BGP advertised CIDRs for this connection. Only valid with `connection_type`= 'bgp'.\n"
        },
        "phase1Authentication": {
          "type": "string",
          "description": "Phase one Authentication. Valid values: 'SHA-1', 'SHA-256', 'SHA-384' and 'SHA-512'. Default value: 'SHA-256'.\n",
          "willReplaceOnChanges": true
        },
        "phase1DhGroups": {
          "type": "string",
          "description": "Phase one DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
          "willReplaceOnChanges": true
        },
        "phase1Encryption": {
          "type": "string",
          "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n",
          "willReplaceOnChanges": true
        },
        "phase1RemoteIdentifiers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled.\n"
        },
        "phase2Authentication": {
          "type": "string",
          "description": "Phase two Authentication. Valid values: 'NO-AUTH', 'HMAC-SHA-1', 'HMAC-SHA-256', 'HMAC-SHA-384' and 'HMAC-SHA-512'. Default value: 'HMAC-SHA-256'.\n",
          "willReplaceOnChanges": true
        },
        "phase2DhGroups": {
          "type": "string",
          "description": "Phase two DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
          "willReplaceOnChanges": true
        },
        "phase2Encryption": {
          "type": "string",
          "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n",
          "willReplaceOnChanges": true
        },
        "preSharedKey": {
          "type": "string",
          "description": "Pre-Shared Key.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "prependAsPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection.\n"
        },
        "remoteGatewayIp": {
          "type": "string",
          "description": "Remote gateway IP.\n",
          "willReplaceOnChanges": true
        },
        "remoteSubnet": {
          "type": "string",
          "description": "Remote CIDRs joined as a string with ','. Required for a 'static' type connection.\n",
          "willReplaceOnChanges": true
        },
        "remoteTunnelCidr": {
          "type": "string",
          "description": "Destination CIDR for the tunnel to the external device.\n",
          "willReplaceOnChanges": true
        },
        "tunnelProtocol": {
          "type": "string",
          "description": "Tunnel protocol, only valid with `connection_type` = 'bgp'. Valid values: 'IPsec'. Default value: 'IPsec'. Case insensitive.\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID of the Aviatrix spoke gateway.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "connectionName",
        "gwName",
        "remoteGatewayIp",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering aviatrix_spoke_external_device_conn resources.\n",
        "properties": {
          "approvedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of approved CIDRs. Requires `enable_learned_cidrs_approval` to be true. Type: Set(String).\n"
          },
          "backupBgpMd5Key": {
            "type": "string",
            "description": "Backup BGP MD5 Authentication Key. Valid with HA enabled for connection. Example: 'avx03,avx04'.\n",
            "secret": true
          },
          "backupBgpRemoteAsNum": {
            "type": "string",
            "description": "Backup BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required if HA enabled for 'bgp' connection.\n",
            "willReplaceOnChanges": true
          },
          "backupDirectConnect": {
            "type": "boolean",
            "description": "Backup direct connect for backup external device.\n",
            "willReplaceOnChanges": true
          },
          "backupLocalTunnelCidr": {
            "type": "string",
            "description": "Source CIDR for the tunnel from the backup Aviatrix spoke gateway.\n",
            "willReplaceOnChanges": true
          },
          "backupPreSharedKey": {
            "type": "string",
            "description": "Backup Pre-Shared Key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "backupRemoteGatewayIp": {
            "type": "string",
            "description": "Backup remote gateway IP.\n",
            "willReplaceOnChanges": true
          },
          "backupRemoteTunnelCidr": {
            "type": "string",
            "description": "Destination CIDR for the tunnel to the backup external device.\n",
            "willReplaceOnChanges": true
          },
          "bgpLocalAsNum": {
            "type": "string",
            "description": "BGP local ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
            "willReplaceOnChanges": true
          },
          "bgpMd5Key": {
            "type": "string",
            "description": "BGP MD5 Authentication Key. Example: 'avx01,avx02'.\n",
            "secret": true
          },
          "bgpRemoteAsNum": {
            "type": "string",
            "description": "BGP remote ASN (Autonomous System Number). Integer between 1-4294967294. Required for 'bgp' connection.\n",
            "willReplaceOnChanges": true
          },
          "connectionName": {
            "type": "string",
            "description": "Spoke external device connection name.\n",
            "willReplaceOnChanges": true
          },
          "connectionType": {
            "type": "string",
            "description": "Connection type. Valid values: 'bgp', 'static'. Default value: 'bgp'.\n",
            "willReplaceOnChanges": true
          },
          "customAlgorithms": {
            "type": "boolean",
            "description": "Switch to enable custom/non-default algorithms for IPSec Authentication/Encryption. Valid values: true, false. **NOTE: Please see notes here for more information.**\n",
            "willReplaceOnChanges": true
          },
          "directConnect": {
            "type": "boolean",
            "description": "Set true for private network infrastructure.\n",
            "willReplaceOnChanges": true
          },
          "enableEventTriggeredHa": {
            "type": "boolean",
            "description": "Enable Event Triggered HA. Default value: false. Valid values: true or false.\n"
          },
          "enableIkev2": {
            "type": "boolean",
            "description": "Set as true to enable IKEv2 protocol.\n",
            "willReplaceOnChanges": true
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean",
            "description": "Enable learned CIDRs approval for the connection. Only valid with `connection_type` = 'bgp'. Requires the spoke_gateway's `learned_cidrs_approval_mode` attribute be set to 'connection'. Valid values: true, false. Default value: false.\n"
          },
          "gwName": {
            "type": "string",
            "description": "Aviatrix spoke gateway name.\n",
            "willReplaceOnChanges": true
          },
          "haEnabled": {
            "type": "boolean",
            "description": "Set as true if there are two external devices.\n* `backup_remote_gateway_ip ` - (Optional) Backup remote gateway IP. Required if HA enabled.\n",
            "willReplaceOnChanges": true
          },
          "localTunnelCidr": {
            "type": "string",
            "description": "Source CIDR for the tunnel from the Aviatrix spoke gateway.\n",
            "willReplaceOnChanges": true
          },
          "manualBgpAdvertisedCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Configure manual BGP advertised CIDRs for this connection. Only valid with `connection_type`= 'bgp'.\n"
          },
          "phase1Authentication": {
            "type": "string",
            "description": "Phase one Authentication. Valid values: 'SHA-1', 'SHA-256', 'SHA-384' and 'SHA-512'. Default value: 'SHA-256'.\n",
            "willReplaceOnChanges": true
          },
          "phase1DhGroups": {
            "type": "string",
            "description": "Phase one DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
            "willReplaceOnChanges": true
          },
          "phase1Encryption": {
            "type": "string",
            "description": "Phase one Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", and \"AES-256-GCM-128\". Default value: \"AES-256-CBC\".\n",
            "willReplaceOnChanges": true
          },
          "phase1RemoteIdentifiers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Phase 1 remote identifier of the IPsec tunnel. This can be configured to be either the public IP address or the private IP address of the peer terminating the IPsec tunnel. Example: [\"1.2.3.4\"] when HA is disabled, [\"1.2.3.4\", \"5.6.7.8\"] when HA is enabled.\n"
          },
          "phase2Authentication": {
            "type": "string",
            "description": "Phase two Authentication. Valid values: 'NO-AUTH', 'HMAC-SHA-1', 'HMAC-SHA-256', 'HMAC-SHA-384' and 'HMAC-SHA-512'. Default value: 'HMAC-SHA-256'.\n",
            "willReplaceOnChanges": true
          },
          "phase2DhGroups": {
            "type": "string",
            "description": "Phase two DH Groups. Valid values: '1', '2', '5', '14', '15', '16', '17', '18', '19', '20' and '21'. Default value: '14'.\n",
            "willReplaceOnChanges": true
          },
          "phase2Encryption": {
            "type": "string",
            "description": "Phase two Encryption. Valid values: \"3DES\", \"AES-128-CBC\", \"AES-192-CBC\", \"AES-256-CBC\", \"AES-128-GCM-64\", \"AES-128-GCM-96\", \"AES-128-GCM-128\", \"AES-256-GCM-64\", \"AES-256-GCM-96\", \"AES-256-GCM-128\" and \"NULL-ENCR\". Default value: \"AES-256-CBC\".\n",
            "willReplaceOnChanges": true
          },
          "preSharedKey": {
            "type": "string",
            "description": "Pre-Shared Key.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "prependAsPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Connection AS Path Prepend customized by specifying AS PATH for a BGP connection.\n"
          },
          "remoteGatewayIp": {
            "type": "string",
            "description": "Remote gateway IP.\n",
            "willReplaceOnChanges": true
          },
          "remoteSubnet": {
            "type": "string",
            "description": "Remote CIDRs joined as a string with ','. Required for a 'static' type connection.\n",
            "willReplaceOnChanges": true
          },
          "remoteTunnelCidr": {
            "type": "string",
            "description": "Destination CIDR for the tunnel to the external device.\n",
            "willReplaceOnChanges": true
          },
          "tunnelProtocol": {
            "type": "string",
            "description": "Tunnel protocol, only valid with `connection_type` = 'bgp'. Valid values: 'IPsec'. Default value: 'IPsec'. Case insensitive.\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID of the Aviatrix spoke gateway.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "aviatrix:index/getAviatrixAccount:getAviatrixAccount": {
      "description": "The **aviatrix_account** data source provides details about a specific cloud account created by the Aviatrix Controller.\n\nThis data source can prove useful when a module accepts an account's detail as an input variable.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Account Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixAccount({\n    accountName: \"username\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_account(account_name=\"username\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixAccount.Invoke(new()\n    {\n        AccountName = \"username\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.LookupAviatrixAccount(ctx, \u0026GetAviatrixAccountArgs{\n\t\t\tAccountName: \"username\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixAccountArgs;\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 foo = AviatrixFunctions.getAviatrixAccount(GetAviatrixAccountArgs.builder()\n            .accountName(\"username\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixAccount\n      Arguments:\n        accountName: username\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixAccount.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Account name. This can be used for logging in to CloudN console or UserConnect controller.\n"
          }
        },
        "type": "object",
        "required": [
          "accountName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixAccount.\n",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "alicloudAccountId": {
            "description": "Alibaba Cloud Account ID.\n",
            "type": "string"
          },
          "armSubscriptionId": {
            "description": "Azure ARM Subscription ID.\n",
            "type": "string"
          },
          "awsAccountNumber": {
            "description": "AWS Account number.\n",
            "type": "string"
          },
          "awsCaCertPath": {
            "description": "AWS Top Secret Region or Secret Region Custom Certificate Authority file name on the controller. Available as of provider R2.19.5+.\n",
            "type": "string"
          },
          "awsGatewayRoleApp": {
            "description": "A separate AWS App role ARN to assign to gateways created by the controller. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "awsGatewayRoleEc2": {
            "description": "A separate AWS EC2 role ARN to assign to gateways created by the controller. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "awsRoleArn": {
            "description": "AWS App role ARN.\n",
            "type": "string"
          },
          "awsRoleEc2": {
            "description": "AWS EC2 role ARN.\n",
            "type": "string"
          },
          "awschinaAccountNumber": {
            "description": "AWSChina Account number. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "awschinaIam": {
            "description": "If enabled, `awschina_role_app` and `awschina_role_ec2` will be set. Available as of provider version R2.19+.\n",
            "type": "boolean"
          },
          "awschinaRoleApp": {
            "description": "AWSChina App role ARN. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "awschinaRoleEc2": {
            "description": "AWSChina EC2 role ARN. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "awsgovAccountNumber": {
            "description": "AWSGov Account number.\n",
            "type": "string"
          },
          "awsgovIam": {
            "description": "If enabled, `awsgov_role_app` and `awschina_role_ec2` will be set. Available as of provider version R2.19+.\n",
            "type": "boolean"
          },
          "awsgovRoleApp": {
            "description": "AWSGov App role ARN. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "awsgovRoleEc2": {
            "description": "AWSGov EC2 role ARN. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "awssAccountNumber": {
            "description": "AWS Secret Region Account Number. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awssCapAccountName": {
            "description": "AWS Secret Region Account Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awssCapAgency": {
            "description": "AWS Secret Region CAP Agency. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awssCapCertKeyPath": {
            "description": "AWS Secret Region CAP Certificate Key file name on the controller. Available as of provider R2.19.5+.\n",
            "type": "string"
          },
          "awssCapCertPath": {
            "description": "AWS Secret Region CAP Certificate file name on the controller. Available as of provider R2.19.5+.\n",
            "type": "string"
          },
          "awssCapRoleName": {
            "description": "AWS Secret Region Role Name. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awssCapUrl": {
            "description": "AWS Secret Region CAP Url. Required when creating an account in AWS Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awstsAccountNumber": {
            "description": "AWS Top Secret Region Account Number. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awstsCapAgency": {
            "description": "AWS Top Secret Region CAP Agency. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awstsCapCertKeyPath": {
            "description": "AWS Top Secret Region CAP Certificate Key file name on the controller. Available as of provider R2.19.5+.\n",
            "type": "string"
          },
          "awstsCapCertPath": {
            "type": "string"
          },
          "awstsCapMission": {
            "description": "AWS Top Secret Region Mission. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "awstsCapRoleName": {
            "description": "AWS Top Secret Region Role Name. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n`awsts_cap_cert_path` - AWS Top Secret Region CAP Certificate file name on the controller. Available as of provider R2.19.5+.\n",
            "type": "string"
          },
          "awstsCapUrl": {
            "description": "AWS Top Secret Region CAP Url. Required when creating an account in AWS Top Secret Region. Available as of provider version R2.19.5+.\n",
            "type": "string"
          },
          "azurechinaSubscriptionId": {
            "description": "AzureChina ARM Subscription ID. Available as of provider version R2.19+.\n",
            "type": "string"
          },
          "azuregovSubscriptionId": {
            "description": "AzureGov ARM Subscription ID.\n",
            "type": "string"
          },
          "cloudType": {
            "description": "Type of cloud service provider.\n",
            "type": "integer"
          },
          "gcloudProjectId": {
            "description": "GCloud Project ID.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "alicloudAccountId",
          "armSubscriptionId",
          "awsAccountNumber",
          "awsCaCertPath",
          "awsGatewayRoleApp",
          "awsGatewayRoleEc2",
          "awsRoleArn",
          "awsRoleEc2",
          "awschinaAccountNumber",
          "awschinaIam",
          "awschinaRoleApp",
          "awschinaRoleEc2",
          "awsgovAccountNumber",
          "awsgovIam",
          "awsgovRoleApp",
          "awsgovRoleEc2",
          "awssAccountNumber",
          "awssCapAccountName",
          "awssCapAgency",
          "awssCapCertKeyPath",
          "awssCapCertPath",
          "awssCapRoleName",
          "awssCapUrl",
          "awstsAccountNumber",
          "awstsCapAgency",
          "awstsCapCertKeyPath",
          "awstsCapCertPath",
          "awstsCapMission",
          "awstsCapRoleName",
          "awstsCapUrl",
          "azurechinaSubscriptionId",
          "azuregovSubscriptionId",
          "cloudType",
          "gcloudProjectId",
          "id"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixCallerIdentity:getAviatrixCallerIdentity": {
      "description": "The **aviatrix_caller_identity** data source provides the Aviatrix CID for use in other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Caller Identity Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixCallerIdentity());\n```\n{{% /example %}}\n{{% /examples %}}",
      "outputs": {
        "description": "A collection of values returned by getAviatrixCallerIdentity.\n",
        "properties": {
          "cid": {
            "description": "Aviatrix caller identity.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          }
        },
        "required": [
          "cid",
          "id"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixDeviceInterfaces:getAviatrixDeviceInterfaces": {
      "description": "Use this data source to get the list of device WAN interfaces for use in other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Device Interfaces Data Source\nconst test = pulumi.output(aviatrix.getAviatrixDeviceInterfaces({\n    deviceName: \"test-device\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\ntest = aviatrix.get_aviatrix_device_interfaces(device_name=\"test-device\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Aviatrix.GetAviatrixDeviceInterfaces.Invoke(new()\n    {\n        DeviceName = \"test-device\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.GetAviatrixDeviceInterfaces(ctx, \u0026GetAviatrixDeviceInterfacesArgs{\n\t\t\tDeviceName: \"test-device\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixDeviceInterfacesArgs;\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 test = AviatrixFunctions.getAviatrixDeviceInterfaces(GetAviatrixDeviceInterfacesArgs.builder()\n            .deviceName(\"test-device\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      Function: aviatrix:getAviatrixDeviceInterfaces\n      Arguments:\n        deviceName: test-device\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixDeviceInterfaces.\n",
        "properties": {
          "deviceName": {
            "type": "string",
            "description": "Device name.\n"
          }
        },
        "type": "object",
        "required": [
          "deviceName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixDeviceInterfaces.\n",
        "properties": {
          "deviceName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "wanInterfaces": {
            "description": "List of WAN interfaces.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixDeviceInterfacesWanInterface:getAviatrixDeviceInterfacesWanInterface"
            },
            "type": "array"
          }
        },
        "required": [
          "deviceName",
          "id",
          "wanInterfaces"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixFirenet:getAviatrixFirenet": {
      "description": "The **aviatrix_firenet** data source provides details about a specific FireNet created by the Aviatrix Controller.\n\nThis data source can prove useful when a module accepts a FireNet's detail as an input variable.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix FireNet Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixFirenet({\n    vpcId: \"vpc-abcdef\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_firenet(vpc_id=\"vpc-abcdef\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixFirenet.Invoke(new()\n    {\n        VpcId = \"vpc-abcdef\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.LookupAviatrixFirenet(ctx, \u0026GetAviatrixFirenetArgs{\n\t\t\tVpcId: \"vpc-abcdef\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixFirenetArgs;\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 foo = AviatrixFunctions.getAviatrixFirenet(GetAviatrixFirenetArgs.builder()\n            .vpcId(\"vpc-abcdef\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixFirenet\n      Arguments:\n        vpcId: vpc-abcdef\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixFirenet.\n",
        "properties": {
          "firewallInstanceAssociations": {
            "type": "array",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixFirenetFirewallInstanceAssociation:getAviatrixFirenetFirewallInstanceAssociation"
            },
            "description": "List of firewall instances associated with fireNet.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "ID of the Security VPC.\n"
          }
        },
        "type": "object",
        "required": [
          "vpcId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixFirenet.\n",
        "properties": {
          "egressEnabled": {
            "description": "Enable/Disable egress through firewall.\n",
            "type": "boolean"
          },
          "egressStaticCidrs": {
            "description": "List of egress static CIDRs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "firewallInstanceAssociations": {
            "description": "List of firewall instances associated with fireNet.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixFirenetFirewallInstanceAssociation:getAviatrixFirenetFirewallInstanceAssociation"
            },
            "type": "array"
          },
          "hashingAlgorithm": {
            "description": "(Optional) Hashing algorithm to load balance traffic across the firewall.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "inspectionEnabled": {
            "description": "Enable/Disable traffic inspection.\n",
            "type": "boolean"
          },
          "keepAliveViaLanInterfaceEnabled": {
            "description": "(Optional) Enable Keep Alive via Firewall LAN Interface.\n",
            "type": "boolean"
          },
          "tgwSegmentationForEgressEnabled": {
            "description": "Enable TGW segmentation for egress.\n",
            "type": "boolean"
          },
          "vpcId": {
            "description": "ID of the Security VPC.\n",
            "type": "string"
          }
        },
        "required": [
          "egressEnabled",
          "egressStaticCidrs",
          "hashingAlgorithm",
          "id",
          "inspectionEnabled",
          "keepAliveViaLanInterfaceEnabled",
          "tgwSegmentationForEgressEnabled",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixFirenetFirewallManager:getAviatrixFirenetFirewallManager": {
      "description": "Use this data source to do 'save' or 'sync' for Aviatrix FireNet firewall manager.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix FireNet Firewall Manager Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixFirenetFirewallManager({\n    gatewayName: \"transit\",\n    password: \"password\",\n    publicIp: \"1.2.3.4\",\n    routeTable: \"router\",\n    save: true,\n    template: \"template\",\n    templateStack: \"templatestack\",\n    username: \"admin-api\",\n    vendorType: \"Palo Alto Networks Panorama\",\n    vpcId: \"vpc-abcd123\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_firenet_firewall_manager(gateway_name=\"transit\",\n    password=\"password\",\n    public_ip=\"1.2.3.4\",\n    route_table=\"router\",\n    save=True,\n    template=\"template\",\n    template_stack=\"templatestack\",\n    username=\"admin-api\",\n    vendor_type=\"Palo Alto Networks Panorama\",\n    vpc_id=\"vpc-abcd123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixFirenetFirewallManager.Invoke(new()\n    {\n        GatewayName = \"transit\",\n        Password = \"password\",\n        PublicIp = \"1.2.3.4\",\n        RouteTable = \"router\",\n        Save = true,\n        Template = \"template\",\n        TemplateStack = \"templatestack\",\n        Username = \"admin-api\",\n        VendorType = \"Palo Alto Networks Panorama\",\n        VpcId = \"vpc-abcd123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.GetAviatrixFirenetFirewallManager(ctx, \u0026GetAviatrixFirenetFirewallManagerArgs{\n\t\t\tGatewayName:   \"transit\",\n\t\t\tPassword:      pulumi.StringRef(\"password\"),\n\t\t\tPublicIp:      pulumi.StringRef(\"1.2.3.4\"),\n\t\t\tRouteTable:    pulumi.StringRef(\"router\"),\n\t\t\tSave:          pulumi.BoolRef(true),\n\t\t\tTemplate:      pulumi.StringRef(\"template\"),\n\t\t\tTemplateStack: pulumi.StringRef(\"templatestack\"),\n\t\t\tUsername:      pulumi.StringRef(\"admin-api\"),\n\t\t\tVendorType:    \"Palo Alto Networks Panorama\",\n\t\t\tVpcId:         \"vpc-abcd123\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixFirenetFirewallManagerArgs;\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 foo = AviatrixFunctions.getAviatrixFirenetFirewallManager(GetAviatrixFirenetFirewallManagerArgs.builder()\n            .gatewayName(\"transit\")\n            .password(\"password\")\n            .publicIp(\"1.2.3.4\")\n            .routeTable(\"router\")\n            .save(true)\n            .template(\"template\")\n            .templateStack(\"templatestack\")\n            .username(\"admin-api\")\n            .vendorType(\"Palo Alto Networks Panorama\")\n            .vpcId(\"vpc-abcd123\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixFirenetFirewallManager\n      Arguments:\n        gatewayName: transit\n        password: password\n        publicIp: 1.2.3.4\n        routeTable: router\n        save: true\n        template: template\n        templateStack: templatestack\n        username: admin-api\n        vendorType: Palo Alto Networks Panorama\n        vpcId: vpc-abcd123\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixFirenetFirewallManager.\n",
        "properties": {
          "gatewayName": {
            "type": "string",
            "description": "The FireNet gateway name.\n"
          },
          "numberOfRetries": {
            "type": "integer",
            "description": "Number of retries for `save` or `synchronize`. Example: 1. Default value: 0.\n"
          },
          "password": {
            "type": "string",
            "description": "Panorama login password for API calls. Required for vendor type \"Palo Alto Networks Panorama\".\n",
            "secret": true
          },
          "publicIp": {
            "type": "string",
            "description": "The public IP address of the Panorama instance. Required for vendor type \"Palo Alto Networks Panorama\".\n"
          },
          "retryInterval": {
            "type": "integer",
            "description": "Retry interval in seconds for `save` or `synchronize`. Example: 120. Default value: 300.\n"
          },
          "routeTable": {
            "type": "string",
            "description": "The name of firewall virtual router to program. If left unspecified, the Controller programs the Panorama template’s first router.\n"
          },
          "save": {
            "type": "boolean",
            "description": "Switch to save or not.\n"
          },
          "synchronize": {
            "type": "boolean",
            "description": "Switch to sync or not.\n"
          },
          "template": {
            "type": "string",
            "description": "Panorama template for each FireNet gateway. Required for vendor type \"Palo Alto Networks Panorama\".\n"
          },
          "templateStack": {
            "type": "string",
            "description": "Panorama template stack for each FireNet gateway. Required for vendor type \"Palo Alto Networks Panorama\".\n"
          },
          "username": {
            "type": "string",
            "description": "Panorama login name for API calls from the Controller. Required for vendor type \"Palo Alto Networks Panorama\".\n"
          },
          "vendorType": {
            "type": "string",
            "description": "Vendor type. Valid values: \"Generic\" and \"Palo Alto Networks Panorama\".\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID.\n"
          }
        },
        "type": "object",
        "required": [
          "gatewayName",
          "vendorType",
          "vpcId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixFirenetFirewallManager.\n",
        "properties": {
          "gatewayName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "numberOfRetries": {
            "type": "integer"
          },
          "password": {
            "secret": true,
            "type": "string"
          },
          "publicIp": {
            "type": "string"
          },
          "retryInterval": {
            "type": "integer"
          },
          "routeTable": {
            "type": "string"
          },
          "save": {
            "type": "boolean"
          },
          "synchronize": {
            "type": "boolean"
          },
          "template": {
            "type": "string"
          },
          "templateStack": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "vendorType": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "gatewayName",
          "id",
          "vendorType",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixFirenetVendorIntegration:getAviatrixFirenetVendorIntegration": {
      "description": "Use this data source to do 'save' or 'sync' for vendor integration purposes for Aviatrix FireNet.\n\n\u003e **NOTE:** FireNet with Panorama should be set up using the **aviatrix_firenet_firewall_manager** data source. Do not use `save` or `sync` options listed below.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix FireNet Vendor Integration Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixFirenetVendorIntegration({\n    firewallName: \"Avx-Firewall-Instance\",\n    instanceId: \"i-09ade2592661316f8\",\n    password: \"Avx123456#\",\n    publicIp: \"10.11.12.13\",\n    save: true,\n    username: \"admin\",\n    vendorType: \"Palo Alto Networks VM-Series\",\n    vpcId: \"vpc-abcd123\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_firenet_vendor_integration(firewall_name=\"Avx-Firewall-Instance\",\n    instance_id=\"i-09ade2592661316f8\",\n    password=\"Avx123456#\",\n    public_ip=\"10.11.12.13\",\n    save=True,\n    username=\"admin\",\n    vendor_type=\"Palo Alto Networks VM-Series\",\n    vpc_id=\"vpc-abcd123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixFirenetVendorIntegration.Invoke(new()\n    {\n        FirewallName = \"Avx-Firewall-Instance\",\n        InstanceId = \"i-09ade2592661316f8\",\n        Password = \"Avx123456#\",\n        PublicIp = \"10.11.12.13\",\n        Save = true,\n        Username = \"admin\",\n        VendorType = \"Palo Alto Networks VM-Series\",\n        VpcId = \"vpc-abcd123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.GetAviatrixFirenetVendorIntegration(ctx, \u0026GetAviatrixFirenetVendorIntegrationArgs{\n\t\t\tFirewallName: pulumi.StringRef(\"Avx-Firewall-Instance\"),\n\t\t\tInstanceId:   \"i-09ade2592661316f8\",\n\t\t\tPassword:     pulumi.StringRef(\"Avx123456#\"),\n\t\t\tPublicIp:     pulumi.StringRef(\"10.11.12.13\"),\n\t\t\tSave:         pulumi.BoolRef(true),\n\t\t\tUsername:     pulumi.StringRef(\"admin\"),\n\t\t\tVendorType:   \"Palo Alto Networks VM-Series\",\n\t\t\tVpcId:        \"vpc-abcd123\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixFirenetVendorIntegrationArgs;\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 foo = AviatrixFunctions.getAviatrixFirenetVendorIntegration(GetAviatrixFirenetVendorIntegrationArgs.builder()\n            .firewallName(\"Avx-Firewall-Instance\")\n            .instanceId(\"i-09ade2592661316f8\")\n            .password(\"Avx123456#\")\n            .publicIp(\"10.11.12.13\")\n            .save(true)\n            .username(\"admin\")\n            .vendorType(\"Palo Alto Networks VM-Series\")\n            .vpcId(\"vpc-abcd123\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixFirenetVendorIntegration\n      Arguments:\n        firewallName: Avx-Firewall-Instance\n        instanceId: i-09ade2592661316f8\n        password: Avx123456#\n        publicIp: 10.11.12.13\n        save: true\n        username: admin\n        vendorType: Palo Alto Networks VM-Series\n        vpcId: vpc-abcd123\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixFirenetVendorIntegration.\n",
        "properties": {
          "apiToken": {
            "type": "string",
            "description": "API token for API calls. Required and valid only for vendor type \"Fortinet FortiGate\".\n",
            "secret": true
          },
          "firewallName": {
            "type": "string",
            "description": "Name of firewall instance.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "ID of Firewall instance.\n"
          },
          "numberOfRetries": {
            "type": "integer",
            "description": "Number of retries for `save` or `synchronize`. Example: 1. Default value: 0.\n"
          },
          "password": {
            "type": "string",
            "description": "Firewall login password for API calls. Required for vendor type \"Generic\", \"Palo Alto Networks VM-Series\" and \"Aviatrix FQDN Gateway\".\n",
            "secret": true
          },
          "privateKeyFile": {
            "type": "string",
            "description": "Private key file. Valid only for vendor type \"Check Point Cloud Guard\". Use the `file` function to read from a file.\n",
            "secret": true
          },
          "publicIp": {
            "type": "string",
            "description": "The IP address of the firewall management interface for API calls from the Aviatrix Controller. If not set, the public IP of the firewall instance will be used. If the private IP is provided, please make sure that the controller can access the firewall.\n"
          },
          "retryInterval": {
            "type": "integer",
            "description": "Retry interval in seconds for `save` or `synchronize`. Example: 120. Default value: 300.\n"
          },
          "routeTable": {
            "type": "string",
            "description": "Specify the firewall virtual Router name you wish the Controller to program. If left unspecified, the Controller programs the firewall’s default router.\n"
          },
          "save": {
            "type": "boolean",
            "description": "Switch to save or not.\n"
          },
          "synchronize": {
            "type": "boolean",
            "description": "Switch to sync or not.\n"
          },
          "username": {
            "type": "string",
            "description": "Firewall login name for API calls from the Controller. Required for vendor type \"Generic\", \"Palo Alto Networks VM-Series\" and \"Aviatrix FQDN Gateway\".\n"
          },
          "vendorType": {
            "type": "string",
            "description": "Select PAN. Valid values: \"Generic\", \"Palo Alto Networks VM-Series\", \"Aviatrix FQDN Gateway\" and \"Fortinet FortiGate\".\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId",
          "vendorType",
          "vpcId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixFirenetVendorIntegration.\n",
        "properties": {
          "apiToken": {
            "secret": true,
            "type": "string"
          },
          "firewallName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "numberOfRetries": {
            "type": "integer"
          },
          "password": {
            "secret": true,
            "type": "string"
          },
          "privateKeyFile": {
            "secret": true,
            "type": "string"
          },
          "publicIp": {
            "type": "string"
          },
          "retryInterval": {
            "type": "integer"
          },
          "routeTable": {
            "type": "string"
          },
          "save": {
            "type": "boolean"
          },
          "synchronize": {
            "type": "boolean"
          },
          "username": {
            "type": "string"
          },
          "vendorType": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "instanceId",
          "vendorType",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixFirewall:getAviatrixFirewall": {
      "description": "Use this data source to get the Aviatrix stateful firewall for use in other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Firewall Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixFirewall({\n    gwName: \"gw-abcd\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_firewall(gw_name=\"gw-abcd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixFirewall.Invoke(new()\n    {\n        GwName = \"gw-abcd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.LookupAviatrixFirewall(ctx, \u0026GetAviatrixFirewallArgs{\n\t\t\tGwName: \"gw-abcd\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixFirewallArgs;\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 foo = AviatrixFunctions.getAviatrixFirewall(GetAviatrixFirewallArgs.builder()\n            .gwName(\"gw-abcd\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixFirewall\n      Arguments:\n        gwName: gw-abcd\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixFirewall.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Name of the gateway associated with the firewall.\n"
          }
        },
        "type": "object",
        "required": [
          "gwName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixFirewall.\n",
        "properties": {
          "baseLogEnabled": {
            "description": "Indicates whether logging is enabled or not.\n",
            "type": "boolean"
          },
          "basePolicy": {
            "description": "The firewall's base policy.\n",
            "type": "string"
          },
          "gwName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "policies": {
            "description": "List of policies associated with the firewall.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixFirewallPolicy:getAviatrixFirewallPolicy"
            },
            "type": "array"
          }
        },
        "required": [
          "baseLogEnabled",
          "basePolicy",
          "gwName",
          "id",
          "policies"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixFirewallInstanceImages:getAviatrixFirewallInstanceImages": {
      "description": "Use this data source to get the list of firewall instance images for use in other resources.\n\n**NOTE:** A firenet enabled gateway in a security VPC is required for this data source. \n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Firewall Instance Images Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixFirewallInstanceImages({\n    vpcId: \"vpc-1234567\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_firewall_instance_images(vpc_id=\"vpc-1234567\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixFirewallInstanceImages.Invoke(new()\n    {\n        VpcId = \"vpc-1234567\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.GetAviatrixFirewallInstanceImages(ctx, \u0026GetAviatrixFirewallInstanceImagesArgs{\n\t\t\tVpcId: \"vpc-1234567\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixFirewallInstanceImagesArgs;\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 foo = AviatrixFunctions.getAviatrixFirewallInstanceImages(GetAviatrixFirewallInstanceImagesArgs.builder()\n            .vpcId(\"vpc-1234567\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixFirewallInstanceImages\n      Arguments:\n        vpcId: vpc-1234567\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixFirewallInstanceImages.\n",
        "properties": {
          "vpcId": {
            "type": "string",
            "description": "VPC ID. Example: AWS: \"vpc-abcd1234\", GCP: \"vpc-gcp-test~-~project_id\", Azure: \"vnet_name:rg_name:resource_guid\", OCI: \"vpc-oracle-test1\".\n"
          }
        },
        "type": "object",
        "required": [
          "vpcId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixFirewallInstanceImages.\n",
        "properties": {
          "firewallImages": {
            "description": "List of firewall images.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixFirewallInstanceImagesFirewallImage:getAviatrixFirewallInstanceImagesFirewallImage"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "firewallImages",
          "id",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixGateway:getAviatrixGateway": {
      "description": "The **aviatrix_gateway** data source provides details about a specific gateway created by the Aviatrix Controller.\n\nThis data source can prove useful when a module accepts a gateway's detail as an input variable. For example, requiring the gateway's name configuring a site2cloud connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Gateway Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixGateway({\n    gwName: \"gatewayname\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_gateway(gw_name=\"gatewayname\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixGateway.Invoke(new()\n    {\n        GwName = \"gatewayname\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.LookupAviatrixGateway(ctx, \u0026GetAviatrixGatewayArgs{\n\t\t\tGwName: \"gatewayname\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixGatewayArgs;\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 foo = AviatrixFunctions.getAviatrixGateway(GetAviatrixGatewayArgs.builder()\n            .gwName(\"gatewayname\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixGateway\n      Arguments:\n        gwName: gatewayname\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixGateway.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Gateway name.\n"
          }
        },
        "type": "object",
        "required": [
          "gwName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixGateway.\n",
        "properties": {
          "accountName": {
            "description": "Aviatrix account name.\n",
            "type": "string"
          },
          "additionalCidrs": {
            "description": "A list of destination CIDR ranges that will also go through the VPN tunnel when Split Tunnel Mode is enabled.\n",
            "type": "string"
          },
          "additionalCidrsDesignatedGateway": {
            "description": "A list of CIDR ranges separated by comma to configure when 'designated_gateway' feature is enabled.\n",
            "type": "string"
          },
          "allocateNewEip": {
            "description": "When value is false, an idle address in Elastic IP pool is reused for this gateway. Otherwise, a new Elastic IP is allocated and used for this gateway.\n",
            "type": "boolean"
          },
          "availabilityDomain": {
            "description": "Availability domain for OCI.\n",
            "type": "string"
          },
          "azureEipNameResourceGroup": {
            "type": "string"
          },
          "cloudInstanceId": {
            "description": "Instance ID of the gateway.\n",
            "type": "string"
          },
          "cloudType": {
            "description": "Type of cloud service provider.\n",
            "type": "integer"
          },
          "duoApiHostname": {
            "description": "API hostname for DUO auth mode.\n",
            "type": "string"
          },
          "duoIntegrationKey": {
            "description": "Integration key for DUO auth mode.\n",
            "type": "string"
          },
          "duoPushMode": {
            "description": "Push mode for DUO auth.\n",
            "type": "string"
          },
          "elbDnsName": {
            "description": "ELB DNS Name.\n",
            "type": "string"
          },
          "elbName": {
            "description": "Name of the ELB created.\n",
            "type": "string"
          },
          "enableDesignatedGateway": {
            "description": "Status of Designated Gateway feature for Gateway.\n",
            "type": "boolean"
          },
          "enableElb": {
            "description": "Status of ELB for the gateway.\n",
            "type": "boolean"
          },
          "enableEncryptVolume": {
            "description": "Enable encrypt gateway EBS volume. Only supported for AWS provider.\n",
            "type": "boolean"
          },
          "enableJumboFrame": {
            "type": "boolean"
          },
          "enableLdap": {
            "description": "Status LDAP or not.\n",
            "type": "boolean"
          },
          "enableMonitorGatewaySubnets": {
            "type": "boolean"
          },
          "enablePublicSubnetFiltering": {
            "type": "boolean"
          },
          "enableSpotInstance": {
            "type": "boolean"
          },
          "enableVpcDnsServer": {
            "description": "Status of VPC Dns Server for Gateway.\n",
            "type": "boolean"
          },
          "enableVpnNat": {
            "description": "Status of VPN NAT.\n",
            "type": "boolean"
          },
          "faultDomain": {
            "description": "Fault domain for OCI.\n",
            "type": "string"
          },
          "fqdnLanCidr": {
            "type": "string"
          },
          "fqdnLanInterface": {
            "type": "string"
          },
          "fqdnLanVpcId": {
            "type": "string"
          },
          "gwName": {
            "description": "Aviatrix gateway name.\n",
            "type": "string"
          },
          "gwSize": {
            "description": "Size of gateway Instance.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "idleTimeout": {
            "type": "integer"
          },
          "imageVersion": {
            "description": "The image version of the gateway.\n",
            "type": "string"
          },
          "insaneMode": {
            "description": "Status of Insane Mode for Gateway.\n",
            "type": "boolean"
          },
          "insaneModeAz": {
            "description": "AZ of subnet being created for Insane Mode gateway.\n",
            "type": "string"
          },
          "ldapBaseDn": {
            "description": "LDAP base DN.\n",
            "type": "string"
          },
          "ldapBindDn": {
            "description": "LDAP bind DN.\n",
            "type": "string"
          },
          "ldapServer": {
            "description": "LDAP server address.\n",
            "type": "string"
          },
          "ldapUsernameAttribute": {
            "description": "LDAP user attribute.\n",
            "type": "string"
          },
          "maxVpnConn": {
            "description": "Maximum connection of VPN access.\n",
            "type": "string"
          },
          "monitorExcludeLists": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "nameServers": {
            "description": "A list of DNS servers used to resolve domain names by a connected VPN user when Split Tunnel Mode is enabled.\n",
            "type": "string"
          },
          "oktaUrl": {
            "description": "URL for Okta auth mode.\n",
            "type": "string"
          },
          "oktaUsernameSuffix": {
            "description": "Username suffix for Okta auth mode.\n",
            "type": "string"
          },
          "otpMode": {
            "description": "Two step authentication mode.\n",
            "type": "string"
          },
          "peeringHaAvailabilityDomain": {
            "description": "HA gateway availability domain for OCI.\n",
            "type": "string"
          },
          "peeringHaAzureEipNameResourceGroup": {
            "type": "string"
          },
          "peeringHaCloudInstanceId": {
            "description": "Instance ID of the peering HA gateway.\n",
            "type": "string"
          },
          "peeringHaFaultDomain": {
            "description": "HA gateway fault domain for OCI.\n",
            "type": "string"
          },
          "peeringHaGwName": {
            "description": "Aviatrix gateway unique name of HA gateway.\n",
            "type": "string"
          },
          "peeringHaGwSize": {
            "description": "Peering HA Gateway Size.\n",
            "type": "string"
          },
          "peeringHaImageVersion": {
            "description": "The image version of the HA gateway.\n",
            "type": "string"
          },
          "peeringHaInsaneModeAz": {
            "description": "AZ of subnet being created for Insane Mode Peering HA Gateway. Required if insane_mode is set.\n",
            "type": "string"
          },
          "peeringHaPrivateIp": {
            "description": "Private IP address of HA gateway.\n",
            "type": "string"
          },
          "peeringHaPublicIp": {
            "description": "Public IP address that you want assigned to the HA peering instance.\n",
            "type": "string"
          },
          "peeringHaSecurityGroupId": {
            "type": "string"
          },
          "peeringHaSoftwareVersion": {
            "description": "The software version of the HA gateway.\n",
            "type": "string"
          },
          "peeringHaSubnet": {
            "description": "Public Subnet Information while creating Peering HA Gateway, only subnet is accepted. Required to create peering ha gateway if cloud_type = 1 or 8 (AWS or Azure).\n",
            "type": "string"
          },
          "peeringHaZone": {
            "description": "Zone information for creating Peering HA Gateway. Required to create peering ha gateway if cloud_type = 4 (GCP).\n",
            "type": "string"
          },
          "privateIp": {
            "description": "Private IP address of the Gateway created.\n",
            "type": "string"
          },
          "publicDnsServer": {
            "description": "NS server used by the gateway.\n",
            "type": "string"
          },
          "publicIp": {
            "description": "Public IP address of the Gateway created.\n",
            "type": "string"
          },
          "publicSubnetFilteringGuardDutyEnforced": {
            "type": "boolean"
          },
          "publicSubnetFilteringHaRouteTables": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publicSubnetFilteringRouteTables": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "renegotiationInterval": {
            "type": "integer"
          },
          "samlEnabled": {
            "description": "Status of SAML.\n",
            "type": "boolean"
          },
          "searchDomains": {
            "description": "A list of domain names that will use the NameServer when a specific name is not in the destination when Split Tunnel Mode is enabled.\n",
            "type": "string"
          },
          "securityGroupId": {
            "description": "Security group used for the gateway.\n",
            "type": "string"
          },
          "singleAzHa": {
            "description": "Status of Single AZ HA.\n",
            "type": "boolean"
          },
          "singleIpSnat": {
            "description": "Single IP Source NAT status for the container.\n",
            "type": "boolean"
          },
          "softwareVersion": {
            "description": "The software version of the gateway.\n",
            "type": "string"
          },
          "splitTunnel": {
            "description": "Status of split tunnel mode.\n",
            "type": "boolean"
          },
          "spotPrice": {
            "type": "string"
          },
          "subnet": {
            "description": "A VPC Network address range selected from one of the available network ranges.\n",
            "type": "string"
          },
          "tagLists": {
            "description": "Instance tag of cloud provider.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "tunnelDetectionTime": {
            "type": "integer"
          },
          "vpcId": {
            "description": "VPC-ID/VNet-Name of cloud provider.\n",
            "type": "string"
          },
          "vpcReg": {
            "description": "Region of cloud provider.\n",
            "type": "string"
          },
          "vpnAccess": {
            "description": "Status of user access through VPN to the container.\n",
            "type": "boolean"
          },
          "vpnCidr": {
            "description": "VPN CIDR block for the container.\n",
            "type": "string"
          },
          "vpnProtocol": {
            "description": "ELB protocol for VPN gateway with ELB enabled.\n",
            "type": "string"
          },
          "zone": {
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "additionalCidrs",
          "additionalCidrsDesignatedGateway",
          "allocateNewEip",
          "availabilityDomain",
          "azureEipNameResourceGroup",
          "cloudInstanceId",
          "cloudType",
          "duoApiHostname",
          "duoIntegrationKey",
          "duoPushMode",
          "elbDnsName",
          "elbName",
          "enableDesignatedGateway",
          "enableElb",
          "enableEncryptVolume",
          "enableJumboFrame",
          "enableLdap",
          "enableMonitorGatewaySubnets",
          "enablePublicSubnetFiltering",
          "enableSpotInstance",
          "enableVpcDnsServer",
          "enableVpnNat",
          "faultDomain",
          "fqdnLanCidr",
          "fqdnLanInterface",
          "fqdnLanVpcId",
          "gwName",
          "gwSize",
          "id",
          "idleTimeout",
          "imageVersion",
          "insaneMode",
          "insaneModeAz",
          "ldapBaseDn",
          "ldapBindDn",
          "ldapServer",
          "ldapUsernameAttribute",
          "maxVpnConn",
          "monitorExcludeLists",
          "nameServers",
          "oktaUrl",
          "oktaUsernameSuffix",
          "otpMode",
          "peeringHaAvailabilityDomain",
          "peeringHaAzureEipNameResourceGroup",
          "peeringHaCloudInstanceId",
          "peeringHaFaultDomain",
          "peeringHaGwName",
          "peeringHaGwSize",
          "peeringHaImageVersion",
          "peeringHaInsaneModeAz",
          "peeringHaPrivateIp",
          "peeringHaPublicIp",
          "peeringHaSecurityGroupId",
          "peeringHaSoftwareVersion",
          "peeringHaSubnet",
          "peeringHaZone",
          "privateIp",
          "publicDnsServer",
          "publicIp",
          "publicSubnetFilteringGuardDutyEnforced",
          "publicSubnetFilteringHaRouteTables",
          "publicSubnetFilteringRouteTables",
          "renegotiationInterval",
          "samlEnabled",
          "searchDomains",
          "securityGroupId",
          "singleAzHa",
          "singleIpSnat",
          "softwareVersion",
          "splitTunnel",
          "spotPrice",
          "subnet",
          "tagLists",
          "tags",
          "tunnelDetectionTime",
          "vpcId",
          "vpcReg",
          "vpnAccess",
          "vpnCidr",
          "vpnProtocol",
          "zone"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixGatewayImage:getAviatrixGatewayImage": {
      "description": "The **aviatrix_gateway_image** data source provides the current image version that pairs with the given software version\nand cloud type.\n\nThis data source is useful for getting the correct image_version for a gateway when upgrading the software_version of\nthe gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixGatewayArgs;\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 foo = AviatrixFunctions.getAviatrixGateway(GetAviatrixGatewayArgs.builder()\n            .cloudType(aviatrix_spoke_gateway.spoke().cloud_type())\n            .softwareVersion(aviatrix_spoke_gateway.spoke().software_version())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixGateway\n      Arguments:\n        cloudType: ${aviatrix_spoke_gateway.spoke.cloud_type}\n        softwareVersion: ${aviatrix_spoke_gateway.spoke.software_version}\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Gateway Image Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixGateway({\n    cloudType: 4,\n    softwareVersion: \"6.4.2487\",\n}));\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixGatewayArgs;\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 foo = AviatrixFunctions.getAviatrixGateway(GetAviatrixGatewayArgs.builder()\n            .cloudType(4)\n            .softwareVersion(\"6.4.2487\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixGateway\n      Arguments:\n        cloudType: 4\n        softwareVersion: 6.4.2487\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixGatewayImage.\n",
        "properties": {
          "cloudType": {
            "type": "integer",
            "description": "Cloud type. Type: Integer. Example: 1 (AWS)\n"
          },
          "softwareVersion": {
            "type": "string",
            "description": "Software version. Type: String. Example: \"6.4.2487\"\n"
          }
        },
        "type": "object",
        "required": [
          "cloudType",
          "softwareVersion"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixGatewayImage.\n",
        "properties": {
          "cloudType": {
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageVersion": {
            "description": "Image version that is compatible with the given cloud_type and software_version.\n",
            "type": "string"
          },
          "softwareVersion": {
            "type": "string"
          }
        },
        "required": [
          "cloudType",
          "id",
          "imageVersion",
          "softwareVersion"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixNetworkDomains:getAviatrixNetworkDomains": {
      "description": "The **aviatrix_network_domains** data source provides details about all Network Domains created by the Aviatrix Controller. Available as of provider version 2.23+.\n\n{{% examples %}}\n## Example Usage\n\n ```hcl\n # Aviatrix All Network Domains Data Source\n data \"aviatrix_network_domains\" \"foo\" {}\n ```\n{{% /examples %}}",
      "outputs": {
        "description": "A collection of values returned by getAviatrixNetworkDomains.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "networkDomains": {
            "description": "The list of all Network Domains\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixNetworkDomainsNetworkDomain:getAviatrixNetworkDomainsNetworkDomain"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "networkDomains"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixSpokeGateway:getAviatrixSpokeGateway": {
      "description": "The **aviatrix_spoke_gateway** data source provides details about a specific spoke gateway created by the Aviatrix Controller.\n\nThis data source can prove useful when a module accepts a spoke gateway's detail as an input variable.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Spoke Gateway Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixSpokeGateway({\n    gwName: \"gatewayname\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_spoke_gateway(gw_name=\"gatewayname\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixSpokeGateway.Invoke(new()\n    {\n        GwName = \"gatewayname\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.LookupAviatrixSpokeGateway(ctx, \u0026GetAviatrixSpokeGatewayArgs{\n\t\t\tGwName: \"gatewayname\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixSpokeGatewayArgs;\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 foo = AviatrixFunctions.getAviatrixSpokeGateway(GetAviatrixSpokeGatewayArgs.builder()\n            .gwName(\"gatewayname\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixSpokeGateway\n      Arguments:\n        gwName: gatewayname\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixSpokeGateway.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Spoke gateway name. It can be used for getting spoke gateway.\n"
          }
        },
        "type": "object",
        "required": [
          "gwName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixSpokeGateway.\n",
        "properties": {
          "accountName": {
            "description": "Aviatrix account name.\n",
            "type": "string"
          },
          "allocateNewEip": {
            "description": "When value is false, an idle address in Elastic IP pool is reused for this gateway. Otherwise, a new Elastic IP is allocated and used for this gateway.\n",
            "type": "boolean"
          },
          "approvedLearnedCidrs": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "availabilityDomain": {
            "description": "Availability domain for OCI.\n",
            "type": "string"
          },
          "azureEipNameResourceGroup": {
            "type": "string"
          },
          "bgpEcmp": {
            "type": "boolean"
          },
          "bgpHoldTime": {
            "type": "integer"
          },
          "bgpPollingTime": {
            "type": "integer"
          },
          "cloudInstanceId": {
            "description": "Cloud instance ID.\n",
            "type": "string"
          },
          "cloudType": {
            "description": "Type of cloud service provider.\n",
            "type": "integer"
          },
          "customizedSpokeVpcRoutes": {
            "description": "A list of comma separated CIDRs to be customized for the spoke VPC routes.\n",
            "type": "string"
          },
          "disableRoutePropagation": {
            "type": "boolean"
          },
          "eip": {
            "description": "The EIP address of the Spoke Gateway.\n",
            "type": "string"
          },
          "enableActiveStandby": {
            "type": "boolean"
          },
          "enableActiveStandbyPreemptive": {
            "type": "boolean"
          },
          "enableAutoAdvertiseS2cCidrs": {
            "type": "boolean"
          },
          "enableBgp": {
            "type": "boolean"
          },
          "enableEncryptVolume": {
            "description": "Status of Encrypt Volume of spoke gateway.\n",
            "type": "boolean"
          },
          "enableJumboFrame": {
            "type": "boolean"
          },
          "enableLearnedCidrsApproval": {
            "type": "boolean"
          },
          "enableMonitorGatewaySubnets": {
            "type": "boolean"
          },
          "enablePrivateOob": {
            "description": "Status of private OOB for the spoke gateway.\n",
            "type": "boolean"
          },
          "enablePrivateVpcDefaultRoute": {
            "type": "boolean"
          },
          "enableSkipPublicRouteTableUpdate": {
            "type": "boolean"
          },
          "enableSpotInstance": {
            "type": "boolean"
          },
          "enableVpcDnsServer": {
            "description": "Status of VPC Dns Server of spoke gateway.\n",
            "type": "boolean"
          },
          "faultDomain": {
            "description": "Fault domain for OCI.\n",
            "type": "string"
          },
          "filteredSpokeVpcRoutes": {
            "description": "A list of comma separated CIDRs to be filtered from the spoke VPC route table.\n",
            "type": "string"
          },
          "gwName": {
            "description": "Aviatrix spoke gateway name.\n",
            "type": "string"
          },
          "gwSize": {
            "description": "Size of spoke gateway instance.\n",
            "type": "string"
          },
          "haAvailabilityDomain": {
            "description": "HA gateway availability domain for OCI.\n",
            "type": "string"
          },
          "haAzureEipNameResourceGroup": {
            "type": "string"
          },
          "haCloudInstanceId": {
            "description": "Cloud instance ID of HA spoke gateway.\n",
            "type": "string"
          },
          "haEip": {
            "description": "The EIP address of the HA Spoke Gateway.\n",
            "type": "string"
          },
          "haFaultDomain": {
            "description": "HA gateway fault domain for OCI.\n",
            "type": "string"
          },
          "haGwName": {
            "description": "Aviatrix spoke gateway unique name of HA spoke gateway.\n",
            "type": "string"
          },
          "haGwSize": {
            "description": "HA Gateway Size.\n",
            "type": "string"
          },
          "haImageVersion": {
            "description": "The image version of the HA gateway.\n",
            "type": "string"
          },
          "haInsaneModeAz": {
            "description": "AZ of subnet being created for Insane Mode Spoke HA Gateway.\n",
            "type": "string"
          },
          "haOobAvailabilityZone": {
            "description": "HA OOB availability zone.\n",
            "type": "string"
          },
          "haOobManagementSubnet": {
            "description": "HA OOB management subnet.\n",
            "type": "string"
          },
          "haPrivateIp": {
            "description": "Private IP address of HA spoke gateway.\n",
            "type": "string"
          },
          "haPublicIp": {
            "description": "Public IP address of the HA spoke gateway.\n",
            "type": "string"
          },
          "haSecurityGroupId": {
            "type": "string"
          },
          "haSoftwareVersion": {
            "description": "The software version of the HA gateway.\n",
            "type": "string"
          },
          "haSubnet": {
            "description": "HA Subnet.\n",
            "type": "string"
          },
          "haZone": {
            "description": "HA Zone.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageVersion": {
            "description": "The image version of the gateway.\n",
            "type": "string"
          },
          "includedAdvertisedSpokeRoutes": {
            "description": "A list of comma separated CIDRs to be advertised to on-prem as \"Included CIDR List\".\n",
            "type": "string"
          },
          "insaneMode": {
            "description": "Status of Insane Mode for Spoke Gateway.\n",
            "type": "boolean"
          },
          "insaneModeAz": {
            "description": "AZ of subnet being created for Insane Mode spoke gateway.\n",
            "type": "string"
          },
          "learnedCidrsApprovalMode": {
            "type": "string"
          },
          "localAsNumber": {
            "type": "string"
          },
          "monitorExcludeLists": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "oobAvailabilityZone": {
            "description": "OOB availability zone.\n",
            "type": "string"
          },
          "oobManagementSubnet": {
            "description": "OOB management subnet.\n",
            "type": "string"
          },
          "prependAsPaths": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "privateIp": {
            "description": "Private IP address of the spoke gateway.\n",
            "type": "string"
          },
          "publicIp": {
            "description": "Public IP of spoke gateway.\n",
            "type": "string"
          },
          "securityGroupId": {
            "description": "Security group used of the spoke gateway.\n",
            "type": "string"
          },
          "singleAzHa": {
            "description": "Status of Single AZ HA of spoke gateway.\n",
            "type": "boolean"
          },
          "singleIpSnat": {
            "description": "Status of Single IP Source NAT mode of the spoke gateway.\n",
            "type": "boolean"
          },
          "softwareVersion": {
            "description": "The software version of the gateway.\n",
            "type": "string"
          },
          "spokeBgpManualAdvertiseCidrs": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "spotPrice": {
            "type": "string"
          },
          "subnet": {
            "description": "A VPC Network address range selected from one of the available network ranges.\n",
            "type": "string"
          },
          "tagLists": {
            "description": "Instance tag of cloud provider.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "transitGw": {
            "description": "Transit gateways attached to this spoke gateway.\n",
            "type": "string"
          },
          "tunnelDetectionTime": {
            "type": "integer"
          },
          "vpcId": {
            "description": "VPC-ID/VNet-Name of cloud provider.\n",
            "type": "string"
          },
          "vpcReg": {
            "description": "Region of cloud provider.\n",
            "type": "string"
          },
          "zone": {
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "allocateNewEip",
          "approvedLearnedCidrs",
          "availabilityDomain",
          "azureEipNameResourceGroup",
          "bgpEcmp",
          "bgpHoldTime",
          "bgpPollingTime",
          "cloudInstanceId",
          "cloudType",
          "customizedSpokeVpcRoutes",
          "disableRoutePropagation",
          "eip",
          "enableActiveStandby",
          "enableActiveStandbyPreemptive",
          "enableAutoAdvertiseS2cCidrs",
          "enableBgp",
          "enableEncryptVolume",
          "enableJumboFrame",
          "enableLearnedCidrsApproval",
          "enableMonitorGatewaySubnets",
          "enablePrivateOob",
          "enablePrivateVpcDefaultRoute",
          "enableSkipPublicRouteTableUpdate",
          "enableSpotInstance",
          "enableVpcDnsServer",
          "faultDomain",
          "filteredSpokeVpcRoutes",
          "gwName",
          "gwSize",
          "haAvailabilityDomain",
          "haAzureEipNameResourceGroup",
          "haCloudInstanceId",
          "haEip",
          "haFaultDomain",
          "haGwName",
          "haGwSize",
          "haImageVersion",
          "haInsaneModeAz",
          "haOobAvailabilityZone",
          "haOobManagementSubnet",
          "haPrivateIp",
          "haPublicIp",
          "haSecurityGroupId",
          "haSoftwareVersion",
          "haSubnet",
          "haZone",
          "id",
          "imageVersion",
          "includedAdvertisedSpokeRoutes",
          "insaneMode",
          "insaneModeAz",
          "learnedCidrsApprovalMode",
          "localAsNumber",
          "monitorExcludeLists",
          "oobAvailabilityZone",
          "oobManagementSubnet",
          "prependAsPaths",
          "privateIp",
          "publicIp",
          "securityGroupId",
          "singleAzHa",
          "singleIpSnat",
          "softwareVersion",
          "spokeBgpManualAdvertiseCidrs",
          "spotPrice",
          "subnet",
          "tagLists",
          "tags",
          "transitGw",
          "tunnelDetectionTime",
          "vpcId",
          "vpcReg",
          "zone"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixSpokeGatewayInspectionSubnets:getAviatrixSpokeGatewayInspectionSubnets": {
      "description": "The **aviatrix_spoke_gateway_inspection_subnets** data source provides all subnets available for the subnet inspection feature.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Spoke Gateway Inspection Subnets Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixSpokeGatewayInspectionSubnets({\n    gwName: \"gatewayname\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_spoke_gateway_inspection_subnets(gw_name=\"gatewayname\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixSpokeGatewayInspectionSubnets.Invoke(new()\n    {\n        GwName = \"gatewayname\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.GetAviatrixSpokeGatewayInspectionSubnets(ctx, \u0026GetAviatrixSpokeGatewayInspectionSubnetsArgs{\n\t\t\tGwName: \"gatewayname\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixSpokeGatewayInspectionSubnetsArgs;\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 foo = AviatrixFunctions.getAviatrixSpokeGatewayInspectionSubnets(GetAviatrixSpokeGatewayInspectionSubnetsArgs.builder()\n            .gwName(\"gatewayname\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixSpokeGatewayInspectionSubnets\n      Arguments:\n        gwName: gatewayname\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixSpokeGatewayInspectionSubnets.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Spoke gateway name.\n"
          }
        },
        "type": "object",
        "required": [
          "gwName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixSpokeGatewayInspectionSubnets.\n",
        "properties": {
          "gwName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "subnetsForInspections": {
            "description": "The list of all subnets available for the subnet inspection feature. This attribute is only supported for Azure.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "gwName",
          "id",
          "subnetsForInspections"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixTransitGateway:getAviatrixTransitGateway": {
      "description": "The **aviatrix_transit_gateway** data source provides details about a specific transit gateway created by the Aviatrix Controller.\n\nThis data source can prove useful when a module accepts a transit gateway's detail as an input variable. For example, requiring the transit gateway's name for a spoke gateway's attachment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix Transit Gateway Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixTransitGateway({\n    gwName: \"gatewayname\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_transit_gateway(gw_name=\"gatewayname\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixTransitGateway.Invoke(new()\n    {\n        GwName = \"gatewayname\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.LookupAviatrixTransitGateway(ctx, \u0026GetAviatrixTransitGatewayArgs{\n\t\t\tGwName: \"gatewayname\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixTransitGatewayArgs;\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 foo = AviatrixFunctions.getAviatrixTransitGateway(GetAviatrixTransitGatewayArgs.builder()\n            .gwName(\"gatewayname\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixTransitGateway\n      Arguments:\n        gwName: gatewayname\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixTransitGateway.\n",
        "properties": {
          "gwName": {
            "type": "string",
            "description": "Transit gateway name.\n"
          }
        },
        "type": "object",
        "required": [
          "gwName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixTransitGateway.\n",
        "properties": {
          "accountName": {
            "description": "Aviatrix account name.\n",
            "type": "string"
          },
          "allocateNewEip": {
            "description": "When value is false, an idle address in Elastic IP pool is reused for this gateway. Otherwise, a new Elastic IP is allocated and used for this gateway.\n",
            "type": "boolean"
          },
          "approvedLearnedCidrs": {
            "description": "Approved learned CIDRs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "availabilityDomain": {
            "description": "Availability domain for OCI.\n",
            "type": "string"
          },
          "azureEipNameResourceGroup": {
            "description": "The name of the public IP address and its resource group in Azure to assign to this Transit Gateway.\n",
            "type": "string"
          },
          "bgpEcmp": {
            "description": "Status of Equal Cost Multi Path (ECMP) routing for the next hop.\n",
            "type": "boolean"
          },
          "bgpHoldTime": {
            "description": "BGP Hold Time.\n",
            "type": "integer"
          },
          "bgpLanInterfaces": {
            "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixTransitGatewayBgpLanInterface:getAviatrixTransitGatewayBgpLanInterface"
            },
            "type": "array"
          },
          "bgpLanIpLists": {
            "description": "List of available BGP LAN interface IPs for transit external device connection creation. Only supports GCP and Azure.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bgpManualSpokeAdvertiseCidrs": {
            "description": "Intended CIDR list to advertise to VGW.\n",
            "type": "string"
          },
          "bgpPollingTime": {
            "description": "BGP route polling time.\n",
            "type": "string"
          },
          "cloudInstanceId": {
            "description": "Instance ID of the transit gateway.\n",
            "type": "string"
          },
          "cloudType": {
            "description": "Type of cloud service provider.\n* `connected_transit\"` -  Status of Connected Transit of transit gateway.\n",
            "type": "integer"
          },
          "connectedTransit": {
            "type": "boolean"
          },
          "customizedSpokeVpcRoutes": {
            "description": "A list of comma separated CIDRs to be customized for the spoke VPC routes.\n",
            "type": "string"
          },
          "customizedTransitVpcRoutes": {
            "description": "A list of CIDRs to be customized for the transit VPC routes.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "eip": {
            "description": "The EIP address of the Transit Gateway.\n",
            "type": "string"
          },
          "enableActiveStandby": {
            "description": "Status of Active-Standby Mode.\n",
            "type": "boolean"
          },
          "enableActiveStandbyPreemptive": {
            "description": "Status of Preemptive Mode for Active-Standby.\n",
            "type": "boolean"
          },
          "enableAdvertiseTransitCidr": {
            "description": "Status of Advertise Transit VPC network CIDR of the transit gateway.\n",
            "type": "boolean"
          },
          "enableBgpOverLan": {
            "description": "Status of BGP over LAN functionality.\n",
            "type": "boolean"
          },
          "enableEgressTransitFirenet": {
            "description": "Status of Egress Transit FireNet being enabled on the gateway.\n",
            "type": "boolean"
          },
          "enableEncryptVolume": {
            "description": "Status of Encrypt Gateway EBS Volume of the transit gateway.\n",
            "type": "boolean"
          },
          "enableFirenet": {
            "description": "Status of FireNet Interfaces of the transit gateway.\n",
            "type": "boolean"
          },
          "enableGatewayLoadBalancer": {
            "description": "Status of AWS Gateway Load Balancer.\n",
            "type": "boolean"
          },
          "enableHybridConnection": {
            "description": "Sign of readiness for TGW connection.\n",
            "type": "boolean"
          },
          "enableJumboFrame": {
            "description": "Status of jumbo frame support.\n",
            "type": "boolean"
          },
          "enableLearnedCidrsApproval": {
            "description": "Status of Encrypted Transit Approval for transit gateway.\n",
            "type": "boolean"
          },
          "enableMonitorGatewaySubnets": {
            "description": "Status of monitor gateway subnets.\n",
            "type": "boolean"
          },
          "enableMultiTierTransit": {
            "description": "Status of multi-tier transit mode on transit gateway.\n",
            "type": "boolean"
          },
          "enablePrivateOob": {
            "description": "Status of private OOB for the transit gateway.\n",
            "type": "boolean"
          },
          "enableSegmentation": {
            "description": "Status of segmentation.\n",
            "type": "boolean"
          },
          "enableSpotInstance": {
            "description": "Status of spot instance.\n",
            "type": "boolean"
          },
          "enableTransitFirenet": {
            "description": "Status of Transit FireNet Interfaces of the transit gateway.\n",
            "type": "boolean"
          },
          "enableTransitSummarizeCidrToTgw": {
            "description": "Status of transit summarize CIDR to TGW.\n",
            "type": "boolean"
          },
          "enableVpcDnsServer": {
            "description": "Status of Vpc Dns Server of the transit Gateway.\n",
            "type": "boolean"
          },
          "excludedAdvertisedSpokeRoutes": {
            "description": "A list of comma separated CIDRs to be advertised to on-prem as \"Excluded CIDR List\".\n",
            "type": "string"
          },
          "faultDomain": {
            "description": "Fault domain for OCI.\n",
            "type": "string"
          },
          "filteredSpokeVpcRoutes": {
            "description": "A list of comma separated CIDRs to be filtered from the spoke VPC route table.\n",
            "type": "string"
          },
          "gwName": {
            "description": "Aviatrix transit gateway name.\n",
            "type": "string"
          },
          "gwSize": {
            "description": "Size of transit gateway instance.\n",
            "type": "string"
          },
          "haAvailabilityDomain": {
            "description": "HA gateway availability domain for OCI.\n",
            "type": "string"
          },
          "haAzureEipNameResourceGroup": {
            "description": "The name of the public IP address and its resource group in Azure to assign to the HA Transit Gateway.\n",
            "type": "string"
          },
          "haBgpLanInterfaces": {
            "description": "Interfaces to run BGP protocol on top of the ethernet interface, to connect to the onprem/remote peer. Only available for GCP HA Transit.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixTransitGatewayHaBgpLanInterface:getAviatrixTransitGatewayHaBgpLanInterface"
            },
            "type": "array"
          },
          "haBgpLanIpLists": {
            "description": "List of available BGP LAN interface IPs for transit external device HA connection creation. Only supports GCP and Azure.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "haCloudInstanceId": {
            "description": "Cloud instance ID of HA transit gateway.\n",
            "type": "string"
          },
          "haEip": {
            "description": "The EIP address of the HA Transit Gateway.\n",
            "type": "string"
          },
          "haFaultDomain": {
            "description": "HA gateway fault domain for OCI.\n",
            "type": "string"
          },
          "haGwName": {
            "description": "Aviatrix transit gateway unique name of HA transit gateway.\n* `ha_gw_size\"` - HA Gateway Size.\n",
            "type": "string"
          },
          "haGwSize": {
            "type": "string"
          },
          "haImageVersion": {
            "description": "The image version of the HA gateway.\n",
            "type": "string"
          },
          "haInsaneModeAz": {
            "description": "AZ of subnet being created for Insane Mode Transit HA Gateway.\n",
            "type": "string"
          },
          "haLanInterfaceCidr": {
            "description": "Transit gateway lan interface cidr for the HA gateway.\n",
            "type": "string"
          },
          "haOobAvailabilityZone": {
            "description": "HA OOB availability zone.\n",
            "type": "string"
          },
          "haOobManagementSubnet": {
            "description": "HA OOB management subnet.\n",
            "type": "string"
          },
          "haPrivateIp": {
            "description": "Private IP address that assigned to the HA Transit Gateway.\n",
            "type": "string"
          },
          "haPublicIp": {
            "description": "Public IP address that assigned to the HA Transit Gateway.\n",
            "type": "string"
          },
          "haSecurityGroupId": {
            "description": "HA security group used for the transit gateway.\n",
            "type": "string"
          },
          "haSoftwareVersion": {
            "description": "The software version of the HA gateway.\n",
            "type": "string"
          },
          "haSubnet": {
            "description": "HA Subnet.\n",
            "type": "string"
          },
          "haZone": {
            "description": "HA Zone.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageVersion": {
            "description": "The image version of the gateway.\n",
            "type": "string"
          },
          "insaneMode": {
            "description": "Status of Insane Mode of the transit gateway.\n",
            "type": "boolean"
          },
          "insaneModeAz": {
            "description": "AZ of subnet being created for Insane Mode transit gateway.\n",
            "type": "string"
          },
          "lanInterfaceCidr": {
            "description": "Transit gateway lan interface cidr.\n",
            "type": "string"
          },
          "lanPrivateSubnet": {
            "description": "LAN Private Subnet for GCP Transit FireNet.\n",
            "type": "string"
          },
          "lanVpcId": {
            "description": "LAN VPC ID for GCP Transit FireNet.\n",
            "type": "string"
          },
          "learnedCidrsApprovalMode": {
            "description": "Learned CIDRs approval mode.\n",
            "type": "string"
          },
          "localAsNumber": {
            "description": "Local ASN number.\n",
            "type": "string"
          },
          "monitorExcludeLists": {
            "description": "A set of monitored instance IDs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "oobAvailabilityZone": {
            "description": "OOB availability zone.\n",
            "type": "string"
          },
          "oobManagementSubnet": {
            "description": "OOB management subnet.\n",
            "type": "string"
          },
          "prependAsPaths": {
            "description": "List of AS numbers to populate BGP AP_PATH field when it advertises to VGW or peer devices.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "privateIp": {
            "description": "Private IP address of the transit gateway created.\n",
            "type": "string"
          },
          "publicIp": {
            "description": "Public IP address of the Transit Gateway created.\n",
            "type": "string"
          },
          "securityGroupId": {
            "description": "Security group used for the transit gateway.\n",
            "type": "string"
          },
          "singleAzHa": {
            "description": "Status of Single AZ HA of transit gateway.\n",
            "type": "boolean"
          },
          "singleIpSnat": {
            "description": "Status of Single IP Source Nat mode of the transit gateway.\n",
            "type": "boolean"
          },
          "softwareVersion": {
            "description": "The software version of the gateway.\n",
            "type": "string"
          },
          "spotPrice": {
            "description": "Price for spot instance.\n",
            "type": "string"
          },
          "subnet": {
            "description": "Subnet Info.\n",
            "type": "string"
          },
          "tagLists": {
            "description": "Instance tag of cloud provider.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "tunnelDetectionTime": {
            "type": "integer"
          },
          "vpcId": {
            "description": "VPC-ID of GCP cloud provider.\n",
            "type": "string"
          },
          "vpcReg": {
            "description": "Region of cloud provider.\n",
            "type": "string"
          },
          "zone": {
            "description": "Availability Zone for Azure.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "allocateNewEip",
          "approvedLearnedCidrs",
          "availabilityDomain",
          "azureEipNameResourceGroup",
          "bgpEcmp",
          "bgpHoldTime",
          "bgpLanInterfaces",
          "bgpLanIpLists",
          "bgpManualSpokeAdvertiseCidrs",
          "bgpPollingTime",
          "cloudInstanceId",
          "cloudType",
          "connectedTransit",
          "customizedSpokeVpcRoutes",
          "customizedTransitVpcRoutes",
          "eip",
          "enableActiveStandby",
          "enableActiveStandbyPreemptive",
          "enableAdvertiseTransitCidr",
          "enableBgpOverLan",
          "enableEgressTransitFirenet",
          "enableEncryptVolume",
          "enableFirenet",
          "enableGatewayLoadBalancer",
          "enableHybridConnection",
          "enableJumboFrame",
          "enableLearnedCidrsApproval",
          "enableMonitorGatewaySubnets",
          "enableMultiTierTransit",
          "enablePrivateOob",
          "enableSegmentation",
          "enableSpotInstance",
          "enableTransitFirenet",
          "enableTransitSummarizeCidrToTgw",
          "enableVpcDnsServer",
          "excludedAdvertisedSpokeRoutes",
          "faultDomain",
          "filteredSpokeVpcRoutes",
          "gwName",
          "gwSize",
          "haAvailabilityDomain",
          "haAzureEipNameResourceGroup",
          "haBgpLanInterfaces",
          "haBgpLanIpLists",
          "haCloudInstanceId",
          "haEip",
          "haFaultDomain",
          "haGwName",
          "haGwSize",
          "haImageVersion",
          "haInsaneModeAz",
          "haLanInterfaceCidr",
          "haOobAvailabilityZone",
          "haOobManagementSubnet",
          "haPrivateIp",
          "haPublicIp",
          "haSecurityGroupId",
          "haSoftwareVersion",
          "haSubnet",
          "haZone",
          "id",
          "imageVersion",
          "insaneMode",
          "insaneModeAz",
          "lanInterfaceCidr",
          "lanPrivateSubnet",
          "lanVpcId",
          "learnedCidrsApprovalMode",
          "localAsNumber",
          "monitorExcludeLists",
          "oobAvailabilityZone",
          "oobManagementSubnet",
          "prependAsPaths",
          "privateIp",
          "publicIp",
          "securityGroupId",
          "singleAzHa",
          "singleIpSnat",
          "softwareVersion",
          "spotPrice",
          "subnet",
          "tagLists",
          "tags",
          "tunnelDetectionTime",
          "vpcId",
          "vpcReg",
          "zone"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixTransitGateways:getAviatrixTransitGateways": {
      "description": "The **aviatrix_transit_gateways** data source provides details about all transit gateways created by the Aviatrix Controller.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix All Transit Gateways Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixTransitGateways());\n```\n{{% /example %}}\n{{% /examples %}}",
      "outputs": {
        "description": "A collection of values returned by getAviatrixTransitGateways.\n",
        "properties": {
          "gatewayLists": {
            "description": "The list of all transit gateways\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixTransitGatewaysGatewayList:getAviatrixTransitGatewaysGatewayList"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          }
        },
        "required": [
          "gatewayLists",
          "id"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixVpc:getAviatrixVpc": {
      "description": "The **aviatrix_vpc** data source provides details about a specific VPC created by the Aviatrix Controller.\n\nThis data source can prove useful when a module accepts any form of VPC detail as an input variable. For example, requiring a subnet CIDR specification when creating a gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix VPC Data Source\nconst test = pulumi.output(aviatrix.getAviatrixVpc({\n    name: \"vpc-test\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\ntest = aviatrix.get_aviatrix_vpc(name=\"vpc-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Aviatrix.GetAviatrixVpc.Invoke(new()\n    {\n        Name = \"vpc-test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.LookupAviatrixVpc(ctx, \u0026GetAviatrixVpcArgs{\n\t\t\tName: \"vpc-test\",\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixVpcArgs;\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 test = AviatrixFunctions.getAviatrixVpc(GetAviatrixVpcArgs.builder()\n            .name(\"vpc-test\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      Function: aviatrix:getAviatrixVpc\n      Arguments:\n        name: vpc-test\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixVpc.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the Aviatrix VPC.\n"
          },
          "routeTablesFilter": {
            "type": "string",
            "description": "Filters the `route_tables` list to contain only public or private route tables. Valid values are 'private' or 'public'. If not set `route_tables` is not filtered.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixVpc.\n",
        "properties": {
          "accountName": {
            "description": "Account name of the VPC created.\n",
            "type": "string"
          },
          "availabilityDomains": {
            "description": "List of OCI availability domains.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "aviatrixFirenetVpc": {
            "description": "Switch if the VPC created is an Aviatrix FireNet VPC or not.\n",
            "type": "boolean"
          },
          "aviatrixTransitVpc": {
            "description": "Switch if the VPC created is an Aviatrix Transit VPC or not.\n",
            "type": "boolean"
          },
          "azureVnetResourceId": {
            "description": "Azure vnet resource ID.\n",
            "type": "string"
          },
          "cidr": {
            "description": "Private subnet CIDR.\n",
            "type": "string"
          },
          "cloudType": {
            "description": "Type of cloud service provider.\n",
            "type": "integer"
          },
          "faultDomains": {
            "description": "List of OCI fault domains.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Private subnet name.\n",
            "type": "string"
          },
          "numOfSubnetPairs": {
            "description": "Number of public subnet and private subnet pair created. Only supported for AWS, Azure provider.\n",
            "type": "integer"
          },
          "privateSubnets": {
            "description": "List of private subnet of the VPC(AWS, Azure) created.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixVpcPrivateSubnet:getAviatrixVpcPrivateSubnet"
            },
            "type": "array"
          },
          "publicSubnets": {
            "description": "List of public subnet of the VPC(AWS, Azure) created.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixVpcPublicSubnet:getAviatrixVpcPublicSubnet"
            },
            "type": "array"
          },
          "region": {
            "description": "Region of the VPC created.\n",
            "type": "string"
          },
          "resourceGroup": {
            "description": "Resource group of the Azure VPC created.\n",
            "type": "string"
          },
          "routeTables": {
            "description": "List of route table ids associated with this VPC. Only populated for AWS, AWSGov and Azure vpc.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "routeTablesFilter": {
            "type": "string"
          },
          "subnetSize": {
            "description": "Subnet size. Only supported for AWS, Azure provider.\n",
            "type": "integer"
          },
          "subnets": {
            "description": "List of subnet of the VPC created.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixVpcSubnet:getAviatrixVpcSubnet"
            },
            "type": "array"
          },
          "vpcId": {
            "description": "ID of the VPC created.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "availabilityDomains",
          "aviatrixFirenetVpc",
          "aviatrixTransitVpc",
          "azureVnetResourceId",
          "cidr",
          "cloudType",
          "faultDomains",
          "id",
          "name",
          "numOfSubnetPairs",
          "privateSubnets",
          "publicSubnets",
          "region",
          "resourceGroup",
          "routeTables",
          "subnetSize",
          "subnets",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "aviatrix:index/getAviatrixVpcTracker:getAviatrixVpcTracker": {
      "description": "Use this data source to get the list of VPC's for use in other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aviatrix from \"@pulumi/aviatrix\";\n\n// Aviatrix VPC Tracker Data Source\nconst foo = pulumi.output(aviatrix.getAviatrixVpcTracker({\n    accountName: \"bar\",\n    cidr: \"10.0.0.1/24\",\n    cloudType: 1,\n    region: \"us-west-1\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aviatrix as aviatrix\n\nfoo = aviatrix.get_aviatrix_vpc_tracker(account_name=\"bar\",\n    cidr=\"10.0.0.1/24\",\n    cloud_type=1,\n    region=\"us-west-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aviatrix = Pulumi.Aviatrix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = Aviatrix.GetAviatrixVpcTracker.Invoke(new()\n    {\n        AccountName = \"bar\",\n        Cidr = \"10.0.0.1/24\",\n        CloudType = 1,\n        Region = \"us-west-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/astipkovits/pulumi-aviatrix/sdk/go/aviatrix\"\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 = aviatrix.GetAviatrixVpcTracker(ctx, \u0026GetAviatrixVpcTrackerArgs{\n\t\t\tAccountName: pulumi.StringRef(\"bar\"),\n\t\t\tCidr:        pulumi.StringRef(\"10.0.0.1/24\"),\n\t\t\tCloudType:   pulumi.IntRef(1),\n\t\t\tRegion:      pulumi.StringRef(\"us-west-1\"),\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.aviatrix.AviatrixFunctions;\nimport com.pulumi.aviatrix.inputs.GetAviatrixVpcTrackerArgs;\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 foo = AviatrixFunctions.getAviatrixVpcTracker(GetAviatrixVpcTrackerArgs.builder()\n            .accountName(\"bar\")\n            .cidr(\"10.0.0.1/24\")\n            .cloudType(1)\n            .region(\"us-west-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      Function: aviatrix:getAviatrixVpcTracker\n      Arguments:\n        accountName: bar\n        cidr: 10.0.0.1/24\n        cloudType: 1\n        region: us-west-1\n```\n{{% /example %}}\n{{% /examples %}}\n## Notes\n\n* Please be aware this data source could take up to 20 minutes to refresh depending on the number of VPCs and cloud accounts.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAviatrixVpcTracker.\n",
        "properties": {
          "accountName": {
            "type": "string",
            "description": "Filters VPC list by access account name.\n"
          },
          "cidr": {
            "type": "string",
            "description": "Filters VPC list by CIDR (AWS/Azure only).\n"
          },
          "cloudType": {
            "type": "integer",
            "description": "Filters VPC list by cloud provider id. For example, cloud_type = 1 will give all AWS VPCs.\n"
          },
          "region": {
            "type": "string",
            "description": "Filters VPC list by region (AWS/Azure only).\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAviatrixVpcTracker.\n",
        "properties": {
          "accountName": {
            "description": "Aviatrix access account associated with the VPC.\n",
            "type": "string"
          },
          "cidr": {
            "description": "Subnet CIDR.\n",
            "type": "string"
          },
          "cloudType": {
            "description": "Cloud provider id hosting this VPC.\n",
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "region": {
            "description": "Subnet region.\n",
            "type": "string"
          },
          "vpcLists": {
            "description": "List of VPCs from the VPC tracker.\n",
            "items": {
              "$ref": "#/types/aviatrix:index%2FgetAviatrixVpcTrackerVpcList:getAviatrixVpcTrackerVpcList"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "vpcLists"
        ],
        "type": "object"
      }
    }
  }
}
