diff --git a/docs/getting-started.md b/docs/getting-started.md
index 6f5fd345..95f250b0 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -88,6 +88,7 @@ Setup an account within terraform cloud if you havent already -
And create a new terraform cloud organization. Organizations are privately shared spaces for teams to collaborate on infrastructure.
![tfc-org](./media/screenshots/create-tfc-org.png)
+
- **Create Terraform Cloud Project**:
Create a new project in Terraform Cloud for your Jamf Pro infrastructure.
![tfc-project](./media/screenshots/create-tfc-project.png)
@@ -126,6 +127,8 @@ Each workspace holds a unique state for the correlating jamf pro environment.
f. Apply this variable set to all three Jamf Pro workspaces.
+![tfc-variable-set](./media/screenshots/tfc-variable-set.png)
+
- **Configure Workspace-Specific Variables**:
For each workspace, set the following variables as `Terraform variable`:
@@ -141,6 +144,8 @@ Each workspace holds a unique state for the correlating jamf pro environment.
d. Mark sensitive variables (like passwords and secrets) as sensitive.
+![tfc-workspace-vars](./media/screenshots/tfc-workspace-vars.png)
+
- **Access Controls**:
Set up appropriate access controls for each workspace:
@@ -148,10 +153,19 @@ Each workspace holds a unique state for the correlating jamf pro environment.
b. Assign the appropriate permissions to team members based on their roles and the environment.
c. Consider restricting access to production workspaces to a smaller group of trusted team members.
+- **Generate Terraform Cloud API token**:
+This token will be used by github actions to communicate with terraform cloud.
+
+Within TFC go to account settings -> tokens -> generate an api token
+
+Give this token a lifespan you are happy with and save it for later in use with github actions
+
+![tfc-tokens](./media/screenshots/tfc-tokens.png)
+
3. **Configure Github Secrets**: Set up the following secrets in your GitHub repository settings:
-- `TF_API_TOKEN`: Your Terraform Cloud API token for Terraform Cloud backend. this can be generated from the Terraform Cloud UI under account settings -> Tokens -> create api token.
+- `TF_API_TOKEN`: Your Terraform Cloud API token for Terraform Cloud backend.
- `PAT_TOKEN`: Your GitHub Personal Access Token for branch management operations.
To set up the PAT_TOKEN:
@@ -204,14 +218,15 @@ These webhook URLs are used in the Send Notification workflow (send-notification
4. **Configure Terraform Cloud Secrets**:
Set up the following secrets in your Terraform Cloud workspace variable settings for each environment (Sandbox, Staging, Production):
- - `JAMFPRO_INSTANCE_FQDN`: Your Jamf Pro instance URL. For example: `https://your-instance.jamfcloud.com`.
- - `JAMFPRO_AUTH_METHOD`: Can be either `basic` or `oauth2`.
- - `JAMFPRO_CLIENT_ID`: Your Jamf Pro client id when `JAMFPRO_AUTH_METHOD` is set to 'oauth2'.
- - `JAMFPRO_CLIENT_SECRET`: Your Jamf Pro client secret when `JAMFPRO_AUTH_METHOD` is set to 'oauth2'.
- - `JAMFPRO_BASIC_AUTH_USERNAME`: Your Jamf Pro username when `JAMFPRO_AUTH_METHOD` is set to 'basic'.
- - `JAMFPRO_BASIC_AUTH_PASSWORD`: Your Jamf Pro user password when `JAMFPRO_AUTH_METHOD` is set to 'basic'.
-
- Note: For Terraform Cloud, when setting variables you do not need to prefix your env vars with `TF_VAR_` as Terraform Cloud automatically does this for you. Additionally, ensure to select the variable category as `Terraform variable`, with the HCL tickbox unchecked.
+
+- `JAMFPRO_INSTANCE_FQDN`: Your Jamf Pro instance URL. For example: `https://your-instance.jamfcloud.com`.
+- `JAMFPRO_AUTH_METHOD`: Can be either `basic` or `oauth2`.
+- `JAMFPRO_CLIENT_ID`: Your Jamf Pro client id when `JAMFPRO_AUTH_METHOD` is set to 'oauth2'.
+- `JAMFPRO_CLIENT_SECRET`: Your Jamf Pro client secret when `JAMFPRO_AUTH_METHOD` is set to 'oauth2'.
+- `JAMFPRO_BASIC_AUTH_USERNAME`: Your Jamf Pro username when `JAMFPRO_AUTH_METHOD` is set to 'basic'.
+- `JAMFPRO_BASIC_AUTH_PASSWORD`: Your Jamf Pro user password when `JAMFPRO_AUTH_METHOD` is set to 'basic'.
+
+Note: For Terraform Cloud, when setting variables you do not need to prefix your env vars with `TF_VAR_` as Terraform Cloud automatically does this for you. Additionally, ensure to select the variable category as `Terraform variable`, with the HCL tickbox unchecked.
5. **GitHub Repository-Level Setting**:
diff --git a/docs/media/screenshots/tfc-tokens.png b/docs/media/screenshots/tfc-tokens.png
new file mode 100644
index 00000000..1435727a
Binary files /dev/null and b/docs/media/screenshots/tfc-tokens.png differ
diff --git a/docs/media/screenshots/tfc-variable-set.png b/docs/media/screenshots/tfc-variable-set.png
new file mode 100644
index 00000000..68bdc3bc
Binary files /dev/null and b/docs/media/screenshots/tfc-variable-set.png differ
diff --git a/docs/media/screenshots/tfc-workspace-vars.png b/docs/media/screenshots/tfc-workspace-vars.png
new file mode 100644
index 00000000..ac58214a
Binary files /dev/null and b/docs/media/screenshots/tfc-workspace-vars.png differ
diff --git a/workload/terraform/jamfpro/buildings.tf b/workload/terraform/jamfpro/buildings.tf
index bd8b20e0..c559c50d 100644
--- a/workload/terraform/jamfpro/buildings.tf
+++ b/workload/terraform/jamfpro/buildings.tf
@@ -1,30 +1,30 @@
-resource "jamfpro_building" "jamfpro_building_001" {
- name = "tf-demo-Apple-Park"
- street_address1 = "The McIntosh Tree"
- street_address2 = "One Apple Park Way"
- city = "Cupertino"
- state_province = "California"
- zip_postal_code = "95014"
- country = "The United States of America"
-}
+# resource "jamfpro_building" "jamfpro_building_001" {
+# name = "tf-demo-Apple-Park"
+# street_address1 = "The McIntosh Tree"
+# street_address2 = "One Apple Park Way"
+# city = "Cupertino"
+# state_province = "California"
+# zip_postal_code = "95014"
+# country = "The United States of America"
+# }
-resource "jamfpro_building" "jamfpro_building_002" {
- name = "tf-demo-jamf-headquarters"
- street_address1 = "100 Washington Ave S"
- street_address2 = "Suite 1100"
- city = "Minneapolis"
- state_province = "Minnesota"
- zip_postal_code = "55401"
- country = "The United States of America"
-}
+# resource "jamfpro_building" "jamfpro_building_002" {
+# name = "tf-demo-jamf-headquarters"
+# street_address1 = "100 Washington Ave S"
+# street_address2 = "Suite 1100"
+# city = "Minneapolis"
+# state_province = "Minnesota"
+# zip_postal_code = "55401"
+# country = "The United States of America"
+# }
-resource "jamfpro_building" "jamfpro_building_003" {
- name = "tf-demo-Apple-Battersea"
- street_address1 = "Ground Floor, Turbine Hall A, Circus Rd W, Nine Elms"
- street_address2 = "Suite 1100"
- city = "London"
- state_province = "London"
- zip_postal_code = "SW11 8AL"
- country = "United Kingdom"
-}
\ No newline at end of file
+# resource "jamfpro_building" "jamfpro_building_003" {
+# name = "tf-demo-Apple-Battersea"
+# street_address1 = "Ground Floor, Turbine Hall A, Circus Rd W, Nine Elms"
+# street_address2 = "Suite 1100"
+# city = "London"
+# state_province = "London"
+# zip_postal_code = "SW11 8AL"
+# country = "United Kingdom"
+# }
\ No newline at end of file
diff --git a/workload/terraform/jamfpro/computer_extension_attributes.tf b/workload/terraform/jamfpro/computer_extension_attributes.tf
index fba9417b..b00620c9 100644
--- a/workload/terraform/jamfpro/computer_extension_attributes.tf
+++ b/workload/terraform/jamfpro/computer_extension_attributes.tf
@@ -1,127 +1,31 @@
-// pop up
-
-// old v0.2.0
-# resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_001" {
-# name = "tf-state-migration-test-001"
-# enabled = true
-# description = "An attribute collected from a pop-up menu."
-# input_type = "Pop-up Menu"
-# input_popup = ["Option 1", "Option 2", "Option 3"]
-# inventory_display = "User and Location"
-# }
-
-// new v0.3.0
-
-# resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_001" {
-# name = "tf-state-migration-test-001"
-# enabled = true
-# description = "An attribute collected from a pop-up menu."
-# input_type = "POPUP"
-# popup_menu_choices = ["Option 1", "Option 2", "Option 3"]
-# inventory_display_type = "USER_AND_LOCATION"
-# data_type = "STRING"
-# }
-
-# //-------------------------------------------------------------------//
-// text
-
-// old v0.2.0
-# resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_002" {
-# name = "tf-state-migration-test-002"
-# enabled = true
-# description = "An attribute collected from a text field."
-# input_type = "Text Field"
-# inventory_display = "Hardware"
-# }
-
-// new v0.3.0
-
-# resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_002" {
-# name = "tf-state-migration-test-002"
-# enabled = true
-# description = "An attribute collected from a text field."
-# input_type = "TEXT"
-# inventory_display_type = "HARDWARE"
-# data_type = "STRING"
-# }
-
-
-# //-------------------------------------------------------------------//
-// script
-
-// old v0.2.0
-# resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_003" {
-# name = "tf-state-migration-test-003"
-# enabled = true
-# description = "An attribute collected via a script."
-# input_type = "script"
-# input_script = <<-SHELL
-# #!/bin/sh
-# /bin/echo "sample"
-# SHELL
-
-# inventory_display = "General"
-# }
-
-# New v0.3.0
-
-# resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_003" {
-# name = "tf-state-migration-test-003"
-# enabled = true
-# inventory_display_type = "EXTENSION_ATTRIBUTES"
-# data_type = "STRING"
-# input_type = "SCRIPT"
-# script_contents = <<-SHELL
-# #!/bin/sh
-# /bin/echo "sample"
-# SHELL
-# }
-
-
-
-
-
-
-
# Pop-up Menu Example
-# resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_popup_menu_1" {
-# name = "tf-demo-popup-menu-example"
-# enabled = true
-# description = "An attribute collected from a pop-up menu."
-# input_type = "POPUP"
-# popup_menu_choices = ["Option 1", "Option 2", "Option 3"]
-# inventory_display_type = "USER_AND_LOCATION"
-# data_type = "STRING"
-# }
-
-# # Text Field Example
-# resource "jamfpro_computer_extension_attribute" "computer_extension_attribute_text_field_1" {
-# name = "tf-demo-text-field-example"
-# enabled = true
-# description = "An attribute collected from a text field."
-# input_type = "TEXT"
-# inventory_display_type = "HARDWARE"
-# data_type = "STRING"
-# }
-
-# # Script Example
-# resource "jamfpro_computer_extension_attribute" "computer_extension_attribute_script_1" {
-# name = "tf-demo-hello-world"
-# enabled = true
-# description = "An attribute collected via a script."
-# input_type = "SCRIPT"
-# script_contents = "#!/bin/bash\necho 'Hello, World!!!!! :)'"
-# inventory_display_type = "GENERAL"
-# data_type = "STRING"
-# }
-
-# # Script Example
-# resource "jamfpro_computer_extension_attribute" "computer_extension_attribute_script_2" {
-# name = "tf-demo-logged-in-user"
-# enabled = true
-# description = "An attribute collected via a script."
-# input_type = "SCRIPT"
-# script_contents = file("support_files/computer_extension_attributes/logged_in_user.sh")
-# inventory_display_type = "GENERAL"
-# data_type = "STRING"
-# }
\ No newline at end of file
+resource "jamfpro_computer_extension_attribute" "jamfpro_computer_extension_attribute_popup_menu_1" {
+ name = "tf-demo-cexa-popup-menu-example"
+ enabled = true
+ description = "An attribute collected from a pop-up menu."
+ input_type = "POPUP"
+ popup_menu_choices = ["Option 1", "Option 2", "Option 3"]
+ inventory_display_type = "USER_AND_LOCATION"
+ data_type = "STRING"
+}
+
+# Text Field Example
+resource "jamfpro_computer_extension_attribute" "computer_extension_attribute_text_field_1" {
+ name = "tf-demo-cexa-text-field-example"
+ enabled = true
+ description = "An attribute collected from a text field."
+ input_type = "TEXT"
+ inventory_display_type = "HARDWARE"
+ data_type = "STRING"
+}
+
+# Script Example
+resource "jamfpro_computer_extension_attribute" "computer_extension_attribute_script_1" {
+ name = "tf-demo-cexa-hello-world"
+ enabled = true
+ description = "An attribute collected via a script."
+ input_type = "SCRIPT"
+ script_contents = "#!/bin/bash\necho 'Hello, World!!!!! :)'"
+ inventory_display_type = "GENERAL"
+ data_type = "STRING"
+}
\ No newline at end of file
diff --git a/workload/terraform/jamfpro/computer_prestage_enrollment.tf b/workload/terraform/jamfpro/computer_prestage_enrollment.tf
new file mode 100644
index 00000000..f8671037
--- /dev/null
+++ b/workload/terraform/jamfpro/computer_prestage_enrollment.tf
@@ -0,0 +1,195 @@
+// Minimum Configuration
+
+resource "jamfpro_computer_prestage_enrollment" "minimum_example" {
+ display_name = "tf-demo-computerPrestageMinimum"
+ mandatory = true
+ mdm_removable = true
+ support_phone_number = "111-222-3333"
+ support_email_address = "email@company.com"
+ department = "department name"
+ default_prestage = false
+ enrollment_site_id = "-1"
+ keep_existing_site_membership = false
+ keep_existing_location_information = false
+ require_authentication = false
+ authentication_prompt = "hello welcome to your enterprise managed macOS device"
+ prevent_activation_lock = false
+ enable_device_based_activation_lock = false
+ device_enrollment_program_instance_id = "1"
+ skip_setup_items {
+ biometric = false
+ terms_of_address = false
+ file_vault = false
+ icloud_diagnostics = false
+ diagnostics = false
+ accessibility = false
+ apple_id = false
+ screen_time = false
+ siri = false
+ display_tone = false
+ restore = false
+ appearance = false
+ privacy = false
+ payment = false
+ registration = false
+ tos = false
+ icloud_storage = false
+ location = false
+ intelligence = false
+ enable_lockdown_mode = false
+ welcome = false
+ wallpaper = false
+ }
+ location_information {
+ username = ""
+ realname = ""
+ phone = ""
+ email = ""
+ room = ""
+ position = ""
+ department_id = "-1"
+ building_id = "-1"
+ }
+ purchasing_information {
+ leased = false
+ purchased = true
+ apple_care_id = ""
+ po_number = ""
+ vendor = ""
+ purchase_price = ""
+ life_expectancy = 0
+ purchasing_account = ""
+ purchasing_contact = ""
+ lease_date = "1970-01-01"
+ po_date = "1970-01-01"
+ warranty_date = "1970-01-01"
+ }
+ anchor_certificates = []
+ enrollment_customization_id = "0"
+ language = ""
+ region = ""
+ auto_advance_setup = false
+ install_profiles_during_setup = true
+ prestage_installed_profile_ids = []
+ custom_package_ids = []
+ custom_package_distribution_point_id = "-1"
+ enable_recovery_lock = false
+ recovery_lock_password_type = "MANUAL" // "MANUAL" / "RANDOM"
+ recovery_lock_password = ""
+ rotate_recovery_lock_password = false
+ prestage_minimum_os_target_version_type = "NO_ENFORCEMENT"
+ minimum_os_specific_version = ""
+ site_id = "-1"
+ account_settings {
+ payload_configured = true
+ local_admin_account_enabled = false
+ admin_username = ""
+ admin_password = ""
+ hidden_admin_account = false
+ local_user_managed = false
+ user_account_type = "ADMINISTRATOR"
+ prefill_primary_account_info_feature_enabled = false
+ prefill_type = "UNKNOWN"
+ prefill_account_full_name = ""
+ prefill_account_user_name = ""
+ prevent_prefill_info_from_modification = false
+ }
+}
+
+// Configured the Jamf Pro Computer Prestage Enrollment
+resource "jamfpro_computer_prestage_enrollment" "configured_example_2" {
+ display_name = "tf-demo-computerPrestage-configured"
+ mandatory = true
+ mdm_removable = true
+ support_phone_number = "111-222-3333"
+ support_email_address = "email@company.com"
+ department = "department name"
+ default_prestage = false
+ enrollment_site_id = "-1"
+ keep_existing_site_membership = false
+ keep_existing_location_information = false
+ require_authentication = false
+ authentication_prompt = "hello welcome to your enterprise managed macOS device"
+ prevent_activation_lock = false
+ enable_device_based_activation_lock = false
+ device_enrollment_program_instance_id = "1"
+ skip_setup_items {
+ biometric = false
+ terms_of_address = false
+ file_vault = false
+ icloud_diagnostics = false
+ diagnostics = true
+ accessibility = false
+ apple_id = false
+ screen_time = true
+ siri = false
+ display_tone = false
+ restore = false
+ appearance = false
+ privacy = true
+ payment = false
+ registration = false
+ tos = false
+ icloud_storage = false
+ location = false
+ intelligence = true
+ enable_lockdown_mode = false
+ welcome = false
+ wallpaper = false
+ }
+ location_information {
+ username = ""
+ realname = ""
+ phone = ""
+ email = ""
+ room = ""
+ position = ""
+ department_id = "-1"
+ building_id = "-1"
+ }
+ purchasing_information {
+ leased = false
+ purchased = true
+ apple_care_id = ""
+ po_number = ""
+ vendor = ""
+ purchase_price = ""
+ life_expectancy = 0
+ purchasing_account = ""
+ purchasing_contact = ""
+ lease_date = "1970-01-01"
+ po_date = "1970-01-01"
+ warranty_date = "1970-01-01"
+ }
+ anchor_certificates = []
+ enrollment_customization_id = "0"
+ language = ""
+ region = ""
+ auto_advance_setup = false
+ install_profiles_during_setup = true
+ prestage_installed_profile_ids = reverse(sort([3114, 3800])) // requires decending order
+ custom_package_ids = sort([1, 2]) // requires ascending order
+ custom_package_distribution_point_id = "-2" // "-1" - not used / "-2" - Cloud Distribution Point (Jamf Cloud) / "any other number" - Distribution Point ID
+ enable_recovery_lock = true
+ recovery_lock_password_type = "MANUAL" // "MANUAL" / "RANDOM"
+ recovery_lock_password = "thing"
+ rotate_recovery_lock_password = false
+ prestage_minimum_os_target_version_type = "MINIMUM_OS_LATEST_VERSION" // "NO_ENFORCEMENT" / "MINIMUM_OS_LATEST_VERSION" / "MINIMUM_OS_LATEST_MAJOR_VERSION" / "MINIMUM_OS_SPECIFIC_VERSION"
+ minimum_os_specific_version = "14.6.1"
+
+ site_id = "-1"
+ account_settings {
+ payload_configured = true
+ local_admin_account_enabled = true
+ admin_username = "thing"
+ admin_password = "thing"
+ hidden_admin_account = true
+ local_user_managed = true
+ user_account_type = "ADMINISTRATOR" // "STANDARD" / "ADMINISTRATOR" / "SKIP"
+ prefill_primary_account_info_feature_enabled = true
+ prefill_type = "CUSTOM" // "UNKNOWN" / "CUSTOM" / "DEVICE_OWNER"
+ prefill_account_full_name = "firstname.lastname"
+ prefill_account_user_name = "firstname.lastname"
+ prevent_prefill_info_from_modification = false
+ }
+}
\ No newline at end of file
diff --git a/workload/terraform/jamfpro/computer_prestage_enrollments.tf b/workload/terraform/jamfpro/computer_prestage_enrollments.tf
deleted file mode 100644
index 7b9255b4..00000000
--- a/workload/terraform/jamfpro/computer_prestage_enrollments.tf
+++ /dev/null
@@ -1,195 +0,0 @@
-# // Minimum Configuration
-
-# resource "jamfpro_computer_prestage_enrollment" "jamfpro_computer_prestage_enrollment_001" {
-# display_name = "tf-demo-computer-prestage-enrollment-minimum"
-# mandatory = true
-# mdm_removable = true
-# support_phone_number = "111-222-3333"
-# support_email_address = "email@company.com"
-# department = "department name"
-# default_prestage = false
-# enrollment_site_id = "-1"
-# keep_existing_site_membership = false
-# keep_existing_location_information = false
-# require_authentication = false
-# authentication_prompt = "hello welcome to your enterprise managed macOS device"
-# prevent_activation_lock = false
-# enable_device_based_activation_lock = false
-# device_enrollment_program_instance_id = "1"
-# skip_setup_items {
-# biometric = false
-# terms_of_address = false
-# file_vault = false
-# icloud_diagnostics = false
-# diagnostics = false
-# accessibility = false
-# apple_id = false
-# screen_time = false
-# siri = false
-# display_tone = false
-# restore = false
-# appearance = false
-# privacy = false
-# payment = false
-# registration = false
-# tos = false
-# icloud_storage = false
-# location = false
-# intelligence = false
-# enable_lockdown_mode = false
-# welcome = false
-# wallpaper = false
-# }
-# location_information {
-# username = ""
-# realname = ""
-# phone = ""
-# email = ""
-# room = ""
-# position = ""
-# department_id = "-1"
-# building_id = "-1"
-# }
-# purchasing_information {
-# leased = false
-# purchased = true
-# apple_care_id = ""
-# po_number = ""
-# vendor = ""
-# purchase_price = ""
-# life_expectancy = 0
-# purchasing_account = ""
-# purchasing_contact = ""
-# lease_date = "1970-01-01"
-# po_date = "1970-01-01"
-# warranty_date = "1970-01-01"
-# }
-# anchor_certificates = []
-# enrollment_customization_id = "0"
-# language = ""
-# region = ""
-# auto_advance_setup = false
-# install_profiles_during_setup = true
-# prestage_installed_profile_ids = []
-# custom_package_ids = []
-# custom_package_distribution_point_id = "-1"
-# enable_recovery_lock = false
-# recovery_lock_password_type = "MANUAL" // "MANUAL" / "RANDOM"
-# recovery_lock_password = ""
-# rotate_recovery_lock_password = false
-# prestage_minimum_os_target_version_type = "NO_ENFORCEMENT"
-# minimum_os_specific_version = ""
-# site_id = "-1"
-# account_settings {
-# payload_configured = true
-# local_admin_account_enabled = false
-# admin_username = ""
-# admin_password = ""
-# hidden_admin_account = false
-# local_user_managed = false
-# user_account_type = "ADMINISTRATOR"
-# prefill_primary_account_info_feature_enabled = false
-# prefill_type = "UNKNOWN"
-# prefill_account_full_name = ""
-# prefill_account_user_name = ""
-# prevent_prefill_info_from_modification = false
-# }
-# }
-
-// Configured the Jamf Pro Computer Prestage Enrollment
-# resource "jamfpro_computer_prestage_enrollment" "jamfpro_computer_prestage_enrollment_002" {
-# display_name = "tf-demo-computer-prestage-enrollment-maximum"
-# mandatory = true
-# mdm_removable = true
-# support_phone_number = "111-222-3333"
-# support_email_address = "email@company.com"
-# department = "department name"
-# default_prestage = false
-# enrollment_site_id = "-1"
-# keep_existing_site_membership = false
-# keep_existing_location_information = false
-# require_authentication = false
-# authentication_prompt = "hello welcome to your enterprise managed macOS device"
-# prevent_activation_lock = false
-# enable_device_based_activation_lock = false
-# device_enrollment_program_instance_id = "1"
-# skip_setup_items {
-# biometric = false
-# terms_of_address = false
-# file_vault = false
-# icloud_diagnostics = false
-# diagnostics = false
-# accessibility = false
-# apple_id = false
-# screen_time = false
-# siri = false
-# display_tone = false
-# restore = false
-# appearance = false
-# privacy = true
-# payment = false
-# registration = false
-# tos = false
-# icloud_storage = false
-# location = false
-# intelligence = true
-# enable_lockdown_mode = true
-# welcome = true
-# wallpaper = true
-# }
-# location_information {
-# username = ""
-# realname = ""
-# phone = ""
-# email = ""
-# room = ""
-# position = ""
-# department_id = "-1"
-# building_id = "-1"
-# }
-# purchasing_information {
-# leased = false
-# purchased = true
-# apple_care_id = ""
-# po_number = ""
-# vendor = ""
-# purchase_price = ""
-# life_expectancy = 0
-# purchasing_account = ""
-# purchasing_contact = ""
-# lease_date = "1970-01-01"
-# po_date = "1970-01-01"
-# warranty_date = "1970-01-01"
-# }
-# anchor_certificates = []
-# enrollment_customization_id = "0"
-# language = ""
-# region = ""
-# auto_advance_setup = false
-# install_profiles_during_setup = true
-# prestage_installed_profile_ids = reverse(sort([jamfpro_macos_configuration_profile_plist.jamfpro_macos_configuration_profile_001.id, jamfpro_macos_configuration_profile_plist.jamfpro_macos_configuration_profile_002.id])) // requires decending order
-# custom_package_ids = sort([1, 2]) // requires ascending order
-# custom_package_distribution_point_id = "-2" // "-1" - not used / "-2" - Cloud Distribution Point (Jamf Cloud) / "any other number" - Distribution Point ID
-# enable_recovery_lock = true
-# recovery_lock_password_type = "MANUAL" // "MANUAL" / "RANDOM"
-# recovery_lock_password = "thing"
-# rotate_recovery_lock_password = false
-# prestage_minimum_os_target_version_type = "MINIMUM_OS_LATEST_VERSION" // "NO_ENFORCEMENT" / "MINIMUM_OS_LATEST_VERSION" / "MINIMUM_OS_LATEST_MAJOR_VERSION" / "MINIMUM_OS_SPECIFIC_VERSION"
-# minimum_os_specific_version = "14.6.1"
-
-# site_id = "-1"
-# account_settings {
-# payload_configured = true
-# local_admin_account_enabled = true
-# admin_username = "thing"
-# admin_password = "thing"
-# hidden_admin_account = true
-# local_user_managed = true
-# user_account_type = "ADMINISTRATOR" // "STANDARD" / "ADMINISTRATOR" / "SKIP"
-# prefill_primary_account_info_feature_enabled = true
-# prefill_type = "CUSTOM" // "UNKNOWN" / "CUSTOM" / "DEVICE_OWNER"
-# prefill_account_full_name = "firstname.lastname"
-# prefill_account_user_name = "firstname.lastname"
-# prevent_prefill_info_from_modification = false
-# }
-# }
\ No newline at end of file
diff --git a/workload/terraform/jamfpro/printers.tf b/workload/terraform/jamfpro/printers.tf
new file mode 100644
index 00000000..12859aee
--- /dev/null
+++ b/workload/terraform/jamfpro/printers.tf
@@ -0,0 +1,16 @@
+// Generic printer ppd
+resource "jamfpro_printer" "jamfpro_printers_002" {
+ name = "tf-demo-printer-generic_ppd-01"
+ category_name = "No category assigned"
+ uri = "lpd://10.1.20.204/"
+ cups_name = "HP_9th_Floor"
+ location = "string"
+ model = "HP LaserJet 500 color MFP M575"
+ info = "string"
+ notes = "string"
+ make_default = false
+ use_generic = true
+ ppd = ""
+ ppd_path = "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Resources/Generic.ppd"
+ ppd_contents = ""
+}