Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand

Downloads:

17

Downloads of v 1.3.0:

17

Last Update:

14 Jul 2024

Published Date:

14 Jul 2024

Package Maintainer(s):

Software Author(s):

  • Zscaler

Tags:

terraformer terraform

Zscaler-Terraformer

(Ready for review)

  • 1
  • 2
  • 3

1.3.0 | Updated: 14 Jul 2024

Downloads:

17

Downloads of v 1.3.0:

17

Published:

14 Jul 2024

Maintainer(s):

Software Author(s):

  • Zscaler

Zscaler-Terraformer 1.3.0

(Ready for review)
  • 1
  • 2
  • 3

Some Checks Have Failed or Are Not Yet Complete

Not All Tests Have Passed


Validation Testing Passed


Verification Testing Passed

Details

Scan Testing Resulted in Flagged as a Note:

At least one file within this package has greater than 0 detections, but less than 5

Details
IMPORTANT

This version is in moderation and has not yet been approved. This means it doesn't show up under normal search.

  • Until approved, you should consider this package version unsafe - it could do very bad things to your system (it probably doesn't but you have been warned, that's why we have moderation).
  • This package version can change wildly over the course of moderation until it is approved. If you install it and it later has changes to this version, you will be out of sync with any changes that have been made to the package. Until approved, you should consider that this package version doesn't even exist.
  • You cannot install this package under normal scenarios. See How to install package version under moderation for more information.
  • There are also no guarantees that it will be approved.
WARNING

There are versions of this package awaiting moderation (possibly just this one). See the Version History section below.

bd-devrel (maintainer) on 13 Jul 2024 08:18:44 +00:00:

User 'bd-devrel' (maintainer) submitted package.

chocolatey-ops (reviewer) on 13 Jul 2024 08:50:49 +00:00:

zscaler-terraformer has failed automated validation.

Requirements

Requirements represent the minimum quality of a package that is acceptable. When a package version has failed requirements, the package version requires fixing and/or response by the maintainer. Provided a Requirement has flagged correctly, it must be fixed before the package version can be approved. The exact same version should be uploaded during moderation review.

  • Binary files (.exe, .msi, .zip, etc) have been included without including a LICENSE.txt file. This file is required when including binaries More...
  • Directly importing the Chocolatey PowerShell Module is not allowed in automation scripts. Please remove it. This can flag also based on the use of the word 'chocolateyInstaller.psm1' in comments. More...
  • Binary files (.exe, .msi, .zip) have been included without including a VERIFICATION.txt file. This file is required when including binaries More...
Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • The nuspec has been enhanced to allow packageSourceUrl, pointing to the url where the package source resides. This is a strong guideline because it simplifies collaboration. Please add it to the nuspec. More...
  • Release Notes (releaseNotes) are a short description of changes in each version of a package. Please include releasenotes in the nuspec. NOTE: To prevent the need to continually update this field, providing a URL to an external list of Release Notes is perfectly acceptable. More...
Suggestions

Suggestions are either newly introduced items that will later become Guidelines or items that are don't carry enough weight to become a Guideline. Either way they should be considered. A package version can be approved without addressing Suggestion comments.

  • The nuspec has been enhanced to allow more information related to the software. More... Please consider adding one or more of the following to the nuspec, if available:
    • docsUrl - points to the location of the wiki or docs of the software
    • mailingListUrl - points to the forum or email list group for the software
    • bugTrackerUrl - points to the location where issues and tickets can be accessed
    • projectSourceUrl - points to the location of the underlying software source
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Binary files (.exe, .msi, .zip) have been included. The reviewer will ensure the maintainers have distribution rights. More...
  • The LicenseUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...
  • The ProjectUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...

bd-devrel (maintainer) on 13 Jul 2024 22:03:34 +00:00:

It is unclear what exactly is the reason for the rejection. We have reviewed the package according to the rules and we don't see any specific issues.

Validation Status Change - Validation tests have been set to rerun.

chocolatey-ops (reviewer) on 13 Jul 2024 22:06:27 +00:00:

zscaler-terraformer has failed automated validation.

Requirements

Requirements represent the minimum quality of a package that is acceptable. When a package version has failed requirements, the package version requires fixing and/or response by the maintainer. Provided a Requirement has flagged correctly, it must be fixed before the package version can be approved. The exact same version should be uploaded during moderation review.

  • Binary files (.exe, .msi, .zip, etc) have been included without including a LICENSE.txt file. This file is required when including binaries More...
  • Directly importing the Chocolatey PowerShell Module is not allowed in automation scripts. Please remove it. This can flag also based on the use of the word 'chocolateyInstaller.psm1' in comments. More...
  • Binary files (.exe, .msi, .zip) have been included without including a VERIFICATION.txt file. This file is required when including binaries More...
Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • The nuspec has been enhanced to allow packageSourceUrl, pointing to the url where the package source resides. This is a strong guideline because it simplifies collaboration. Please add it to the nuspec. More...
  • Release Notes (releaseNotes) are a short description of changes in each version of a package. Please include releasenotes in the nuspec. NOTE: To prevent the need to continually update this field, providing a URL to an external list of Release Notes is perfectly acceptable. More...
Suggestions

Suggestions are either newly introduced items that will later become Guidelines or items that are don't carry enough weight to become a Guideline. Either way they should be considered. A package version can be approved without addressing Suggestion comments.

  • The nuspec has been enhanced to allow more information related to the software. More... Please consider adding one or more of the following to the nuspec, if available:
    • docsUrl - points to the location of the wiki or docs of the software
    • mailingListUrl - points to the forum or email list group for the software
    • bugTrackerUrl - points to the location where issues and tickets can be accessed
    • projectSourceUrl - points to the location of the underlying software source
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Binary files (.exe, .msi, .zip) have been included. The reviewer will ensure the maintainers have distribution rights. More...
  • The LicenseUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...
  • The ProjectUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...

bd-devrel (maintainer) on 13 Jul 2024 22:10:23 +00:00:

Simple execute
choco install zscaler-terraformer
Validation Status Change - Validation tests have been set to rerun.

bd-devrel (maintainer) on 13 Jul 2024 22:10:25 +00:00:

Simple execute
choco install zscaler-terraformer
Validation Status Change - Validation tests have been set to rerun.

chocolatey-ops (reviewer) on 13 Jul 2024 22:11:39 +00:00:

zscaler-terraformer has failed automated validation.

Requirements

Requirements represent the minimum quality of a package that is acceptable. When a package version has failed requirements, the package version requires fixing and/or response by the maintainer. Provided a Requirement has flagged correctly, it must be fixed before the package version can be approved. The exact same version should be uploaded during moderation review.

  • Binary files (.exe, .msi, .zip, etc) have been included without including a LICENSE.txt file. This file is required when including binaries More...
  • Directly importing the Chocolatey PowerShell Module is not allowed in automation scripts. Please remove it. This can flag also based on the use of the word 'chocolateyInstaller.psm1' in comments. More...
  • Binary files (.exe, .msi, .zip) have been included without including a VERIFICATION.txt file. This file is required when including binaries More...
Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • The nuspec has been enhanced to allow packageSourceUrl, pointing to the url where the package source resides. This is a strong guideline because it simplifies collaboration. Please add it to the nuspec. More...
  • Release Notes (releaseNotes) are a short description of changes in each version of a package. Please include releasenotes in the nuspec. NOTE: To prevent the need to continually update this field, providing a URL to an external list of Release Notes is perfectly acceptable. More...
Suggestions

Suggestions are either newly introduced items that will later become Guidelines or items that are don't carry enough weight to become a Guideline. Either way they should be considered. A package version can be approved without addressing Suggestion comments.

  • The nuspec has been enhanced to allow more information related to the software. More... Please consider adding one or more of the following to the nuspec, if available:
    • docsUrl - points to the location of the wiki or docs of the software
    • mailingListUrl - points to the forum or email list group for the software
    • bugTrackerUrl - points to the location where issues and tickets can be accessed
    • projectSourceUrl - points to the location of the underlying software source
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Binary files (.exe, .msi, .zip) have been included. The reviewer will ensure the maintainers have distribution rights. More...
  • The LicenseUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...
  • The ProjectUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...

bd-devrel (maintainer) on 14 Jul 2024 04:59:47 +00:00:

User 'bd-devrel' (maintainer) submitted package.

chocolatey-ops (reviewer) on 14 Jul 2024 05:34:47 +00:00:

zscaler-terraformer has failed automated validation.

Requirements

Requirements represent the minimum quality of a package that is acceptable. When a package version has failed requirements, the package version requires fixing and/or response by the maintainer. Provided a Requirement has flagged correctly, it must be fixed before the package version can be approved. The exact same version should be uploaded during moderation review.

  • Directly importing the Chocolatey PowerShell Module is not allowed in automation scripts. Please remove it. This can flag also based on the use of the word 'chocolateyInstaller.psm1' in comments. More...
  • Binary files (.exe, .msi, .zip) have been included without including a VERIFICATION.txt file. This file is required when including binaries More...
Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • ProjectUrl and ProjectSourceUrl are typically different, but not always. Please ensure that projectSourceUrl is pointing to software source code or remove the field from the nuspec. More...
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Binary files (.exe, .msi, .zip) have been included. The reviewer will ensure the maintainers have distribution rights. More...

bd-devrel (maintainer) on 14 Jul 2024 06:28:44 +00:00:

User 'bd-devrel' (maintainer) submitted package.

chocolatey-ops (reviewer) on 14 Jul 2024 07:02:03 +00:00:

zscaler-terraformer has passed automated validation. It may have or may still fail other checks like testing (verification).
NOTE: No required changes that the validator checks have been flagged! It is appreciated if you fix other items, but only Requirements will hold up a package version from approval. A human review could still turn up issues a computer may not easily find.

Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • ProjectUrl and ProjectSourceUrl are typically different, but not always. Please ensure that projectSourceUrl is pointing to software source code or remove the field from the nuspec. More...
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Binary files (.exe, .msi, .zip) have been included. The reviewer will ensure the maintainers have distribution rights. More...

chocolatey-ops (reviewer) on 14 Jul 2024 07:15:57 +00:00:

zscaler-terraformer has passed automated package testing (verification). The next step in the process is package scanning.
Please visit https://gist.github.com/choco-bot/85d43e2a8174cc51be5fb83055cd58a9 for details.
This is an FYI only. There is no action you need to take.

chocolatey-ops (reviewer) on 14 Jul 2024 07:34:52 +00:00:

zscaler-terraformer has been flagged as part of automated virus scanning.
Package virus scanning found that at least 1 file within, or downloaded by, the package has between 1 and 5 VirusTotal detections associated with it.
This is not enough detections to prevent the approval of this package version.

bd-devrel (maintainer) on 14 Jul 2024 08:01:14 +00:00:

User 'bd-devrel' (maintainer) submitted package.

chocolatey-ops (reviewer) on 14 Jul 2024 08:37:14 +00:00:

zscaler-terraformer has passed automated validation. It may have or may still fail other checks like testing (verification).
NOTE: No required changes that the validator checks have been flagged! It is appreciated if you fix other items, but only Requirements will hold up a package version from approval. A human review could still turn up issues a computer may not easily find.

Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • ProjectUrl and ProjectSourceUrl are typically different, but not always. Please ensure that projectSourceUrl is pointing to software source code or remove the field from the nuspec. More...
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Binary files (.exe, .msi, .zip) have been included. The reviewer will ensure the maintainers have distribution rights. More...

chocolatey-ops (reviewer) on 14 Jul 2024 08:40:30 +00:00:

zscaler-terraformer has passed automated package testing (verification). The next step in the process is package scanning.
Please visit https://gist.github.com/choco-bot/e15e8312473b6d2d2799acc17d23b52f for details.
This is an FYI only. There is no action you need to take.

chocolatey-ops (reviewer) on 14 Jul 2024 08:47:45 +00:00:

zscaler-terraformer has been flagged as part of automated virus scanning.
Package virus scanning found that at least 1 file within, or downloaded by, the package has between 1 and 5 VirusTotal detections associated with it.
This is not enough detections to prevent the approval of this package version.

Description

CLI tool to generate terraform files from existing ZPA and ZIA.


tools\chocolateyinstall.ps1
function Log {
    param (
        [string]$message
    )
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    Write-Output "$timestamp - $message"
}

function Exit-WithError {
    param (
        [string]$message
    )
    Log $message
    throw $message
}

Log "Starting installation script."

$packageName = 'zscaler-terraformer'
$toolsDir = "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)"
$unzipLocation = "$toolsDir\$packageName"

Log "Tools directory: $toolsDir"
Log "Unzip location: $unzipLocation"

# Hardcoding to 64-bit amd64 architecture
$zipFile = "$toolsDir\zscaler-terraformer_1.3.0_windows_amd64.zip"
Log "Selected zip file: $zipFile"

# Checksum and download verification
$checksum = '84408b4496a87298d70d955f3c300571ba5ed7559ab3d967ef02e6efe41e5fd0'
$url = 'https://github.com/zscaler/zscaler-terraformer/releases/download/v1.3.0/zscaler-terraformer_1.3.0_windows_amd64.zip'
$destination = $zipFile

Log "Downloading $packageName from $url"
try {
    Get-ChocolateyWebFile -PackageName $packageName -FileFullPath $destination -Url64bit $url -Checksum64 $checksum -ChecksumType64 sha256
    Log "Downloaded and verified $packageName"
} catch {
    Exit-WithError "Error during download and verification: $_"
}

# Verify the selected zip file path
if (-not (Test-Path $destination)) {
    Exit-WithError "Zip file not found: $destination"
}
Log "Verified zip file exists."

# Verify the unzip location
if (-not (Test-Path $unzipLocation)) {
    try {
        New-Item -Path $unzipLocation -ItemType Directory -Force
        Log "Created unzip location: $unzipLocation"
    } catch {
        Exit-WithError "Failed to create unzip location: $unzipLocation"
    }
}

# Unzip the package manually
Log "Starting to unzip package."
try {
    Get-ChocolateyUnzip -FileFullPath $destination -Destination $unzipLocation
    Log "Finished unzipping package."
} catch {
    Log "Error during unzipping: $_"
    throw
}

# Post-unzip steps (if any)
# Example: Moving the executable to a directory in the system PATH
try {
    $exePath = "$unzipLocation\zscaler-terraformer.exe"
    $destinationPath = "C:\Program Files\zscaler-terraformer"
    if (-not (Test-Path $destinationPath)) {
        New-Item -Path $destinationPath -ItemType Directory -Force
    }
    Move-Item -Path $exePath -Destination $destinationPath
    Log "Moved executable to $destinationPath"
} catch {
    Log "Error during post-unzipping steps: $_"
    throw
}

Log "Installation script completed successfully."
tools\chocolateyuninstall.ps1
$installPath = "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)\zscaler-terraformer"

if (Test-Path $installPath) {
    Remove-Item -Recurse -Force $installPath
}
tools\zscaler-terraformer\CHANGELOG.md
# Changelog

## 1.3.0 (July, 10 2024)

### Notes

- Release date: **(July, 10 2024)**
- Supported Terraform version: **v1.x.x**

### Enhancements
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). The tool now creates a ``outputs.tf`` file containg the `id` export of each invidual exported resource.
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). The tool now displays a message when the resource import is successful.
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). The following new flag has been introduced `--supported-resources=`. When using the following syntax: `zscaler-terraformer --supported-resources="zpa"` or `zscaler-terraformer --supported-resources="zia"` a list of all current supported resources is displayed in table format.
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). The tool now displays a warning message when the imported resource contain attributes that may carry sensitive values i.e `passwords`. Notice that the value is not included in the HCL code for security reasons.
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Re-introduced support for the import of the following resources:
    - `zpa_application_segment_browser_access`
    - `zpa_application_segment_inspection`
    - `zpa_application_segment_pra`

- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Introduced support for the import of the following ZPA Privileged Remote Access resources:
    - `zpa_pra_approval_controller`
    - `zpa_pra_console_controller`
    - `zpa_pra_credential_controller`
    - `zpa_pra_portal_controller`

- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Introduced support for the import of the following Cloud Browser Isolation resources:
    - `zpa_cloud_browser_isolation_banner`
    - `zpa_cloud_browser_isolation_certificate`
    - `zpa_cloud_browser_isolation_external_profile`

### Bug Fixes
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Fixed issues with credential with inline credential authentication.
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Fixed importing of ZIA resource ``zia_dlp_web_rules`` attribute blocks:
    - `icap_server`
    - `notification_templates`
    - `auditor`
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Fixed importing of ZPA resource ``zpa_inspection_custom_controls`` `rules` block.
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Fixed authentication methods to support both environment variables and inline credentials.

### Deprecations
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213) Deprecated the following ZIA resources:
    - `zia_user_management`
    - `zia_admin_users`
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213) Temporary deprecation of the resources: `zpa_inspection_profile`

- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213) Deprecated support to authentication via ``credentials.json`` file. The Tool now supports environment variables and inline based credentials. See [README](https://github.com/zscaler/zscaler-terraformer?tab=readme-ov-file#authentication) for further details.

### Internal Changes
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). The tool introduced two new internal environment variables for development purposes: ``ZPA_PROVIDER_NAMESPACE`` and ``ZIA_PROVIDER_NAMESPACE``. By setting these enviornment variables it allows a developer to leverage a local Terraform Provider installation for testing purposes. i.e ``export ZPA_PROVIDER_NAMESPACE=zscaler.com/zpa/zpa``. This will force the tool to use a local provider binary installation. If not set, then the tool will download the latest version of the provider from the Terraform registry.
- [PR #213](https://github.com/zscaler/zscaler-terraformer/pull/213). Implemented new code structure for better code management.

## 1.2.1 (June, 13 2024)

### Notes

- Release date: **(June, 13 2024)**
- Supported Terraform version: **v1.x.x**

### Fixes
- [PR #203](https://github.com/zscaler/zscaler-terraformer/pull/203) Improved the command ``zscaler-terraformer version`` output to display the CLI version, terraform version and latest available version.

## 1.2.0 (June, 7 2024)

### Notes

- Release date: **(June, 7 2024)**
- Supported Terraform version: **v1.x.x**

### Deprecations
- [PR #199](https://github.com/zscaler/zscaler-terraformer/pull/199) Deprecated the following ZPA resource:
    - `zpa_cloud_browser_isolation_banner`
    - `zpa_cloud_browser_isolation_certificate`
    - `zpa_cloud_browser_isolation_external_profile`

### Fixes
- [PR #199](https://github.com/zscaler/zscaler-terraformer/pull/199) Implemented fix to resource `zpa_microtenant_controller`, to ignore the importing of `Default` Microtenant.

## 1.1.3 (May, 18 2024)

### Notes

- Release date: **(May, 18 2024)**
- Supported Terraform version: **v1.x.x**

### Fixes
- [PR #191](https://github.com/zscaler/zscaler-terraformer/pull/191) Fixed ZPA `provisioning_key` computed attribute. The attribute is now excluded from the HCL generation during the import process.

- [PR #191](https://github.com/zscaler/zscaler-terraformer/pull/191) Fixed ZPA `zpa_service_edge_group` to convert `is_public` attribute to expected bool format.

- [PR #191](https://github.com/zscaler/zscaler-terraformer/pull/191) Fixed ZPA `zpa_service_edge_group` to properly convert nested attribute blocks `service_edge` and `trusted_networks`

## 1.1.2 (May, 17 2024)

### Notes

- Release date: **(May, 17 2024)**
- Supported Terraform version: **v1.x.x**

### Fixes
- [PR #190](https://github.com/zscaler/zscaler-terraformer/pull/190) Fixed ZPA `provisioning_key` computed attribute. The attribute is now excluded from the HCL generation during the import process.

## 1.1.1 (May, 7 2024)

### Notes

- Release date: **(May, 7 2024)**
- Supported Terraform version: **v1.x.x**

### Fixes
- [PR #187](https://github.com/zscaler/zscaler-terraformer/pull/187) Fixed importing issue with `zia_url_filtering_rules` attributes: `override_users` and `override_groups`. Attributes are now correctly imported as a list of IDs.

## 1.1.0 (March, 7 2024)

### Notes

- Release date: **(March, 7 2024)**
- Supported Terraform version: **v1.x.x**

### Enhancements

- [PR #176](https://github.com/zscaler/zscaler-terraformer/pull/176) Updated [support guide](/docs/guides/support.md) with new Zscaler support model.
- [PR #176](https://github.com/zscaler/zscaler-terraformer/pull/176) Introduced importing support for the following ZIA resource(s):
    * ``zia_sandbox_behavioral_analysis``
### Fixes
- [PR #176](https://github.com/zscaler/zscaler-terraformer/pull/176) Fixed importing issue with the following ZIA resources:
    * ``zia_security_settings``
    * ``zia_url_categories``

## 1.0.3 (February, 29 2024)

### Notes

- Release date: **(February, 29 2024)**
- Supported Terraform version: **v1.x.x**

### Enhancements

- [PR #173](https://github.com/zscaler/zscaler-terraformer/pull/173) Introduced the ability to exclude multiple resource names during the importing process.

## 1.0.2 (February, 15 2024)

### Notes

- Release date: **(February, 15 2024)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #171](https://github.com/zscaler/zscaler-terraformer/pull/171) Fixed ZIA ``zia_forwarding_control_rule`` missformatted ID for `zpa_gateway` nested block `id` attribute.
- [PR #171](https://github.com/zscaler/zscaler-terraformer/pull/171) Implemented exclusion of pre-built unmanaged resources for ZIA.

## 1.0.1 (February, 14 2024)

### Notes

- Release date: **(February, 14 2024)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #170](https://github.com/zscaler/zscaler-terraformer/pull/170) Fixed ZIA ``zia_firewall_filtering_rule`` missformatted ID for rules containing the `users` nested block
- [PR #170](https://github.com/zscaler/zscaler-terraformer/pull/170) Upgraded to [Zscaler-SDK-GO v2.3.9](https://github.com/zscaler/zscaler-sdk-go/releases/tag/v2.3.9)

## 1.0.0 (January, 30 2024)

### Notes

- Release date: **(January, 30 2024)**
- Supported Terraform version: **v1.x.x**

### Enhacements

- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZIA Custom ZPA Gateway import.
- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZIA Forwarding Control Rule import.
- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZIA DLP Engine import.
- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZPA Microtenant import.
- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZPA Browser Access import.
- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZPA Cloud Browser Isolation Banner import.
- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZPA Cloud Browser Isolation Certificate import.
- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) ✨ Added support for ZPA Cloud Browser Isolation External Profile import.

### Bug Fixes

- [PR #167](https://github.com/zscaler/zscaler-terraformer/pull/167) Fixed license error for ZPA unlicensed .

## 0.3.4 (December, 11 2023)

### Notes

- Release date: **(December, 11 2023)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #151](https://github.com/zscaler/zscaler-terraformer/pull/151) Fixed ZIA ``zia_admin_users`` resource schema
- [PR #151](https://github.com/zscaler/zscaler-terraformer/pull/151) Upgraded to [Zscaler-SDK-GO v2.2.2](https://github.com/zscaler/zscaler-sdk-go/releases/tag/v2.2.2)

## 0.3.3 (October 18, 2023)

### Notes

- Release date: **(August 18, 2023)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #139](https://github.com/zscaler/zscaler-terraformer/pull/139) Fixed ZIA ``zia_location_management`` resource to ensure sub-locations are also imported.

## 0.3.2 (October 3, 2023)

### Notes

- Release date: **(October 3, 2023)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #134](https://github.com/zscaler/zscaler-terraformer/pull/134) Implement condition to exclude ``applications`` block from the ZPA resources `zpa_segment_group` and `zpa_server_group`.

## 0.3.1 (August 25, 2023)

### Notes

- Release date: **(August 25, 2023)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #123](https://github.com/zscaler/zscaler-terraformer/pull/123) Implemented feature flag check to `zpa_app_connector_group` to ensure import continues when error `Feature flag ui.waf disabled` error is returned.

## 0.3.0 (June 21, 2023)

### Notes

- Release date: **(June 21, 2023)**
- Supported Terraform version: **v1.x.x**

### Enhancements

- [PR #97](https://github.com/zscaler/zscaler-terraformer/pull/97) Each generated resource, will not contain the internal numeric ID generated by the ZPA Cloud. This will prevent potential name duplication during the import process.
- [PR #115](https://github.com/zscaler/zscaler-terraformer/pull/115) The Zscaler Terraformer tool now checks for existing Terraform binary version installations. If the binary is not installed, ZT will automatically download and install the latest terarform binary.
- [PR #116](https://github.com/zscaler/zscaler-terraformer/pull/116) All imported resources will not contain the following message: ``__generated__ by Zscaler Terraformer from [Resource Name]`` in the auto-generated configuration file.

### Bug Fixes

- [PR #96](https://github.com/zscaler/zscaler-terraformer/pull/96) - Fixed import of ``zpa_segment_group`` and ``zpa_server_group`` resources where the ``applications`` attribute was being imported as a Set instead of a list of IDs.

## 0.2.2 (March 01, 2023)

### Notes

- Release date: **(March 01, 2023)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #81](https://github.com/zscaler/zscaler-terraformer/pull/81) Fixed issue where the tool was not import the resource ``zia_traffic_forwarding_gre_tunnel``
- [PR #81](https://github.com/zscaler/zscaler-terraformer/pull/81) Fixed multiple issues where computed IDs for ``zia_traffic_forwarding_gre_tunnel`` and ``zia_traffic_forwarding_static_ip`` was being included in the generated HCL configuration. The fix will remove any automatic computed values generated by the upstream API.
- [PR #81](https://github.com/zscaler/zscaler-terraformer/pull/81) Fixed multiple documentation and test issues

## 0.2.1 (January 31, 2023)

### Notes

- Release date: **(January 31, 2023)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #60](https://github.com/zscaler/zscaler-terraformer/pull/60) Fixed ``zia_traffic_forwarding_static_ip`` attributes ``latitude`` and ``longitude`` to return float instead of a rounded value

## 0.2.0 (January 31, 2023)

### Notes

- Release date: **(January 31, 2023)**
- Supported Terraform version: **v1.x.x**

### Bug Fixes

- [PR #60](https://github.com/zscaler/zscaler-terraformer/pull/60) Fixed ``zia_traffic_forwarding_static_ip`` attributes ``latitude`` and ``longitude`` to return float instead of a rounded value

### Enhancements

- [PR #61](https://github.com/zscaler/zscaler-terraformer/pull/61) The tool now will format the internal resource name according to the name of the resource upstream without appending the resource ID.

## 0.1.0 (December 5, 2022)

### Notes

- Release date: **(December 5, 2022)**
- Supported Terraform version: **v1.x.x**

### Enhancements

- [PR #43](https://github.com/zscaler/zscaler-sdk-go/pull/43) Included new flag command ``--exclude`` to allow for the exclusion of specific resources when importing all provider resources.
- [PR #44](https://github.com/zscaler/zscaler-sdk-go/pull/44) Included new flag command ``--version`` to display the version of the zscaler-terraformer tool in use to facilitate troubleshooting.

### Bug Fixes

- [PR #42](https://github.com/zscaler/zscaler-sdk-go/pull/42) Fixed issue with resource import ``zia_url_categories`` where the parameter ``super_category = USER_DEFINED`` was not being set.

## 0.0.1 (November 17, 2022)

### Notes

- Release date: **(November 17, 2022)**
- Supported Terraform version: **v1.x.x**

🎉 **Initial Release** 🎉
tools\zscaler-terraformer\LICENSE
 
tools\zscaler-terraformer\README.md
<a href="https://terraform.io">
    <img src="https://raw.githubusercontent.com/hashicorp/terraform-website/master/public/img/logo-text.svg" alt="Terraform logo" title="Terraform" height="50" />
</a>

<a href="https://www.zscaler.com/">
    <img src="https://www.zscaler.com/themes/custom/zscaler/logo.svg" alt="Zscaler logo" title="Zscaler" height="50" />
</a>

# Zscaler Terraformer Tool

[![tests](https://github.com/zscaler/zscaler-terraformer/actions/workflows/test.yaml/badge.svg)](https://github.com/zscaler/zscaler-terraformer/actions/workflows/test.yaml)
[![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/zscaler/zscaler-terraformer)](https://github.com/zscaler/zscaler-terraformer/blob/master/.go-version)
[![Go Report Card](https://goreportcard.com/badge/github.com/zscaler/zscaler-terraformer)](https://goreportcard.com/report/github.com/zscaler/zscaler-terraformer)
[![Zscaler Community](https://img.shields.io/badge/zscaler-community-blue)](https://community.zscaler.com/)

## Support Disclaimer

-> **Disclaimer:** Please refer to our [General Support Statement](docs/guides/support.md) before proceeding with the use of this provider. You can also refer to our [troubleshooting guide](docs/guides/troubleshooting.md) for guidance on typical problems.

## Overview

`zscaler-terraformer` is A CLI tool that generates ``tf`` and ``tfstate`` files based on existing ZPA and/or ZIA resources.
It does this by using your respective API credentials in each platform to retrieve your configurations from the [ZPA API](https://help.zscaler.com/zpa/getting-started-zpa-api) and/or [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api) and converting them to Terraform configurations so that it can be used with the
[ZPA Terraform Provider](https://registry.terraform.io/providers/zscaler/zpa/latest) and/or [ZIA Terraform Provider](https://registry.terraform.io/providers/zscaler/zia/latest)

This tool is ideal if you already have ZPA and/or ZIA resources defined but want to
start managing them via Terraform, and don't want to spend the time to manually
write the Terraform configuration to describe them.

> NOTE: This tool has been developed and tested with Terraform v1.x.x only.

[![Zscaler Terraformer Migration Tool](https://raw.githubusercontent.com/zscaler/zscaler-terraformer/master/images/zscaler_terraformer.svg)](https://fast.wistia.net/embed/channel/07fhl9bbvr?wchannelid=07fhl9bbvr&wvideoid=sfd7h33q2e)
## Usage

```bash
Usage:
  zscaler-terraformer [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  generate    Fetch resources from the ZPA and ZIA API and generate the respective Terraform stanzas
  help        Help about any command
  import      Output `terraform import` compatible commands in order to import resources into state
  version     Print the version number of zscaler-terraformer

Flags:
      --exclude string                      Which resources you wish to exclude
  -h, --help                                help for zscaler-terraformer
      --resource-type string                Which resource you wish to generate
      --resources string                    Which resources you wish to import
      --terraform-install-path string       Path to the default Terraform installation (default ".")
  -v, --verbose                             Specify verbose output (same as setting log level to debug)
      --version                              Display the release version
      --zia-terraform-install-path string    Path to the ZIA Terraform installation (default ".")
      --zia_api_key string                   ZIA API Key
      --zia_cloud string                     ZIA Cloud (i.e zscalerthree)
      --zia_password string                  ZIA password
      --zia_username string                  ZIA username
      --zpa-terraform-install-path string    Path to the ZPA Terraform installation (default ".")
      --zpa_client_id string                 ZPA client ID
      --zpa_client_secret string             ZPA client secret
      --zpa_customer_id string               ZPA Customer ID
      --zpa_cloud string                     ZPA Cloud (``BETA``, ``GOV``, ``GOVUS``, ``PRODUCTION``, ``ZPATWO``)

Use "zscaler-terraformer [command] --help" for more information about a command.

```

## Authentication

Both ZPA and ZIA follow its respective authentication methods as described in the Terraform registry documentation:

* [ZPA Terraform Provider](https://registry.terraform.io/providers/zscaler/zpa/latest/docs)
* [ZIA Terraform Provider](https://registry.terraform.io/providers/zscaler/zia/latest/docs)

For details on how to generate API credentials visit:

* ZPA [Getting Started](https://help.zscaler.com/zpa/getting-started-zpa-api)
* ZIA [Getting Started](https://help.zscaler.com/zia/getting-started-zia-api)

!> **A note on storing your credentials securely**: We recommend that you store
your ZPA and/or ZIA credentials as environment variables as
demonstrated below.

### ZPA Environment Variables

``zscaler-terraformer`` for ZPA supports the following environment variables:

```bash
export ZPA_CLIENT_ID      = "xxxxxxxxxxxxxxxx"
export ZPA_CLIENT_SECRET  = "xxxxxxxxxxxxxxxx"
export ZPA_CUSTOMER_ID    = "xxxxxxxxxxxxxxxx"
export ZPA_CLOUD          = "BETA", "GOV", "GOVUS", "PRODUCTION" or "ZPATWO"
```

### ZPA Inline Authentication

```bash
zscaler-terraformer import --resources="zpa" \
--zpa_client_id="xxxxxxxxxxxxxxxx" \
--zpa_client_secret="xxxxxxxxxxxxxxxx" \
--zpa_customer_id="xxxxxxxxxxxxxxxx" \
--zpa_cloud="BETA", "GOV", "GOVUS", "PRODUCTION" or "ZPATWO"
```

### ZIA Environment Variables

``zscaler-terraformer`` for ZIA supports the following environment variables:

```bash
export ZIA_USERNAME = "xxxxxxxxxxxxxxxx"
export ZIA_PASSWORD = "xxxxxxxxxxxxxxxx"
export ZIA_API_KEY  = "xxxxxxxxxxxxxxxx"
export ZIA_CLOUD    = "xxxxxxxxxxxxxxxx" (i.e zscalerthree)

```

### ZIA Inline Authentication

```bash
zscaler-terraformer import --resources="zia" \
--zia_username="xxxxxxxxxxxxxxxx" \
--zia_password="xxxxxxxxxxxxxxxx" \
--zia_api_key="xxxxxxxxxxxxxxxx" \
--zia_cloud=(i.e zscalerthree)
```

## ZPA Example usage

To get started with the zscaler-terraformer CLI to export your ZPA configuration, create a directory where you want the configuration to stored. See ZPA Demo:

[![asciicast](https://asciinema.org/a/537966.svg)](https://asciinema.org/a/537966)

**Option 1**

### Import All ZPA Configuration

```bash
zscaler-terraformer import --resources="zpa"
```

### Import Specific ZPA Resource

```bash
zscaler-terraformer import --resources="zpa_application_segment"
```

### Exclude specific ZPA resources from Importing

```bash
zscaler-terraformer import --resources="zpa" --exclude='zpa_segment_group, zpa_server_group'
```

By default, ``zscaler-terraformer`` will create a local configuration directory where it is being executed. You can also indicate the path where the imported configuration should be stored by using the folowing environment variable ``ZSCALER_ZPA_TERRAFORM_INSTALL_PATH``.

```bash
$ export ZSCALER_ZPA_TERRAFORM_INSTALL_PATH="$HOME/Desktop/zpa_configuration"
$ zscaler-terraformer generate \
  --resource-type "zpa_application_segment"
```

## ZIA Example usage

To get started with the zscaler-terraformer CLI to export your ZIA configuration, create a directory where you want the configuration to stored.

https://user-images.githubusercontent.com/23208337/204072949-a6f9bfb7-aaf0-4f76-87f8-ebc577c88247.mp4

**Option 1**

### Import All ZIA Configuration

```bash
zscaler-terraformer import --resources="zia"
```

### Import Specific ZIA Resource

```bash
zscaler-terraformer import --resources="zia_firewall_filtering_rule"
```

### Exclude specific ZIA resources from Importing

```bash
zscaler-terraformer import --resources="zia" --exclude='zia_forwarding_control_rule,zia_forwarding_control_zpa_gateway,zia_user_management'
```

By default, ``zscaler-terraformer`` will create a local configuration directory where it is being executed. You can also indicate the path where the imported configuration should be stored by using the folowing environment variable ``ZSCALER_ZIA_TERRAFORM_INSTALL_PATH``.

```bash
$ export ZSCALER_ZIA_TERRAFORM_INSTALL_PATH="$HOME/Desktop/zia_configuration"
$ zscaler-terraformer generate \
  --resource-type "zia_firewall_filtering_rule"
```

**Generate HCL Configuration**

To simply generate the HCL configuration output without importing and creating the state file, use the command ``zscaler-terraformer generate``

```bash
$ zscaler-terraformer generate \
  --zia-terraform-install-path $HOME/Desktop/zia_configuration \
  --resource-type "zia_firewall_filtering_rule"
```

## Prerequisites

* A ZIA and/or ZPA tenant with resources defined.
* Valid ZIA and or/ZPA API credentials with sufficient permissions to access the resources
  you are requesting via the API
* ``zscaler-terraformer`` utility installed on the local machine.

## Installation

If you use Homebrew on MacOS, you can run one of the following commands:

```bash
brew tap zscaler/tap
brew install zscaler/tap/zscaler-terraformer
```

or

```bash
brew tap zscaler/tap
brew install --cask zscaler/tap/zscaler-terraformer
```

If you use another OS, you will need to download the release directly from
[GitHub Releases](https://github.com/zscaler/zscaler-terraformer/releases).

In the future we plan on releasing versions for installation via MacPorts and Chocolatey for Windows systems.

## Importing with Terraform state

`zscaler-terraformer` will output the `terraform import` compatible commands for you
when you invoke the `import` command. This command assumes you have already ran
`zscaler-terraformer generate ...` to output your resources.

In the future this process will be further automated; however for now, it is a manual step to
allow flexibility in directory structure.

```bash
$ zscaler-terraformer import \
  --resource-type "zpa_app_connector_group"
```

## ZPA Supported Resources

Any resources not listed are currently not supported.

Last updated July 11, 2024

Use the following command once the tool is installed to visualize the table of supported ZPA resources:
```shell
zscaler-terraformer --supported-resources="zpa"
```

| Resource | Resource Scope | Generate Supported | Import Supported |
|----------|-----------|----------|----------|
| [zpa_app_connector_group](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_app_connector_group) | group | ✅ | ✅ |
| [zpa_service_edge_group](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_service_edge_group) | group | ✅ | ✅ |
| [zpa_application_server](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_application_server) | application | ✅ | ✅ |
| [zpa_application_segment](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_application_segment) | application segment | ✅ | ✅ |
| [zpa_application_segment_browser_access](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_application_segment_browser_access) | application segment | ✅ | ✅ |
| [zpa_application_segment_inspection](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_application_segment_inspection) | application segment | ✅ | ✅ |
| [zpa_application_segment_pra](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_application_segment_pra) | application segment | ✅ | ✅ |
| [zpa_cloud_browser_isolation_banner](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_cloud_browser_isolation_banner) | isolation | ✅ | ✅ |
| [zpa_cloud_browser_isolation_certificate](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_cloud_browser_isolation_certificate) | isolation | ✅ | ✅ |
| [zpa_cloud_browser_isolation_external_profile](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_cloud_browser_isolation_external_profile) | isolation | ✅ | ✅ |
| [zpa_segment_group](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_segment_group) | group | ✅ | ✅ |
| [zpa_server_group](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_server_group) | group | ✅ | ✅ |
| [zpa_lss_config_controller](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_lss_config_controller) | lss | ✅ | ✅ |
| [zpa_microtenant_controller](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_microtenant_controller) | microtenant | ✅ | ✅ |
| [zpa_provisioning_key](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_provisioning_key) | key | ✅ | ✅ |
| [zpa_inspection_custom_controls](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_inspection_custom_control) | Inspection | ✅ | ✅ |
| [zpa_pra_approval_controller](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_pra_approval_controller) | PRA | ✅ | ✅ |
| [zpa_pra_console_controller](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_pra_console_controller) | PRA | ✅ | ✅ |
| [zpa_pra_credential_controller](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_pra_credential_controller) | PRA | ✅ | ✅ |
| [zpa_pra_portal_controller](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_pra_portal_controller) | PRA | ✅ | ✅ |
| [zpa_policy_access_rule](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_policy_access_rule) | Policy | ✅ | ✅ |
| [zpa_policy_timeout_rule](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_policy_access_timeout_rule) | Policy | ✅ | ✅ |
| [zpa_policy_forwarding_rule](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_policy_access_forwarding_rule) | Policy | ✅ | ✅ |
| [zpa_policy_access_inspection_rule](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_policy_access_inspection_rule) | Policy | ✅ | ✅ |
| [zpa_policy_redirection_rule](https://registry.terraform.io/providers/zscaler/zpa/latest/docs/resources/zpa_policy_access_redirection_rule) | Policy | ✅ | ✅ |

## ZIA Supported Resources

Any resources not listed are currently not supported.

Last updated July 11, 2024

Use the following command once the tool is installed to visualize the table of supported ZIA resources:

```shell
zscaler-terraformer --supported-resources="zia"
```

| Resource | Resource Scope | Generate Supported | Import Supported |
|----------|-----------|----------|----------|
| [zia_dlp_engines](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_dlp_engines) | DLP | ✅ | ✅ |
| [zia_dlp_dictionaries](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_dlp_dictionaries) | DLP | ✅ | ✅ |
| [zia_dlp_notification_templates](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_dlp_notification_templates) | DLP | ✅ | ✅ |
| [zia_dlp_web_rules](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_dlp_web_rules) | DLP | ✅ | ✅ |
| [zia_firewall_filtering_destination_groups](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_firewall_filtering_ip_destination_groups) | Cloud Firewall | ✅ | ✅ |
| [zia_firewall_filtering_ip_source_groups](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_firewall_filtering_ip_source_groups) | Cloud Firewall | ✅ | ✅ |
| [zia_firewall_filtering_network_application_groups](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_firewall_filtering_network_application_groups) | Cloud Firewall  | ✅ | ✅ |
| [zia_firewall_filtering_network_service](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_firewall_filtering_network_service) | Cloud Firewall  | ✅ | ✅ |
| [zia_firewall_filtering_network_service_groups](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_firewall_filtering_network_service_groups) | Cloud Firewall | ✅ | ✅ |
| [zia_firewall_filtering_rule](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_firewall_filtering_rule) | Cloud Firewall | ✅ | ✅ |
| [zia_location_management](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_location_management) | Location | ✅ | ✅ |
| [zia_traffic_forwarding_gre_tunnel](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_traffic_forwarding_gre_tunnel) | Traffic | ✅ | ✅ |
| [zia_traffic_forwarding_static_ip](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_traffic_forwarding_static_ip) | Traffic | ✅ | ✅ |
| [zia_traffic_forwarding_vpn_credentials](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_traffic_forwarding_vpn_credentials) | Traffic | ✅ | ✅ |
| [zia_rule_labels](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_rule_labels) | Labels | ✅ | ✅ |
| [zia_url_categories](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_url_categories) | URL | ✅ | ✅ |
| [zia_url_filtering_rules](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_url_filtering_rules) | URL | ✅ | ✅ |
| [zia_auth_settings_urls](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_auth_settings_urls) | URL | ✅ | ✅ |
| [zia_security_policy_settings](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_security_policy_settings) | URL | ✅ | ✅ |
| [zia_sandbox_behavioral_analysis](https://https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_sandbox_behavioral_analysis) | URL | ✅ | ✅ |
| [zia_forwarding_control_rule](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_forwarding_control_rule) | Forward | ✅ | ✅ |
| [zia_forwarding_control_zpa_gateway](https://registry.terraform.io/providers/zscaler/zia/latest/docs/resources/zia_forwarding_control_zpa_gateway) | Forward | ✅ | ✅ |

## Testing

To ensure changes don't introduce regressions this tool uses an automated test
suite consisting of HTTP mocks via go-vcr and Terraform configuration files to
assert against. The premise is that we mock the HTTP responses from the
ZPA and/or ZIA APIs to ensure we don't need to create and delete real resources to
test. The Terraform files then allow us to build what the resource structure is
expected to look like and once the tool parses the API response, we can compare
that to the static file.

License
=========

MIT License

=======

Copyright (c) 2022 [Zscaler](https://github.com/zscaler)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
tools\zscaler-terraformer\zscaler-terraformer.exe
md5: 45145700766EA181DB53260EE0F88057 | sha1: 376298E3568A20ADF755B7702180C78D040CC9BD | sha256: 88741D196D164823D7AD1125F29A1C7117DAD0BCCFA52D7B56F14F803F3FF0AA | sha512: 658551F1D534253CA3811A36BB2FB8B01C9A2BEF05E35AFC0D7C85ECF7BD338AD2336CCECDC93C2EE187BA66C6E2B8EDFF0C4C933C3B32B5447DC9AB246EF4FF
tools\zscaler-terraformer_1.3.0_windows_amd64.zip
md5: D4C20507FB585EEB1D340CFCC35DC5BA | sha1: E32DA25329AA4474458CB2B52DDF7672EC89C35C | sha256: 84408B4496A87298D70D955F3C300571BA5ED7559AB3D967EF02E6EFE41E5FD0 | sha512: 5482AAF4487B6BF92216D74E59D4ACF303F5937AA7230F1331FB3B5F713058D8466714FAE023DD433E90AFD39E3E0B8096613D22AB6886EA4D0EFE5A46466A7B
VERIFICATION.txt
This package contains the following binaries:
- zscaler-terraformer_1.3.0_windows_amd64.zip

The binaries were downloaded from the official release page at:
https://github.com/zscaler/zscaler-terraformer/releases/download/v1.3.0/zscaler-terraformer_1.3.0_windows_amd64.zip

The SHA256 checksums of the binaries are:
- zscaler-terraformer_1.3.0_windows_amd64.zip: 84408b4496a87298d70d955f3c300571ba5ed7559ab3d967ef02e6efe41e5fd0

Verification steps:
1. Download the binary from the official release page.
2. Verify the checksum using a SHA256 checksum tool.

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
Zscaler-Terraformer 1.3.0 17 Sunday, July 14, 2024 Ready

This package has no dependencies.

Discussion for the Zscaler-Terraformer Package

Ground Rules:

  • This discussion is only about Zscaler-Terraformer and the Zscaler-Terraformer package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Zscaler-Terraformer, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus